From 89f2c274c0026667ccdb896b5a957ef0d2a6c703 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Thu, 14 Jan 2021 12:53:55 +0100 Subject: [PATCH] Tasklist: reload tasks when open task file again Fixes: QTCREATORBUG-25108 Change-Id: Ib1096a098ab2b06ab384b31715ca32a0fd710781 Reviewed-by: Christian Stenger --- src/plugins/tasklist/tasklistplugin.cpp | 34 ++++++++++++------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/plugins/tasklist/tasklistplugin.cpp b/src/plugins/tasklist/tasklistplugin.cpp index 46c3ba50e85..d41996dcdec 100644 --- a/src/plugins/tasklist/tasklistplugin.cpp +++ b/src/plugins/tasklist/tasklistplugin.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -165,25 +166,24 @@ static bool parseTaskFile(QString *errorString, const FilePath &name) IDocument *TaskListPlugin::openTasks(const FilePath &fileName) { - foreach (TaskFile *doc, d->m_openFiles) { - if (doc->filePath() == fileName) - return doc; - } - - auto file = new TaskFile(this); - + TaskFile *file = Utils::findOrDefault(d->m_openFiles, Utils::equal(&TaskFile::filePath, fileName)); QString errorString; - if (!file->load(&errorString, fileName)) { - QMessageBox::critical(ICore::dialogParent(), tr("File Error"), errorString); - delete file; - return nullptr; + if (file) { + file->load(&errorString, fileName); + } else { + file = new TaskFile(this); + + if (!file->load(&errorString, fileName)) { + QMessageBox::critical(ICore::dialogParent(), tr("File Error"), errorString); + delete file; + return nullptr; + } + + d->m_openFiles.append(file); + + // Register with filemanager: + DocumentManager::addDocument(file); } - - d->m_openFiles.append(file); - - // Register with filemanager: - DocumentManager::addDocument(file); - return file; }