aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/jsonwizard
diff options
context:
space:
mode:
authorPawel Rutka <prutka13@gmail.com>2018-02-13 20:26:04 +0100
committerpawelrutka <prutka13@gmail.com>2018-02-23 15:15:22 +0000
commit4aced20a214538a50aef98d763293595d4f6983e (patch)
tree7b99dc9c2407310a36a89445ba191ab96dfb1214 /src/plugins/projectexplorer/jsonwizard
parent5ea157f0b85f3fec6c351d844cf2b35a12a80b07 (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.cpp25
-rw-r--r--src/plugins/projectexplorer/jsonwizard/jsonwizard.h3
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;