Skip to content

Commit 66a32e9

Browse files
committed
Set editor as read-only if file is not writable
Closes #202
1 parent d5d016b commit 66a32e9

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

src/NotepadNext/DockedEditor.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,16 @@ void DockedEditor::addEditor(ScintillaNext *editor)
175175
}
176176

177177
// Set the icon
178-
dockWidget->tabWidget()->setIcon(QIcon(":/icons/saved.png"));
179-
connect(editor, &ScintillaNext::savePointChanged, dockWidget, [=](bool dirty) {
180-
const QString iconPath = dirty ? ":/icons/unsaved.png" : ":/icons/saved.png";
181-
dockWidget->tabWidget()->setIcon(QIcon(iconPath));
182-
});
178+
if (editor->readOnly()) {
179+
dockWidget->tabWidget()->setIcon(QIcon(":/icons/readonly.png"));
180+
}
181+
else {
182+
dockWidget->tabWidget()->setIcon(QIcon(":/icons/saved.png"));
183+
connect(editor, &ScintillaNext::savePointChanged, dockWidget, [=](bool dirty) {
184+
const QString iconPath = dirty ? ":/icons/unsaved.png" : ":/icons/saved.png";
185+
dockWidget->tabWidget()->setIcon(QIcon(iconPath));
186+
});
187+
}
183188

184189
connect(editor, &ScintillaNext::closed, dockWidget, &ads::CDockWidget::closeDockWidget);
185190
connect(editor, &ScintillaNext::renamed, this, [=]() { editorRenamed(editor); });

src/NotepadNext/ScintillaNext.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,11 @@ bool ScintillaNext::readFromDisk(QFile &file)
463463
return false;
464464
}
465465

466+
if (!QFileInfo(file).isWritable()) {
467+
qInfo("Setting file as read-only");
468+
setReadOnly(true);
469+
}
470+
466471
return true;
467472
}
468473

0 commit comments

Comments
 (0)