diff --git a/.gitignore b/.gitignore index fedbc461f..e9e3b3956 100644 Binary files a/.gitignore and b/.gitignore differ diff --git a/src/platform/qt/scripting/ScriptingView.cpp b/src/platform/qt/scripting/ScriptingView.cpp index 3878b668a..d31a9c738 100644 --- a/src/platform/qt/scripting/ScriptingView.cpp +++ b/src/platform/qt/scripting/ScriptingView.cpp @@ -39,6 +39,7 @@ ScriptingView::ScriptingView(ScriptingController* controller, ConfigController* connect(m_ui.buffers->selectionModel(), &QItemSelectionModel::currentChanged, this, &ScriptingView::selectBuffer); connect(m_ui.load, &QAction::triggered, this, &ScriptingView::load); + connect(m_ui.loadMostRecent, &QAction::triggered, this, &ScriptingView::loadMostRecent); connect(m_ui.reset, &QAction::triggered, controller, &ScriptingController::reset); m_mruFiles = m_config->getMRU(ConfigController::MRU::Script); @@ -66,6 +67,10 @@ void ScriptingView::load() { } } +void ScriptingView::loadMostRecent() { + m_controller->loadFile(m_mruFiles.at(0)); +} + void ScriptingView::controllerReset() { selectBuffer(QModelIndex()); } @@ -105,7 +110,15 @@ void ScriptingView::updateMRU() { m_ui.mru->clear(); for (const auto& fname : m_mruFiles) { m_ui.mru->addAction(fname, [this, fname]() { - m_controller->loadFile(fname); + if (m_controller->loadFile(fname)) { + appendMRU(fname); + } }); } + checkEmptyMRU(); } + + +void ScriptingView::checkEmptyMRU() { + m_ui.loadMostRecent->setEnabled(!m_mruFiles.isEmpty()); +} \ No newline at end of file diff --git a/src/platform/qt/scripting/ScriptingView.h b/src/platform/qt/scripting/ScriptingView.h index 1f90a3f19..a62bd2314 100644 --- a/src/platform/qt/scripting/ScriptingView.h +++ b/src/platform/qt/scripting/ScriptingView.h @@ -22,6 +22,7 @@ public: private slots: void submitRepl(); void load(); + void loadMostRecent(); void controllerReset(); void selectBuffer(const QModelIndex& current, const QModelIndex& = QModelIndex()); @@ -31,6 +32,7 @@ private: void appendMRU(const QString&); void updateMRU(); + void checkEmptyMRU(); Ui::ScriptingView m_ui; diff --git a/src/platform/qt/scripting/ScriptingView.ui b/src/platform/qt/scripting/ScriptingView.ui index 8b97449b0..4d55a8707 100644 --- a/src/platform/qt/scripting/ScriptingView.ui +++ b/src/platform/qt/scripting/ScriptingView.ui @@ -98,6 +98,7 @@ + @@ -108,6 +109,11 @@ Load script... + + + + &Load most recent +