From b4ba730732b79bbfa213894f041e6f8de6286b9e Mon Sep 17 00:00:00 2001 From: nullobsi Date: Tue, 2 Feb 2021 00:03:27 -0800 Subject: [PATCH] disconnect object when done --- src/utils/screengrabber.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/utils/screengrabber.cpp b/src/utils/screengrabber.cpp index ac46d5a1..08c45080 100644 --- a/src/utils/screengrabber.cpp +++ b/src/utils/screengrabber.cpp @@ -100,7 +100,7 @@ QPixmap ScreenGrabber::grabEntireDesktop(bool& ok) screenshotInterface.call(QStringLiteral("Screenshot"), "", QMap()); - OrgFreedesktopPortalRequestInterface request( + auto *request = new OrgFreedesktopPortalRequestInterface( QStringLiteral("org.freedesktop.portal.Desktop"), reply.value().path(), QDBusConnection::sessionBus(), @@ -117,11 +117,14 @@ QPixmap ScreenGrabber::grabEntireDesktop(bool& ok) } loop.quit(); }; - connect(&request, + QMetaObject::Connection conn = QObject::connect(request, &org::freedesktop::portal::Request::Response, gotSignal); loop.exec(); - request.Close().waitForFinished(); + QObject::disconnect(conn); + request->Close().waitForFinished(); + request->deleteLater(); + if (res.isNull()) { ok = false; }