Signals and slots for containment show and hide actions (mainly for panels)

Emdek emdeck at gmail.com
Tue Mar 31 18:37:55 CEST 2009


> one thought i've had is to subclass it and provide a custom
> showPopup/hidePopup that takes the view() and positions is using
> Applet::popupPosition
>
> still wouldn't get proper context menus on the line edit, but at least  
> the
> combobox would work :)

Thanks for suggestion, I'll try to look also into KHistoryComboBox sources, maybe I'll find something interesting here.
But there is still problem with focus of editable fields, at least in panels when there are visible windows.
I've noticed it also in my other plasmoid (Spell Check) that uses dialog for displaying text edit etc.
I was trying to use something like this:

	m_textEdit->setFocus();

Maybe problem comes from Qt::NoFocus focus flag for dialog?
Or maybe Plasma can't be active window (isn't it required for giving focus for children?) when there are other not iconified windows? I've noticed problems that could come from that when I was working on task manager and I was trying to check if window is active.

And one small thing, I've noticed bug in example of usage Plasma::ToolTipManager in docs (it will work only when using methods). Is there maybe better place for reporting such as small bugs?

Sorry for next off topic, but these problems are so small that additional message only for them doesn't make much sense. ;-)



> playground is open for anyone to put whatever they are working on in  
> there.
> you don't need to ask anyone permission. the only real requirement is  
> that
> stuff in playground/base/plasma is plasma related and builds. :)

Ok, thanks. :-)



> look at the frame plasmoid perhaps. and maybe you could write a small  
> tutorial
> on techbase with what you've found?

As far as I remember I've checked this plasmoid then (probably here I've found needed entries in .desktop file), also I was looking in sources of video player from playground. I'll check them again soon.

I could try with tutorial but then someone should review it, because as can you see my English is not perfect. ;-)



> these kinds of hacks become permanent very easily. it's best to not let  
> them
> in at all, and we certainly can't make changes to libplasma's public api  
> for
> temporary hacks as that api must remain BC and hopefully clean.

Yes, of course, it is easy to forget about them or be too lazy to fix them when it becomes possible (or overlook upstream changes).



> i know the feeling :)

;-)



>> there possibility to restrict (disallow placing or show warning) usage  
>> of
>> applet to given type of containment / view?
>
> no, and that's purposeful. the last thing we want are objects that only  
> work
> in some places, because not only is that counter to the design goal of
> "widgets that work everywhere" but as a plasmoid author you have no idea  
> what
> containment might appear next. it's a way of keeping the details of the
> outside world away from plasmoids so that they aren't full of odd work  
> arounds
> and limitations.

Ok, I see the point. Anyway, I think that if for example applet is not meant for use in panel like containments it could check formFactor() and location() and show warning to user etc. 



> you've got some interesting ideas here that you should try experimenting  
> with
> to see how they look and feel.
>
> the plasmoid approach breaches the barrier between widget, containment  
> and
> view so probably isn't workable, but what you describe here should be  
> doable
> all within PanelView in workspace/plasma/shells/desktop/ ...

Right, I could do some research later. I'm thinking in general about experiments with alternative panel (trying to add some functionality requested by users and possibly working on alternative configuration interface) and this could include experiments with manual hiding. But before that I would like to finish work on some of my applets.

And again about thread with suggestions for shortcuts, I need to check better current possibilities in 4.2 (to not suggest something that could be already achieved ;-)) and then I'll start new thread.





More information about the Plasma-devel mailing list