forked from qt-creator/qt-creator
BareMetal: Use new IOptionPage convenience function
Change-Id: Ic830e9ceead045a0d3de7867c714aaf71f5d1bd2 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -269,12 +269,15 @@ void DebugServerProviderModel::removeProvider(IDebugServerProvider *provider)
|
|||||||
|
|
||||||
// DebugServerProvidersSettingsWidget
|
// DebugServerProvidersSettingsWidget
|
||||||
|
|
||||||
class DebugServerProvidersSettingsWidget final : public QWidget
|
class DebugServerProvidersSettingsWidget final : public Core::IOptionsPageWidget
|
||||||
{
|
{
|
||||||
Q_DECLARE_TR_FUNCTIONS(BareMetal::Internal::DebugServerProvidersSettingsPage)
|
Q_DECLARE_TR_FUNCTIONS(BareMetal::Internal::DebugServerProvidersSettingsPage)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit DebugServerProvidersSettingsWidget(DebugServerProvidersSettingsPage *page);
|
DebugServerProvidersSettingsWidget();
|
||||||
|
|
||||||
|
void apply() final { m_model.apply(); }
|
||||||
|
void finish() final {}
|
||||||
|
|
||||||
void providerSelectionChanged();
|
void providerSelectionChanged();
|
||||||
void removeProvider();
|
void removeProvider();
|
||||||
@@ -284,7 +287,6 @@ public:
|
|||||||
QModelIndex currentIndex() const;
|
QModelIndex currentIndex() const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DebugServerProvidersSettingsPage *m_page = nullptr;
|
|
||||||
DebugServerProviderModel m_model;
|
DebugServerProviderModel m_model;
|
||||||
QItemSelectionModel *m_selectionModel = nullptr;
|
QItemSelectionModel *m_selectionModel = nullptr;
|
||||||
QTreeView *m_providerView = nullptr;
|
QTreeView *m_providerView = nullptr;
|
||||||
@@ -294,9 +296,7 @@ public:
|
|||||||
QPushButton *m_delButton = nullptr;
|
QPushButton *m_delButton = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
DebugServerProvidersSettingsWidget::DebugServerProvidersSettingsWidget
|
DebugServerProvidersSettingsWidget::DebugServerProvidersSettingsWidget()
|
||||||
(DebugServerProvidersSettingsPage *page)
|
|
||||||
: m_page(page)
|
|
||||||
{
|
{
|
||||||
m_providerView = new QTreeView(this);
|
m_providerView = new QTreeView(this);
|
||||||
m_providerView->setUniformRowHeights(true);
|
m_providerView->setUniformRowHeights(true);
|
||||||
@@ -444,35 +444,14 @@ QModelIndex DebugServerProvidersSettingsWidget::currentIndex() const
|
|||||||
return rows.at(0);
|
return rows.at(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DebugServerProvidersSettingsPage
|
||||||
|
|
||||||
DebugServerProvidersSettingsPage::DebugServerProvidersSettingsPage()
|
DebugServerProvidersSettingsPage::DebugServerProvidersSettingsPage()
|
||||||
{
|
{
|
||||||
setId(Constants::DEBUG_SERVER_PROVIDERS_SETTINGS_ID);
|
setId(Constants::DEBUG_SERVER_PROVIDERS_SETTINGS_ID);
|
||||||
setDisplayName(tr("Bare Metal"));
|
setDisplayName(tr("Bare Metal"));
|
||||||
setCategory(ProjectExplorer::Constants::DEVICE_SETTINGS_CATEGORY);
|
setCategory(ProjectExplorer::Constants::DEVICE_SETTINGS_CATEGORY);
|
||||||
}
|
setWidgetCreator([] { return new DebugServerProvidersSettingsWidget; });
|
||||||
|
|
||||||
QWidget *DebugServerProvidersSettingsPage::widget()
|
|
||||||
{
|
|
||||||
if (!m_configWidget)
|
|
||||||
m_configWidget = new DebugServerProvidersSettingsWidget(this);
|
|
||||||
return m_configWidget;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DebugServerProvidersSettingsPage::apply()
|
|
||||||
{
|
|
||||||
if (m_configWidget)
|
|
||||||
m_configWidget->m_model.apply();
|
|
||||||
}
|
|
||||||
|
|
||||||
void DebugServerProvidersSettingsPage::finish()
|
|
||||||
{
|
|
||||||
if (m_configWidget)
|
|
||||||
disconnect(DebugServerProviderManager::instance(), &DebugServerProviderManager::providersChanged,
|
|
||||||
m_configWidget, &DebugServerProvidersSettingsWidget::providerSelectionChanged);
|
|
||||||
|
|
||||||
delete m_configWidget;
|
|
||||||
m_configWidget = nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -88,13 +88,6 @@ class DebugServerProvidersSettingsPage final : public Core::IOptionsPage
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
DebugServerProvidersSettingsPage();
|
DebugServerProvidersSettingsPage();
|
||||||
|
|
||||||
private:
|
|
||||||
QWidget *widget() final;
|
|
||||||
void apply() final;
|
|
||||||
void finish() final;
|
|
||||||
|
|
||||||
DebugServerProvidersSettingsWidget *m_configWidget = nullptr;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
Reference in New Issue
Block a user