Please review: Virtual keyboard plasmoid - Plasmaboard

Björn Ruberg bjoern at ruberg-wegener.de
Tue Aug 4 00:44:03 CEST 2009


> > > * the tab key, when pressed, just keeps pressing tab over and over :)
> >
> > hmm, that's wanted I think. The key is repeated when you keep it pressed.
> > The key repeat rate is the same as you have it with your physical
> > keyboard.
>
> well, yes, as long as it's depressed ... but if i click-release, it should
> only tab once. if i click-hold it should keep tabbing. no?

I explain it better. Plasmaboard does nothing more than tell the X-Server, 
"key with code XX has been pressed". And it says "key with code XX has been 
released". That is all. What the X-Server does with that information it is out 
of my might. Dependung on its configuration keycode XX can create a tab or a 
whitespace. I cannot and don't want to control how many characters the X-
Server creates between the "press" and the "release". You see, I just want to 
say "not my fault" :)

Problem: I cannot reproduce your issue. And there is no reason why tab should 
behave differently than any other key. That's strange. So I would blame the 
configuration of your X-Server. 
To be honest, there are some strange things happening with plasmaboard. In 
eclipse (and only there) the backspace key is not working. I have no doubt 
why.

Probably the Xtest extension, which is used to simulate key presses, has bugs. 
Don't know, perhaps I find some solutions with more feedback in the future.

> > > * it'd be great if the keyboard modifier state was harmonized; e.g. if
> > > i press CAPS LOCK on my keyboard, it would set this on the virtual
> > > keyboard and vice versa. note that there is a "keystate" DataEngine
> > > that makes this all very easy and cross-platform (it has
> > > serviceForSource() which lets you modify the global state of modifiers)
> >
> > Should be doable with that engine. Did not thought that users may need
> > that. If you use plasmaboard, you have a touchscreen. If you have
> > touchscreen and type on plasmaboard, you don't want to use another
> > keyboard at the same time.
>
> the classic example are mobile devices like flip-phones or the N810. you
> have your on-screen keyboard until you flip open the hardware keyboard. it
> would be great to have the hardware keyboard appear in the same state as
> the software keyboard at that point. :)

Yeah, yeah, I have it on my toDo list. 

> > > what sort of popup are thinking of or wanting? if you can give me a
> > > mockup or a screenshot, i'm sure we can make it happen ;)
> >
> > Basically I need a simple QGraphicswidget which can be displayed fast.
> > (this will run on MIDs and Netvertibles, slow CPUs) It shall be plasma
> > themed. It should appear near to the button you pressed, must be drawn
> > above the keyboard, must be able to draw outside the sceneRect of the
> > keyboard and must be shown above anything else on the desktop.
> > Well, I didn't found a better solution than this missused tooltip I have
> > now. (The delay before it opens is bad for my use case)
>
> i *think* i know what you want, but i'm not 100% positive. could you do up
> a small mock-up? doesn't have to be pretty, just show exactly what you're
> wanting.
>
> what i'm thinking of based on your description is a simple Label with a
> solid background (rounded corners, though, of course ;) with the text in
> the middle of it; it would be a child of the keyboard, but hidden whenever
> a letter hasn't been pressed. when a letter is pressed, it can be shown and
> positioned manually into the right position (Corona::popupPosition might
> even be helpful there). children can move freely outside the scene rect of
> their parent. so this should be easy enough :)

Michael is right. The screenshot he posted shows it very good. 
http://mobilephonegeek.com/wp-content/uploads/2007/07/iphone-keyboard-5.jpg

popupPosition() does return a good position indeed. My problem was, that I did 
not get the Widget in front of the buttons. And I couldn't draw it outside of 
the keyboard, what is needed in case you type a button in the top rows. One 
more (hard) wish: It must not "block" the press on the key behind it. Say I 
press "g" and a tooltip appears with "g" inside. That tooltip would be drawn 
in front of "t" and "y". But it MUST still be possible to hit "t" and "y" even 
if the tooltip is shown. (I think on a 7" screen you can type with ten fingers 
on plasmaboard. That's much faster than you can on iPhone)


One more point. Or let it call bug. When you try to resize plasmaboard to full 
width, you'll observe to problems. First: It cannot be resized to full width. 
There are always aproximately 30 pixels left. Second: Plasmaboard scales to 
full width because the "width()"-method of Plasma::Containment returns that 
value. The result is that the most left keys are clipped. 

Just try to maximize plasmaboard to full width, then you see what I mean. For 
the moment I blame PopupApplet ;)


More information about the Plasma-devel mailing list