forked from qt-creator/qt-creator
Python: Avoid warning in QFutureWatcher
Re-using a watcher will trigger the warning as the future had been set on the "old" watcher even though it may have finished or disconnected. Change-Id: I32d937b1d73d8bba9ec5639c62393da84638099e Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -161,7 +161,7 @@ public:
|
|||||||
PythonInterpreterAspect *q;
|
PythonInterpreterAspect *q;
|
||||||
RunConfiguration *rc;
|
RunConfiguration *rc;
|
||||||
QList<PySideUicExtraCompiler *> m_extraCompilers;
|
QList<PySideUicExtraCompiler *> m_extraCompilers;
|
||||||
QFutureWatcher<PipPackageInfo> m_watcher;
|
QFutureWatcher<PipPackageInfo> *m_watcher = nullptr;
|
||||||
QMetaObject::Connection m_watcherConnection;
|
QMetaObject::Connection m_watcherConnection;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -218,11 +218,13 @@ void PythonInterpreterAspectPrivate::checkForPySide(const FilePath &python,
|
|||||||
{
|
{
|
||||||
const PipPackage package(pySidePackageName);
|
const PipPackage package(pySidePackageName);
|
||||||
QObject::disconnect(m_watcherConnection);
|
QObject::disconnect(m_watcherConnection);
|
||||||
m_watcherConnection = QObject::connect(&m_watcher, &QFutureWatcherBase::finished, q, [=] {
|
delete m_watcher;
|
||||||
handlePySidePackageInfo(m_watcher.result(), python, pySidePackageName);
|
m_watcher = new QFutureWatcher<PipPackageInfo>(this);
|
||||||
|
m_watcherConnection = QObject::connect(m_watcher, &QFutureWatcherBase::finished, q, [=] {
|
||||||
|
handlePySidePackageInfo(m_watcher->result(), python, pySidePackageName);
|
||||||
});
|
});
|
||||||
const auto future = Pip::instance(python)->info(package);
|
const auto future = Pip::instance(python)->info(package);
|
||||||
m_watcher.setFuture(future);
|
m_watcher->setFuture(future);
|
||||||
ExtensionSystem::PluginManager::futureSynchronizer()->addFuture(future);
|
ExtensionSystem::PluginManager::futureSynchronizer()->addFuture(future);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user