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:
hjk
2020-01-08 13:17:49 +01:00
parent bccdf0f187
commit afa1e2bc39
2 changed files with 8 additions and 36 deletions

View File

@@ -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

View File

@@ -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