> From: "[email protected]" <[email protected]> > To: [email protected]; [email protected] > Cc: > Sent: Saturday, April 14, 2012 9:40 PM > Subject: Re: [Development] QPlatformInputContext needs more informations > > > On 4/14/12 8:29 PM, "ext BogDan" <[email protected]> wrote: > >> Hello, >> >> I checked QPlatformInputContext interface and I think it needs more >> informations > > Not sure what you're missing. QPlatformInputContext is only there to > implement support for an input method, and has received quite some testing. >
In order to be sure the user sees the entire control and its content I need to know the control position and its size, otherwise the virtual keyboard may cover the control and its content. > > QInputMethod (see QGuiApplication::inputMethod()) is the remaining > interface that are probably missing right now. > >> >> >> and also I found one of them a little bit strange. >> I've learn that using the following code I can get the needed >> informations about the >> focused control: >> >> QInputMethodQueryEvent query(queries); >> QGuiApplication::sendEvent(qGuiApp->focusObject(), &query); >> >> >> Sadly "query" doesn't contain enough information to correctly > display the >> keyboard >> and the edit control. I need to know where is and what is the control >> size on the > > No, but QInputMethod should have the other pieces you need. > Ah sorry I didn't know about QInputMethod, I checked it and it seems it doesn't have the information I'm looking for. I need the know the control coordinates (position and size). I'm afraid QInputMethod doesn't has this info. > >> screen, because an edit control can be anywhere and it can have any size >> on the screen, >> to be sure the user will see the entire control and its content, the >> screen must be panned >> or resized (depending on controls size). To fix this problem I just added >> and >> implement a new enum element to Qt::InputMethodQuery : "ImRectangle - > The >> rectangle of the widget in screen coordinates.". I chose screen >> coordinates and not >> widget coordinates because I think widget coordinates are useless as long >> as the >> focused item is an qobject and it can be anything. This is the reason why >> I've found >> Qt::ImCursorRectangle value a little bit strange, IMHO >> Qt::ImCursorRectangle should >> represents screen coordinates, not widget coordinates. > > This is wrong. QInputMethod gives that info. The reason this won't work is > the same as with the microFocusHint in Qt 4. Often the control doesn't > know when it has been moved around on the screen, so it can't give proper > feedback to the input method. So use the API in QInputMethod, as it'll > also work and give correct answers when the widget or QML item has been > moved around inside the window. > I understand, but QInputMethod doesn't contains the control position and size :( >> I also attached a small patch which adds ImRectangle to >> Qt::InputMethodQuery and >> the needed implementation in qtbase. >> Before I go further (add the needed implementation to qdeclarative, and >> push them to >> codereview) I'd like to know what are your thoughts on this matter . > > See above. > > Cheers, > Lars > Cheers, BogDan. _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
