mirror of
https://github.com/fergalmoran/flameshot.git
synced 2025-12-26 11:50:47 +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);
|
this->startFullscreenCapture(id);
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
// TODO: Figure out the code path that gets here so the deprated
|
|
||||||
// warning can be fixed
|
|
||||||
case CaptureRequest::SCREEN_MODE: {
|
case CaptureRequest::SCREEN_MODE: {
|
||||||
int&& number = request.data().toInt();
|
int&& number = request.data().toInt();
|
||||||
doLater(request.delay(), this, [this, id, number]() {
|
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)
|
void Controller::startScreenGrab(const uint id, const int screenNumber)
|
||||||
{
|
{
|
||||||
bool ok = true;
|
bool ok = true;
|
||||||
int n = screenNumber;
|
auto screen = qApp->screens()[screenNumber];
|
||||||
|
|
||||||
if (n < 0) {
|
if (screenNumber < 0) {
|
||||||
QPoint globalCursorPos = QCursor::pos();
|
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) {
|
if (ok) {
|
||||||
CaptureRequest& req = *requests().find(id);
|
CaptureRequest& req = *requests().find(id);
|
||||||
QRect region = req.initialSelection();
|
QRect region = req.initialSelection();
|
||||||
if (region.isNull()) {
|
if (region.isNull()) {
|
||||||
region = ScreenGrabber().screenGeometry(n);
|
region = ScreenGrabber().screenGeometry(screen);
|
||||||
} else {
|
} else {
|
||||||
QRect screenGeom = ScreenGrabber().screenGeometry(n);
|
QRect screenGeom = ScreenGrabber().screenGeometry(screen);
|
||||||
screenGeom.moveTopLeft({ 0, 0 });
|
screenGeom.moveTopLeft({ 0, 0 });
|
||||||
region = region.intersected(screenGeom);
|
region = region.intersected(screenGeom);
|
||||||
p = p.copy(region);
|
p = p.copy(region);
|
||||||
|
|||||||
@@ -144,12 +144,11 @@ QPixmap ScreenGrabber::grabEntireDesktop(bool& ok)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
QRect ScreenGrabber::screenGeometry(int screenNumber)
|
QRect ScreenGrabber::screenGeometry(QScreen* screen)
|
||||||
{
|
{
|
||||||
QPixmap p;
|
QPixmap p;
|
||||||
QRect geometry;
|
QRect geometry;
|
||||||
bool isVirtual = QApplication::desktop()->isVirtualDesktop();
|
if (m_info.waylandDetected()) {
|
||||||
if (isVirtual || m_info.waylandDetected()) {
|
|
||||||
QPoint topLeft(0, 0);
|
QPoint topLeft(0, 0);
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
for (QScreen* const screen : QGuiApplication::screens()) {
|
for (QScreen* const screen : QGuiApplication::screens()) {
|
||||||
@@ -160,7 +159,7 @@ QRect ScreenGrabber::screenGeometry(int screenNumber)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
geometry = QApplication::desktop()->screenGeometry(screenNumber);
|
geometry = screen->geometry();
|
||||||
geometry.moveTo(geometry.topLeft() - topLeft);
|
geometry.moveTo(geometry.topLeft() - topLeft);
|
||||||
} else {
|
} else {
|
||||||
QScreen* currentScreen = QGuiAppCurrentScreen().currentScreen();
|
QScreen* currentScreen = QGuiAppCurrentScreen().currentScreen();
|
||||||
@@ -169,12 +168,11 @@ QRect ScreenGrabber::screenGeometry(int screenNumber)
|
|||||||
return geometry;
|
return geometry;
|
||||||
}
|
}
|
||||||
|
|
||||||
QPixmap ScreenGrabber::grabScreen(int screenNumber, bool& ok)
|
QPixmap ScreenGrabber::grabScreen(QScreen* screen, bool& ok)
|
||||||
{
|
{
|
||||||
QPixmap p;
|
QPixmap p;
|
||||||
bool isVirtual = QApplication::desktop()->isVirtualDesktop();
|
QRect geometry = screenGeometry(screen);
|
||||||
QRect geometry = screenGeometry(screenNumber);
|
if (m_info.waylandDetected()) {
|
||||||
if (isVirtual || m_info.waylandDetected()) {
|
|
||||||
p = grabEntireDesktop(ok);
|
p = grabEntireDesktop(ok);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
return p.copy(geometry);
|
return p.copy(geometry);
|
||||||
@@ -182,11 +180,8 @@ QPixmap ScreenGrabber::grabScreen(int screenNumber, bool& ok)
|
|||||||
} else {
|
} else {
|
||||||
ok = true;
|
ok = true;
|
||||||
QScreen* currentScreen = QGuiAppCurrentScreen().currentScreen();
|
QScreen* currentScreen = QGuiAppCurrentScreen().currentScreen();
|
||||||
return currentScreen->grabWindow(screenNumber,
|
return currentScreen->grabWindow(
|
||||||
geometry.x(),
|
geometry.x(), geometry.y(), geometry.width(), geometry.height());
|
||||||
geometry.y(),
|
|
||||||
geometry.width(),
|
|
||||||
geometry.height());
|
|
||||||
}
|
}
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
#include "src/utils/desktopinfo.h"
|
#include "src/utils/desktopinfo.h"
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
#include <QScreen>
|
||||||
|
|
||||||
class ScreenGrabber : public QObject
|
class ScreenGrabber : public QObject
|
||||||
{
|
{
|
||||||
@@ -12,8 +13,8 @@ class ScreenGrabber : public QObject
|
|||||||
public:
|
public:
|
||||||
explicit ScreenGrabber(QObject* parent = nullptr);
|
explicit ScreenGrabber(QObject* parent = nullptr);
|
||||||
QPixmap grabEntireDesktop(bool& ok);
|
QPixmap grabEntireDesktop(bool& ok);
|
||||||
QRect screenGeometry(int screenNumber);
|
QRect screenGeometry(QScreen* screen);
|
||||||
QPixmap grabScreen(int screenNumber, bool& ok);
|
QPixmap grabScreen(QScreen* screenNumber, bool& ok);
|
||||||
void freeDesktopPortal(bool& ok, QPixmap& res);
|
void freeDesktopPortal(bool& ok, QPixmap& res);
|
||||||
QRect desktopGeometry();
|
QRect desktopGeometry();
|
||||||
|
|
||||||
|
|||||||
@@ -499,7 +499,7 @@ QVariant Region::process(const QVariant& val)
|
|||||||
if (!ok || number < 0) {
|
if (!ok || number < 0) {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
return ScreenGrabber().screenGeometry(number);
|
return ScreenGrabber().screenGeometry(qApp->screens()[number]);
|
||||||
}
|
}
|
||||||
|
|
||||||
QRegExp regex("(-{,1}\\d+)" // number (any sign)
|
QRegExp regex("(-{,1}\\d+)" // number (any sign)
|
||||||
|
|||||||
Reference in New Issue
Block a user