Move input panel visibility ownership from QInputPanel to QPlatformInputContext
authorJoona Petrell <joona.t.petrell@nokia.com>
Tue, 11 Oct 2011 10:10:50 +0000 (13:10 +0300)
committerQt by Nokia <qt-info@nokia.com>
Tue, 11 Oct 2011 14:03:25 +0000 (16:03 +0200)
commite941b37fcc715fc20d7365cae21cd657a215cf8f
tree4e7345c42f6605b112aa370f0df430b0f054ad7f
parent0e6a4010286569c3c77ed3092dd96aca17e72332
Move input panel visibility ownership from QInputPanel to QPlatformInputContext

Now QInputPanel::visible() can be set true even when platform doesn't provide
a virtual keyboard. Like keyboard geometry, visibility should be dictated by
the platform plugin and not QInputPanel, whose role is more like that of a mediator.
QInputPanel::show() and ::hide() calls should be treated as requests that may fail.
Changed the QInputPanel's visible property to read-only as a setter that may
fail is not really a setter, show() and hide() should be used instead.

Enabling the new functionality cannot be activated immediatelly without breaking
existing keyboards, added a temporary function handlesInputPanelVisibility that
handovers the responsiblity of updating input panel visibility to QInputContextPlatform
only once QInputContextPlatform says that it is able to handle it.

Change-Id: Ideecaf7225cc3971f33a0ac976bd92cf7767475b
Reviewed-on: http://codereview.qt-project.org/6429
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Pekka Vuorela <pekka.ta.vuorela@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
src/gui/kernel/qinputpanel.cpp
src/gui/kernel/qinputpanel.h
src/gui/kernel/qplatforminputcontext_qpa.cpp
src/gui/kernel/qplatforminputcontext_qpa.h
src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp
src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h
tests/auto/gui/kernel/qinputpanel/tst_qinputpanel.cpp