--- a/applets/kicker/plugin/abstractentry.cpp +++ b/applets/kicker/plugin/abstractentry.cpp @@ -61,6 +61,11 @@ QString AbstractEntry::description() const return QString(); } +QString AbstractEntry::comment() const +{ + return QString(); +} + QString AbstractEntry::id() const { return QString(); --- a/applets/kicker/plugin/abstractentry.h +++ b/applets/kicker/plugin/abstractentry.h @@ -48,6 +48,7 @@ public: virtual QString name() const; virtual QString group() const; virtual QString description() const; + virtual QString comment() const; virtual QString id() const; virtual QUrl url() const; --- a/applets/kicker/plugin/abstractmodel.cpp +++ b/applets/kicker/plugin/abstractmodel.cpp @@ -34,6 +34,7 @@ QHash AbstractModel::ro roles.insert(Kicker::UrlRole, "url"); roles.insert(Kicker::DisabledRole, "disabled"); roles.insert(Kicker::IsMultilineTextRole, "isMultilineText"); + roles.insert(Kicker::CommentRole, "comment"); return roles; } --- a/applets/kicker/plugin/actionlist.h +++ b/applets/kicker/plugin/actionlist.h @@ -28,6 +28,7 @@ enum { UrlRole, DisabledRole, IsMultilineTextRole, + CommentRole, }; QVariantMap createActionItem(const QString &label, const QString &icon, const QString &actionId, const QVariant &argument = QVariant()); --- a/applets/kicker/plugin/appentry.cpp +++ b/applets/kicker/plugin/appentry.cpp @@ -79,6 +79,14 @@ void AppEntry::init(NameFormat nameFormat) } else { m_description = nameFromService(m_service, GenericNameOnly); } + + m_comment = m_service->comment(); + if(m_comment.isEmpty()) { + m_comment = m_service->genericName(); + if(m_comment.isEmpty()) { + m_comment = m_service->name(); + } + } } bool AppEntry::isValid() const @@ -104,6 +112,11 @@ QString AppEntry::description() const return m_description; } +QString AppEntry::comment() const +{ + return m_comment; +} + KService::Ptr AppEntry::service() const { return m_service; --- a/applets/kicker/plugin/appentry.h +++ b/applets/kicker/plugin/appentry.h @@ -38,6 +38,7 @@ public: QIcon icon() const override; QString name() const override; QString description() const override; + QString comment() const override; KService::Ptr service() const; QString group() const override; @@ -60,6 +61,7 @@ private: QString m_id; QString m_name; QString m_description; + QString m_comment; // Not an actual group name, but the first character for transliterated name. QString m_group; mutable QIcon m_icon; --- a/applets/kicker/plugin/appsmodel.cpp +++ b/applets/kicker/plugin/appsmodel.cpp @@ -141,6 +141,8 @@ QVariant AppsModel::data(const QModelIndex &index, int role) const return entry->name(); } else if (role == Qt::DecorationRole) { return entry->icon(); + } else if (role == Kicker::CommentRole) { + return entry->comment(); } else if (role == Kicker::DescriptionRole) { return entry->description(); } else if (role == Kicker::FavoriteIdRole && entry->type() == AbstractEntry::RunnableType) {