From b8c0b74ea22b14c97a9f25c4e34d1b6d640ebaac Mon Sep 17 00:00:00 2001 From: borgmanJeremy <46930769+borgmanJeremy@users.noreply.github.com> Date: Sun, 21 Nov 2021 14:40:56 -0600 Subject: [PATCH] Qt5 deprications (#2076) * working on removing deprecated warnings for Qt6 migration * tewsting 18.04 fix --- src/core/controller.cpp | 19 +++++++++++-------- src/utils/screengrabber.cpp | 21 ++++++++------------- src/utils/screengrabber.h | 5 +++-- src/utils/valuehandler.cpp | 2 +- 4 files changed, 23 insertions(+), 24 deletions(-) diff --git a/src/core/controller.cpp b/src/core/controller.cpp index cd5bb208..fb5df759 100644 --- a/src/core/controller.cpp +++ b/src/core/controller.cpp @@ -226,8 +226,6 @@ void Controller::requestCapture(const CaptureRequest& request) this->startFullscreenCapture(id); }); break; - // TODO: Figure out the code path that gets here so the deprated - // warning can be fixed case CaptureRequest::SCREEN_MODE: { int&& number = request.data().toInt(); doLater(request.delay(), this, [this, id, number]() { @@ -320,20 +318,25 @@ void Controller::startVisualCapture(const uint id, void Controller::startScreenGrab(const uint id, const int screenNumber) { bool ok = true; - int n = screenNumber; + auto screen = qApp->screens()[screenNumber]; - if (n < 0) { + if (screenNumber < 0) { QPoint globalCursorPos = QCursor::pos(); - n = qApp->desktop()->screenNumber(globalCursorPos); +#if QT_VERSION > QT_VERSION_CHECK(5, 10, 0) + screen = qApp->screenAt(globalCursorPos); +#else + screen = + qApp->screens()[qApp->desktop()->screenNumber(globalCursorPos)]; +#endif } - QPixmap p(ScreenGrabber().grabScreen(n, ok)); + QPixmap p(ScreenGrabber().grabScreen(screen, ok)); if (ok) { CaptureRequest& req = *requests().find(id); QRect region = req.initialSelection(); if (region.isNull()) { - region = ScreenGrabber().screenGeometry(n); + region = ScreenGrabber().screenGeometry(screen); } else { - QRect screenGeom = ScreenGrabber().screenGeometry(n); + QRect screenGeom = ScreenGrabber().screenGeometry(screen); screenGeom.moveTopLeft({ 0, 0 }); region = region.intersected(screenGeom); p = p.copy(region); diff --git a/src/utils/screengrabber.cpp b/src/utils/screengrabber.cpp index eb7aab5e..669a6c5c 100644 --- a/src/utils/screengrabber.cpp +++ b/src/utils/screengrabber.cpp @@ -144,12 +144,11 @@ QPixmap ScreenGrabber::grabEntireDesktop(bool& ok) #endif } -QRect ScreenGrabber::screenGeometry(int screenNumber) +QRect ScreenGrabber::screenGeometry(QScreen* screen) { QPixmap p; QRect geometry; - bool isVirtual = QApplication::desktop()->isVirtualDesktop(); - if (isVirtual || m_info.waylandDetected()) { + if (m_info.waylandDetected()) { QPoint topLeft(0, 0); #ifdef Q_OS_WIN for (QScreen* const screen : QGuiApplication::screens()) { @@ -160,7 +159,7 @@ QRect ScreenGrabber::screenGeometry(int screenNumber) } } #endif - geometry = QApplication::desktop()->screenGeometry(screenNumber); + geometry = screen->geometry(); geometry.moveTo(geometry.topLeft() - topLeft); } else { QScreen* currentScreen = QGuiAppCurrentScreen().currentScreen(); @@ -169,12 +168,11 @@ QRect ScreenGrabber::screenGeometry(int screenNumber) return geometry; } -QPixmap ScreenGrabber::grabScreen(int screenNumber, bool& ok) +QPixmap ScreenGrabber::grabScreen(QScreen* screen, bool& ok) { QPixmap p; - bool isVirtual = QApplication::desktop()->isVirtualDesktop(); - QRect geometry = screenGeometry(screenNumber); - if (isVirtual || m_info.waylandDetected()) { + QRect geometry = screenGeometry(screen); + if (m_info.waylandDetected()) { p = grabEntireDesktop(ok); if (ok) { return p.copy(geometry); @@ -182,11 +180,8 @@ QPixmap ScreenGrabber::grabScreen(int screenNumber, bool& ok) } else { ok = true; QScreen* currentScreen = QGuiAppCurrentScreen().currentScreen(); - return currentScreen->grabWindow(screenNumber, - geometry.x(), - geometry.y(), - geometry.width(), - geometry.height()); + return currentScreen->grabWindow( + geometry.x(), geometry.y(), geometry.width(), geometry.height()); } return p; } diff --git a/src/utils/screengrabber.h b/src/utils/screengrabber.h index 74debffe..c565e3f4 100644 --- a/src/utils/screengrabber.h +++ b/src/utils/screengrabber.h @@ -5,6 +5,7 @@ #include "src/utils/desktopinfo.h" #include +#include class ScreenGrabber : public QObject { @@ -12,8 +13,8 @@ class ScreenGrabber : public QObject public: explicit ScreenGrabber(QObject* parent = nullptr); QPixmap grabEntireDesktop(bool& ok); - QRect screenGeometry(int screenNumber); - QPixmap grabScreen(int screenNumber, bool& ok); + QRect screenGeometry(QScreen* screen); + QPixmap grabScreen(QScreen* screenNumber, bool& ok); void freeDesktopPortal(bool& ok, QPixmap& res); QRect desktopGeometry(); diff --git a/src/utils/valuehandler.cpp b/src/utils/valuehandler.cpp index 4350f994..3b1a9a8a 100644 --- a/src/utils/valuehandler.cpp +++ b/src/utils/valuehandler.cpp @@ -499,7 +499,7 @@ QVariant Region::process(const QVariant& val) if (!ok || number < 0) { return {}; } - return ScreenGrabber().screenGeometry(number); + return ScreenGrabber().screenGeometry(qApp->screens()[number]); } QRegExp regex("(-{,1}\\d+)" // number (any sign)