diff options
author | Pawel Rutka <prutka13@gmail.com> | 2018-02-13 20:26:04 +0100 |
---|---|---|
committer | pawelrutka <prutka13@gmail.com> | 2018-02-23 15:15:22 +0000 |
commit | 4aced20a214538a50aef98d763293595d4f6983e (patch) | |
tree | 7b99dc9c2407310a36a89445ba191ab96dfb1214 /src/plugins/projectexplorer/jsonwizard | |
parent | 5ea157f0b85f3fec6c351d844cf2b35a12a80b07 (diff) |
Implement support for project file open after AddFile action
Change-Id: I5f5372498a34760976cea5b7d6f5f49dd04558db
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/jsonwizard')
-rw-r--r-- | src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp | 25 | ||||
-rw-r--r-- | src/plugins/projectexplorer/jsonwizard/jsonwizard.h | 3 |
2 files changed, 26 insertions, 2 deletions
diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp b/src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp index 2e509f1dd3..0686c0caee 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp +++ b/src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp @@ -30,7 +30,7 @@ #include "../project.h" #include "../projectexplorer.h" - +#include "../projectexplorerconstants.h" #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/messagemanager.h> @@ -288,6 +288,9 @@ void JsonWizard::accept() emit allDone(m_files); openFiles(m_files); + + auto node = static_cast<ProjectExplorer::Node*>(value(ProjectExplorer::Constants::PREFERRED_PROJECT_NODE).value<void*>()); + openProjectForNode(node); } void JsonWizard::reject() @@ -382,6 +385,26 @@ void JsonWizard::openFiles(const JsonWizard::GeneratorFiles &files) } } +void JsonWizard::openProjectForNode(Node *node) +{ + using namespace Utils; + + QTC_ASSERT(node, return); // may happend when no project is opened + + ProjectNode *projNode = node->asProjectNode() ? node->asProjectNode() : node->parentProjectNode(); + + QTC_ASSERT(projNode, return); + + Utils::optional<FileName> projFilePath = projNode->visibleAfterAddFileAction(); + + if (projFilePath && !Core::EditorManager::openEditor(projFilePath.value().toString())) { + auto errorMessage = QCoreApplication::translate("ProjectExplorer::JsonWizard", + "Failed to open an editor for \"%1\".") + .arg(QDir::toNativeSeparators(projFilePath.value().toString())); + QMessageBox::warning(nullptr, tr("Cannot Open Project"), errorMessage); + } +} + QString JsonWizard::OptionDefinition::value(Utils::MacroExpander &expander) const { if (JsonWizard::boolFromVariant(m_evaluate, &expander)) diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizard.h b/src/plugins/projectexplorer/jsonwizard/jsonwizard.h index d571f9cab7..89da484514 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonwizard.h +++ b/src/plugins/projectexplorer/jsonwizard/jsonwizard.h @@ -26,6 +26,7 @@ #pragma once #include "../projectexplorer_export.h" +#include <projectexplorer/projectnodes.h> #include <coreplugin/generatedfile.h> @@ -108,7 +109,6 @@ signals: void filesReady(const JsonWizard::GeneratorFiles &files); // emitted just after files are in final state on disk. void filesPolished(const JsonWizard::GeneratorFiles &files); // emitted just after additional files (e.g. settings) not directly related to the project were created. void allDone(const JsonWizard::GeneratorFiles &files); // emitted just after the wizard is done with the files. They are ready to be opened. - public slots: void accept() override; void reject() override; @@ -120,6 +120,7 @@ private: QString stringify(const QVariant &v) const override; QString evaluate(const QVariant &v) const override ; void openFiles(const GeneratorFiles &files); + void openProjectForNode(ProjectExplorer::Node *node); QList<JsonWizardGenerator *> m_generators; |