ExtensionManager: Some cleanups

Stuff you notice 10 Minutes after pushing the code you worked on for
days.

Change-Id: I24614b8129f80c8986ec11d5146c5631dae5d515
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Alessandro Portale
2024-05-30 19:20:48 +02:00
parent 0fffe1058d
commit 0ccfccd5c5
4 changed files with 20 additions and 35 deletions

View File

@@ -26,7 +26,6 @@
#include <QAction>
#include <QMainWindow>
using namespace ExtensionSystem;
using namespace Core;
using namespace Utils;
@@ -45,7 +44,7 @@ public:
Theme::IconsBaseColor}});
const Icon FLAT_ACTIVE({{":/extensionmanager/images/mode_extensionmanager_mask.png",
Theme::IconsModeWelcomeActiveColor}});
setIcon(Utils::Icon::modeIcon(FLAT, FLAT, FLAT_ACTIVE));
setIcon(Icon::modeIcon(FLAT, FLAT, FLAT_ACTIVE));
setPriority(72);
using namespace Layouting;

View File

@@ -280,7 +280,7 @@ void ExtensionManagerWidget::updateView(const QModelIndex &current)
const LinksData linksData = current.data(RoleDescriptionLinks).value<LinksData>();
if (!linksData.isEmpty()) {
QString linksHtml;
const QStringList links = Utils::transform(linksData, [](const LinksData::Type &link) {
const QStringList links = transform(linksData, [](const LinksData::Type &link) {
const QString anchor = link.first.isEmpty() ? link.second : link.first;
return QString::fromLatin1("<a href=\"%1\">%2 &gt;</a>")
.arg(link.second).arg(anchor);
@@ -293,7 +293,7 @@ void ExtensionManagerWidget::updateView(const QModelIndex &current)
if (!imagesData.isEmpty()) {
const QString examplesBoxCss =
QString::fromLatin1("height: 168px; background-color: %1; ")
.arg(creatorTheme()->color(Theme::Token_Background_Default).name());
.arg(creatorColor(Theme::Token_Background_Default).name());
description.append(QString(R"(
<br/>
<div style="%1">%2</div>
@@ -362,8 +362,8 @@ void ExtensionManagerWidget::updateView(const QModelIndex &current)
if (!tags.isEmpty()) {
const QString tagTemplate = QString(R"(
<td style="border: 1px solid %1; padding: 3px; ">%2</td>
)").arg(creatorTheme()->color(Theme::Token_Stroke_Subtle).name());
const QStringList tagsFmt = Utils::transform(tags, [&tagTemplate](const QString &tag) {
)").arg(creatorColor(Theme::Token_Stroke_Subtle).name());
const QStringList tagsFmt = transform(tags, [&tagTemplate](const QString &tag) {
return tagTemplate.arg(tag);
});
description.append(QString(R"(
@@ -397,8 +397,7 @@ void ExtensionManagerWidget::updateView(const QModelIndex &current)
if (isPack) {
const PluginsData plugins = current.data(RolePlugins).value<PluginsData>();
const QStringList extensions = Utils::transform(plugins,
&QPair<QString, QString>::first);
const QStringList extensions = transform(plugins, &QPair<QString, QString>::first);
const QString extensionsFmt = extensions.join("<br/>");
description.append(QString(R"(
<div style="%1">%2</div>
@@ -422,7 +421,7 @@ void ExtensionManagerWidget::fetchAndInstallPlugin(const QUrl &url)
StorageStruct() {
progressDialog.reset(new QProgressDialog(Tr::tr("Downloading Plugin..."),
Tr::tr("Cancel"), 0, 0,
Core::ICore::dialogParent()));
ICore::dialogParent()));
progressDialog->setWindowModality(Qt::ApplicationModal);
progressDialog->setFixedSize(progressDialog->sizeHint());
progressDialog->setAutoClose(false);

View File

@@ -198,7 +198,7 @@ ExtensionsBrowser::ExtensionsBrowser(QWidget *parent)
auto manageLabel = new QLabel(Tr::tr("Manage Extensions"));
manageLabel->setFont(StyleHelper::uiFont(StyleHelper::UiElementH1));
d->searchBox = new Core::SearchBox;
d->searchBox = new SearchBox;
d->searchBox->setFixedWidth(itemSize.width());
d->updateButton = new Button(Tr::tr("Install..."), Button::MediumPrimary);
@@ -252,10 +252,8 @@ ExtensionsBrowser::ExtensionsBrowser(QWidget *parent)
connect(d->updateButton, &QAbstractButton::pressed, this, []() {
executePluginInstallWizard();
});
connect(ExtensionSystem::PluginManager::instance(),
&ExtensionSystem::PluginManager::pluginsChanged, this, updateModel);
connect(ExtensionSystem::PluginManager::instance(),
&ExtensionSystem::PluginManager::initializationDone,
connect(PluginManager::instance(), &PluginManager::pluginsChanged, this, updateModel);
connect(PluginManager::instance(), &PluginManager::initializationDone,
this, &ExtensionsBrowser::fetchExtensions);
connect(d->searchBox, &QLineEdit::textChanged,
d->filterProxyModel, &QSortFilterProxyModel::setFilterWildcard);

View File

@@ -3,9 +3,6 @@
#include "extensionsmodel.h"
#include "extensionsbrowser.h"
#include "extensionmanagertr.h"
#include "utils/algorithm.h"
#include <coreplugin/coreconstants.h>
@@ -30,16 +27,16 @@ namespace ExtensionManager::Internal {
Q_LOGGING_CATEGORY(modelLog, "qtc.extensionmanager.model", QtWarningMsg)
struct PluginDependency
struct Dependency
{
QString name;
QString version;
};
using PluginDependencies = QList<PluginDependency>;
using Dependencies = QList<Dependency>;
struct Plugin
{
PluginDependencies dependencies;
Dependencies dependencies;
QString copyright;
QString name;
QString packageUrl;
@@ -74,10 +71,10 @@ static Plugin pluginFromJson(const QJsonObject &obj)
const QJsonObject metaDataObj = obj.value("meta_data").toObject();
const QJsonArray dependenciesArray = metaDataObj.value("Dependencies").toArray();
PluginDependencies dependencies;
Dependencies dependencies;
for (const QJsonValueConstRef &dependencyVal : dependenciesArray) {
const QJsonObject dependencyObj = dependencyVal.toObject();
dependencies.append(PluginDependency{
dependencies.append(Dependency{
.name = dependencyObj.value("Name").toString(),
.version = dependencyObj.value("Version").toString(),
});
@@ -189,19 +186,12 @@ static Extensions parseExtensionsRepoReply(const QByteArray &jsonData)
return parsedExtensions;
}
class ExtensionsModelPrivate : public QObject
class ExtensionsModelPrivate
{
public:
ExtensionsModelPrivate(ExtensionsModel *parent)
: q(parent)
{
}
void setExtensions(const Extensions &extensions);
void removeLocalExtensions();
ExtensionsModel *q;
Extensions allExtensions; // Original, complete extensions entries
Extensions absentExtensions; // All packs + plugin extensions that are not (yet) installed
};
@@ -224,7 +214,7 @@ void ExtensionsModelPrivate::removeLocalExtensions()
ExtensionsModel::ExtensionsModel(QObject *parent)
: QAbstractListModel(parent)
, d(new ExtensionsModelPrivate(this))
, d(new ExtensionsModelPrivate)
{
}
@@ -250,7 +240,7 @@ static QVariant dataFromPluginSpec(const PluginSpec *pluginSpec, int role)
return pluginSpec->copyright();
case RoleDependencies: {
QStringList dependencies = transform(pluginSpec->dependencies(),
&ExtensionSystem::PluginDependency::toString);
&PluginDependency::toString);
dependencies.sort();
return dependencies;
}
@@ -301,7 +291,7 @@ static QStringList dependenciesFromExtension(const Extension &extension)
{
QStringList dependencies;
for (const Plugin &plugin : extension.plugins) {
for (const PluginDependency &dependency : plugin.dependencies) {
for (const Dependency &dependency : plugin.dependencies) {
const QString withVersion = QString::fromLatin1("%1 (%2)").arg(dependency.name)
.arg(dependency.version);
dependencies.append(withVersion);
@@ -404,8 +394,7 @@ void ExtensionsModel::setExtensionsJson(const QByteArray &json)
PluginSpec *ExtensionsModel::pluginSpecForName(const QString &pluginName)
{
return Utils::findOrDefault(PluginManager::plugins(),
Utils::equal(&PluginSpec::name, pluginName));
return findOrDefault(PluginManager::plugins(), equal(&PluginSpec::name, pluginName));
}
} // ExtensionManager::Internal