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 ProjectExplorer {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// KitOptionsPageWidget
|
||||||
// KitOptionsPageWidget:
|
|
||||||
// --------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class KitOptionsPageWidget : public QWidget
|
static KitOptionsPageWidget *kitOptionsPageWidget = nullptr;
|
||||||
|
|
||||||
|
class KitOptionsPageWidget : public Core::IOptionsPageWidget
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
KitOptionsPageWidget();
|
KitOptionsPageWidget();
|
||||||
@@ -42,6 +42,8 @@ public:
|
|||||||
void makeDefaultKit();
|
void makeDefaultKit();
|
||||||
void updateState();
|
void updateState();
|
||||||
|
|
||||||
|
void apply() final { m_model->apply(); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QTreeView *m_kitsView = nullptr;
|
QTreeView *m_kitsView = nullptr;
|
||||||
QPushButton *m_addButton = nullptr;
|
QPushButton *m_addButton = nullptr;
|
||||||
@@ -58,6 +60,7 @@ public:
|
|||||||
|
|
||||||
KitOptionsPageWidget::KitOptionsPageWidget()
|
KitOptionsPageWidget::KitOptionsPageWidget()
|
||||||
{
|
{
|
||||||
|
kitOptionsPageWidget = this;
|
||||||
m_kitsView = new QTreeView(this);
|
m_kitsView = new QTreeView(this);
|
||||||
m_kitsView->setUniformRowHeights(true);
|
m_kitsView->setUniformRowHeights(true);
|
||||||
m_kitsView->header()->setStretchLastSection(true);
|
m_kitsView->header()->setStretchLastSection(true);
|
||||||
@@ -249,28 +252,7 @@ KitOptionsPage::KitOptionsPage()
|
|||||||
setCategory(Constants::KITS_SETTINGS_CATEGORY);
|
setCategory(Constants::KITS_SETTINGS_CATEGORY);
|
||||||
setDisplayCategory(Tr::tr("Kits"));
|
setDisplayCategory(Tr::tr("Kits"));
|
||||||
setCategoryIconPath(":/projectexplorer/images/settingscategory_kits.png");
|
setCategoryIconPath(":/projectexplorer/images/settingscategory_kits.png");
|
||||||
}
|
setWidgetCreator([] { return new Internal::KitOptionsPageWidget; });
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void KitOptionsPage::showKit(Kit *k)
|
void KitOptionsPage::showKit(Kit *k)
|
||||||
@@ -278,13 +260,15 @@ void KitOptionsPage::showKit(Kit *k)
|
|||||||
if (!k)
|
if (!k)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
(void) widget();
|
Internal::KitOptionsPageWidget *widget = Internal::kitOptionsPageWidget;
|
||||||
QModelIndex index = m_widget->m_model->indexOf(k);
|
QTC_ASSERT(widget, return);
|
||||||
m_widget->m_selectionModel->select(index,
|
|
||||||
|
QModelIndex index = widget->m_model->indexOf(k);
|
||||||
|
widget->m_selectionModel->select(index,
|
||||||
QItemSelectionModel::Clear
|
QItemSelectionModel::Clear
|
||||||
| QItemSelectionModel::SelectCurrent
|
| QItemSelectionModel::SelectCurrent
|
||||||
| QItemSelectionModel::Rows);
|
| QItemSelectionModel::Rows);
|
||||||
m_widget->m_kitsView->scrollTo(index);
|
widget->m_kitsView->scrollTo(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
KitOptionsPage *KitOptionsPage::instance()
|
KitOptionsPage *KitOptionsPage::instance()
|
||||||
|
@@ -20,15 +20,8 @@ class PROJECTEXPLORER_EXPORT KitOptionsPage : public Core::IOptionsPage
|
|||||||
public:
|
public:
|
||||||
KitOptionsPage();
|
KitOptionsPage();
|
||||||
|
|
||||||
QWidget *widget() override;
|
|
||||||
void apply() override;
|
|
||||||
void finish() override;
|
|
||||||
|
|
||||||
void showKit(Kit *k);
|
void showKit(Kit *k);
|
||||||
static KitOptionsPage *instance();
|
static KitOptionsPage *instance();
|
||||||
|
|
||||||
private:
|
|
||||||
QPointer<Internal::KitOptionsPageWidget> m_widget;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace ProjectExplorer
|
} // namespace ProjectExplorer
|
||||||
|
Reference in New Issue
Block a user