From 23697466cae8f1a49537fed1e60db8cea79207b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Sun, 13 Aug 2017 15:19:20 +0200 Subject: Reduce usage of QDesktopWidget to resolve screen properties in QtWidgets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removes the need to initialize QDesktopWidget, just to look up which screen a widget would map to, the geometry of a screen, number of screens, etc. Change-Id: Ieb153b9ff6d3fba645fc528d6e430e8392f990bf Reviewed-by: Gabriel de Dietrich Reviewed-by: Simon Hausmann Reviewed-by: Tor Arne Vestbø --- src/widgets/kernel/qdesktopwidget.cpp | 65 +++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) (limited to 'src/widgets/kernel/qdesktopwidget.cpp') diff --git a/src/widgets/kernel/qdesktopwidget.cpp b/src/widgets/kernel/qdesktopwidget.cpp index 1e6fbfd239..6077ac38db 100644 --- a/src/widgets/kernel/qdesktopwidget.cpp +++ b/src/widgets/kernel/qdesktopwidget.cpp @@ -72,6 +72,11 @@ int QDesktopScreenWidget::screenNumber() const } const QRect QDesktopWidget::screenGeometry(const QWidget *widget) const +{ + return QDesktopWidgetPrivate::screenGeometry(widget); +} + +const QRect QDesktopWidgetPrivate::screenGeometry(const QWidget *widget) { if (Q_UNLIKELY(!widget)) { qWarning("QDesktopWidget::screenGeometry(): Attempt " @@ -85,6 +90,11 @@ const QRect QDesktopWidget::screenGeometry(const QWidget *widget) const } const QRect QDesktopWidget::availableGeometry(const QWidget *widget) const +{ + return QDesktopWidgetPrivate::availableGeometry(widget); +} + +const QRect QDesktopWidgetPrivate::availableGeometry(const QWidget *widget) { if (Q_UNLIKELY(!widget)) { qWarning("QDesktopWidget::availableGeometry(): Attempt " @@ -194,16 +204,51 @@ QDesktopWidget::~QDesktopWidget() } bool QDesktopWidget::isVirtualDesktop() const +{ + return QDesktopWidgetPrivate::isVirtualDesktop(); +} + +bool QDesktopWidgetPrivate::isVirtualDesktop() { return QGuiApplication::primaryScreen()->virtualSiblings().size() > 1; } +QRect QDesktopWidgetPrivate::geometry() +{ + return QGuiApplication::primaryScreen()->virtualGeometry(); +} + +QSize QDesktopWidgetPrivate::size() +{ + return geometry().size(); +} + +int QDesktopWidgetPrivate::width() +{ + return geometry().width(); +} + +int QDesktopWidgetPrivate::height() +{ + return geometry().height(); +} + int QDesktopWidget::primaryScreen() const +{ + return QDesktopWidgetPrivate::primaryScreen(); +} + +int QDesktopWidgetPrivate::primaryScreen() { return 0; } int QDesktopWidget::numScreens() const +{ + return QDesktopWidgetPrivate::numScreens(); +} + +int QDesktopWidgetPrivate::numScreens() { return qMax(QGuiApplication::screens().size(), 1); } @@ -217,6 +262,11 @@ QWidget *QDesktopWidget::screen(int screen) } const QRect QDesktopWidget::availableGeometry(int screenNo) const +{ + return QDesktopWidgetPrivate::availableGeometry(screenNo); +} + +const QRect QDesktopWidgetPrivate::availableGeometry(int screenNo) { QList screens = QGuiApplication::screens(); if (screenNo == -1) @@ -228,6 +278,11 @@ const QRect QDesktopWidget::availableGeometry(int screenNo) const } const QRect QDesktopWidget::screenGeometry(int screenNo) const +{ + return QDesktopWidgetPrivate::screenGeometry(screenNo); +} + +const QRect QDesktopWidgetPrivate::screenGeometry(int screenNo) { QList screens = QGuiApplication::screens(); if (screenNo == -1) @@ -239,6 +294,11 @@ const QRect QDesktopWidget::screenGeometry(int screenNo) const } int QDesktopWidget::screenNumber(const QWidget *w) const +{ + return QDesktopWidgetPrivate::screenNumber(w); +} + +int QDesktopWidgetPrivate::screenNumber(const QWidget *w) { if (!w) return primaryScreen(); @@ -286,6 +346,11 @@ int QDesktopWidget::screenNumber(const QWidget *w) const } int QDesktopWidget::screenNumber(const QPoint &p) const +{ + return QDesktopWidgetPrivate::screenNumber(p); +} + +int QDesktopWidgetPrivate::screenNumber(const QPoint &p) { const QList screens = QGuiApplication::screens(); if (!screens.isEmpty()) { -- cgit v1.2.3