From c5a47ed24e8489ee1c002712c17394eaebc986e4 Mon Sep 17 00:00:00 2001 From: fourtf <tf.four@gmail.com> Date: Tue, 10 Apr 2018 15:59:53 +0200 Subject: [PATCH] Open the last selected tab on restart --- src/singletons/windowmanager.cpp | 10 ++++++++++ src/widgets/notebook.cpp | 14 ++++++++++++++ src/widgets/notebook.hpp | 10 ++-------- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/singletons/windowmanager.cpp b/src/singletons/windowmanager.cpp index 1530062bc..c99fce47d 100644 --- a/src/singletons/windowmanager.cpp +++ b/src/singletons/windowmanager.cpp @@ -186,6 +186,11 @@ void WindowManager::initialize() tab->getTab()->useDefaultTitle = false; } + // selected + if (tab_obj.value("selected").toBool(false)) { + window.getNotebook().select(tab); + } + // load splits int colNr = 0; for (QJsonValue column_val : tab_obj.value("splits").toArray()) { @@ -251,6 +256,11 @@ void WindowManager::save() tab_obj.insert("title", tab->getTab()->getTitle()); } + // selected + if (window->getNotebook().getSelectedPage() == tab) { + tab_obj.insert("selected", true); + } + // splits QJsonArray columns_arr; std::vector<std::vector<widgets::Split *>> columns = tab->getColumns(); diff --git a/src/widgets/notebook.cpp b/src/widgets/notebook.cpp index 3faa0409e..086eb4a9d 100644 --- a/src/widgets/notebook.cpp +++ b/src/widgets/notebook.cpp @@ -119,6 +119,20 @@ void Notebook::removeCurrentPage() this->removePage(this->selectedPage); } +SplitContainer *Notebook::getOrAddSelectedPage() +{ + if (selectedPage == nullptr) { + this->addNewPage(true); + } + + return selectedPage; +} + +SplitContainer *Notebook::getSelectedPage() +{ + return selectedPage; +} + void Notebook::select(SplitContainer *page) { if (page == this->selectedPage) { diff --git a/src/widgets/notebook.hpp b/src/widgets/notebook.hpp index 9f0bd4f17..af1c207c6 100644 --- a/src/widgets/notebook.hpp +++ b/src/widgets/notebook.hpp @@ -30,14 +30,8 @@ public: void select(SplitContainer *page); void selectIndex(int index); - SplitContainer *getOrAddSelectedPage() - { - if (selectedPage == nullptr) { - this->addNewPage(true); - } - - return selectedPage; - } + SplitContainer *getOrAddSelectedPage(); + SplitContainer *getSelectedPage(); void performLayout(bool animate = true);