diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-09-19 15:37:40 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-09-22 11:55:21 +0200 |
commit | ae26f834808c54265eadfc1cb1ec09f9c344a5a8 (patch) | |
tree | 8f8276a62e17cdcdce07f42d80e3e22749f0b711 /examples | |
parent | d7e26cffac1c52f18be40acd354e9066aea68b9f (diff) |
Qt Designer QDesignerContainerExtension example: Fix page title.
Tie the setting of the combo title to QQWidget::windowTitleChanged().
The call to retranslateUi() happens after adding the pages; so
the titles are lost in uic-generated code.
Change-Id: Ia88dd694a7ab5fe1bd62a849feeb7768a2ba6f16
Task-number: QTBUG-24916
Reviewed-by: Jarek Kobus <jaroslaw.kobus@digia.com>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/designer/containerextension/multipagewidget.cpp | 10 | ||||
-rw-r--r-- | examples/designer/containerextension/multipagewidget.h | 3 |
2 files changed, 12 insertions, 1 deletions
diff --git a/examples/designer/containerextension/multipagewidget.cpp b/examples/designer/containerextension/multipagewidget.cpp index 8130bd2c2..2eed24740 100644 --- a/examples/designer/containerextension/multipagewidget.cpp +++ b/examples/designer/containerextension/multipagewidget.cpp @@ -99,6 +99,8 @@ void MultiPageWidget::insertPage(int index, QWidget *page) title = tr("Page %1").arg(comboBox->count() + 1); page->setWindowTitle(title); } + connect(page, &QWidget::windowTitleChanged, + this, &MultiPageWidget::pageWindowTitleChanged); comboBox->insertItem(index, title); } @@ -111,6 +113,13 @@ void MultiPageWidget::setCurrentIndex(int index) } } +void MultiPageWidget::pageWindowTitleChanged() +{ + QWidget *page = qobject_cast<QWidget *>(sender()); + const int index = stackWidget->indexOf(page); + comboBox->setItemText(index, page->windowTitle()); +} + QWidget* MultiPageWidget::widget(int index) { return stackWidget->widget(index); @@ -125,7 +134,6 @@ QString MultiPageWidget::pageTitle() const void MultiPageWidget::setPageTitle(QString const &newTitle) { - comboBox->setItemText(currentIndex(), newTitle); if (QWidget *currentWidget = stackWidget->currentWidget()) currentWidget->setWindowTitle(newTitle); emit pageTitleChanged(newTitle); diff --git a/examples/designer/containerextension/multipagewidget.h b/examples/designer/containerextension/multipagewidget.h index a05e3ba51..6903b6fea 100644 --- a/examples/designer/containerextension/multipagewidget.h +++ b/examples/designer/containerextension/multipagewidget.h @@ -73,6 +73,9 @@ public slots: void setPageTitle(QString const &newTitle); void setCurrentIndex(int index); +private slots: + void pageWindowTitleChanged(); + signals: void currentIndexChanged(int index); void pageTitleChanged(const QString &title); |