diff --git a/src/plugins/projectexplorer/iprojectproperties.cpp b/src/plugins/projectexplorer/iprojectproperties.cpp index ca6937b99e7..632f3846330 100644 --- a/src/plugins/projectexplorer/iprojectproperties.cpp +++ b/src/plugins/projectexplorer/iprojectproperties.cpp @@ -31,7 +31,6 @@ using namespace ProjectExplorer; - IProjectPanelFactory::IProjectPanelFactory() : m_priority(0), m_supportsFunction(&supportsAllProjects) @@ -78,7 +77,7 @@ void IProjectPanelFactory::setSupportsFunction(std::function f m_supportsFunction = function; } -PropertiesPanel *IProjectPanelFactory::createPanel(Project *project) +QWidget *IProjectPanelFactory::createWidget(Project *project) { - return m_createPanelFunction(project); + return m_createWidgetFunction(project); } diff --git a/src/plugins/projectexplorer/iprojectproperties.h b/src/plugins/projectexplorer/iprojectproperties.h index 33ed0ac0d13..880becd9053 100644 --- a/src/plugins/projectexplorer/iprojectproperties.h +++ b/src/plugins/projectexplorer/iprojectproperties.h @@ -58,7 +58,7 @@ public: // interface for users of IProjectPanelFactory bool supports(Project *project); - ProjectExplorer::PropertiesPanel *createPanel(ProjectExplorer::Project *project); + QWidget *createWidget(ProjectExplorer::Project *project); // interface for "implementations" of IProjectPanelFactory // by default all projects are supported, only set a custom supports function @@ -71,14 +71,16 @@ public: // and uses displayName() for the displayname // Note: call setDisplayName before calling this template - void setSimpleCreatePanelFunction(const QIcon &icon) + void setSimpleCreateWidgetFunction(const QIcon &icon) { - m_createPanelFunction = [icon, this](Project *project) -> PropertiesPanel * { + m_createWidgetFunction = [icon, this](Project *project) -> QWidget * { PropertiesPanel *panel = new PropertiesPanel; panel->setDisplayName(this->displayName()); panel->setWidget(new T(project)), panel->setIcon(icon); - return panel; + PanelsWidget *panelsWidget = new PanelsWidget(); + panelsWidget->addPropertiesPanel(panel); + return panelsWidget; }; } @@ -88,7 +90,7 @@ private: int m_priority; QString m_displayName; std::function m_supportsFunction; - std::function m_createPanelFunction; + std::function m_createWidgetFunction; }; class PROJECTEXPLORER_EXPORT ITargetPanelFactory : public QObject diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 846a94d6035..26c7a59cc3c 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -476,7 +476,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er QString displayName = QCoreApplication::translate("EditorSettingsPanelFactory", "Editor"); editorSettingsPanelFactory->setDisplayName(displayName); QIcon icon = QIcon(QLatin1String(":/projectexplorer/images/EditorSettings.png")); - editorSettingsPanelFactory->setSimpleCreatePanelFunction(icon); + editorSettingsPanelFactory->setSimpleCreateWidgetFunction(icon); addAutoReleasedObject(editorSettingsPanelFactory); auto codeStyleSettingsPanelFactory = new IProjectPanelFactory; @@ -484,7 +484,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er displayName = QCoreApplication::translate("CodeStyleSettingsPanelFactory", "Code Style"); codeStyleSettingsPanelFactory->setDisplayName(displayName); icon = QIcon(QLatin1String(":/projectexplorer/images/CodeStyleSettings.png")); - codeStyleSettingsPanelFactory->setSimpleCreatePanelFunction(icon); + codeStyleSettingsPanelFactory->setSimpleCreateWidgetFunction(icon); addAutoReleasedObject(codeStyleSettingsPanelFactory); auto dependenciesPanelFactory = new IProjectPanelFactory; @@ -492,7 +492,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er displayName = QCoreApplication::translate("DependenciesPanelFactory", "Dependencies"); dependenciesPanelFactory->setDisplayName(displayName); icon = QIcon(QLatin1String(":/projectexplorer/images/ProjectDependencies.png")); - dependenciesPanelFactory->setSimpleCreatePanelFunction(icon); + dependenciesPanelFactory->setSimpleCreateWidgetFunction(icon); addAutoReleasedObject(dependenciesPanelFactory); auto unconfiguredProjectPanel = new IProjectPanelFactory; @@ -502,7 +502,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er return project->targets().isEmpty() && !project->requiresTargetPanel(); }); icon = QIcon(QLatin1String(":/projectexplorer/images/unconfigured.png")); - unconfiguredProjectPanel->setSimpleCreatePanelFunction(icon); + unconfiguredProjectPanel->setSimpleCreateWidgetFunction(icon); addAutoReleasedObject(unconfiguredProjectPanel); addAutoReleasedObject(new ProcessStepFactory); diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp index 7e0f92de19e..6ef504c9d2b 100644 --- a/src/plugins/projectexplorer/projectwindow.cpp +++ b/src/plugins/projectexplorer/projectwindow.cpp @@ -243,12 +243,10 @@ void ProjectWindow::showProperties(int index, int subIndex) if (fac) { removeCurrentWidget(); - PropertiesPanel *panel = fac->createPanel(project); - Q_ASSERT(panel); + QWidget *widget = fac->createWidget(project); + Q_ASSERT(widget); - PanelsWidget *panelsWidget = new PanelsWidget(m_centralWidget); - panelsWidget->addPropertiesPanel(panel); - m_currentWidget = panelsWidget; + m_currentWidget = widget; m_centralWidget->addWidget(m_currentWidget); m_centralWidget->setCurrentWidget(m_currentWidget);