From 9c3c350627c1fc9d7f6e063f9360b096f159a6d7 Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Date: Tue, 9 Feb 2016 13:40:42 +0100
Subject: [PATCH] Manual High DPI test: Add test for window masks.

Add a toggle for setting a triangular mask on the main window.

Task-number: QTBUG-50938
Change-Id: Id4a3ee0b80e170f4ee1d195e60ce7bfa8e524359
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
---
 tests/manual/highdpi/main.cpp | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/tests/manual/highdpi/main.cpp b/tests/manual/highdpi/main.cpp
index 692a60d5112..83aefdb88a0 100644
--- a/tests/manual/highdpi/main.cpp
+++ b/tests/manual/highdpi/main.cpp
@@ -380,16 +380,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()
@@ -408,7 +414,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);
 }
@@ -431,6 +442,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
 {
-- 
GitLab