summaryrefslogtreecommitdiff
path: root/src/plugins/texteditor/refactoringchanges.cpp
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@digia.com>2012-10-15 11:53:22 +0200
committerDavid Schulz <david.schulz@digia.com>2013-04-08 10:16:11 +0200
commit6c12a060290ec094faea22fadfaf6aa7fb2d5db2 (patch)
tree25102dc3520f8c68c525a0e3032095c01692a2ec /src/plugins/texteditor/refactoringchanges.cpp
parentf9c31b4c6b0c748690d4f58fc39a590b8c88173c (diff)
downloadqt-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.cpp16
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);