title = tr("Page %1").arg(comboBox->count() + 1);
page->setWindowTitle(title);
}
+ connect(page, &QWidget::windowTitleChanged,
+ this, &MultiPageWidget::pageWindowTitleChanged);
comboBox->insertItem(index, title);
}
}
}
+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);
void MultiPageWidget::setPageTitle(QString const &newTitle)
{
- comboBox->setItemText(currentIndex(), newTitle);
if (QWidget *currentWidget = stackWidget->currentWidget())
currentWidget->setWindowTitle(newTitle);
emit pageTitleChanged(newTitle);
void setPageTitle(QString const &newTitle);
void setCurrentIndex(int index);
+private slots:
+ void pageWindowTitleChanged();
+
signals:
void currentIndexChanged(int index);
void pageTitleChanged(const QString &title);