diff --git a/src/plugins/qmldesigner/generateresource.cpp b/src/plugins/qmldesigner/generateresource.cpp index 63370a82f18..f9e43084f85 100644 --- a/src/plugins/qmldesigner/generateresource.cpp +++ b/src/plugins/qmldesigner/generateresource.cpp @@ -77,9 +77,9 @@ QTableWidget* GenerateResource::createFilesTable(const QList &file return table; } -QStringList GenerateResource::getFileList(const QList &fileNames) +std::optional GenerateResource::getFileList(const QList &fileNames) { - QStringList result; + std::optional result; QDialog *dialog = new QDialog(Core::ICore::dialogParent()); dialog->setMinimumWidth(480); dialog->setMinimumHeight(640); @@ -118,7 +118,7 @@ QStringList GenerateResource::getFileList(const QList &fileNames) } } - result = fileList; + result.emplace(fileList); }); dialog->exec(); @@ -311,7 +311,10 @@ void GenerateResource::generateMenuEntry(QObject *parent) temp.close(); - QStringList modifiedList = getFileList(fileList); + std::optional modifiedList = getFileList(fileList); + + if (!modifiedList) + return; if (!persistentFile.open(QIODevice::ReadWrite | QIODevice::Truncate)) return; @@ -323,7 +326,7 @@ void GenerateResource::generateMenuEntry(QObject *parent) persistentFile.write(firstLine.trimmed()); writer.writeStartElement("qresource"); - for (QString file : modifiedList) + for (const QString &file : modifiedList.value()) writer.writeTextElement("file", file.trimmed()); writer.writeEndElement(); @@ -446,7 +449,11 @@ void GenerateResource::generateMenuEntry(QObject *parent) temp.close(); persistentFile.close(); - QStringList modifiedList = getFileList(fileList); + std::optional modifiedList = getFileList(fileList); + + if (!modifiedList) + return; + QTemporaryFile tempFile(projectPath.toString() + "/XXXXXXX.create.modifiedresource.qrc"); if (!tempFile.open()) @@ -459,7 +466,7 @@ void GenerateResource::generateMenuEntry(QObject *parent) tempFile.write(firstLine.trimmed()); writer.writeStartElement("qresource"); - for (QString file : modifiedList) + for (const QString &file : modifiedList.value()) writer.writeTextElement("file", file.trimmed()); writer.writeEndElement(); @@ -486,4 +493,3 @@ void GenerateResource::generateMenuEntry(QObject *parent) } } // namespace QmlDesigner - diff --git a/src/plugins/qmldesigner/generateresource.h b/src/plugins/qmldesigner/generateresource.h index 029283f7ef4..cc0c0147a90 100644 --- a/src/plugins/qmldesigner/generateresource.h +++ b/src/plugins/qmldesigner/generateresource.h @@ -12,7 +12,7 @@ struct ResourceFile bool inProject; }; void generateMenuEntry(QObject *parent); - QStringList getFileList(const QList &); + std::optional getFileList(const QList &); QTableWidget* createFilesTable(const QList &); } } // namespace QmlDesigner