diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/installer/extractarchiveoperation.cpp | 8 | ||||
-rw-r--r-- | src/libs/installer/extractarchiveoperation.h | 1 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/libs/installer/extractarchiveoperation.cpp b/src/libs/installer/extractarchiveoperation.cpp index c41f029e3..128327855 100644 --- a/src/libs/installer/extractarchiveoperation.cpp +++ b/src/libs/installer/extractarchiveoperation.cpp @@ -67,6 +67,8 @@ bool ExtractArchiveOperation::performOperation() connect(runnable, &Runnable::finished, &receiver, &Receiver::runnableFinished, Qt::QueuedConnection); + m_files.clear(); + QEventLoop loop; connect(&receiver, &Receiver::finished, &loop, &QEventLoop::quit); if (QThreadPool::globalInstance()->tryStart(runnable)) { @@ -77,6 +79,8 @@ bool ExtractArchiveOperation::performOperation() receiver.runnableFinished(true, QString()); } + setValue(QLatin1String("files"), m_files); + // TODO: Use backups for rollback, too? Doesn't work for uninstallation though. // delete all backups we can delete right now, remember the rest @@ -121,9 +125,7 @@ bool ExtractArchiveOperation::testOperation() */ void ExtractArchiveOperation::fileFinished(const QString &filename) { - QStringList files = value(QLatin1String("files")).toStringList(); - files.prepend(filename); - setValue(QLatin1String("files"), files); + m_files.prepend(filename); emit outputTextChanged(QDir::toNativeSeparators(filename)); } diff --git a/src/libs/installer/extractarchiveoperation.h b/src/libs/installer/extractarchiveoperation.h index 45c67a9cb..3e75a9bb9 100644 --- a/src/libs/installer/extractarchiveoperation.h +++ b/src/libs/installer/extractarchiveoperation.h @@ -56,6 +56,7 @@ private Q_SLOTS: void fileFinished(const QString &progress); private: + QStringList m_files; class Callback; class Runnable; class Receiver; |