summaryrefslogtreecommitdiff
path: root/src/plugins/qmldesigner/documentmanager.cpp
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@digia.com>2014-06-17 16:29:15 +0200
committerThomas Hartmann <Thomas.Hartmann@digia.com>2014-06-18 14:17:19 +0200
commit703a3153ed3395990d5e3cdadaafd26cf27658fd (patch)
treeb9566586980c9aab47bbeab254bb336c9e909553 /src/plugins/qmldesigner/documentmanager.cpp
parent854a0f25a10d0c43dbbbda1eab1d0a834016fa92 (diff)
downloadqt-creator-703a3153ed3395990d5e3cdadaafd26cf27658fd.tar.gz
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 <marco.bubke@digia.com>
Diffstat (limited to 'src/plugins/qmldesigner/documentmanager.cpp')
-rw-r--r--src/plugins/qmldesigner/documentmanager.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/documentmanager.cpp b/src/plugins/qmldesigner/documentmanager.cpp
index e930ad681d..88ab5a4556 100644
--- a/src/plugins/qmldesigner/documentmanager.cpp
+++ b/src/plugins/qmldesigner/documentmanager.cpp
@@ -37,6 +37,14 @@
#include <bindingproperty.h>
#include <variantproperty.h>
+#include <utils/textfileformat.h>
+#include <coreplugin/editormanager/editormanager.h>
+#include <coreplugin/iversioncontrol.h>
+#include <coreplugin/vcsmanager.h>
+#include <coreplugin/icore.h>
+
+#include <QMessageBox>
+
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