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> 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);