ProjectExplorer: Remove IPotentialKit machinery

This was only used once, by Android, to create an entry in the
target setup page acting as short cut to the android settings page.

We have a notification for that nowadays.

Change-Id: I5580432a74c0b4da7a3914ecfcddd96543a83b5d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2024-10-30 17:23:45 +01:00
parent 79abec8d36
commit 6a00866e63
10 changed files with 1 additions and 243 deletions

View File

@@ -23,7 +23,6 @@ add_qtc_plugin(Android
androidmanifesteditoriconcontainerwidget.cpp androidmanifesteditoriconcontainerwidget.h androidmanifesteditoriconcontainerwidget.cpp androidmanifesteditoriconcontainerwidget.h
androidpackageinstallationstep.cpp androidpackageinstallationstep.h androidpackageinstallationstep.cpp androidpackageinstallationstep.h
androidplugin.cpp androidplugin.cpp
androidpotentialkit.cpp androidpotentialkit.h
androidqmltoolingsupport.cpp androidqmltoolingsupport.h androidqmltoolingsupport.cpp androidqmltoolingsupport.h
androidqtversion.cpp androidqtversion.h androidqtversion.cpp androidqtversion.h
androidrunconfiguration.cpp androidrunconfiguration.h androidrunconfiguration.cpp androidrunconfiguration.h

View File

@@ -48,8 +48,6 @@ QtcPlugin {
"androidpackageinstallationstep.cpp", "androidpackageinstallationstep.cpp",
"androidpackageinstallationstep.h", "androidpackageinstallationstep.h",
"androidplugin.cpp", "androidplugin.cpp",
"androidpotentialkit.cpp",
"androidpotentialkit.h",
"androidqmltoolingsupport.cpp", "androidqmltoolingsupport.cpp",
"androidqmltoolingsupport.h", "androidqmltoolingsupport.h",
"androidqtversion.cpp", "androidqtversion.cpp",

View File

@@ -9,7 +9,6 @@
#include "androiddevice.h" #include "androiddevice.h"
#include "androidmanifesteditor.h" #include "androidmanifesteditor.h"
#include "androidpackageinstallationstep.h" #include "androidpackageinstallationstep.h"
#include "androidpotentialkit.h"
#include "androidqmltoolingsupport.h" #include "androidqmltoolingsupport.h"
#include "androidqtversion.h" #include "androidqtversion.h"
#include "androidrunconfiguration.h" #include "androidrunconfiguration.h"
@@ -87,7 +86,6 @@ class AndroidPlugin final : public ExtensionSystem::IPlugin
{ {
setupAndroidConfigurations(); setupAndroidConfigurations();
setupAndroidPotentialKit();
setupAndroidDevice(); setupAndroidDevice();
setupAndroidQtVersion(); setupAndroidQtVersion();
setupAndroidToolchain(); setupAndroidToolchain();

View File

@@ -1,128 +0,0 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "androidconfigurations.h"
#include "androidconstants.h"
#include "androidpotentialkit.h"
#include "androidtr.h"
#include <coreplugin/coreicons.h>
#include <coreplugin/icore.h>
#include <projectexplorer/ipotentialkit.h>
#include <projectexplorer/kit.h>
#include <projectexplorer/kitaspects.h>
#include <projectexplorer/kitmanager.h>
#include <qtsupport/qtversionmanager.h>
#include <qtsupport/baseqtversion.h>
#include <utils/detailswidget.h>
#include <utils/utilsicons.h>
#include <QGridLayout>
#include <QGuiApplication>
#include <QLabel>
#include <QPushButton>
using namespace ProjectExplorer;
namespace Android::Internal {
class AndroidPotentialKitWidget : public Utils::DetailsWidget
{
public:
AndroidPotentialKitWidget(QWidget *parent);
private:
void openOptions();
void recheck();
};
AndroidPotentialKitWidget::AndroidPotentialKitWidget(QWidget *parent)
: Utils::DetailsWidget(parent)
{
setSummaryText(QLatin1String("<b>Android has not been configured. Create Android kits.</b>"));
setIcon(Utils::Icons::WARNING.icon());
//detailsWidget->setState(Utils::DetailsWidget::NoSummary);
auto mainWidget = new QWidget(this);
setWidget(mainWidget);
auto layout = new QGridLayout(mainWidget);
layout->setContentsMargins(0, 0, 0, 0);
auto label = new QLabel;
label->setText(Tr::tr("%1 needs additional settings to enable Android support."
" You can configure those settings in the Options dialog.")
.arg(QGuiApplication::applicationDisplayName()));
label->setWordWrap(true);
layout->addWidget(label, 0, 0, 1, 2);
auto openOptions = new QPushButton;
openOptions->setText(Core::ICore::msgShowOptionsDialog());
openOptions->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
layout->addWidget(openOptions, 1, 1);
connect(openOptions, &QAbstractButton::clicked,
this, &AndroidPotentialKitWidget::openOptions);
connect(AndroidConfigurations::instance(), &AndroidConfigurations::updated,
this, &AndroidPotentialKitWidget::recheck);
}
void AndroidPotentialKitWidget::openOptions()
{
Core::ICore::showOptionsDialog(Constants::ANDROID_SETTINGS_ID, this);
}
void AndroidPotentialKitWidget::recheck()
{
const QList<Kit *> kits = KitManager::kits();
for (const Kit *kit : kits) {
if (kit->isAutoDetected() && !kit->isSdkProvided()) {
setVisible(false);
return;
}
}
}
class AndroidPotentialKit final : public IPotentialKit
{
public:
QString displayName() const final
{
return Tr::tr("Configure Android...");
}
void executeFromMenu() final
{
Core::ICore::showOptionsDialog(Constants::ANDROID_SETTINGS_ID);
}
QWidget *createWidget(QWidget *parent) const final
{
if (!isEnabled())
return nullptr;
return new AndroidPotentialKitWidget(parent);
}
bool isEnabled() const final
{
const QList<Kit *> kits = KitManager::kits();
for (const Kit *kit : kits) {
if (kit->isAutoDetected() && !kit->isSdkProvided()) {
return false;
}
}
return QtSupport::QtVersionManager::version([](const QtSupport::QtVersion *v) {
return v->type() == QString::fromLatin1(Constants::ANDROID_QT_TYPE);
});
}
};
void setupAndroidPotentialKit()
{
static AndroidPotentialKit theAndroidPotentialKit;
}
} // Android::Internal

View File

@@ -1,10 +0,0 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#pragma once
namespace Android::Internal {
void setupAndroidPotentialKit();
} // Android::Internal

View File

@@ -87,7 +87,6 @@ add_qtc_plugin(ProjectExplorer
headerpath.h headerpath.h
importwidget.cpp importwidget.h importwidget.cpp importwidget.h
ioutputparser.cpp ioutputparser.h ioutputparser.cpp ioutputparser.h
ipotentialkit.h
itaskhandler.h itaskhandler.h
jsonwizard/jsonfieldpage.cpp jsonwizard/jsonfieldpage.h jsonwizard/jsonfieldpage_p.h jsonwizard/jsonfieldpage.cpp jsonwizard/jsonfieldpage.h jsonwizard/jsonfieldpage_p.h
jsonwizard/jsonfilepage.cpp jsonwizard/jsonfilepage.h jsonwizard/jsonfilepage.cpp jsonwizard/jsonfilepage.h

View File

@@ -1,24 +0,0 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#pragma once
#include <QObject>
#include "projectexplorer_export.h"
namespace ProjectExplorer {
class PROJECTEXPLORER_EXPORT IPotentialKit
{
public:
IPotentialKit();
virtual ~IPotentialKit();
virtual QString displayName() const = 0;
virtual void executeFromMenu() = 0;
virtual QWidget *createWidget(QWidget *parent) const = 0;
virtual bool isEnabled() const = 0;
};
} // ProjectExplorer

View File

@@ -74,7 +74,6 @@ QtcPlugin {
"headerpath.h", "headerpath.h",
"importwidget.cpp", "importwidget.h", "importwidget.cpp", "importwidget.h",
"ioutputparser.cpp", "ioutputparser.h", "ioutputparser.cpp", "ioutputparser.h",
"ipotentialkit.h",
"itaskhandler.h", "itaskhandler.h",
"kit.cpp", "kit.h", "kit.cpp", "kit.h",
"kitaspect.cpp", "kitaspect.h", "kitaspect.cpp", "kitaspect.h",

View File

@@ -5,7 +5,6 @@
#include "buildmanager.h" #include "buildmanager.h"
#include "buildsettingspropertiespage.h" #include "buildsettingspropertiespage.h"
#include "ipotentialkit.h"
#include "kit.h" #include "kit.h"
#include "kitmanager.h" #include "kitmanager.h"
#include "panelswidget.h" #include "panelswidget.h"
@@ -669,55 +668,6 @@ public:
// //
// Also third level: // Also third level:
// //
class PotentialKitItem : public TypedTreeItem<TreeItem, TargetGroupItem>
{
public:
PotentialKitItem(Project *project, IPotentialKit *potentialKit)
: m_project(project), m_potentialKit(potentialKit)
{}
QVariant data(int column, int role) const override
{
if (role == Qt::DisplayRole)
return m_potentialKit->displayName();
if (role == Qt::FontRole) {
QFont font = parent()->data(column, role).value<QFont>();
font.setItalic(true);
return font;
}
return {};
}
bool setData(int column, const QVariant &data, int role) override
{
Q_UNUSED(column)
if (role == ContextMenuItemAdderRole) {
auto *menu = data.value<QMenu *>();
auto enableAction = menu->addAction(Tr::tr("Enable Kit"));
enableAction->setEnabled(!isEnabled());
QObject::connect(enableAction, &QAction::triggered, [this] {
m_potentialKit->executeFromMenu();
});
return true;
}
return false;
}
Qt::ItemFlags flags(int column) const override
{
Q_UNUSED(column)
if (isEnabled())
return Qt::ItemFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
return Qt::ItemIsSelectable;
}
bool isEnabled() const { return m_potentialKit->isEnabled(); }
Project *m_project;
IPotentialKit *m_potentialKit;
};
TargetGroupItem::TargetGroupItem(const QString &displayName, Project *project) TargetGroupItem::TargetGroupItem(const QString &displayName, Project *project)
: d(std::make_unique<TargetGroupItemPrivate>(this, project)) : d(std::make_unique<TargetGroupItemPrivate>(this, project))

View File

@@ -5,7 +5,6 @@
#include "buildinfo.h" #include "buildinfo.h"
#include "importwidget.h" #include "importwidget.h"
#include "ipotentialkit.h"
#include "kit.h" #include "kit.h"
#include "kitmanager.h" #include "kitmanager.h"
#include "project.h" #include "project.h"
@@ -34,20 +33,8 @@
using namespace Utils; using namespace Utils;
namespace ProjectExplorer { namespace ProjectExplorer {
static QList<IPotentialKit *> g_potentialKits;
IPotentialKit::IPotentialKit()
{
g_potentialKits.append(this);
}
IPotentialKit::~IPotentialKit()
{
g_potentialKits.removeOne(this);
}
namespace Internal { namespace Internal {
static FilePath importDirectory(const FilePath &projectPath) static FilePath importDirectory(const FilePath &projectPath)
{ {
// Setup import widget: // Setup import widget:
@@ -158,11 +145,6 @@ public:
QObject::connect(kitFilterLineEdit, &FancyLineEdit::filterChanged, QObject::connect(kitFilterLineEdit, &FancyLineEdit::filterChanged,
this, &TargetSetupPagePrivate::kitFilterChanged); this, &TargetSetupPagePrivate::kitFilterChanged);
for (IPotentialKit *pk : std::as_const(g_potentialKits)) {
if (pk->isEnabled())
m_potentialWidgets.append(pk->createWidget(q));
}
setUseScrollArea(true); setUseScrollArea(true);
KitManager *km = KitManager::instance(); KitManager *km = KitManager::instance();
@@ -234,7 +216,6 @@ public:
Internal::ImportWidget *m_importWidget = nullptr; Internal::ImportWidget *m_importWidget = nullptr;
QSpacerItem *m_spacer; QSpacerItem *m_spacer;
QList<QWidget *> m_potentialWidgets;
bool m_widgetsWereSetUp = false; bool m_widgetsWereSetUp = false;
}; };
@@ -662,16 +643,12 @@ TargetSetupWidget *TargetSetupPagePrivate::addWidget(Kit *k)
void TargetSetupPagePrivate::addAdditionalWidgets() void TargetSetupPagePrivate::addAdditionalWidgets()
{ {
m_baseLayout->addWidget(m_importWidget); m_baseLayout->addWidget(m_importWidget);
for (QWidget * const widget : std::as_const(m_potentialWidgets))
m_baseLayout->addWidget(widget);
m_baseLayout->addItem(m_spacer); m_baseLayout->addItem(m_spacer);
} }
void TargetSetupPagePrivate::removeAdditionalWidgets(QLayout *layout) void TargetSetupPagePrivate::removeAdditionalWidgets(QLayout *layout)
{ {
layout->removeWidget(m_importWidget); layout->removeWidget(m_importWidget);
for (QWidget * const potentialWidget : std::as_const(m_potentialWidgets))
layout->removeWidget(potentialWidget);
layout->removeItem(m_spacer); layout->removeItem(m_spacer);
} }