Changeset View
Changeset View
Standalone View
Standalone View
applets/systemtray/systemtraymodel.cpp
Show First 20 Lines • Show All 244 Lines • ▼ Show 20 Line(s) | 239 | { | |||
---|---|---|---|---|---|
245 | m_dataEngine->connectAllSources(this); | 245 | m_dataEngine->connectAllSources(this); | ||
246 | } | 246 | } | ||
247 | 247 | | |||
248 | QHash<int, QByteArray> StatusNotifierModel::roleNames() const | 248 | QHash<int, QByteArray> StatusNotifierModel::roleNames() const | ||
249 | { | 249 | { | ||
250 | QHash<int, QByteArray> roles = BaseModel::roleNames(); | 250 | QHash<int, QByteArray> roles = BaseModel::roleNames(); | ||
251 | 251 | | |||
252 | roles.insert(static_cast<int>(Role::DataEngineSource), QByteArrayLiteral("DataEngineSource")); | 252 | roles.insert(static_cast<int>(Role::DataEngineSource), QByteArrayLiteral("DataEngineSource")); | ||
253 | roles.insert(static_cast<int>(Role::AttentionIcon), QByteArrayLiteral("AttentionIcon")); | | |||
254 | roles.insert(static_cast<int>(Role::AttentionIconName), QByteArrayLiteral("AttentionIconName")); | 253 | roles.insert(static_cast<int>(Role::AttentionIconName), QByteArrayLiteral("AttentionIconName")); | ||
254 | roles.insert(static_cast<int>(Role::AttentionIconPixmap), QByteArrayLiteral("AttentionIconPixmap")); | ||||
255 | roles.insert(static_cast<int>(Role::AttentionMovieName), QByteArrayLiteral("AttentionMovieName")); | 255 | roles.insert(static_cast<int>(Role::AttentionMovieName), QByteArrayLiteral("AttentionMovieName")); | ||
256 | roles.insert(static_cast<int>(Role::Category), QByteArrayLiteral("Category")); | 256 | roles.insert(static_cast<int>(Role::Category), QByteArrayLiteral("Category")); | ||
257 | roles.insert(static_cast<int>(Role::Icon), QByteArrayLiteral("Icon")); | | |||
258 | roles.insert(static_cast<int>(Role::IconName), QByteArrayLiteral("IconName")); | 257 | roles.insert(static_cast<int>(Role::IconName), QByteArrayLiteral("IconName")); | ||
258 | roles.insert(static_cast<int>(Role::IconPixmap), QByteArrayLiteral("IconPixmap")); | ||||
259 | roles.insert(static_cast<int>(Role::IconThemePath), QByteArrayLiteral("IconThemePath")); | 259 | roles.insert(static_cast<int>(Role::IconThemePath), QByteArrayLiteral("IconThemePath")); | ||
260 | roles.insert(static_cast<int>(Role::IconsChanged), QByteArrayLiteral("IconsChanged")); | 260 | roles.insert(static_cast<int>(Role::IconsChanged), QByteArrayLiteral("IconsChanged")); | ||
261 | roles.insert(static_cast<int>(Role::Id), QByteArrayLiteral("Id")); | 261 | roles.insert(static_cast<int>(Role::Id), QByteArrayLiteral("Id")); | ||
262 | roles.insert(static_cast<int>(Role::ItemIsMenu), QByteArrayLiteral("ItemIsMenu")); | 262 | roles.insert(static_cast<int>(Role::ItemIsMenu), QByteArrayLiteral("ItemIsMenu")); | ||
263 | roles.insert(static_cast<int>(Role::OverlayIconName), QByteArrayLiteral("OverlayIconName")); | 263 | roles.insert(static_cast<int>(Role::OverlayIconName), QByteArrayLiteral("OverlayIconName")); | ||
264 | roles.insert(static_cast<int>(Role::OverlayIconPixmap), QByteArrayLiteral("OverlayIconPixmap")); | ||||
264 | roles.insert(static_cast<int>(Role::Status), QByteArrayLiteral("Status")); | 265 | roles.insert(static_cast<int>(Role::Status), QByteArrayLiteral("Status")); | ||
265 | roles.insert(static_cast<int>(Role::StatusChanged), QByteArrayLiteral("StatusChanged")); | 266 | roles.insert(static_cast<int>(Role::StatusChanged), QByteArrayLiteral("StatusChanged")); | ||
266 | roles.insert(static_cast<int>(Role::Title), QByteArrayLiteral("Title")); | 267 | roles.insert(static_cast<int>(Role::Title), QByteArrayLiteral("Title")); | ||
267 | roles.insert(static_cast<int>(Role::TitleChanged), QByteArrayLiteral("TitleChanged")); | 268 | roles.insert(static_cast<int>(Role::TitleChanged), QByteArrayLiteral("TitleChanged")); | ||
268 | roles.insert(static_cast<int>(Role::ToolTipChanged), QByteArrayLiteral("ToolTipChanged")); | 269 | roles.insert(static_cast<int>(Role::ToolTipChanged), QByteArrayLiteral("ToolTipChanged")); | ||
269 | roles.insert(static_cast<int>(Role::ToolTipSubTitle), QByteArrayLiteral("ToolTipSubTitle")); | 270 | roles.insert(static_cast<int>(Role::ToolTipSubTitle), QByteArrayLiteral("ToolTipSubTitle")); | ||
270 | roles.insert(static_cast<int>(Role::ToolTipTitle), QByteArrayLiteral("ToolTipTitle")); | 271 | roles.insert(static_cast<int>(Role::ToolTipTitle), QByteArrayLiteral("ToolTipTitle")); | ||
271 | roles.insert(static_cast<int>(Role::WindowId), QByteArrayLiteral("WindowId")); | 272 | roles.insert(static_cast<int>(Role::WindowId), QByteArrayLiteral("WindowId")); | ||
▲ Show 20 Lines • Show All 45 Lines • ▼ Show 20 Line(s) | 316 | } else { | |||
317 | dataItem->setData(QStringLiteral("StatusNotifier"), static_cast<int>(BaseModel::BaseRole::ItemType)); | 318 | dataItem->setData(QStringLiteral("StatusNotifier"), static_cast<int>(BaseModel::BaseRole::ItemType)); | ||
318 | dataItem->setData(true, static_cast<int>(BaseModel::BaseRole::CanRender)); | 319 | dataItem->setData(true, static_cast<int>(BaseModel::BaseRole::CanRender)); | ||
319 | } | 320 | } | ||
320 | 321 | | |||
321 | dataItem->setData(data.value("Title"), Qt::DisplayRole); | 322 | dataItem->setData(data.value("Title"), Qt::DisplayRole); | ||
322 | QVariant icon = data.value("Icon"); | 323 | QVariant icon = data.value("Icon"); | ||
323 | if (icon.isValid() && icon.canConvert<QIcon>() && !icon.value<QIcon>().isNull()) { | 324 | if (icon.isValid() && icon.canConvert<QIcon>() && !icon.value<QIcon>().isNull()) { | ||
324 | dataItem->setData(icon, Qt::DecorationRole); | 325 | dataItem->setData(icon, Qt::DecorationRole); | ||
325 | dataItem->setData(icon, static_cast<int>(Role::Icon)); | | |||
326 | } else { | 326 | } else { | ||
327 | dataItem->setData(data.value("IconName"), Qt::DecorationRole); | 327 | dataItem->setData(data.value("IconName"), Qt::DecorationRole); | ||
328 | dataItem->setData(QVariant(), static_cast<int>(Role::Icon)); | | |||
329 | } | 328 | } | ||
330 | 329 | | |||
331 | dataItem->setData(data.value("Id"), static_cast<int>(BaseModel::BaseRole::ItemId)); | 330 | dataItem->setData(data.value("Id"), static_cast<int>(BaseModel::BaseRole::ItemId)); | ||
332 | QVariant category = data.value("Category"); | 331 | QVariant category = data.value("Category"); | ||
333 | dataItem->setData(category.isNull() ? QStringLiteral("UnknownCategory") : data.value("Category"), static_cast<int>(BaseModel::BaseRole::Category)); | 332 | dataItem->setData(category.isNull() ? QStringLiteral("UnknownCategory") : data.value("Category"), static_cast<int>(BaseModel::BaseRole::Category)); | ||
334 | 333 | | |||
335 | QString status = data.value("Status").toString(); | 334 | QString status = data.value("Status").toString(); | ||
336 | if (status == QLatin1String("Active")) { | 335 | if (status == QLatin1String("Active")) { | ||
337 | dataItem->setData(Plasma::Types::ItemStatus::ActiveStatus, static_cast<int>(BaseModel::BaseRole::Status)); | 336 | dataItem->setData(Plasma::Types::ItemStatus::ActiveStatus, static_cast<int>(BaseModel::BaseRole::Status)); | ||
338 | } else if (status == QLatin1String("NeedsAttention")) { | 337 | } else if (status == QLatin1String("NeedsAttention")) { | ||
339 | dataItem->setData(Plasma::Types::ItemStatus::NeedsAttentionStatus, static_cast<int>(BaseModel::BaseRole::Status)); | 338 | dataItem->setData(Plasma::Types::ItemStatus::NeedsAttentionStatus, static_cast<int>(BaseModel::BaseRole::Status)); | ||
340 | } else { | 339 | } else { | ||
341 | dataItem->setData(Plasma::Types::ItemStatus::PassiveStatus, static_cast<int>(BaseModel::BaseRole::Status)); | 340 | dataItem->setData(Plasma::Types::ItemStatus::PassiveStatus, static_cast<int>(BaseModel::BaseRole::Status)); | ||
342 | } | 341 | } | ||
343 | 342 | | |||
344 | dataItem->setData(sourceName, static_cast<int>(Role::DataEngineSource)); | 343 | dataItem->setData(sourceName, static_cast<int>(Role::DataEngineSource)); | ||
345 | updateItemData(dataItem, data, Role::AttentionIcon); | | |||
346 | updateItemData(dataItem, data, Role::AttentionIconName); | 344 | updateItemData(dataItem, data, Role::AttentionIconName); | ||
345 | updateItemData(dataItem, data, Role::AttentionIconPixmap); | ||||
347 | updateItemData(dataItem, data, Role::AttentionMovieName); | 346 | updateItemData(dataItem, data, Role::AttentionMovieName); | ||
davidre: This works now, but I don't know how to manage the KIconLoader. The KIconEngines are managed by… | |||||
I don't like this idea. Now it is just a copy from one model to another without much of improvements - in fact now it complicates it even more. KIconLoader is already created in StatusNotifierItemSource, it has little justification to create another one in data layer. kmaterka: I don't like this idea. Now it is just a copy from one model to another without much of… | |||||
348 | updateItemData(dataItem, data, Role::Category); | 347 | updateItemData(dataItem, data, Role::Category); | ||
348 | updateItemData(dataItem, data, Role::IconPixmap); | ||||
349 | updateItemData(dataItem, data, Role::IconName); | 349 | updateItemData(dataItem, data, Role::IconName); | ||
350 | updateItemData(dataItem, data, Role::IconThemePath); | 350 | updateItemData(dataItem, data, Role::IconThemePath); | ||
351 | updateItemData(dataItem, data, Role::IconsChanged); | 351 | updateItemData(dataItem, data, Role::IconsChanged); | ||
352 | updateItemData(dataItem, data, Role::Id); | 352 | updateItemData(dataItem, data, Role::Id); | ||
353 | updateItemData(dataItem, data, Role::ItemIsMenu); | 353 | updateItemData(dataItem, data, Role::ItemIsMenu); | ||
354 | updateItemData(dataItem, data, Role::OverlayIconName); | 354 | updateItemData(dataItem, data, Role::OverlayIconName); | ||
Beside formatting (spaces, minor thing), I liked the logic before - the presentation layer decided what to render and how, model just provided data. kmaterka: Beside formatting (spaces, minor thing), I liked the logic before - the presentation layer… | |||||
355 | updateItemData(dataItem, data, Role::OverlayIconPixmap); | ||||
355 | updateItemData(dataItem, data, Role::Status); | 356 | updateItemData(dataItem, data, Role::Status); | ||
356 | updateItemData(dataItem, data, Role::StatusChanged); | 357 | updateItemData(dataItem, data, Role::StatusChanged); | ||
357 | updateItemData(dataItem, data, Role::Title); | 358 | updateItemData(dataItem, data, Role::Title); | ||
358 | updateItemData(dataItem, data, Role::TitleChanged); | 359 | updateItemData(dataItem, data, Role::TitleChanged); | ||
359 | updateItemData(dataItem, data, Role::ToolTipChanged); | 360 | updateItemData(dataItem, data, Role::ToolTipChanged); | ||
360 | updateItemData(dataItem, data, Role::ToolTipSubTitle); | 361 | updateItemData(dataItem, data, Role::ToolTipSubTitle); | ||
361 | updateItemData(dataItem, data, Role::ToolTipTitle); | 362 | updateItemData(dataItem, data, Role::ToolTipTitle); | ||
362 | updateItemData(dataItem, data, Role::WindowId); | 363 | updateItemData(dataItem, data, Role::WindowId); | ||
Show All 37 Lines |
This works now, but I don't know how to manage the KIconLoader. The KIconEngines are managed by QIcon (they take ownership of the engine). One idea would be to add it to the item maybe?