diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp index 1f974419c79..6c5005546e8 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp @@ -724,11 +724,13 @@ void ItemLibraryAssetImportDialog::setCloseButtonState(bool importing) void ItemLibraryAssetImportDialog::addError(const QString &error, const QString &srcPath) { + m_closeOnFinish = false; addFormattedMessage(m_outputFormatter, error, srcPath, Utils::StdErrFormat); } void ItemLibraryAssetImportDialog::addWarning(const QString &warning, const QString &srcPath) { + m_closeOnFinish = false; addFormattedMessage(m_outputFormatter, warning, srcPath, Utils::StdOutFormat); } @@ -777,6 +779,10 @@ void ItemLibraryAssetImportDialog::onImportFinished() QString doneStr = tr("Import done."); addInfo(doneStr); setImportProgress(100, doneStr); + if (m_closeOnFinish) { + // Add small delay to allow user to visually confirm import finishing + QTimer::singleShot(1000, this, &ItemLibraryAssetImportDialog::onClose); + } } } @@ -785,7 +791,7 @@ void ItemLibraryAssetImportDialog::onClose() if (m_importer.isImporting()) { addInfo(tr("Canceling import.")); m_importer.cancelImport(); - } else { + } else if (isVisible()) { if (ui->progressBar->value() == 100) // import done successfully accept(); else diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.h index ded5d75703a..1b2c4c4ebda 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.h +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.h @@ -91,5 +91,6 @@ private: int m_optionsHeight = 0; int m_optionsRows = 0; QSet m_preselectedFilesForOverwrite; + bool m_closeOnFinish = true; }; }