Correct reading permissions on Windows.

This commit is contained in:
Roman Telezhynskyi 2021-01-30 19:34:54 +02:00
parent 228c40f975
commit d86a483524
4 changed files with 42 additions and 0 deletions

View File

@ -781,7 +781,13 @@ bool TMainWindow::FileSave()
return false; return false;
} }
#ifdef Q_OS_WIN32
qt_ntfs_permission_lookup++; // turn checking on
#endif /*Q_OS_WIN32*/
const bool isFileWritable = QFileInfo(curFile).isWritable(); const bool isFileWritable = QFileInfo(curFile).isWritable();
#ifdef Q_OS_WIN32
qt_ntfs_permission_lookup--; // turn it off again
#endif /*Q_OS_WIN32*/
if (not isFileWritable) if (not isFileWritable)
{ {
QMessageBox messageBox(this); QMessageBox messageBox(this);
@ -3277,7 +3283,13 @@ void TMainWindow::UpdateWindowTitle()
bool isFileWritable = true; bool isFileWritable = true;
if (not curFile.isEmpty()) if (not curFile.isEmpty())
{ {
#ifdef Q_OS_WIN32
qt_ntfs_permission_lookup++; // turn checking on
#endif /*Q_OS_WIN32*/
isFileWritable = QFileInfo(curFile).isWritable(); isFileWritable = QFileInfo(curFile).isWritable();
#ifdef Q_OS_WIN32
qt_ntfs_permission_lookup--; // turn it off again
#endif /*Q_OS_WIN32*/
showName = StrippedName(curFile); showName = StrippedName(curFile);
} }
else else

View File

@ -3221,7 +3221,13 @@ bool MainWindow::on_actionSave_triggered()
return false; return false;
} }
#ifdef Q_OS_WIN32
qt_ntfs_permission_lookup++; // turn checking on
#endif /*Q_OS_WIN32*/
const bool isFileWritable = QFileInfo(qApp->GetPatternPath()).isWritable(); const bool isFileWritable = QFileInfo(qApp->GetPatternPath()).isWritable();
#ifdef Q_OS_WIN32
qt_ntfs_permission_lookup--; // turn it off again
#endif /*Q_OS_WIN32*/
if (not isFileWritable) if (not isFileWritable)
{ {
QMessageBox messageBox(this); QMessageBox messageBox(this);
@ -6177,7 +6183,13 @@ void MainWindow::UpdateWindowTitle()
bool isFileWritable = true; bool isFileWritable = true;
if (not qApp->GetPatternPath().isEmpty()) if (not qApp->GetPatternPath().isEmpty())
{ {
#ifdef Q_OS_WIN32
qt_ntfs_permission_lookup++; // turn checking on
#endif /*Q_OS_WIN32*/
isFileWritable = QFileInfo(qApp->GetPatternPath()).isWritable(); isFileWritable = QFileInfo(qApp->GetPatternPath()).isWritable();
#ifdef Q_OS_WIN32
qt_ntfs_permission_lookup--; // turn it off again
#endif /*Q_OS_WIN32*/
} }
if (not patternReadOnly && isFileWritable) if (not patternReadOnly && isFileWritable)

View File

@ -360,7 +360,13 @@ bool WatermarkWindow::on_actionSave_triggered()
return false; return false;
} }
#ifdef Q_OS_WIN32
qt_ntfs_permission_lookup++; // turn checking on
#endif /*Q_OS_WIN32*/
const bool isFileWritable = QFileInfo(m_curFile).isWritable(); const bool isFileWritable = QFileInfo(m_curFile).isWritable();
#ifdef Q_OS_WIN32
qt_ntfs_permission_lookup--; // turn it off again
#endif /*Q_OS_WIN32*/
if (not isFileWritable) if (not isFileWritable)
{ {
QMessageBox messageBox(this); QMessageBox messageBox(this);
@ -490,7 +496,13 @@ void WatermarkWindow::UpdateWindowTitle()
bool isFileWritable = true; bool isFileWritable = true;
if (not m_curFile.isEmpty()) if (not m_curFile.isEmpty())
{ {
#ifdef Q_OS_WIN32
qt_ntfs_permission_lookup++; // turn checking on
#endif /*Q_OS_WIN32*/
isFileWritable = QFileInfo(m_curFile).isWritable(); isFileWritable = QFileInfo(m_curFile).isWritable();
#ifdef Q_OS_WIN32
qt_ntfs_permission_lookup--; // turn it off again
#endif /*Q_OS_WIN32*/
} }
if (isFileWritable) if (isFileWritable)

View File

@ -166,7 +166,13 @@ void VAbstractConverter::ReserveFile() const
.arg(info.absoluteDir().absolutePath(), info.baseName(), GetFormatVersionStr(), info.completeSuffix()); .arg(info.absoluteDir().absolutePath(), info.baseName(), GetFormatVersionStr(), info.completeSuffix());
if (not SafeCopy(m_convertedFileName, reserveFileName, error)) if (not SafeCopy(m_convertedFileName, reserveFileName, error))
{ {
#ifdef Q_OS_WIN32
qt_ntfs_permission_lookup++; // turn checking on
#endif /*Q_OS_WIN32*/
const bool isFileWritable = info.isWritable(); const bool isFileWritable = info.isWritable();
#ifdef Q_OS_WIN32
qt_ntfs_permission_lookup--; // turn it off again
#endif /*Q_OS_WIN32*/
if (not IsReadOnly() && isFileWritable) if (not IsReadOnly() && isFileWritable)
{ {
const QString errorMsg(tr("Error creating a reserv copy: %1.").arg(error)); const QString errorMsg(tr("Error creating a reserv copy: %1.").arg(error));