From 703a3153ed3395990d5e3cdadaafd26cf27658fd Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 17 Jun 2014 16:29:15 +0200 Subject: [PATCH] QmlDesigner.TabViewContextMenu: Remove direct dependencies The code for creating new files and addFileToVersionControl can be moved to the DocumentManager. Change-Id: I222a32f245da24d7308289a9bb6d30574da55387 Reviewed-by: Marco Bubke --- .../componentcore/tabviewdesigneraction.cpp | 46 +++---------------- .../componentcore/tabviewdesigneraction.h | 3 -- src/plugins/qmldesigner/documentmanager.cpp | 34 ++++++++++++++ src/plugins/qmldesigner/documentmanager.h | 3 ++ 4 files changed, 43 insertions(+), 43 deletions(-) diff --git a/src/plugins/qmldesigner/components/componentcore/tabviewdesigneraction.cpp b/src/plugins/qmldesigner/components/componentcore/tabviewdesigneraction.cpp index fa589770fae..383842a52d8 100644 --- a/src/plugins/qmldesigner/components/componentcore/tabviewdesigneraction.cpp +++ b/src/plugins/qmldesigner/components/componentcore/tabviewdesigneraction.cpp @@ -28,24 +28,19 @@ ****************************************************************************/ #include "tabviewdesigneraction.h" +#include "addtabtotabviewdialog.h" #include +#include #include #include -#include - -#include -#include -#include -#include #include +#include #include #include #include -#include "addtabtotabviewdialog.h" - - +#include namespace QmlDesigner { @@ -102,35 +97,6 @@ bool TabViewDesignerAction::isEnabled(const SelectionContext &selectionContext) return isVisible(selectionContext); } -bool TabViewDesignerAction::createFile(const QString &filePath) -{ - Utils::TextFileFormat textFileFormat; - textFileFormat.codec = Core::EditorManager::defaultTextCodec(); - QString errorMessage; - - const QString componentString("import QtQuick 2.1\nimport QtQuick.Controls 1.0\n\nItem {\n\n}"); - - return textFileFormat.writeFile(filePath, componentString, &errorMessage); - -} - -void TabViewDesignerAction::addNewFileToVersionControl(const QString &directoryPath, const QString &newFilePath) -{ - Core::IVersionControl *versionControl = Core::VcsManager::findVersionControlForDirectory(directoryPath); - if (versionControl && versionControl->supportsOperation(Core::IVersionControl::AddOperation)) { - const QMessageBox::StandardButton button = - QMessageBox::question(Core::ICore::mainWindow(), - Core::VcsManager::msgAddToVcsTitle(), - Core::VcsManager::msgPromptToAddToVcs(QStringList(newFilePath), versionControl), - QMessageBox::Yes | QMessageBox::No); - if (button == QMessageBox::Yes && !versionControl->vcsAdd(newFilePath)) { - QMessageBox::warning(Core::ICore::mainWindow(), - Core::VcsManager::msgAddToVcsFailedTitle(), - Core::VcsManager::msgToAddToVcsFailed(QStringList(newFilePath), versionControl)); - } - } -} - static ModelNode findTabViewModelNode(const ModelNode ¤tModelNode) { if (currentModelNode.metaInfo().isSubclassOf("QtQuick.Controls.TabView", -1, -1)) @@ -150,10 +116,10 @@ void TabViewDesignerAction::addNewTab() if (QFileInfo(newFilePath).exists()) { QMessageBox::warning(Core::ICore::mainWindow(), tr("Naming Error"), tr("Component already exists.")); } else { - bool fileCreated = createFile(newFilePath); + bool fileCreated = DocumentManager::createFile(newFilePath, QStringLiteral("import QtQuick 2.1\nimport QtQuick.Controls 1.0\n\nItem {\n\n}")); if (fileCreated) { - addNewFileToVersionControl(directoryPath, newFilePath); + DocumentManager::addFileToVersionControl(directoryPath, newFilePath); ModelNode tabViewModelNode = findTabViewModelNode(selectionContext().currentSingleSelectedNode()); diff --git a/src/plugins/qmldesigner/components/componentcore/tabviewdesigneraction.h b/src/plugins/qmldesigner/components/componentcore/tabviewdesigneraction.h index 404a13719af..d826490d34e 100644 --- a/src/plugins/qmldesigner/components/componentcore/tabviewdesigneraction.h +++ b/src/plugins/qmldesigner/components/componentcore/tabviewdesigneraction.h @@ -49,9 +49,6 @@ protected: bool isVisible(const SelectionContext &selectionContext) const; bool isEnabled(const SelectionContext &selectionContext) const; - bool createFile(const QString &filePath); - void addNewFileToVersionControl(const QString &directoryPath, const QString &newFileName); - private slots: void addNewTab(); }; diff --git a/src/plugins/qmldesigner/documentmanager.cpp b/src/plugins/qmldesigner/documentmanager.cpp index e930ad681d9..88ab5a45566 100644 --- a/src/plugins/qmldesigner/documentmanager.cpp +++ b/src/plugins/qmldesigner/documentmanager.cpp @@ -37,6 +37,14 @@ #include #include +#include +#include +#include +#include +#include + +#include + namespace QmlDesigner { static inline DesignDocument* currentDesignDocument() @@ -262,5 +270,31 @@ void DocumentManager::goIntoComponent(const ModelNode &modelNode) } } +bool DocumentManager::createFile(const QString &filePath, const QString &contents) +{ + Utils::TextFileFormat textFileFormat; + textFileFormat.codec = Core::EditorManager::defaultTextCodec(); + QString errorMessage; + + return textFileFormat.writeFile(filePath, contents, &errorMessage); +} + +void DocumentManager::addFileToVersionControl(const QString &directoryPath, const QString &newFilePath) +{ + Core::IVersionControl *versionControl = Core::VcsManager::findVersionControlForDirectory(directoryPath); + if (versionControl && versionControl->supportsOperation(Core::IVersionControl::AddOperation)) { + const QMessageBox::StandardButton button = + QMessageBox::question(Core::ICore::mainWindow(), + Core::VcsManager::msgAddToVcsTitle(), + Core::VcsManager::msgPromptToAddToVcs(QStringList(newFilePath), versionControl), + QMessageBox::Yes | QMessageBox::No); + if (button == QMessageBox::Yes && !versionControl->vcsAdd(newFilePath)) { + QMessageBox::warning(Core::ICore::mainWindow(), + Core::VcsManager::msgAddToVcsFailedTitle(), + Core::VcsManager::msgToAddToVcsFailed(QStringList(newFilePath), versionControl)); + } + } +} + } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/documentmanager.h b/src/plugins/qmldesigner/documentmanager.h index f534d0ae8dd..17f1550d2a4 100644 --- a/src/plugins/qmldesigner/documentmanager.h +++ b/src/plugins/qmldesigner/documentmanager.h @@ -55,6 +55,9 @@ public: static void goIntoComponent(const ModelNode &modelNode); + static bool createFile(const QString &filePath, const QString &contents); + static void addFileToVersionControl(const QString &directoryPath, const QString &newFilePath); + private: QHash > m_designDocumentHash; QPointer m_currentDesignDocument;