forked from qt-creator/qt-creator
Utils/Core: Make an aspect container layoutable
Most aspect containers end in a widget at some time. Let them declare how. The optionspages don't need a layouter anymore when using their settings' one. There was only one case where there was none, fix that one (perforce). Change-Id: Ibd39bcd4af98c3eae1daafa59f6c1d6e7a571989 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -136,6 +136,13 @@ QWidget *IOptionsPage::widget()
|
||||
if (!m_widget) {
|
||||
if (m_widgetCreator) {
|
||||
m_widget = m_widgetCreator();
|
||||
} else if (m_settings) {
|
||||
m_widget = new IOptionsPageWidget;
|
||||
if (auto layouter = m_settings->layouter()) {
|
||||
layouter().attachTo(m_widget);
|
||||
} else {
|
||||
QTC_CHECK(false);
|
||||
}
|
||||
} else {
|
||||
QTC_CHECK(false);
|
||||
}
|
||||
@@ -199,15 +206,6 @@ void IOptionsPage::setSettings(AspectContainer *settings)
|
||||
m_settings = settings;
|
||||
}
|
||||
|
||||
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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user