Utility function for screen geometry

This commit is contained in:
Klaus Basan
2018-11-16 02:26:53 +01:00
parent 1bf9670a5d
commit 0b2d3c3f05
2 changed files with 23 additions and 0 deletions

View File

@@ -34,6 +34,7 @@
#include <QAction>
#include <QCloseEvent>
#include <QApplication>
#include <QDesktopWidget>
#include <QCommandLineParser>
#include <QDesktopServices>
#include <QDir>
@@ -290,6 +291,20 @@ namespace BlackGui
return CGuiUtility::isUsingHighDpiScreenSupport();
}
QScreen *CGuiApplication::currentScreen()
{
QWidget *w = CGuiApplication::mainApplicationWidget();
const int s = QApplication::desktop()->screenNumber(w);
if (s < QGuiApplication::screens().size()) { return QGuiApplication::screens()[s]; }
return QGuiApplication::primaryScreen();
}
QRect CGuiApplication::currentScreenGeometry()
{
const QScreen *s = currentScreen();
return s->geometry();
}
bool CGuiApplication::saveWindowGeometryAndState(const QMainWindow *window) const
{
if (!window) { return false; }

View File

@@ -27,6 +27,7 @@
#include <QDialog>
#include <QObject>
#include <QEvent>
#include <QScreen>
#include <QPixmap>
#include <QScopedPointer>
#include <QString>
@@ -244,6 +245,13 @@ namespace BlackGui
//! Uses the high DPI support?
static bool isUsingHighDpiScreenSupport();
//! Current screen
static QScreen *currentScreen();
//! Current screen resolution
//! \remark logical resolution, not physical resolution
static QRect currentScreenGeometry();
//! Parse scale factor if any
static double parseScaleFactor(int argc, char *argv[]);