diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index e55af0a397e..751f2693b8c 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -78,6 +78,8 @@ public: bool m_enabled = true; bool m_readOnly = true; bool m_autoApply = true; + int m_spanX = 1; + int m_spanY = 1; BaseAspect::ConfigWidgetCreator m_configWidgetCreator; QList> m_subWidgets; }; @@ -224,9 +226,12 @@ void BaseAspect::addLabeledItem(LayoutBuilder &builder, QWidget *widget) setupLabel(); if (QLabel *l = label()) { l->setBuddy(widget); - builder.addItems({l, widget}); + builder.addItem(l); + LayoutBuilder::LayoutItem item(widget); + item.span = std::max(d->m_spanX - 1, 1); + builder.addItem(item); } else { - builder.addItems({LayoutBuilder::LayoutItem(widget)}); + builder.addItem(LayoutBuilder::LayoutItem(widget)); } } @@ -316,6 +321,12 @@ void BaseAspect::setReadOnly(bool readOnly) } } +void BaseAspect::setSpan(int x, int y) +{ + d->m_spanX = x; + d->m_spanY = y; +} + bool BaseAspect::isAutoApply() const { return d->m_autoApply; @@ -735,6 +746,7 @@ StringAspect::StringAspect() : d(new Internal::StringAspectPrivate) { setDefaultValue(QString()); + setSpan(2, 1); // Default: Label + something } /*! @@ -1219,6 +1231,7 @@ BoolAspect::BoolAspect(const QString &settingsKey) { setDefaultValue(false); setSettingsKey(settingsKey); + setSpan(2, 1); } /*! @@ -1364,7 +1377,9 @@ void BoolAspect::setHandlesGroup(QGroupBox *box) SelectionAspect::SelectionAspect() : d(new Internal::SelectionAspectPrivate) -{} +{ + setSpan(2, 1); +} /*! \reimp @@ -1547,6 +1562,7 @@ MultiSelectionAspect::MultiSelectionAspect() : d(new Internal::MultiSelectionAspectPrivate(this)) { setDefaultValue(QStringList()); + setSpan(2, 1); } /*! @@ -1653,6 +1669,7 @@ IntegerAspect::IntegerAspect() : d(new Internal::IntegerAspectPrivate) { setDefaultValue(qint64(0)); + setSpan(2, 1); } /*! @@ -1773,6 +1790,7 @@ DoubleAspect::DoubleAspect() : d(new Internal::DoubleAspectPrivate) { setDefaultValue(double(0)); + setSpan(2, 1); } /*! diff --git a/src/libs/utils/aspects.h b/src/libs/utils/aspects.h index f5acb25f240..e873663a92e 100644 --- a/src/libs/utils/aspects.h +++ b/src/libs/utils/aspects.h @@ -98,6 +98,8 @@ public: void setReadOnly(bool enabled); + void setSpan(int x, int y = 1); + QString labelText() const; void setLabelText(const QString &labelText); void setLabelPixmap(const QPixmap &labelPixmap); diff --git a/src/plugins/perfprofiler/perfconfigwidget.cpp b/src/plugins/perfprofiler/perfconfigwidget.cpp index a94183f407e..9381f1e147c 100644 --- a/src/plugins/perfprofiler/perfconfigwidget.cpp +++ b/src/plugins/perfprofiler/perfconfigwidget.cpp @@ -117,10 +117,9 @@ PerfConfigWidget::PerfConfigWidget(PerfSettings *settings, QWidget *parent) Grid { m_settings->callgraphMode, m_settings->stackSize, nl, m_settings->sampleMode, m_settings->period, nl, + m_settings->extraArguments, }, - Row { m_settings->extraArguments }, // FIXME: Align with above. - Stretch() }.attachTo(this); } diff --git a/src/plugins/perfprofiler/perfsettings.cpp b/src/plugins/perfprofiler/perfsettings.cpp index 6f6e91f1d99..dc56ca7fe11 100644 --- a/src/plugins/perfprofiler/perfsettings.cpp +++ b/src/plugins/perfprofiler/perfsettings.cpp @@ -83,6 +83,7 @@ PerfSettings::PerfSettings(ProjectExplorer::Target *target) extraArguments.setSettingsKey("Analyzer.Perf.ExtraArguments"); extraArguments.setDisplayStyle(StringAspect::DisplayStyle::LineEditDisplay); extraArguments.setLabelText(tr("Additional arguments:")); + extraArguments.setSpan(4); connect(&callgraphMode, &SelectionAspect::volatileValueChanged, this, [this](int index) { stackSize.setEnabled(index == 0);