Index: libs/ui/KisApplication.h =================================================================== --- libs/ui/KisApplication.h +++ libs/ui/KisApplication.h @@ -100,8 +100,6 @@ void remoteArguments(QByteArray message, QObject*socket); void fileOpenRequested(const QString & url); - void onAutoSaveFinished(int result); - private: /// @return the number of autosavefiles opened void checkAutosaveFiles(); Index: libs/ui/KisApplication.cpp =================================================================== --- libs/ui/KisApplication.cpp +++ libs/ui/KisApplication.cpp @@ -517,7 +517,6 @@ event->type(), qPrintable(receiver->objectName())); } return false; - } @@ -593,48 +592,37 @@ d->splashScreen->hide(); } m_autosaveDialog = new KisAutoSaveRecoveryDialog(m_autosaveFiles, activeWindow()); - connect(m_autosaveDialog, SIGNAL(finished(int)), this, SLOT(onAutoSaveFinished(int))); - m_autosaveDialog->exec(); - } -} + QDialog::DialogCode result = (QDialog::DialogCode) m_autosaveDialog->exec(); -void KisApplication::onAutoSaveFinished(int result) -{ - if (m_batchRun) return; - -#ifdef Q_OS_WIN - QDir dir = QDir::temp(); -#else - QDir dir = QDir::home(); -#endif - - if (result == QDialog::Accepted) { - QStringList filesToRecover = m_autosaveDialog->recoverableFiles(); - Q_FOREACH (const QString &autosaveFile, m_autosaveFiles) { - if (!filesToRecover.contains(autosaveFile)) { - QFile::remove(dir.absolutePath() + "/" + autosaveFile); + if (result == QDialog::Accepted) { + QStringList filesToRecover = m_autosaveDialog->recoverableFiles(); + Q_FOREACH (const QString &autosaveFile, m_autosaveFiles) { + if (!filesToRecover.contains(autosaveFile)) { + QFile::remove(dir.absolutePath() + "/" + autosaveFile); + } } + m_autosaveFiles = filesToRecover; + } else { + m_autosaveFiles.clear(); } - m_autosaveFiles = filesToRecover; - } else { - m_autosaveFiles.clear(); - } - - QList autosaveUrls; - if (m_autosaveFiles.size() > 0) { - - Q_FOREACH (const QString &autoSaveFile, m_autosaveFiles) { - const QUrl url = QUrl::fromLocalFile(dir.absolutePath() + QLatin1Char('/') + autoSaveFile); - autosaveUrls << url; - } - } - if (m_mainWindow) { - Q_FOREACH (const QUrl &url, autosaveUrls) { - KisDocument *doc = KisPart::instance()->createDocument(); - doc->setFileBatchMode(m_batchRun); - m_mainWindow->openDocumentInternal(url, doc); + if (m_autosaveFiles.size() > 0) { + QList autosaveUrls; + Q_FOREACH (const QString &autoSaveFile, m_autosaveFiles) { + const QUrl url = QUrl::fromLocalFile(dir.absolutePath() + QLatin1Char('/') + autoSaveFile); + autosaveUrls << url; + } + if (m_mainWindow) { + Q_FOREACH (const QUrl &url, autosaveUrls) { + KisDocument *doc = KisPart::instance()->createDocument(); + doc->setFileBatchMode(m_batchRun); + m_mainWindow->openDocumentInternal(url, doc); + } + } } + // cleanup + delete m_autosaveDialog; + m_autosaveDialog = nullptr; } }