summaryrefslogtreecommitdiffstats
path: root/tests/manual
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@digia.com>2014-11-28 13:57:00 +0100
committerMorten Johan Sørvig <morten.sorvig@digia.com>2015-03-26 11:01:26 +0100
commitbf27bca43cc9971f99ee24988593c7d7afd50e71 (patch)
tree3b8e878ad25641887b8fc35915f57a77558fbb13 /tests/manual
parenta955beb42388498a9ed5c426b9ae891ab56fa2f8 (diff)
WIP: tests/manual/highdpi: Add line drawing test
Diffstat (limited to 'tests/manual')
-rw-r--r--tests/manual/highdpi/main.cpp68
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/manual/highdpi/main.cpp b/tests/manual/highdpi/main.cpp
index fd14523a97..ae2954cbb5 100644
--- a/tests/manual/highdpi/main.cpp
+++ b/tests/manual/highdpi/main.cpp
@@ -49,6 +49,7 @@
#include <QWindow>
#include <QScreen>
#include <QFile>
+#include <QMouseEvent>
#include <QTemporaryDir>
#include <QCommandLineParser>
#include <QCommandLineOption>
@@ -461,6 +462,64 @@ public:
}
};
+class LinePainter : public QWidget
+{
+public:
+ void paintEvent(QPaintEvent *event);
+ void mousePressEvent(QMouseEvent *event);
+ void mouseReleaseEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *event);
+
+ QPoint lastMousePoint;
+ QVector<QPoint> linePoints;
+};
+
+void LinePainter::paintEvent(QPaintEvent *)
+{
+ QPainter p(this);
+ p.fillRect(QRect(QPoint(0, 0), size()), QBrush(Qt::gray));
+
+ // Default antialiased line
+ p.setRenderHint(QPainter::Antialiasing);
+ p.drawLines(linePoints);
+
+ // Cosmetic 1 antialiased line
+ QPen pen;
+ pen.setCosmetic(true);
+ pen.setWidth(1);
+ p.setPen(pen);
+ p.translate(3, 3);
+ p.drawLines(linePoints);
+
+ // Aliased cosmetic 1 line
+ p.setRenderHint(QPainter::Antialiasing, false);
+ p.translate(3, 3);
+ p.drawLines(linePoints);
+}
+
+void LinePainter::mousePressEvent(QMouseEvent *event)
+{
+ lastMousePoint = event->pos();
+}
+
+void LinePainter::mouseReleaseEvent(QMouseEvent *)
+{
+ lastMousePoint = QPoint();
+}
+
+void LinePainter::mouseMoveEvent(QMouseEvent *event)
+{
+ if (lastMousePoint.isNull())
+ return;
+
+ QPoint newMousePoint = event->pos();
+ if (lastMousePoint == newMousePoint)
+ return;
+ linePoints.append(lastMousePoint);
+ linePoints.append(newMousePoint);
+ lastMousePoint = newMousePoint;
+ update();
+}
int main(int argc, char **argv)
{
@@ -490,6 +549,9 @@ int main(int argc, char **argv)
parser.addOption(iconDrawingOption);
QCommandLineOption buttonsOption("buttons", "Test buttons");
parser.addOption(buttonsOption);
+ QCommandLineOption linePainterOption("linepainter", "Test line painting");
+ parser.addOption(linePainterOption);
+
parser.process(app);
@@ -550,6 +612,12 @@ int main(int argc, char **argv)
buttons->show();
}
+ QScopedPointer<LinePainter> linePainter;
+ if (parser.isSet(linePainterOption)) {
+ linePainter.reset(new LinePainter);
+ linePainter->show();
+ }
+
if (QApplication::topLevelWidgets().isEmpty())
parser.showHelp(0);