filemanager: fix regression when trying to save read-only file

When saving a read-only file, a dialog should appear with
Make Writable / Save As / Cancel should open.
Avoids relying on permission error to detect read-only files as
qfsfileengine_unix.cpp treats errno == EACCESS as a QFile::OpenError.

Change-Id: Icdffdc4617c8ef2b58d58aeedbb2b454d0da9465
Task-Number: QTCREATORBUG-5066
Reviewed-on: http://codereview.qt.nokia.com/2442
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
This commit is contained in:
Fawzi Mohamed
2011-08-01 14:58:33 +02:00
parent 914f12baea
commit 17c88cb2e7

View File

@@ -628,8 +628,7 @@ bool FileManager::saveFile(IFile *file, const QString &fileName, bool *isReadOnl
if (isReadOnly) {
QFile ofi(effName);
// Check whether the existing file is writable
if (ofi.exists() && !ofi.open(QIODevice::ReadWrite)
&& ofi.error() == QFile::PermissionsError) {
if (!ofi.open(QIODevice::ReadWrite) && ofi.open(QIODevice::ReadOnly)) {
*isReadOnly = true;
goto out;
}