diff options
Diffstat (limited to 'tests/manual/highdpi')
-rw-r--r-- | tests/manual/highdpi/dragwidget.cpp | 6 | ||||
-rw-r--r-- | tests/manual/highdpi/main.cpp | 23 |
2 files changed, 27 insertions, 2 deletions
diff --git a/tests/manual/highdpi/dragwidget.cpp b/tests/manual/highdpi/dragwidget.cpp index b5ad6fa63b..fc1ea72963 100644 --- a/tests/manual/highdpi/dragwidget.cpp +++ b/tests/manual/highdpi/dragwidget.cpp @@ -163,7 +163,11 @@ void DragWidget::mousePressEvent(QMouseEvent *event) mimeData->setData("application/x-hotspot", QByteArray::number(hotSpot.x()) + ' ' + QByteArray::number(hotSpot.y())); - QPixmap pixmap(child->size()); + const qreal dpr = devicePixelRatioF() > 1 && !(QGuiApplication::keyboardModifiers() & Qt::ShiftModifier) + ? devicePixelRatioF() : 1; + + QPixmap pixmap(child->size() * dpr); + pixmap.setDevicePixelRatio(dpr); child->render(&pixmap); QDrag *drag = new QDrag(this); diff --git a/tests/manual/highdpi/main.cpp b/tests/manual/highdpi/main.cpp index dcfabb213c..bd6af75b16 100644 --- a/tests/manual/highdpi/main.cpp +++ b/tests/manual/highdpi/main.cpp @@ -375,16 +375,22 @@ Labels::Labels() class MainWindow : public QMainWindow { + Q_OBJECT public: MainWindow(); QMenu *addNewMenu(const QString &title, int itemCount = 5); +private slots: + void maskActionToggled(bool t); + +private: QIcon qtIcon; QIcon qtIcon1x; QIcon qtIcon2x; QToolBar *fileToolBar; int menuCount; + QAction *m_maskAction; }; MainWindow::MainWindow() @@ -403,7 +409,12 @@ MainWindow::MainWindow() addNewMenu("&Edit"); addNewMenu("&Build"); addNewMenu("&Debug", 4); - addNewMenu("&Transmogrify", 7); + QMenu *menu = addNewMenu("&Transmogrify", 7); + menu->addSeparator(); + m_maskAction = menu->addAction("Mask"); + m_maskAction->setCheckable(true); + connect(m_maskAction, &QAction::toggled, this, &MainWindow::maskActionToggled); + fileToolBar->addAction(m_maskAction); addNewMenu("T&ools"); addNewMenu("&Help", 2); } @@ -426,6 +437,16 @@ QMenu *MainWindow::addNewMenu(const QString &title, int itemCount) return menu; } +void MainWindow::maskActionToggled(bool t) +{ + if (t) { + QVector<QPoint> upperLeftTriangle; + upperLeftTriangle << QPoint(0, 0) << QPoint(width(), 0) << QPoint(0, height()); + setMask(QRegion(QPolygon(upperLeftTriangle))); + } else { + clearMask(); + } +} class StandardIcons : public QWidget { |