forked from qt-creator/qt-creator
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 <hjk@qt.io>
This commit is contained in:
@@ -223,7 +223,7 @@ public:
|
|||||||
|
|
||||||
const ItemType itemType = current.data(RoleItemType).value<ItemType>();
|
const ItemType itemType = current.data(RoleItemType).value<ItemType>();
|
||||||
const bool isPack = itemType == ItemTypePack;
|
const bool isPack = itemType == ItemTypePack;
|
||||||
const bool isRemotePlugin = !(isPack || ExtensionsModel::pluginSpecForName(name));
|
const bool isRemotePlugin = !(isPack || pluginSpecForName(name));
|
||||||
installButton->setVisible(isRemotePlugin && !pluginData.empty());
|
installButton->setVisible(isRemotePlugin && !pluginData.empty());
|
||||||
if (installButton->isVisible())
|
if (installButton->isVisible())
|
||||||
installButton->setToolTip(pluginData.constFirst().second);
|
installButton->setToolTip(pluginData.constFirst().second);
|
||||||
@@ -292,7 +292,7 @@ public:
|
|||||||
}.attachTo(this);
|
}.attachTo(this);
|
||||||
|
|
||||||
connect(m_checkBox, &QCheckBox::clicked, this, [this](bool checked) {
|
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)
|
if (spec == nullptr)
|
||||||
return;
|
return;
|
||||||
const bool doIt = m_pluginView.data().setPluginsEnabled({spec}, checked);
|
const bool doIt = m_pluginView.data().setPluginsEnabled({spec}, checked);
|
||||||
@@ -319,7 +319,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
void update()
|
void update()
|
||||||
{
|
{
|
||||||
const ExtensionSystem::PluginSpec *spec = ExtensionsModel::pluginSpecForName(m_pluginName);
|
const ExtensionSystem::PluginSpec *spec = pluginSpecForName(m_pluginName);
|
||||||
setVisible(spec != nullptr);
|
setVisible(spec != nullptr);
|
||||||
if (spec == nullptr)
|
if (spec == nullptr)
|
||||||
return;
|
return;
|
||||||
|
@@ -422,10 +422,12 @@ QLabel *tfLabel(const TextFormat &tf, bool singleLine)
|
|||||||
|
|
||||||
QGradientStops iconGradientStops(const QModelIndex &index)
|
QGradientStops iconGradientStops(const QModelIndex &index)
|
||||||
{
|
{
|
||||||
const bool isVendorExtension = index.data(RoleVendor).toString() == "The Qt Company Ltd";
|
const PluginSpec *ps = pluginSpecForName(index.data(RoleName).toString());
|
||||||
const QColor startColor = creatorColor(isVendorExtension ? Theme::Token_Gradient01_Start
|
const bool greenGradient = ps != nullptr && ps->isEffectivelyEnabled();
|
||||||
|
|
||||||
|
const QColor startColor = creatorColor(greenGradient ? Theme::Token_Gradient01_Start
|
||||||
: Theme::Token_Gradient02_Start);
|
: Theme::Token_Gradient02_Start);
|
||||||
const QColor endColor = creatorColor(isVendorExtension ? Theme::Token_Gradient01_End
|
const QColor endColor = creatorColor(greenGradient ? Theme::Token_Gradient01_End
|
||||||
: Theme::Token_Gradient02_End);
|
: Theme::Token_Gradient02_End);
|
||||||
const QGradientStops gradient = {
|
const QGradientStops gradient = {
|
||||||
{0, startColor},
|
{0, startColor},
|
||||||
|
@@ -390,7 +390,7 @@ void ExtensionsModel::setExtensionsJson(const QByteArray &json)
|
|||||||
endResetModel();
|
endResetModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginSpec *ExtensionsModel::pluginSpecForName(const QString &pluginName)
|
PluginSpec *pluginSpecForName(const QString &pluginName)
|
||||||
{
|
{
|
||||||
return findOrDefault(PluginManager::plugins(), equal(&PluginSpec::name, pluginName));
|
return findOrDefault(PluginManager::plugins(), equal(&PluginSpec::name, pluginName));
|
||||||
}
|
}
|
||||||
|
@@ -54,12 +54,13 @@ public:
|
|||||||
QVariant data(const QModelIndex &index, int role) const;
|
QVariant data(const QModelIndex &index, int role) const;
|
||||||
|
|
||||||
void setExtensionsJson(const QByteArray &json);
|
void setExtensionsJson(const QByteArray &json);
|
||||||
static ExtensionSystem::PluginSpec *pluginSpecForName(const QString &pluginName);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
class ExtensionsModelPrivate *d = nullptr;
|
class ExtensionsModelPrivate *d = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ExtensionSystem::PluginSpec *pluginSpecForName(const QString &pluginName);
|
||||||
|
|
||||||
#ifdef WITH_TESTS
|
#ifdef WITH_TESTS
|
||||||
QObject *createExtensionsModelTest();
|
QObject *createExtensionsModelTest();
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user