summaryrefslogtreecommitdiffstats
path: root/tests/manual/highdpi
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/highdpi')
-rw-r--r--tests/manual/highdpi/dragwidget.cpp6
-rw-r--r--tests/manual/highdpi/main.cpp23
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
{