diff options
author | David Schulz <david.schulz@digia.com> | 2012-10-15 11:53:22 +0200 |
---|---|---|
committer | David Schulz <david.schulz@digia.com> | 2013-04-08 10:16:11 +0200 |
commit | 6c12a060290ec094faea22fadfaf6aa7fb2d5db2 (patch) | |
tree | 25102dc3520f8c68c525a0e3032095c01692a2ec /src/plugins/texteditor/refactoringchanges.cpp | |
parent | f9c31b4c6b0c748690d4f58fc39a590b8c88173c (diff) | |
download | qt-creator-6c12a060290ec094faea22fadfaf6aa7fb2d5db2.tar.gz |
Editor: Added Dialog for read only files.
Task-number: QTCREATORBUG-2851
Change-Id: Ic47a5a1833650e31b4e27d0a01259d6b398a6415
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Diffstat (limited to 'src/plugins/texteditor/refactoringchanges.cpp')
-rw-r--r-- | src/plugins/texteditor/refactoringchanges.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/plugins/texteditor/refactoringchanges.cpp b/src/plugins/texteditor/refactoringchanges.cpp index a79b31d660..f5638ae600 100644 --- a/src/plugins/texteditor/refactoringchanges.cpp +++ b/src/plugins/texteditor/refactoringchanges.cpp @@ -30,13 +30,18 @@ #include "refactoringchanges.h" #include "basetexteditor.h" +#include <coreplugin/icore.h> +#include <coreplugin/dialogs/readonlyfilesdialog.h> #include <utils/qtcassert.h> +#include <utils/fileutils.h> #include <QFile> +#include <QFileInfo> #include <QTextBlock> #include <QTextCursor> #include <QTextDocument> #include <QDebug> +#include <QApplication> using namespace TextEditor; @@ -319,6 +324,17 @@ void RefactoringFile::setOpenEditor(bool activate, int pos) void RefactoringFile::apply() { + // test file permissions + if (!QFileInfo(fileName()).isWritable()) { + const QString &path = fileName(); + Core::Internal::ReadOnlyFilesDialog roDialog(path, Core::ICore::mainWindow()); + const QString &failDetailText = QApplication::translate("RefactoringFile::apply", + "Refactoring cannot be applied."); + roDialog.setShowFailWarning(true, failDetailText); + if (roDialog.exec() == Core::Internal::ReadOnlyFilesDialog::RO_Cancel) + return; + } + // open / activate / goto position if (m_openEditor && !m_fileName.isEmpty()) { unsigned line = unsigned(-1), column = unsigned(-1); |