yo chaps, situation of the new systemtry protocol stuff... it basically works, also the client library that is in playground/base/plasma/libknotificationicon and supports all it was on the whiteboard :p there are however still some issues that must be cleared. this mail talks just about the client library, the systray plasmoid part in a future moment, to not make even more confusion :D.
there are two classes, knotificationicon that i did mostly just to see if the ksystemtrayicon api was remotely useful for what we need and kdbussystemtrayicon that is the actual working thing where i didn't look the old api that much.. so: the ksystemtrayicon api is not really adapt for several reasons: -setMovie() we are on dbus now, sending the binary data is already expensive enough -geometry() a thing that is purposefully removed from the spec, i.e the app shouldn't know nothing about the real graphical representation -icon/setIcon(): now there are two kinds, setIconName, the preferred way, in this case the real icon loading will be done by the systray with KIcon() and setIconPixmap, that sets an actual pixmap and sends over dbus the bytearray representation of the corresponding qimage (yeah, really expensive) so even setIcon(QIcon) isn't really an option (yeah, the different sizes could even be somehow serialized, but oh boy...) -loadIcon: made pretty much useless by setIconName -setToolTip: it's a simple string, so has to be replaced with several functions settooltiptitle/subtitle/icon -parentWidgetTrayClose apart from the fact that i still didn't get exactly what the thing does is perhaps a thing a bit too specialized for the current systemtray implementation? -setContextMenuTitle: seems an implementation detail not really useful? the contextmenu is accessible anyways... Things that i'm thinking about to implement: -parentWidget and actionCollection, again implementation details that i wonder if they are really useful -showMessage a shortcut for knotify? does really belongs here? probably the pplication should just use knotify... A problem i'm having is the contextmenu placement, right now the applet asks the contextMenu(x,y) function asking coordinates, but it gets a bit misplaced (i suppose because the menu can't have a proper parent widget positioned where the systray icon is) so something else would be needed? only the applet knows how to position the context menu correctly, so i tought about making the function contextMenu with no parameters and returning the window id of the menu (ouch!) so the applet can manually reposition the thing.. is it too ugly? after defining those points i think ill rename the thing again to libknotificationicon and could be tought about moving the thing out of playground (for 4.3 still not to kdelibs? workspace or runtime for a limited testing perhaps?) What do you think? Cheers, Marco Martin _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel