diff --git a/applets/systemtray/package/contents/ui/items/ItemLoader.qml b/applets/systemtray/package/contents/ui/items/ItemLoader.qml --- a/applets/systemtray/package/contents/ui/items/ItemLoader.qml +++ b/applets/systemtray/package/contents/ui/items/ItemLoader.qml @@ -30,6 +30,7 @@ } else if (model.itemType === "StatusNotifier") { return "StatusNotifierItem.qml" } + console.warn("ItemLoader: Illegal State! Cannot determine source!") return "" } } diff --git a/applets/systemtray/package/contents/ui/main.qml b/applets/systemtray/package/contents/ui/main.qml --- a/applets/systemtray/package/contents/ui/main.qml +++ b/applets/systemtray/package/contents/ui/main.qml @@ -88,8 +88,8 @@ Connections { target: plasmoid.configuration - function onExtraItemsChanged(extraItems) { - plasmoid.nativeInterface.allowedPlasmoids = extraItems + function onExtraItemsChanged() { + plasmoid.nativeInterface.allowedPlasmoids = plasmoid.configuration.extraItems } } diff --git a/applets/systemtray/systemtraymodel.cpp b/applets/systemtray/systemtraymodel.cpp --- a/applets/systemtray/systemtraymodel.cpp +++ b/applets/systemtray/systemtraymodel.cpp @@ -206,15 +206,17 @@ }); dataItem->setData(pluginMetaData.pluginId(), static_cast(BaseModel::BaseRole::ItemId)); - dataItem->setData(true, static_cast(BaseModel::BaseRole::CanRender)); dataItem->setData(plasmoidCategoryForMetadata(pluginMetaData), static_cast(BaseModel::BaseRole::Category)); dataItem->setData(applet->status(), static_cast(BaseModel::BaseRole::Status)); connect(applet, &Plasma::Applet::statusChanged, this, [dataItem] (Plasma::Types::ItemStatus status) { dataItem->setData(status, static_cast(BaseModel::BaseRole::Status)); }); dataItem->setData(applet->property("_plasma_graphicObject"), static_cast(Role::Applet)); dataItem->setData(true, static_cast(Role::HasApplet)); + + // CanRender has to be the last one + dataItem->setData(true, static_cast(BaseModel::BaseRole::CanRender)); } void PlasmoidModel::removeApplet(Plasma::Applet *applet)