mirror of
https://github.com/fergalmoran/flameshot.git
synced 2025-12-22 09:51:06 +00:00
Qt5 deprications (#2076)
* working on removing deprecated warnings for Qt6 migration * tewsting 18.04 fix
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "src/utils/desktopinfo.h"
|
||||
#include <QObject>
|
||||
#include <QScreen>
|
||||
|
||||
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();
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user