diff --git a/applets/systemtray/systemtraymodel.cpp b/applets/systemtray/systemtraymodel.cpp --- a/applets/systemtray/systemtraymodel.cpp +++ b/applets/systemtray/systemtraymodel.cpp @@ -29,6 +29,20 @@ #include +static QString plasmoidCategoryForMetadata(const KPluginMetaData &metadata) +{ + QString category = QStringLiteral("UnknownCategory"); + + if (metadata.isValid()) { + const QString notificationAreaCategory = metadata.value(QStringLiteral("X-Plasma-NotificationAreaCategory")); + if (!notificationAreaCategory.isEmpty()) { + category = notificationAreaCategory; + } + } + + return category; +} + PlasmoidModel::PlasmoidModel(QObject *parent) : QStandardItemModel(parent) { for (const auto &info : Plasma::PluginLoader::self()->listAppletMetaData(QString())) { @@ -47,7 +61,7 @@ item->setData(info.pluginId(), static_cast(BaseRole::ItemId)); item->setData(QStringLiteral("Plasmoid"), static_cast(BaseRole::ItemType)); item->setData(false, static_cast(BaseRole::CanRender)); - item->setData(QStringLiteral("UnknownCategory"), static_cast(BaseRole::Category)); + item->setData(plasmoidCategoryForMetadata(info), static_cast(BaseRole::Category)); item->setData(false, static_cast(Role::HasApplet)); appendRow(item); } @@ -90,17 +104,7 @@ dataItem->setData(applet->property("_plasma_graphicObject"), static_cast(Role::Applet)); dataItem->setData(true, static_cast(Role::HasApplet)); dataItem->setData(true, static_cast(BaseRole::CanRender)); - - if (applet->pluginMetaData().isValid()) { - const QString category = applet->pluginMetaData().value(QStringLiteral("X-Plasma-NotificationAreaCategory")); - if (category.isEmpty()) { - dataItem->setData(QStringLiteral("UnknownCategory"), static_cast(BaseRole::Category)); - } else { - dataItem->setData(category, static_cast(BaseRole::Category)); - } - } else { - dataItem->setData(QStringLiteral("UnknownCategory"), static_cast(BaseRole::Category)); - } + dataItem->setData(plasmoidCategoryForMetadata(applet->pluginMetaData()), static_cast(BaseRole::Category)); } void PlasmoidModel::removeApplet(Plasma::Applet *applet)