Hello,

while creating a Plasmoid I was wondering why my subtitles in a QTreeView rendered with Plasma::Delegate were not shown at all (and SubTitleMandatory ignored). After some digging in kdelibs/plasma/delegate.cpp I realized that the specific roles for Plasma::Delegate are not initialized on object creation - the map stays empty and QMap returns 0 when being used on non-existing keys. I did not use any own roles so far, so I did not remap the roles of Plasma::Delegate via setRoleMapping().

Within the official plasmoids that use Plasma::Delegate, the roles are set to other roles always, so this problem never occurs. Since this usage is quite common, I'm not sure whether you consider it a bug. If not, it would be nice to have a note in the API reference to always set the roles explicitly. If yes, I attached a trivial patch to just set the three roles in the constructor.

Cheers,
Philipp Schmidt


----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

--- delegate.cpp        2009-08-23 02:13:17.000000000 +0200
+++ delegate.cpp        2009-08-23 02:22:22.000000000 +0200
@@ -149,6 +149,10 @@ Delegate::Delegate(QObject *parent)
     d->svg = new FrameSvg(this);
     d->svg->setImagePath("widgets/viewitem");
     d->svg->setElementPrefix("hover");
+
+    setRoleMapping(SubTitleRole, SubTitleRole);
+    setRoleMapping(ColumnTypeRole, ColumnTypeRole);
+    setRoleMapping(SubTitleMandatoryRole, SubTitleMandatoryRole);
 }
 
 Delegate::~Delegate()
_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to