diff options
Diffstat (limited to 'application/widgets')
-rw-r--r-- | application/widgets/PageContainer.cpp | 12 | ||||
-rw-r--r-- | application/widgets/PageContainer.h | 5 |
2 files changed, 15 insertions, 2 deletions
diff --git a/application/widgets/PageContainer.cpp b/application/widgets/PageContainer.cpp index 679039a7..0fe4ea25 100644 --- a/application/widgets/PageContainer.cpp +++ b/application/widgets/PageContainer.cpp @@ -68,6 +68,7 @@ PageContainer::PageContainer(BasePageProviderPtr pageProvider, QString defaultId { page->stackIndex = m_pageStack->addWidget(dynamic_cast<QWidget *>(page)); page->listIndex = counter; + page->setParentContainer(this); counter++; if (firstIndex == -1) { @@ -87,8 +88,13 @@ PageContainer::PageContainer(BasePageProviderPtr pageProvider, QString defaultId this, SLOT(currentChanged(QModelIndex))); m_pageStack->setStackingMode(QStackedLayout::StackOne); m_pageList->setFocus(); + selectPage(defaultId); +} + +bool PageContainer::selectPage(QString pageId) +{ // now find what we want to have selected... - auto page = m_model->findPageEntryById(defaultId); + auto page = m_model->findPageEntryById(pageId); QModelIndex index; if (page) { @@ -99,7 +105,11 @@ PageContainer::PageContainer(BasePageProviderPtr pageProvider, QString defaultId index = m_proxyModel->index(0, 0); } if (index.isValid()) + { m_pageList->setCurrentIndex(index); + return true; + } + return false; } void PageContainer::createUI() diff --git a/application/widgets/PageContainer.h b/application/widgets/PageContainer.h index 3027af36..381e84e5 100644 --- a/application/widgets/PageContainer.h +++ b/application/widgets/PageContainer.h @@ -19,6 +19,7 @@ #include <QModelIndex> #include "pages/BasePageProvider.h" +#include "pages/BasePageContainer.h" class QLayout; class IconLabel; @@ -30,7 +31,7 @@ class QLineEdit; class QStackedLayout; class QGridLayout; -class PageContainer : public QWidget +class PageContainer : public QWidget, public BasePageContainer { Q_OBJECT public: @@ -42,6 +43,8 @@ public: void addButtons(QLayout * buttons); bool requestClose(QCloseEvent *event); + virtual bool selectPage(QString pageId) override; + private: void createUI(); private |