Core: Even terser layout setup for option pages

Change-Id: Id39c841da70c87d47c125903b390a75c4414cc2f
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
hjk
2023-05-17 09:43:14 +02:00
parent d4cf9b667b
commit 22af1a0255
7 changed files with 25 additions and 17 deletions

View File

@@ -22,15 +22,15 @@ BoostTestSettings::BoostTestSettings(Id settingsId)
setDisplayName(Tr::tr(BoostTest::Constants::FRAMEWORK_SETTINGS_CATEGORY)); setDisplayName(Tr::tr(BoostTest::Constants::FRAMEWORK_SETTINGS_CATEGORY));
setSettingsGroups("Autotest", "BoostTest"); setSettingsGroups("Autotest", "BoostTest");
setLayouter([this](QWidget *widget) { setLayouter([this] {
Row { Form { return Row { Form {
logLevel, br, logLevel, br,
reportLevel, br, reportLevel, br,
randomize, Row { seed }, br, randomize, Row { seed }, br,
systemErrors, br, systemErrors, br,
fpExceptions, br, fpExceptions, br,
memLeaks, memLeaks,
}, st}.attachTo(widget); }, st};
}); });
registerAspect(&logLevel); registerAspect(&logLevel);

View File

@@ -6,8 +6,6 @@
#include "../autotestconstants.h" #include "../autotestconstants.h"
#include "../autotesttr.h" #include "../autotesttr.h"
#include <coreplugin/icore.h>
#include <utils/layoutbuilder.h> #include <utils/layoutbuilder.h>
using namespace Layouting; using namespace Layouting;
@@ -22,8 +20,8 @@ CatchTestSettings::CatchTestSettings(Id settingsId)
setDisplayName(Tr::tr("Catch Test")); setDisplayName(Tr::tr("Catch Test"));
setSettingsGroups("Autotest", "Catch2"); setSettingsGroups("Autotest", "Catch2");
setLayouter([this](QWidget *widget) { setLayouter([this] {
Row { Form { return Row { Form {
showSuccess, br, showSuccess, br,
breakOnFailure, br, breakOnFailure, br,
noThrow, br, noThrow, br,
@@ -34,7 +32,7 @@ CatchTestSettings::CatchTestSettings(Id settingsId)
confidenceIntervalChecked, confidenceInterval, br, confidenceIntervalChecked, confidenceInterval, br,
warmupChecked, benchmarkWarmupTime, br, warmupChecked, benchmarkWarmupTime, br,
noAnalysis noAnalysis
}, st }.attachTo(widget); }, st };
}); });
registerAspect(&abortAfter); registerAspect(&abortAfter);

View File

@@ -23,15 +23,15 @@ GTestSettings::GTestSettings(Id settingsId)
setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY); setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY);
setDisplayName(Tr::tr(GTest::Constants::FRAMEWORK_SETTINGS_CATEGORY)); setDisplayName(Tr::tr(GTest::Constants::FRAMEWORK_SETTINGS_CATEGORY));
setLayouter([this](QWidget *widget) { setLayouter([this] {
Row { Form { return Row { Form {
runDisabled, br, runDisabled, br,
breakOnFailure, br, breakOnFailure, br,
repeat, iterations, br, repeat, iterations, br,
shuffle, seed, br, shuffle, seed, br,
groupMode, br, groupMode, br,
gtestFilter, br gtestFilter, br
}, st }.attachTo(widget); }, st };
}); });
registerAspect(&iterations); registerAspect(&iterations);

View File

@@ -22,8 +22,8 @@ QtTestSettings::QtTestSettings(Id settingsId)
setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY); setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY);
setDisplayName(Tr::tr(QtTest::Constants::FRAMEWORK_SETTINGS_CATEGORY)); setDisplayName(Tr::tr(QtTest::Constants::FRAMEWORK_SETTINGS_CATEGORY));
setLayouter([this](QWidget *widget) { setLayouter([this] {
Row { Form { return Row { Form {
noCrashHandler, br, noCrashHandler, br,
useXMLOutput, br, useXMLOutput, br,
verboseBench, br, verboseBench, br,
@@ -34,7 +34,7 @@ QtTestSettings::QtTestSettings(Id settingsId)
Column { metrics } Column { metrics }
}, br, }, br,
quickCheckForDerivedTests, br quickCheckForDerivedTests, br
}, st }.attachTo(widget); }, st };
}); });
registerAspect(&metrics); registerAspect(&metrics);

View File

@@ -208,6 +208,15 @@ void IOptionsPage::setLayouter(const std::function<void(QWidget *w)> &layouter)
}; };
} }
void IOptionsPage::setLayouter(const std::function<Layouting::LayoutItem ()> &layouter)
{
m_widgetCreator = [layouter] {
auto widget = new IOptionsPageWidget;
layouter().attachTo(widget);
return widget;
};
}
/*! /*!
\fn void Core::IOptionsPage::setId(Utils::Id id) \fn void Core::IOptionsPage::setId(Utils::Id id)

View File

@@ -75,6 +75,7 @@ protected:
void setCategoryIconPath(const Utils::FilePath &categoryIconPath); void setCategoryIconPath(const Utils::FilePath &categoryIconPath);
void setSettings(Utils::AspectContainer *settings); void setSettings(Utils::AspectContainer *settings);
void setLayouter(const std::function<void(QWidget *w)> &layouter); void setLayouter(const std::function<void(QWidget *w)> &layouter);
void setLayouter(const std::function<Layouting::LayoutItem()> &layouter);
// Used in FontSettingsPage. FIXME? // Used in FontSettingsPage. FIXME?
QPointer<QWidget> m_widget; // Used in conjunction with m_widgetCreator QPointer<QWidget> m_widget; // Used in conjunction with m_widgetCreator

View File

@@ -33,7 +33,7 @@ FileShareProtocolSettings::FileShareProtocolSettings()
displayCount.setSuffix(' ' + Tr::tr("entries")); displayCount.setSuffix(' ' + Tr::tr("entries"));
displayCount.setLabelText(Tr::tr("&Display:")); displayCount.setLabelText(Tr::tr("&Display:"));
setLayouter([this](QWidget *widget) { setLayouter([this] {
using namespace Layouting; using namespace Layouting;
auto label = new QLabel(Tr::tr( auto label = new QLabel(Tr::tr(
@@ -41,14 +41,14 @@ FileShareProtocolSettings::FileShareProtocolSettings()
"simple files on a shared network drive. Files are never deleted.")); "simple files on a shared network drive. Files are never deleted."));
label->setWordWrap(true); label->setWordWrap(true);
Column { return Column {
Form { Form {
label, br, label, br,
path, br, path, br,
displayCount displayCount
}, },
st st
}.attachTo(widget); };
}); });
readSettings(); readSettings();