From a6b747383496191f928e001e2f0811dbd489e78b Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Wed, 26 Jun 2024 12:25:40 +0200 Subject: [PATCH] ExtensionManager: Set icon background green or grey depending of state This change sets green vs. grey background for extension icons depending of enabled state. Change-Id: Id99419544a00acca897aa0ad6c98d2598e4b2210 Reviewed-by: hjk --- .../extensionmanager/extensionmanagerwidget.cpp | 6 +++--- src/plugins/extensionmanager/extensionsbrowser.cpp | 12 +++++++----- src/plugins/extensionmanager/extensionsmodel.cpp | 2 +- src/plugins/extensionmanager/extensionsmodel.h | 3 ++- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/plugins/extensionmanager/extensionmanagerwidget.cpp b/src/plugins/extensionmanager/extensionmanagerwidget.cpp index 4b0bfcfb325..b62951529ee 100644 --- a/src/plugins/extensionmanager/extensionmanagerwidget.cpp +++ b/src/plugins/extensionmanager/extensionmanagerwidget.cpp @@ -223,7 +223,7 @@ public: const ItemType itemType = current.data(RoleItemType).value(); const bool isPack = itemType == ItemTypePack; - const bool isRemotePlugin = !(isPack || ExtensionsModel::pluginSpecForName(name)); + const bool isRemotePlugin = !(isPack || pluginSpecForName(name)); installButton->setVisible(isRemotePlugin && !pluginData.empty()); if (installButton->isVisible()) installButton->setToolTip(pluginData.constFirst().second); @@ -292,7 +292,7 @@ public: }.attachTo(this); connect(m_checkBox, &QCheckBox::clicked, this, [this](bool checked) { - ExtensionSystem::PluginSpec *spec = ExtensionsModel::pluginSpecForName(m_pluginName); + ExtensionSystem::PluginSpec *spec = pluginSpecForName(m_pluginName); if (spec == nullptr) return; const bool doIt = m_pluginView.data().setPluginsEnabled({spec}, checked); @@ -319,7 +319,7 @@ public: private: void update() { - const ExtensionSystem::PluginSpec *spec = ExtensionsModel::pluginSpecForName(m_pluginName); + const ExtensionSystem::PluginSpec *spec = pluginSpecForName(m_pluginName); setVisible(spec != nullptr); if (spec == nullptr) return; diff --git a/src/plugins/extensionmanager/extensionsbrowser.cpp b/src/plugins/extensionmanager/extensionsbrowser.cpp index a4970d113c3..b2bc534fdf8 100644 --- a/src/plugins/extensionmanager/extensionsbrowser.cpp +++ b/src/plugins/extensionmanager/extensionsbrowser.cpp @@ -422,11 +422,13 @@ QLabel *tfLabel(const TextFormat &tf, bool singleLine) QGradientStops iconGradientStops(const QModelIndex &index) { - const bool isVendorExtension = index.data(RoleVendor).toString() == "The Qt Company Ltd"; - const QColor startColor = creatorColor(isVendorExtension ? Theme::Token_Gradient01_Start - : Theme::Token_Gradient02_Start); - const QColor endColor = creatorColor(isVendorExtension ? Theme::Token_Gradient01_End - : Theme::Token_Gradient02_End); + const PluginSpec *ps = pluginSpecForName(index.data(RoleName).toString()); + const bool greenGradient = ps != nullptr && ps->isEffectivelyEnabled(); + + const QColor startColor = creatorColor(greenGradient ? Theme::Token_Gradient01_Start + : Theme::Token_Gradient02_Start); + const QColor endColor = creatorColor(greenGradient ? Theme::Token_Gradient01_End + : Theme::Token_Gradient02_End); const QGradientStops gradient = { {0, startColor}, {1, endColor}, diff --git a/src/plugins/extensionmanager/extensionsmodel.cpp b/src/plugins/extensionmanager/extensionsmodel.cpp index 1d8fad89dfa..2500f8f73f6 100644 --- a/src/plugins/extensionmanager/extensionsmodel.cpp +++ b/src/plugins/extensionmanager/extensionsmodel.cpp @@ -390,7 +390,7 @@ void ExtensionsModel::setExtensionsJson(const QByteArray &json) endResetModel(); } -PluginSpec *ExtensionsModel::pluginSpecForName(const QString &pluginName) +PluginSpec *pluginSpecForName(const QString &pluginName) { return findOrDefault(PluginManager::plugins(), equal(&PluginSpec::name, pluginName)); } diff --git a/src/plugins/extensionmanager/extensionsmodel.h b/src/plugins/extensionmanager/extensionsmodel.h index 1fc86d3afde..68e7f9ea846 100644 --- a/src/plugins/extensionmanager/extensionsmodel.h +++ b/src/plugins/extensionmanager/extensionsmodel.h @@ -54,12 +54,13 @@ public: QVariant data(const QModelIndex &index, int role) const; void setExtensionsJson(const QByteArray &json); - static ExtensionSystem::PluginSpec *pluginSpecForName(const QString &pluginName); private: class ExtensionsModelPrivate *d = nullptr; }; +ExtensionSystem::PluginSpec *pluginSpecForName(const QString &pluginName); + #ifdef WITH_TESTS QObject *createExtensionsModelTest(); #endif