diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp index b3fb9fac959..7b4d9c40494 100644 --- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp @@ -74,6 +74,8 @@ private: BuildSettingsWidget::BuildSettingsWidget(Target *target) : m_target(target) { + setWindowTitle(Tr::tr("Build Settings")); + auto vbox = new QVBoxLayout(this); vbox->setContentsMargins(0, 0, 0, 0); diff --git a/src/plugins/projectexplorer/panelswidget.cpp b/src/plugins/projectexplorer/panelswidget.cpp index e0d522b3452..c455181be33 100644 --- a/src/plugins/projectexplorer/panelswidget.cpp +++ b/src/plugins/projectexplorer/panelswidget.cpp @@ -60,6 +60,7 @@ PanelsWidget::~PanelsWidget() = default; void PanelsWidget::addWidget(QWidget *widget) { + setWindowTitle(widget->windowTitle()); widget->setContentsMargins(0, CONTENTS_MARGIN, 0, BELOW_CONTENTS_MARGIN); widget->setParent(m_root); m_layout->addWidget(widget); diff --git a/src/plugins/projectexplorer/projectcommentssettings.cpp b/src/plugins/projectexplorer/projectcommentssettings.cpp index 00175fbb6cc..d1b6b1ffaa1 100644 --- a/src/plugins/projectexplorer/projectcommentssettings.cpp +++ b/src/plugins/projectexplorer/projectcommentssettings.cpp @@ -99,6 +99,7 @@ public: : m_settings(project) { setGlobalSettingsId(TextEditor::Constants::TEXT_EDITOR_COMMENTS_SETTINGS); + const auto layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); layout->addWidget(&m_widget); diff --git a/src/plugins/projectexplorer/projectpanelfactory.h b/src/plugins/projectexplorer/projectpanelfactory.h index d09f1dd0c1b..7695828a9e9 100644 --- a/src/plugins/projectexplorer/projectpanelfactory.h +++ b/src/plugins/projectexplorer/projectpanelfactory.h @@ -32,8 +32,9 @@ public: // interface for users of ProjectPanelFactory bool supports(Project *project); - - using WidgetCreator = std::function; + // Widgets created by this function should use setWindowTitle() to specify + // their tab title. + ProjectSettingsWidget *createWidget(Project *project) const; // interface for "implementations" of ProjectPanelFactory // by default all projects are supported, only set a custom supports function @@ -45,8 +46,8 @@ public: Utils::TreeItem *createPanelItem(Project *project); + using WidgetCreator = std::function; void setCreateWidgetFunction(const WidgetCreator &createWidgetFunction); - ProjectSettingsWidget *createWidget(Project *project) const; private: Utils::Id m_id; diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp index 13d964a007e..0f6132528ce 100644 --- a/src/plugins/projectexplorer/projectwindow.cpp +++ b/src/plugins/projectexplorer/projectwindow.cpp @@ -219,19 +219,7 @@ void BuildSystemOutputWindow::updateFilter() 0 /* after context */); } -class ProjectPanel -{ -public: - ProjectPanel() = default; - ProjectPanel(const QString &displayName, QWidget *widget) - : displayName(displayName), widget(widget) - {} - - QString displayName; - QWidget *widget = nullptr; -}; - -using ProjectPanels = QList; +using ProjectPanels = QList; // Overall structure: // @@ -519,12 +507,10 @@ ProjectPanels MiscSettingsPanelItem::panelWidgets() const panel->addGlobalSettingsProperties(inner); panel->addWidget(inner); panel->setFocusProxy(inner); + panel->setWindowTitle(m_factory->displayName()); m_widget = panel; } - ProjectPanel panel; - panel.displayName = m_factory->displayName(); - panel.widget = m_widget; - return QList{panel}; + return {m_widget.get()}; } ProjectItemBase *MiscSettingsPanelItem::activeItem() @@ -756,6 +742,8 @@ private: TargetSetupPageWrapper::TargetSetupPageWrapper(Project *project) : m_project(project) { + setWindowTitle(Tr::tr("Configure Project")); + auto box = new QDialogButtonBox(this); m_configureButton = new QPushButton(this); @@ -892,10 +880,7 @@ public: if (!m_runSettingsWidget) m_runSettingsWidget = createRunSettingsWidget(target()); - return { - ProjectPanel(Tr::tr("Build Settings"), m_buildSettingsWidget), - ProjectPanel(Tr::tr("Run Settings"), m_runSettingsWidget) - }; + return { m_buildSettingsWidget.get(), m_runSettingsWidget.get() }; } void addToMenu(QMenu *menu) const final @@ -1106,11 +1091,7 @@ ProjectPanels TargetGroupItem::panelWidgets() const m_targetSetupPage = panel; } - ProjectPanel panel; - panel.displayName = Tr::tr("Configure Project"); - panel.widget = m_targetSetupPage; - - return {panel}; + return {m_targetSetupPage.get()}; } void TargetGroupItem::itemActivatedFromBelow(const ProjectItemBase *) @@ -1290,9 +1271,9 @@ public: m_tabWidget->removeTab(pos); } - for (const ProjectPanel &panel : panels) { - QTC_ASSERT(panel.widget, continue); - m_tabWidget->addTab(panel.widget, panel.displayName); + for (QWidget *panel : panels) { + QTC_ASSERT(panel, continue); + m_tabWidget->addTab(panel, panel->windowTitle()); } m_tabWidget->setCurrentIndex(oldIndex); diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.cpp b/src/plugins/projectexplorer/runsettingspropertiespage.cpp index 26ad808b320..850e2cbe979 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/runsettingspropertiespage.cpp @@ -245,6 +245,8 @@ private: RunSettingsWidget::RunSettingsWidget(Target *target) : m_target(target) { + setWindowTitle(Tr::tr("Run Settings")); + m_deployConfigurationCombo = new QComboBox(this); setWheelScrollingWithoutFocusBlocked(m_deployConfigurationCombo); m_addDeployToolButton = new QPushButton(Tr::tr("Add"), this);