on xenial help sign in
Saviq prefers a raw pointer
2b69d55Albert Astals Cid
plugins/SessionGrabber/sessiongrabber.cpp+5−3
@@ -35,6 +35,7 @@ static QString cachePath(const QString &appId)
35SessionGrabber::SessionGrabber(QObject *parent)
35SessionGrabber::SessionGrabber(QObject *parent)
36 : QObject(parent)
36 : QObject(parent)
37 , m_target(nullptr)
37 , m_target(nullptr)
38+ , m_watcher(nullptr)
38{
39{
39}
40}
40
41
@@ -119,15 +120,16 @@ void SessionGrabber::removeScreenshot()
119void SessionGrabber::grabReady()
120void SessionGrabber::grabReady()
120{
121{
121 QFuture<QString> f = QtConcurrent::run(saveScreenshot, m_appId, m_grabResult);
122 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);
123 m_watcher->setFuture(f);
124 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);
125}
126}
126
127
127void SessionGrabber::saveFinished()
128void SessionGrabber::saveFinished()
128{
129{
129 setPath(m_watcher->future().result());
130 setPath(m_watcher->future().result());
130− m_watcher.clear();
131+ delete m_watcher;
132+ m_watcher = 0;
131 m_grabResult.clear();
133 m_grabResult.clear();
132 Q_EMIT screenshotGrabbed();
134 Q_EMIT screenshotGrabbed();
133}
135}
plugins/SessionGrabber/sessiongrabber.h+1−1
@@ -78,8 +78,8 @@ private:
78 QString m_appId;
78 QString m_appId;
79 QString m_path;
79 QString m_path;
80 QQuickItem *m_target;
80 QQuickItem *m_target;
81+ QFutureWatcher<QString> *m_watcher;
81 QSharedPointer<QQuickItemGrabResult> m_grabResult;
82 QSharedPointer<QQuickItemGrabResult> m_grabResult;
82− QSharedPointer<QFutureWatcher<QString>> m_watcher;
83};
83};
84
84
85#endif
85#endif