forked from qt-creator/qt-creator
ProjectExplorer: Use IOptionPage::setWidgetCreator() for main kits page
Change-Id: I25545bfb00af3715adae35ba70e52e963dcdfc76 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -23,11 +23,11 @@
|
||||
namespace ProjectExplorer {
|
||||
namespace Internal {
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// KitOptionsPageWidget:
|
||||
// --------------------------------------------------------------------------
|
||||
// KitOptionsPageWidget
|
||||
|
||||
class KitOptionsPageWidget : public QWidget
|
||||
static KitOptionsPageWidget *kitOptionsPageWidget = nullptr;
|
||||
|
||||
class KitOptionsPageWidget : public Core::IOptionsPageWidget
|
||||
{
|
||||
public:
|
||||
KitOptionsPageWidget();
|
||||
@@ -42,6 +42,8 @@ public:
|
||||
void makeDefaultKit();
|
||||
void updateState();
|
||||
|
||||
void apply() final { m_model->apply(); }
|
||||
|
||||
public:
|
||||
QTreeView *m_kitsView = nullptr;
|
||||
QPushButton *m_addButton = nullptr;
|
||||
@@ -58,6 +60,7 @@ public:
|
||||
|
||||
KitOptionsPageWidget::KitOptionsPageWidget()
|
||||
{
|
||||
kitOptionsPageWidget = this;
|
||||
m_kitsView = new QTreeView(this);
|
||||
m_kitsView->setUniformRowHeights(true);
|
||||
m_kitsView->header()->setStretchLastSection(true);
|
||||
@@ -249,28 +252,7 @@ KitOptionsPage::KitOptionsPage()
|
||||
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,13 +260,15 @@ 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;
|
||||
QTC_ASSERT(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);
|
||||
widget->m_kitsView->scrollTo(index);
|
||||
}
|
||||
|
||||
KitOptionsPage *KitOptionsPage::instance()
|
||||
|
@@ -20,15 +20,8 @@ class PROJECTEXPLORER_EXPORT KitOptionsPage : public Core::IOptionsPage
|
||||
public:
|
||||
KitOptionsPage();
|
||||
|
||||
QWidget *widget() override;
|
||||
void apply() override;
|
||||
void finish() override;
|
||||
|
||||
void showKit(Kit *k);
|
||||
static KitOptionsPage *instance();
|
||||
|
||||
private:
|
||||
QPointer<Internal::KitOptionsPageWidget> m_widget;
|
||||
};
|
||||
|
||||
} // namespace ProjectExplorer
|
||||
|
Reference in New Issue
Block a user