From fb3cc11494ce30e24f9d041d54182d051e3058c1 Mon Sep 17 00:00:00 2001 From: dt <qtc-committer@nokia.com> Date: Tue, 18 May 2010 13:48:57 +0200 Subject: [PATCH] Make .pro files writeable if needed. Task-Nr: QTCREATORBUG-765 --- src/plugins/qt4projectmanager/qt4nodes.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp index 9db7a03b4a4..62ff1b721bc 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.cpp +++ b/src/plugins/qt4projectmanager/qt4nodes.cpp @@ -690,6 +690,23 @@ void Qt4PriFileNode::changeFiles(const FileType fileType, if (!saveModifiedEditors()) return; + // Ensure that the file is not read only + QFileInfo fi(m_projectFilePath); + if (!fi.isWritable()) { + // Try via vcs manager + Core::VCSManager *vcsManager = Core::ICore::instance()->vcsManager(); + Core::IVersionControl *versionControl = vcsManager->findVersionControlForDirectory(fi.absolutePath()); + if (!versionControl || versionControl->vcsOpen(m_projectFilePath)) { + bool makeWritable = QFile::setPermissions(m_projectFilePath, fi.permissions() | QFile::WriteUser); + if (!makeWritable) { + QMessageBox::warning(Core::ICore::instance()->mainWindow(), + tr("Failed!"), + tr("Could not write project file %1.").arg(m_projectFilePath)); + return; + } + } + } + QStringList lines; ProFile *includeFile; { -- GitLab