Implement auto loading of recent opened file

This commit is contained in:
2025-12-20 16:09:21 +01:00
parent cf38d15e60
commit 2ff9d533c3
5 changed files with 23 additions and 7 deletions
+3 -1
View File
@@ -20,6 +20,7 @@ PreferencesDialog::PreferencesDialog(const EditorSettings &settings, QWidget *pa
improveButtonBox(m_ui->buttonBox);
m_ui->checkBoxShowRecentFiles->setChecked(settings.showRecentFiles());
m_ui->checkBoxAutoLoadLastFile->setChecked(settings.autoLoadLastFile());
m_ui->checkBoxHideWebsiteLogo->setChecked(settings.hideWebsiteImage());
}
@@ -28,5 +29,6 @@ PreferencesDialog::~PreferencesDialog() = default;
void PreferencesDialog::save(EditorSettings &settings)
{
settings.setShowRecentFiles(m_ui->checkBoxShowRecentFiles->isChecked());
settings.setHideWebsiteImage(m_ui->checkBoxHideWebsiteLogo->isChecked());
settings.setAutoLoadLastFile(m_ui->checkBoxAutoLoadLastFile->isChecked());
settings.setShowRecentFiles(m_ui->checkBoxShowRecentFiles->isChecked());
}
+1 -1
View File
@@ -34,7 +34,7 @@
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox">
<widget class="QCheckBox" name="checkBoxAutoLoadLastFile">
<property name="text">
<string>&amp;Load last openend file on startup</string>
</property>
+10
View File
@@ -116,6 +116,16 @@ void EditorSettings::setShowRecentFiles(bool showRecentFiles)
setValue("showRecentFiles", showRecentFiles);
}
bool EditorSettings::autoLoadLastFile() const
{
return value("autoLoadLastFile", false).toBool();
}
void EditorSettings::setAutoLoadLastFile(bool autoLoadLastFile)
{
setValue("autoLoadLastFile", autoLoadLastFile);
}
bool EditorSettings::hideWebsiteImage() const
{
return value("hideWebsiteImage", false).toBool();
+3
View File
@@ -42,6 +42,9 @@ public:
bool showRecentFiles() const;
void setShowRecentFiles(bool showRecentFiles);
bool autoLoadLastFile() const;
void setAutoLoadLastFile(bool autoLoadLastFile);
bool hideWebsiteImage() const;
void setHideWebsiteImage(bool hideWebsiteImage);
};
+6 -5
View File
@@ -52,7 +52,6 @@ MainWindow::MainWindow(const QString &filePath, EditorSettings &settings, QWidge
QMainWindow{parent},
m_ui{std::make_unique<Ui::MainWindow>()},
m_settings{settings},
m_filePath{filePath},
m_projectTreeModel{std::make_unique<ProjectTreeModel>(m_project, this)}
{
m_ui->setupUi(this);
@@ -164,10 +163,12 @@ MainWindow::MainWindow(const QString &filePath, EditorSettings &settings, QWidge
connect(m_projectTreeModel.get(), &QAbstractTableModel::dataChanged,
this, &MainWindow::changed);
updateTitle();
if (!m_filePath.isEmpty())
loadFile(m_filePath);
if (!filePath.isEmpty())
loadFile(filePath);
else if (const auto &recentFiles = m_settings.recentFiles(); m_settings.autoLoadLastFile() && !recentFiles.isEmpty())
loadFile(recentFiles.front());
else
updateTitle();
updateVisibilities();