summaryrefslogtreecommitdiffstats
path: root/application/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'application/widgets')
-rw-r--r--application/widgets/PageContainer.cpp12
-rw-r--r--application/widgets/PageContainer.h5
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