forked from qt-creator/qt-creator
ProjectExplorer: Start dissolving PanelsWidget
Plan is to dissolve PanelsWidget completely, and replace it with more directly created widgets to reduce some widget-in-widget layering. Change-Id: I72ffce7544ed761a97527d8ead902f21a3a88538 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#include "buildconfiguration.h"
|
||||
#include "buildinfo.h"
|
||||
#include "buildmanager.h"
|
||||
#include "panelswidget.h"
|
||||
#include "project.h"
|
||||
#include "projectconfigurationmodel.h"
|
||||
#include "projectexplorertr.h"
|
||||
@@ -355,7 +356,9 @@ void BuildSettingsWidget::deleteConfiguration(BuildConfiguration *deleteConfigur
|
||||
|
||||
QWidget *createBuildSettingsWidget(Target *target)
|
||||
{
|
||||
return new BuildSettingsWidget(target);
|
||||
auto panel = new PanelsWidget(true);
|
||||
panel->addWidget(new BuildSettingsWidget(target));
|
||||
return panel;
|
||||
}
|
||||
|
||||
} // ProjectExplorer::Internal
|
||||
|
@@ -56,19 +56,6 @@ PanelsWidget::PanelsWidget(bool addStretch)
|
||||
//layout->addWidget(new FindToolBarPlaceHolder(this));
|
||||
}
|
||||
|
||||
PanelsWidget::PanelsWidget(QWidget *widget, bool addStretch)
|
||||
: PanelsWidget(addStretch)
|
||||
{
|
||||
addWidget(widget);
|
||||
}
|
||||
|
||||
PanelsWidget::PanelsWidget(ProjectSettingsWidget *widget)
|
||||
: PanelsWidget(!widget->expanding())
|
||||
{
|
||||
addGlobalSettingsProperties(widget);
|
||||
addWidget(widget);
|
||||
}
|
||||
|
||||
PanelsWidget::~PanelsWidget() = default;
|
||||
|
||||
void PanelsWidget::addWidget(QWidget *widget)
|
||||
|
@@ -14,18 +14,15 @@ namespace ProjectExplorer::Internal {
|
||||
class PanelsWidget final : public QWidget
|
||||
{
|
||||
public:
|
||||
PanelsWidget(QWidget *widget, bool addStretch = true);
|
||||
PanelsWidget(ProjectSettingsWidget *widget);
|
||||
explicit PanelsWidget(bool addStretch);
|
||||
~PanelsWidget() final;
|
||||
|
||||
static int constexpr PanelVMargin = 14;
|
||||
|
||||
private:
|
||||
explicit PanelsWidget(bool addStretch);
|
||||
|
||||
void addGlobalSettingsProperties(ProjectSettingsWidget *widget);
|
||||
void addWidget(QWidget *widget);
|
||||
|
||||
private:
|
||||
QVBoxLayout *m_layout;
|
||||
QWidget *m_root;
|
||||
};
|
||||
|
@@ -330,7 +330,7 @@ private:
|
||||
const QPointer<Project> m_project;
|
||||
bool m_rebuildScheduled = false;
|
||||
|
||||
mutable QPointer<PanelsWidget> m_targetSetupPage;
|
||||
mutable QPointer<QWidget> m_targetSetupPage;
|
||||
QObject m_guard;
|
||||
};
|
||||
|
||||
@@ -515,8 +515,11 @@ ProjectPanels MiscSettingsPanelItem::panelWidgets() const
|
||||
{
|
||||
if (!m_widget) {
|
||||
ProjectSettingsWidget *inner = m_factory->createWidget(m_project);
|
||||
m_widget = new PanelsWidget(inner);
|
||||
m_widget->setFocusProxy(inner);
|
||||
auto panel = new PanelsWidget(true);
|
||||
panel->addGlobalSettingsProperties(inner);
|
||||
panel->addWidget(inner);
|
||||
panel->setFocusProxy(inner);
|
||||
m_widget = panel;
|
||||
}
|
||||
ProjectPanel panel;
|
||||
panel.displayName = m_factory->displayName();
|
||||
@@ -885,9 +888,9 @@ public:
|
||||
ProjectPanels panelWidgets() const final
|
||||
{
|
||||
if (!m_buildSettingsWidget)
|
||||
m_buildSettingsWidget = new PanelsWidget(createBuildSettingsWidget(target()));
|
||||
m_buildSettingsWidget = createBuildSettingsWidget(target());
|
||||
if (!m_runSettingsWidget)
|
||||
m_runSettingsWidget = new PanelsWidget(createRunSettingsWidget(target()));
|
||||
m_runSettingsWidget = createRunSettingsWidget(target());
|
||||
|
||||
return {
|
||||
ProjectPanel(Tr::tr("Build Settings"), m_buildSettingsWidget),
|
||||
@@ -1097,8 +1100,10 @@ ProjectPanels TargetGroupItem::panelWidgets() const
|
||||
{
|
||||
if (!m_targetSetupPage) {
|
||||
auto inner = new TargetSetupPageWrapper(m_project);
|
||||
m_targetSetupPage = new PanelsWidget(inner, false);
|
||||
m_targetSetupPage->setFocusProxy(inner);
|
||||
auto panel = new PanelsWidget(false);
|
||||
panel->addWidget(inner);
|
||||
panel->setFocusProxy(inner);
|
||||
m_targetSetupPage = panel;
|
||||
}
|
||||
|
||||
ProjectPanel panel;
|
||||
|
@@ -7,6 +7,7 @@
|
||||
#include "buildmanager.h"
|
||||
#include "buildstepspage.h"
|
||||
#include "deployconfiguration.h"
|
||||
#include "panelswidget.h"
|
||||
#include "project.h"
|
||||
#include "projectconfigurationmodel.h"
|
||||
#include "projectexplorerconstants.h"
|
||||
@@ -790,7 +791,9 @@ void RunSettingsWidget::updateEnabledState()
|
||||
|
||||
QWidget *createRunSettingsWidget(Target *target)
|
||||
{
|
||||
return new RunSettingsWidget(target);
|
||||
auto panel = new PanelsWidget(true);
|
||||
panel->addWidget(new RunSettingsWidget(target));
|
||||
return panel;
|
||||
}
|
||||
|
||||
} // ProjectExplorer::Internal
|
||||
|
Reference in New Issue
Block a user