diff --git a/examples/designer/containerextension/multipagewidget.cpp b/examples/designer/containerextension/multipagewidget.cpp index 8130bd2c25393182a139852645620425c4d14aac..2eed247405859761e8e24baa7eed7a013ded74c8 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 a05e3ba51f038300d3396aa05cc1142808f07f40..6903b6fea8b76e7a6085689223d5f31f7d81bb25 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);