aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/kitoptionspage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/projectexplorer/kitoptionspage.cpp')
-rw-r--r--src/plugins/projectexplorer/kitoptionspage.cpp55
1 files changed, 17 insertions, 38 deletions
diff --git a/src/plugins/projectexplorer/kitoptionspage.cpp b/src/plugins/projectexplorer/kitoptionspage.cpp
index d5c709194a1..db578a403e6 100644
--- a/src/plugins/projectexplorer/kitoptionspage.cpp
+++ b/src/plugins/projectexplorer/kitoptionspage.cpp
@@ -23,11 +23,13 @@
namespace ProjectExplorer {
namespace Internal {
-// --------------------------------------------------------------------------
-// KitOptionsPageWidget:
-// --------------------------------------------------------------------------
+// KitOptionsPageWidget
+
+class KitOptionsPageWidget;
-class KitOptionsPageWidget : public QWidget
+static QPointer<KitOptionsPageWidget> kitOptionsPageWidget;
+
+class KitOptionsPageWidget : public Core::IOptionsPageWidget
{
public:
KitOptionsPageWidget();
@@ -42,6 +44,8 @@ public:
void makeDefaultKit();
void updateState();
+ void apply() final { m_model->apply(); }
+
public:
QTreeView *m_kitsView = nullptr;
QPushButton *m_addButton = nullptr;
@@ -58,6 +62,7 @@ public:
KitOptionsPageWidget::KitOptionsPageWidget()
{
+ kitOptionsPageWidget = this;
m_kitsView = new QTreeView(this);
m_kitsView->setUniformRowHeights(true);
m_kitsView->header()->setStretchLastSection(true);
@@ -239,38 +244,14 @@ QModelIndex KitOptionsPageWidget::currentIndex() const
// KitOptionsPage:
// --------------------------------------------------------------------------
-static KitOptionsPage *theKitOptionsPage = nullptr;
-
KitOptionsPage::KitOptionsPage()
{
- theKitOptionsPage = this;
setId(Constants::KITS_SETTINGS_PAGE_ID);
setDisplayName(Tr::tr("Kits"));
setCategory(Constants::KITS_SETTINGS_CATEGORY);
setDisplayCategory(Tr::tr("Kits"));
setCategoryIconPath(":/projectexplorer/images/settingscategory_kits.png");
-}
-
-QWidget *KitOptionsPage::widget()
-{
- if (!m_widget)
- m_widget = new Internal::KitOptionsPageWidget;
-
- return m_widget;
-}
-
-void KitOptionsPage::apply()
-{
- if (m_widget)
- m_widget->m_model->apply();
-}
-
-void KitOptionsPage::finish()
-{
- if (m_widget) {
- delete m_widget;
- m_widget = nullptr;
- }
+ setWidgetCreator([] { return new Internal::KitOptionsPageWidget; });
}
void KitOptionsPage::showKit(Kit *k)
@@ -278,18 +259,16 @@ void KitOptionsPage::showKit(Kit *k)
if (!k)
return;
- (void) widget();
- QModelIndex index = m_widget->m_model->indexOf(k);
- m_widget->m_selectionModel->select(index,
+ Internal::KitOptionsPageWidget *widget = Internal::kitOptionsPageWidget;
+ if (!widget)
+ return;
+
+ QModelIndex index = widget->m_model->indexOf(k);
+ widget->m_selectionModel->select(index,
QItemSelectionModel::Clear
| QItemSelectionModel::SelectCurrent
| QItemSelectionModel::Rows);
- m_widget->m_kitsView->scrollTo(index);
-}
-
-KitOptionsPage *KitOptionsPage::instance()
-{
- return theKitOptionsPage;
+ widget->m_kitsView->scrollTo(index);
}
} // namespace ProjectExplorer