diff options
author | Thomas Hartmann <Thomas.Hartmann@digia.com> | 2014-06-17 16:29:15 +0200 |
---|---|---|
committer | Thomas Hartmann <Thomas.Hartmann@digia.com> | 2014-06-18 14:17:19 +0200 |
commit | 703a3153ed3395990d5e3cdadaafd26cf27658fd (patch) | |
tree | b9566586980c9aab47bbeab254bb336c9e909553 /src/plugins/qmldesigner/documentmanager.cpp | |
parent | 854a0f25a10d0c43dbbbda1eab1d0a834016fa92 (diff) | |
download | qt-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.cpp | 34 |
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 |