From ae26f834808c54265eadfc1cb1ec09f9c344a5a8 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 19 Sep 2014 15:37:40 +0200 Subject: [PATCH] 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 --- examples/designer/containerextension/multipagewidget.cpp | 10 +++++++++- examples/designer/containerextension/multipagewidget.h | 3 +++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/examples/designer/containerextension/multipagewidget.cpp b/examples/designer/containerextension/multipagewidget.cpp index 8130bd2..2eed247 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(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 a05e3ba..6903b6f 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); -- 2.7.4