forked from qt-creator/qt-creator
ProjectExplorer: Make "Manage..." kits button work again
When configuring a newly opened or created project you are able to press a 'Manage...' button that brings up the options page of the kits. Was broken with the rework done on the global object pool. Change-Id: I87d91351c5769655c1192431a53784de1bca77aa Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -235,8 +235,11 @@ QModelIndex KitOptionsPageWidget::currentIndex() const
|
||||
// KitOptionsPage:
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
static KitOptionsPage *theKitOptionsPage = nullptr;
|
||||
|
||||
KitOptionsPage::KitOptionsPage()
|
||||
{
|
||||
theKitOptionsPage = this;
|
||||
static const Utils::Icon categoryIcon({{":/projectexplorer/images/mode_project_mask.png",
|
||||
Utils::Theme::PanelTextColorDark}},
|
||||
Utils::Icon::Tint);
|
||||
@@ -283,4 +286,9 @@ void KitOptionsPage::showKit(Kit *k)
|
||||
m_widget->m_kitsView->scrollTo(index);
|
||||
}
|
||||
|
||||
KitOptionsPage *KitOptionsPage::instance()
|
||||
{
|
||||
return theKitOptionsPage;
|
||||
}
|
||||
|
||||
} // namespace ProjectExplorer
|
||||
|
@@ -53,6 +53,7 @@ public:
|
||||
void finish() override;
|
||||
|
||||
void showKit(Kit *k);
|
||||
static KitOptionsPage *instance();
|
||||
|
||||
private:
|
||||
QPointer<Internal::KitOptionsPageWidget> m_widget;
|
||||
|
@@ -42,8 +42,6 @@
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/idocument.h>
|
||||
|
||||
#include <extensionsystem/pluginmanager.h>
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
#include <utils/basetreeview.h>
|
||||
#include <utils/navigationtreeview.h>
|
||||
@@ -531,8 +529,8 @@ public:
|
||||
void handleManageKits()
|
||||
{
|
||||
if (ProjectItem *projectItem = m_projectsModel.rootItem()->childAt(0)) {
|
||||
if (KitOptionsPage *page = ExtensionSystem::PluginManager::getObject<KitOptionsPage>())
|
||||
page->showKit(KitManager::kit(Id::fromSetting(projectItem->data(0, KitIdRole))));
|
||||
if (auto kitPage = KitOptionsPage::instance())
|
||||
kitPage->showKit(KitManager::kit(Id::fromSetting(projectItem->data(0, KitIdRole))));
|
||||
}
|
||||
ICore::showOptionsDialog(Constants::KITS_SETTINGS_PAGE_ID, ICore::mainWindow());
|
||||
}
|
||||
|
@@ -34,7 +34,6 @@
|
||||
#include "kitoptionspage.h"
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
#include <extensionsystem/pluginmanager.h>
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
#include <utils/detailsbutton.h>
|
||||
@@ -201,12 +200,13 @@ void TargetSetupWidget::targetCheckBoxToggled(bool b)
|
||||
|
||||
void TargetSetupWidget::manageKit()
|
||||
{
|
||||
KitOptionsPage *page = ExtensionSystem::PluginManager::getObject<KitOptionsPage>();
|
||||
if (!page || !m_kit)
|
||||
if (!m_kit)
|
||||
return;
|
||||
|
||||
page->showKit(m_kit);
|
||||
Core::ICore::showOptionsDialog(Constants::KITS_SETTINGS_PAGE_ID, parentWidget());
|
||||
if (auto kitPage = KitOptionsPage::instance()) {
|
||||
kitPage->showKit(m_kit);
|
||||
Core::ICore::showOptionsDialog(Constants::KITS_SETTINGS_PAGE_ID, parentWidget());
|
||||
}
|
||||
}
|
||||
|
||||
void TargetSetupWidget::setProjectPath(const QString &projectPath)
|
||||
|
Reference in New Issue
Block a user