On Thursday, October 27, 2011 23:35:52 Andriy Rysin wrote: > I did a quick research and I see two ways to solve this in > keyboard_layout_widget (embedded component used in lockdlg): > 1) link plasma libs and do something like (in pseudo-code) > foreach(containment, new Corona()->containments()) { > foreach(applet, containment->applets()) { > if( applet->pluginName() == "..." ) { > // show indicator > } > } > }
that won't work out of the plasma-desktop process, so this isn't an option for you. > 2) make keyboard layout applet exposes some dbus to make it detectable > when running (feels a bit too "heavy") that would be a preferred way ... note, however, that one can have multiple instances of the same applet. this is why we really recommend and encourage a separation between visualization and business logic, where the various visualizations (e.g. applets, tray icons, etc) all share the same business logic code (e.g. a DataEngine) which can then take care of things like registering a unique dbus interface. > It felt like there must be a way currently to use dbus on plasma to > query running applets (which would the easiest way to implement what I > need) nobody has written such a thing, nor do i think it would be as easy as one may think to use as a widget may be running not in plasma-desktop but in plasma- netbook, plasma-active, plasma-windowed, etc. and it may be in any number of running containments. it is much easier and safer to simply expose a dbus service from your DataEngine, or whatever the DataEngine uses to get keyboard information from, than any other approach. it guarantees it works with multiple widgets and doesn't care which shell the user is running. in this particular case, why don't you just check the keyboard layout settings to see if more than one keyboard layout is active? does it matter that there is or isn't a keyboard layout switcher applet or icon? note that in plasma active, it is very likely that this functionality will end up integrated into the virtual keyboard and not reside as a separate applet in the containments running in plasma-active ... -- Aaron J. Seigo humru othro a kohnu se GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA EE75 D6B7 2EB1 A7F1 DB43 KDE core developer sponsored by Qt Development Frameworks
signature.asc
Description: This is a digitally signed message part.