Changeset View
Changeset View
Standalone View
Standalone View
applets/systemtray/systemtraymodel.cpp
Show All 23 Lines | |||||
24 | 24 | | |||
25 | #include <Plasma/Applet> | 25 | #include <Plasma/Applet> | ||
26 | #include <Plasma/DataContainer> | 26 | #include <Plasma/DataContainer> | ||
27 | #include <Plasma/Service> | 27 | #include <Plasma/Service> | ||
28 | #include <PluginLoader> | 28 | #include <PluginLoader> | ||
29 | 29 | | |||
30 | #include <KLocalizedString> | 30 | #include <KLocalizedString> | ||
31 | 31 | | |||
32 | BaseModel::BaseModel(QObject *parent) | ||||
33 | : QStandardItemModel(parent), | ||||
34 | m_showAllItems(false) | ||||
35 | { | ||||
36 | connect(this, &BaseModel::dataChanged, this, &BaseModel::onDataChanged); | ||||
37 | } | ||||
38 | | ||||
39 | QHash<int, QByteArray> BaseModel::roleNames() const | ||||
40 | { | ||||
41 | QHash<int, QByteArray> roles = QStandardItemModel::roleNames(); | ||||
42 | | ||||
43 | roles.insert(static_cast<int>(BaseRole::ItemType), QByteArrayLiteral("itemType")); | ||||
44 | roles.insert(static_cast<int>(BaseRole::ItemId), QByteArrayLiteral("itemId")); | ||||
45 | roles.insert(static_cast<int>(BaseRole::CanRender), QByteArrayLiteral("canRender")); | ||||
46 | roles.insert(static_cast<int>(BaseRole::Category), QByteArrayLiteral("category")); | ||||
47 | roles.insert(static_cast<int>(BaseRole::Status), QByteArrayLiteral("status")); | ||||
48 | roles.insert(static_cast<int>(BaseRole::EffectiveStatus), QByteArrayLiteral("effectiveStatus")); | ||||
49 | | ||||
50 | return roles; | ||||
51 | } | ||||
52 | | ||||
53 | void BaseModel::onConfigurationChanged(const KConfigGroup &config) | ||||
54 | { | ||||
55 | if (!config.isValid()) { | ||||
56 | return; | ||||
57 | } | ||||
58 | | ||||
59 | const KConfigGroup generalGroup = config.group("General"); | ||||
60 | | ||||
61 | m_showAllItems = generalGroup.readEntry("showAllItems", false); | ||||
62 | m_shownItems = generalGroup.readEntry("shownItems", QStringList()); | ||||
63 | m_hiddenItems = generalGroup.readEntry("hiddenItems", QStringList()); | ||||
64 | | ||||
65 | for (int i = 0; i < rowCount(); i++) { | ||||
66 | QStandardItem *dataItem = item(i); | ||||
67 | updateEffectiveStatus(dataItem); | ||||
68 | } | ||||
69 | } | ||||
70 | | ||||
71 | void BaseModel::onDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles) | ||||
72 | { | ||||
73 | if (roles.contains(static_cast<int>(BaseRole::Status)) || roles.contains(static_cast<int>(BaseRole::CanRender))) { | ||||
74 | for (int i = topLeft.row(); i <= bottomRight.row(); i++) { | ||||
75 | QStandardItem *dataItem = item(i); | ||||
76 | updateEffectiveStatus(dataItem); | ||||
77 | } | ||||
78 | } | ||||
79 | } | ||||
80 | | ||||
81 | void BaseModel::updateEffectiveStatus(QStandardItem *dataItem) | ||||
82 | { | ||||
83 | Plasma::Types::ItemStatus status = calculateEffectiveStatus(dataItem); | ||||
84 | dataItem->setData(status, static_cast<int>(BaseModel::BaseRole::EffectiveStatus)); | ||||
85 | } | ||||
86 | | ||||
87 | Plasma::Types::ItemStatus BaseModel::calculateEffectiveStatus(QStandardItem *dataItem) | ||||
88 | { | ||||
89 | bool canRender = dataItem->data(static_cast<int>(BaseRole::CanRender)).toBool(); | ||||
90 | if (!canRender) { | ||||
91 | return Plasma::Types::ItemStatus::HiddenStatus; | ||||
92 | } | ||||
93 | | ||||
94 | Plasma::Types::ItemStatus status = readStatus(dataItem); | ||||
95 | if (status == Plasma::Types::ItemStatus::HiddenStatus) { | ||||
96 | return Plasma::Types::ItemStatus::HiddenStatus; | ||||
97 | } | ||||
98 | | ||||
99 | QString itemId = dataItem->data(static_cast<int>(BaseRole::ItemId)).toString(); | ||||
100 | | ||||
101 | bool forcedShown = m_showAllItems || m_shownItems.contains(itemId); | ||||
102 | bool forcedHidden = m_hiddenItems.contains(itemId); | ||||
103 | | ||||
104 | if (forcedShown || (!forcedHidden && status != Plasma::Types::ItemStatus::PassiveStatus)) { | ||||
105 | return Plasma::Types::ItemStatus::ActiveStatus; | ||||
106 | } else { | ||||
107 | return Plasma::Types::ItemStatus::PassiveStatus; | ||||
108 | } | ||||
109 | } | ||||
110 | | ||||
111 | Plasma::Types::ItemStatus BaseModel::readStatus(QStandardItem *dataItem) const | ||||
112 | { | ||||
113 | QVariant statusData = dataItem->data(static_cast<int>(BaseRole::Status)); | ||||
114 | if (statusData.isValid()) { | ||||
115 | return statusData.value<Plasma::Types::ItemStatus>(); | ||||
116 | } else { | ||||
117 | return Plasma::Types::ItemStatus::UnknownStatus; | ||||
118 | } | ||||
119 | } | ||||
120 | | ||||
121 | // temporary hack to fix known broken categories | ||||
122 | // should go away as soon as fixes are merged | ||||
123 | static const QHash<QString, QString> s_categoryOverride = { | ||||
124 | {QStringLiteral("org.kde.discovernotifier"), QStringLiteral("SystemServices")}, | ||||
125 | {QStringLiteral("org.kde.plasma.networkmanagement"), QStringLiteral("Hardware")}, | ||||
126 | {QStringLiteral("org.kde.kdeconnect"), QStringLiteral("Hardware")}, | ||||
127 | {QStringLiteral("org.kde.plasma.keyboardindicator"), QStringLiteral("Hardware")}, | ||||
128 | {QStringLiteral("touchpad"), QStringLiteral("Hardware")} | ||||
129 | }; | ||||
130 | | ||||
32 | static QString plasmoidCategoryForMetadata(const KPluginMetaData &metadata) | 131 | static QString plasmoidCategoryForMetadata(const KPluginMetaData &metadata) | ||
33 | { | 132 | { | ||
34 | QString category = QStringLiteral("UnknownCategory"); | 133 | QString category = QStringLiteral("UnknownCategory"); | ||
35 | 134 | | |||
36 | if (metadata.isValid()) { | 135 | if (metadata.isValid()) { | ||
136 | if (s_categoryOverride.contains(metadata.pluginId())) { | ||||
137 | return s_categoryOverride.value(metadata.pluginId()); | ||||
138 | } | ||||
139 | | ||||
37 | const QString notificationAreaCategory = metadata.value(QStringLiteral("X-Plasma-NotificationAreaCategory")); | 140 | const QString notificationAreaCategory = metadata.value(QStringLiteral("X-Plasma-NotificationAreaCategory")); | ||
38 | if (!notificationAreaCategory.isEmpty()) { | 141 | if (!notificationAreaCategory.isEmpty()) { | ||
39 | category = notificationAreaCategory; | 142 | category = notificationAreaCategory; | ||
40 | } | 143 | } | ||
41 | } | 144 | } | ||
42 | 145 | | |||
43 | return category; | 146 | return category; | ||
44 | } | 147 | } | ||
45 | 148 | | |||
46 | PlasmoidModel::PlasmoidModel(QObject *parent) : QStandardItemModel(parent) | 149 | PlasmoidModel::PlasmoidModel(QObject *parent) : BaseModel(parent) | ||
47 | { | 150 | { | ||
48 | for (const auto &info : Plasma::PluginLoader::self()->listAppletMetaData(QString())) { | 151 | for (const auto &info : Plasma::PluginLoader::self()->listAppletMetaData(QString())) { | ||
49 | if (!info.isValid() || info.value(QStringLiteral("X-Plasma-NotificationArea")) != "true") { | 152 | if (!info.isValid() || info.value(QStringLiteral("X-Plasma-NotificationArea")) != "true") { | ||
50 | continue; | 153 | continue; | ||
51 | } | 154 | } | ||
52 | 155 | | |||
53 | QString name = info.name(); | 156 | QString name = info.name(); | ||
54 | const QString dbusactivation = | 157 | const QString dbusactivation = | ||
55 | info.rawData().value(QStringLiteral("X-Plasma-DBusActivationService")).toString(); | 158 | info.rawData().value(QStringLiteral("X-Plasma-DBusActivationService")).toString(); | ||
56 | 159 | | |||
57 | if (!dbusactivation.isEmpty()) { | 160 | if (!dbusactivation.isEmpty()) { | ||
58 | name += i18n(" (Automatic load)"); | 161 | name += i18n(" (Automatic load)"); | ||
59 | } | 162 | } | ||
60 | QStandardItem *item = new QStandardItem(QIcon::fromTheme(info.iconName()), name); | 163 | QStandardItem *item = new QStandardItem(QIcon::fromTheme(info.iconName()), name); | ||
61 | item->setData(info.pluginId(), static_cast<int>(BaseRole::ItemId)); | 164 | item->setData(info.pluginId(), static_cast<int>(BaseModel::BaseRole::ItemId)); | ||
62 | item->setData(QStringLiteral("Plasmoid"), static_cast<int>(BaseRole::ItemType)); | 165 | item->setData(QStringLiteral("Plasmoid"), static_cast<int>(BaseModel::BaseRole::ItemType)); | ||
63 | item->setData(false, static_cast<int>(BaseRole::CanRender)); | 166 | item->setData(false, static_cast<int>(BaseModel::BaseRole::CanRender)); | ||
64 | item->setData(plasmoidCategoryForMetadata(info), static_cast<int>(BaseRole::Category)); | 167 | item->setData(plasmoidCategoryForMetadata(info), static_cast<int>(BaseModel::BaseRole::Category)); | ||
65 | item->setData(false, static_cast<int>(Role::HasApplet)); | 168 | item->setData(false, static_cast<int>(Role::HasApplet)); | ||
66 | appendRow(item); | 169 | appendRow(item); | ||
67 | } | 170 | } | ||
68 | sort(0); | | |||
69 | } | 171 | } | ||
70 | 172 | | |||
71 | QHash<int, QByteArray> PlasmoidModel::roleNames() const | 173 | QHash<int, QByteArray> PlasmoidModel::roleNames() const | ||
72 | { | 174 | { | ||
73 | QHash<int, QByteArray> roles = QStandardItemModel::roleNames(); | 175 | QHash<int, QByteArray> roles = BaseModel::roleNames(); | ||
74 | | ||||
75 | roles.insert(static_cast<int>(BaseRole::ItemType), QByteArrayLiteral("itemType")); | | |||
76 | roles.insert(static_cast<int>(BaseRole::ItemId), QByteArrayLiteral("itemId")); | | |||
77 | roles.insert(static_cast<int>(BaseRole::CanRender), QByteArrayLiteral("canRender")); | | |||
78 | roles.insert(static_cast<int>(BaseRole::Category), QByteArrayLiteral("category")); | | |||
79 | 176 | | |||
80 | roles.insert(static_cast<int>(Role::Applet), QByteArrayLiteral("applet")); | 177 | roles.insert(static_cast<int>(Role::Applet), QByteArrayLiteral("applet")); | ||
81 | roles.insert(static_cast<int>(Role::HasApplet), QByteArrayLiteral("hasApplet")); | 178 | roles.insert(static_cast<int>(Role::HasApplet), QByteArrayLiteral("hasApplet")); | ||
82 | 179 | | |||
83 | return roles; | 180 | return roles; | ||
84 | } | 181 | } | ||
85 | 182 | | |||
86 | void PlasmoidModel::addApplet(Plasma::Applet *applet) | 183 | void PlasmoidModel::addApplet(Plasma::Applet *applet) | ||
87 | { | 184 | { | ||
88 | auto info = applet->pluginMetaData(); | 185 | auto pluginMetaData = applet->pluginMetaData(); | ||
89 | QStandardItem *dataItem = nullptr; | 186 | QStandardItem *dataItem = nullptr; | ||
90 | for (int i = 0; i < rowCount(); i++) { | 187 | for (int i = 0; i < rowCount(); i++) { | ||
91 | QStandardItem *currentItem = item(i); | 188 | QStandardItem *currentItem = item(i); | ||
92 | if (currentItem->data(static_cast<int>(BaseRole::ItemId)) == info.pluginId()) { | 189 | if (currentItem->data(static_cast<int>(BaseModel::BaseRole::ItemId)) == pluginMetaData.pluginId()) { | ||
93 | dataItem = currentItem; | 190 | dataItem = currentItem; | ||
94 | break; | 191 | break; | ||
95 | } | 192 | } | ||
96 | } | 193 | } | ||
97 | 194 | | |||
98 | if (!dataItem) { | 195 | if (!dataItem) { | ||
99 | dataItem = new QStandardItem(QIcon::fromTheme(info.iconName()), info.name()); | 196 | dataItem = new QStandardItem(); | ||
100 | appendRow(dataItem); | 197 | appendRow(dataItem); | ||
101 | } | 198 | } | ||
102 | 199 | | |||
103 | dataItem->setData(info.pluginId(), static_cast<int>(BaseRole::ItemId)); | 200 | dataItem->setData(applet->title(), Qt::DisplayRole); | ||
201 | connect(applet, &Plasma::Applet::titleChanged, this, [dataItem] (const QString &title) { | ||||
202 | dataItem->setData(title, static_cast<int>(Qt::DisplayRole)); | ||||
203 | }); | ||||
204 | dataItem->setData(QIcon::fromTheme(applet->icon()), Qt::DecorationRole); | ||||
205 | connect(applet, &Plasma::Applet::iconChanged, this, [dataItem] (const QString &icon) { | ||||
206 | dataItem->setData(QIcon::fromTheme(icon), Qt::DecorationRole); | ||||
207 | }); | ||||
208 | | ||||
209 | dataItem->setData(pluginMetaData.pluginId(), static_cast<int>(BaseModel::BaseRole::ItemId)); | ||||
210 | dataItem->setData(true, static_cast<int>(BaseModel::BaseRole::CanRender)); | ||||
211 | dataItem->setData(plasmoidCategoryForMetadata(pluginMetaData), static_cast<int>(BaseModel::BaseRole::Category)); | ||||
212 | dataItem->setData(applet->status(), static_cast<int>(BaseModel::BaseRole::Status)); | ||||
213 | connect(applet, &Plasma::Applet::statusChanged, this, [dataItem] (Plasma::Types::ItemStatus status) { | ||||
214 | dataItem->setData(status, static_cast<int>(BaseModel::BaseRole::Status)); | ||||
215 | }); | ||||
216 | | ||||
104 | dataItem->setData(applet->property("_plasma_graphicObject"), static_cast<int>(Role::Applet)); | 217 | dataItem->setData(applet->property("_plasma_graphicObject"), static_cast<int>(Role::Applet)); | ||
105 | dataItem->setData(true, static_cast<int>(Role::HasApplet)); | 218 | dataItem->setData(true, static_cast<int>(Role::HasApplet)); | ||
106 | dataItem->setData(true, static_cast<int>(BaseRole::CanRender)); | | |||
107 | dataItem->setData(plasmoidCategoryForMetadata(applet->pluginMetaData()), static_cast<int>(BaseRole::Category)); | | |||
108 | } | 219 | } | ||
109 | 220 | | |||
110 | void PlasmoidModel::removeApplet(Plasma::Applet *applet) | 221 | void PlasmoidModel::removeApplet(Plasma::Applet *applet) | ||
111 | { | 222 | { | ||
112 | int rows = rowCount(); | 223 | int rows = rowCount(); | ||
113 | for (int i = 0; i < rows; i++) { | 224 | for (int i = 0; i < rows; i++) { | ||
114 | QStandardItem *currentItem = item(i); | 225 | QStandardItem *currentItem = item(i); | ||
115 | QVariant plugin = currentItem->data(static_cast<int>(BaseRole::ItemId)); | 226 | QVariant plugin = currentItem->data(static_cast<int>(BaseModel::BaseRole::ItemId)); | ||
116 | if (plugin.isValid() && plugin.value<QString>() == applet->pluginMetaData().pluginId()) { | 227 | if (plugin.isValid() && plugin.value<QString>() == applet->pluginMetaData().pluginId()) { | ||
117 | currentItem->setData(false, static_cast<int>(BaseRole::CanRender)); | 228 | currentItem->setData(false, static_cast<int>(BaseModel::BaseRole::CanRender)); | ||
118 | currentItem->setData(QVariant(), static_cast<int>(Role::Applet)); | 229 | currentItem->setData(QVariant(), static_cast<int>(Role::Applet)); | ||
119 | currentItem->setData(false, static_cast<int>(Role::HasApplet)); | 230 | currentItem->setData(false, static_cast<int>(Role::HasApplet)); | ||
120 | return; | 231 | return; | ||
121 | } | 232 | } | ||
122 | } | 233 | } | ||
123 | } | 234 | } | ||
124 | 235 | | |||
125 | StatusNotifierModel::StatusNotifierModel(QObject *parent) : QStandardItemModel(parent) | 236 | StatusNotifierModel::StatusNotifierModel(QObject *parent) : BaseModel(parent) | ||
126 | { | 237 | { | ||
127 | m_dataEngine = dataEngine(QStringLiteral("statusnotifieritem")); | 238 | m_dataEngine = dataEngine(QStringLiteral("statusnotifieritem")); | ||
128 | 239 | | |||
129 | connect(m_dataEngine, &Plasma::DataEngine::sourceAdded, this, &StatusNotifierModel::addSource); | 240 | connect(m_dataEngine, &Plasma::DataEngine::sourceAdded, this, &StatusNotifierModel::addSource); | ||
130 | connect(m_dataEngine, &Plasma::DataEngine::sourceRemoved, this, &StatusNotifierModel::removeSource); | 241 | connect(m_dataEngine, &Plasma::DataEngine::sourceRemoved, this, &StatusNotifierModel::removeSource); | ||
131 | 242 | | |||
132 | m_dataEngine->connectAllSources(this); | 243 | m_dataEngine->connectAllSources(this); | ||
133 | } | 244 | } | ||
134 | 245 | | |||
135 | QHash<int, QByteArray> StatusNotifierModel::roleNames() const | 246 | QHash<int, QByteArray> StatusNotifierModel::roleNames() const | ||
136 | { | 247 | { | ||
137 | QHash<int, QByteArray> roles = QStandardItemModel::roleNames(); | 248 | QHash<int, QByteArray> roles = BaseModel::roleNames(); | ||
138 | | ||||
139 | roles.insert(static_cast<int>(BaseRole::ItemType), QByteArrayLiteral("itemType")); | | |||
140 | roles.insert(static_cast<int>(BaseRole::ItemId), QByteArrayLiteral("itemId")); | | |||
141 | roles.insert(static_cast<int>(BaseRole::CanRender), QByteArrayLiteral("canRender")); | | |||
142 | roles.insert(static_cast<int>(BaseRole::Category), QByteArrayLiteral("category")); | | |||
143 | 249 | | |||
144 | roles.insert(static_cast<int>(Role::DataEngineSource), QByteArrayLiteral("DataEngineSource")); | 250 | roles.insert(static_cast<int>(Role::DataEngineSource), QByteArrayLiteral("DataEngineSource")); | ||
145 | roles.insert(static_cast<int>(Role::AttentionIcon), QByteArrayLiteral("AttentionIcon")); | 251 | roles.insert(static_cast<int>(Role::AttentionIcon), QByteArrayLiteral("AttentionIcon")); | ||
146 | roles.insert(static_cast<int>(Role::AttentionIconName), QByteArrayLiteral("AttentionIconName")); | 252 | roles.insert(static_cast<int>(Role::AttentionIconName), QByteArrayLiteral("AttentionIconName")); | ||
147 | roles.insert(static_cast<int>(Role::AttentionMovieName), QByteArrayLiteral("AttentionMovieName")); | 253 | roles.insert(static_cast<int>(Role::AttentionMovieName), QByteArrayLiteral("AttentionMovieName")); | ||
148 | roles.insert(static_cast<int>(Role::Category), QByteArrayLiteral("Category")); | 254 | roles.insert(static_cast<int>(Role::Category), QByteArrayLiteral("Category")); | ||
149 | roles.insert(static_cast<int>(Role::Icon), QByteArrayLiteral("Icon")); | 255 | roles.insert(static_cast<int>(Role::Icon), QByteArrayLiteral("Icon")); | ||
150 | roles.insert(static_cast<int>(Role::IconName), QByteArrayLiteral("IconName")); | 256 | roles.insert(static_cast<int>(Role::IconName), QByteArrayLiteral("IconName")); | ||
▲ Show 20 Lines • Show All 51 Lines • ▼ Show 20 Line(s) | |||||
202 | 308 | | |||
203 | void StatusNotifierModel::dataUpdated(const QString &sourceName, const Plasma::DataEngine::Data &data) | 309 | void StatusNotifierModel::dataUpdated(const QString &sourceName, const Plasma::DataEngine::Data &data) | ||
204 | { | 310 | { | ||
205 | QStandardItem *dataItem; | 311 | QStandardItem *dataItem; | ||
206 | if (m_sources.contains(sourceName)) { | 312 | if (m_sources.contains(sourceName)) { | ||
207 | dataItem = item(m_sources.indexOf(sourceName)); | 313 | dataItem = item(m_sources.indexOf(sourceName)); | ||
208 | } else { | 314 | } else { | ||
209 | dataItem = new QStandardItem(); | 315 | dataItem = new QStandardItem(); | ||
210 | dataItem->setData(QStringLiteral("StatusNotifier"), static_cast<int>(BaseRole::ItemType)); | 316 | dataItem->setData(QStringLiteral("StatusNotifier"), static_cast<int>(BaseModel::BaseRole::ItemType)); | ||
211 | dataItem->setData(true, static_cast<int>(BaseRole::CanRender)); | 317 | dataItem->setData(true, static_cast<int>(BaseModel::BaseRole::CanRender)); | ||
212 | } | 318 | } | ||
213 | 319 | | |||
214 | dataItem->setData(data.value("Title"), Qt::DisplayRole); | 320 | dataItem->setData(data.value("Title"), Qt::DisplayRole); | ||
215 | QVariant icon = data.value("Icon"); | 321 | QVariant icon = data.value("Icon"); | ||
216 | if (icon.isValid() && icon.canConvert<QIcon>() && !icon.value<QIcon>().isNull()) { | 322 | if (icon.isValid() && icon.canConvert<QIcon>() && !icon.value<QIcon>().isNull()) { | ||
217 | dataItem->setData(icon, Qt::DecorationRole); | 323 | dataItem->setData(icon, Qt::DecorationRole); | ||
218 | } else { | 324 | } else { | ||
219 | dataItem->setData(data.value("IconName"), Qt::DecorationRole); | 325 | dataItem->setData(data.value("IconName"), Qt::DecorationRole); | ||
220 | } | 326 | } | ||
221 | 327 | | |||
222 | dataItem->setData(data.value("Id"), static_cast<int>(BaseRole::ItemId)); | 328 | dataItem->setData(data.value("Id"), static_cast<int>(BaseModel::BaseRole::ItemId)); | ||
223 | dataItem->setData(data.value("Category"), static_cast<int>(BaseRole::Category)); | 329 | QVariant category = data.value("Category"); | ||
330 | dataItem->setData(category.isNull() ? QStringLiteral("UnknownCategory") : data.value("Category"), static_cast<int>(BaseModel::BaseRole::Category)); | ||||
331 | | ||||
332 | QString status = data.value("Status").toString(); | ||||
333 | if (status == QLatin1String("Active")) { | ||||
334 | dataItem->setData(Plasma::Types::ItemStatus::ActiveStatus, static_cast<int>(BaseModel::BaseRole::Status)); | ||||
335 | } else if (status == QLatin1String("NeedsAttention")) { | ||||
336 | dataItem->setData(Plasma::Types::ItemStatus::NeedsAttentionStatus, static_cast<int>(BaseModel::BaseRole::Status)); | ||||
337 | } else { | ||||
338 | dataItem->setData(Plasma::Types::ItemStatus::PassiveStatus, static_cast<int>(BaseModel::BaseRole::Status)); | ||||
339 | } | ||||
224 | 340 | | |||
225 | dataItem->setData(sourceName, static_cast<int>(Role::DataEngineSource)); | 341 | dataItem->setData(sourceName, static_cast<int>(Role::DataEngineSource)); | ||
226 | updateItemData(dataItem, data, Role::AttentionIcon); | 342 | updateItemData(dataItem, data, Role::AttentionIcon); | ||
227 | updateItemData(dataItem, data, Role::AttentionIconName); | 343 | updateItemData(dataItem, data, Role::AttentionIconName); | ||
228 | updateItemData(dataItem, data, Role::AttentionMovieName); | 344 | updateItemData(dataItem, data, Role::AttentionMovieName); | ||
229 | updateItemData(dataItem, data, Role::Category); | 345 | updateItemData(dataItem, data, Role::Category); | ||
230 | updateItemData(dataItem, data, Role::Icon); | 346 | updateItemData(dataItem, data, Role::Icon); | ||
231 | updateItemData(dataItem, data, Role::IconName); | 347 | updateItemData(dataItem, data, Role::IconName); | ||
▲ Show 20 Lines • Show All 51 Lines • Show Last 20 Lines |