Android: Use new setup for more plugin items

Change-Id: Id5ff09813ab7b4be425d007abd4cc04d9c9472c1
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
hjk
2023-11-22 17:46:57 +01:00
parent 497b9b3c2c
commit 353c3cc930
17 changed files with 240 additions and 227 deletions

View File

@@ -9,6 +9,7 @@
#include <coreplugin/coreicons.h>
#include <coreplugin/icore.h>
#include <projectexplorer/ipotentialkit.h>
#include <projectexplorer/kit.h>
#include <projectexplorer/kitaspects.h>
#include <projectexplorer/kitmanager.h>
@@ -24,6 +25,8 @@
#include <QLabel>
#include <QPushButton>
using namespace ProjectExplorer;
namespace Android::Internal {
class AndroidPotentialKitWidget : public Utils::DetailsWidget
@@ -36,37 +39,6 @@ private:
void recheck();
};
QString AndroidPotentialKit::displayName() const
{
return Tr::tr("Configure Android...");
}
void AndroidPotentialKit::executeFromMenu()
{
Core::ICore::showOptionsDialog(Constants::ANDROID_SETTINGS_ID);
}
QWidget *AndroidPotentialKit::createWidget(QWidget *parent) const
{
if (!isEnabled())
return nullptr;
return new AndroidPotentialKitWidget(parent);
}
bool AndroidPotentialKit::isEnabled() const
{
const QList<ProjectExplorer::Kit *> kits = ProjectExplorer::KitManager::kits();
for (const ProjectExplorer::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);
});
}
AndroidPotentialKitWidget::AndroidPotentialKitWidget(QWidget *parent)
: Utils::DetailsWidget(parent)
{
@@ -104,8 +76,8 @@ void AndroidPotentialKitWidget::openOptions()
void AndroidPotentialKitWidget::recheck()
{
const QList<ProjectExplorer::Kit *> kits = ProjectExplorer::KitManager::kits();
for (const ProjectExplorer::Kit *kit : kits) {
const QList<Kit *> kits = KitManager::kits();
for (const Kit *kit : kits) {
if (kit->isAutoDetected() && !kit->isSdkProvided()) {
setVisible(false);
return;
@@ -113,4 +85,44 @@ void AndroidPotentialKitWidget::recheck()
}
}
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