@@ -35,6 +35,7 @@ static QString cachePath(const QString &appId)
3535SessionGrabber::SessionGrabber(QObject *parent)
3636 : QObject(parent)
3737 , m_target(nullptr)
38+ , m_watcher(nullptr)
3839{
3940}
4041
@@ -119,15 +120,16 @@ void SessionGrabber::removeScreenshot()
119120void SessionGrabber::grabReady()
120121{
121122 QFuture<QString> f = QtConcurrent::run(saveScreenshot, m_appId, m_grabResult);
122− m_watcher.reset(new QFutureWatcher<QString>(this));
123+ m_watcher = new QFutureWatcher<QString>(this);
123124 m_watcher->setFuture(f);
124− connect(m_watcher.data(), &QFutureWatcher<QString>::finished, this, &SessionGrabber::saveFinished);
125+ connect(m_watcher, &QFutureWatcher<QString>::finished, this, &SessionGrabber::saveFinished);
125126}
126127
127128void SessionGrabber::saveFinished()
128129{
129130 setPath(m_watcher->future().result());
130− m_watcher.clear();
131+ delete m_watcher;
132+ m_watcher = 0;
131133 m_grabResult.clear();
132134 Q_EMIT screenshotGrabbed();
133135}