Commit Graph

30 Commits (dd23ed3dbddcfd8a04b9fb63ba6ad62dce8ffa3b)

Author SHA1 Message Date
J-P Nurmi 97eec16e4f Android: fix missing wheel events
Change-Id: I65b4f6a8fcbdad537a984064e332a4a1f34a265a
Task-number: QTBUG-43669
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-06-18 12:59:14 +00:00
BogDan Vatra ea568c310d Android: Fix RTL selection handles directions
Invert the selection handles icons when the selected text is rtl.

Task-number: QTBUG-61073
Change-Id: I8339a14d1e4d9e79d218516daf3ac783911f6026
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2017-06-13 04:00:16 +00:00
Shawn Rutledge 80fa5f6e76 Android: populate TouchPoint rotation and axes correctly
We model each TouchPoint contact patch as an ellipse now, which is
consistent with Android APIs.

Change-Id: I4edfbebfb5e1ab6686dba0ec924bfcfbbd6ff0f4
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2017-01-04 14:46:25 +00:00
BogDan Vatra 36e4b13e29 Android: fix (partially) text deletion when the cursor is moved
- wait until the handle location changes the cursor position
- don't update cursor position if:
 * a batchEdit is in progress
 * the UpdateSelection is blocked
- finish the composing before update the cursor
- add the missing .java files

There are still corner situations when the text gets deleted/moved, but
those are pretty rare and they will be fix in another patch.

Task-number: QTBUG-57507
Change-Id: I230d7f64625fb556e1be3069694a71e9bc91323a
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2016-12-13 05:14:40 +00:00
Olivier Goffart e0e9e196a7 Android: Show the edit menu when things are selected
Change-Id: I3647fa39469c87bcc08bb439546e5e61c535c71d
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2016-08-21 20:17:45 +00:00
Olivier Goffart 3c6220c4f8 Android selection handles
This commits implement the cursor and selection handle in the platform
plugin.

Task-number: QTBUG-34867
Change-Id: Icb3fd9ddfd9f4152e2004078a92a3d9502e9113c
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2016-08-18 13:23:26 +00:00
Liang Qi e32f1a4d61 Merge remote-tracking branch 'origin/5.6' into 5.7
And blacklisted a few tests in tst_QUdpSocket.

Conflicts:
	src/android/jar/src/org/qtproject/qt5/android/QtNative.java
	src/corelib/global/qglobal.cpp
	src/corelib/global/qsystemdetection.h
	src/corelib/io/qfileselector.cpp
	src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp
	tests/auto/network/socket/qudpsocket/BLACKLIST

Task-number: QTBUG-54205
Change-Id: I11dd1c90186eb1b847d45be87a26041f61d89ef6
2016-06-20 08:00:26 +02:00
Vyacheslav Koscheev 797cd4b7bc Android: Don't send tabletEvent when it's not supported
If QT_NO_TABLETEVENT defined, then there is no sense to create tablet
events.
Its better to create general touch events in this case.

Task-number: QTBUG-53887
Change-Id: I2fabc2241158d54d6c39a2f6071ab874f7debd39
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2016-06-16 14:08:27 +00:00
Marc Mutz 6417bbde85 QtBase (remainder): use printf-style qWarning/qDebug where possible (I)
The printf-style version of QDebug expands to a lot less code than the
std::ostream-style version. Of course, you pay in type safety (but
compilers warn about it these days), you cannot stream complex Qt
types and streaming QStrings is awkward, but in many cases you
actually improve on readability.

But the main reason is that something that's not supposed to be
executed under normal operation has no business bloating executable
code size.

This is not an attempt at converting all qWarnings() to printf-style,
only the low-hanging fruit.

In this first part, replace
   qWarning() << ""
with
   qWarning("...").

Had to fix broken qImDebug() definition. Instead of defining it as
a nullary macro in the QT_NO_DEBUG case and as a variadic macro in
the other, define it in both cases, as is customary, as a non-function
macro so that overload selection works without requiring variadic
macro support of the compiler.

Saves e.g. ~250b in text size in QtPrintSupport on optimized GCC 5.3
AMD64 builds.

Change-Id: Ie30fe2f7942115d5dbf99fff1750ae0d477c379f
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2016-03-12 17:29:36 +00:00
Jani Heikkinen 1a88b2f768 Updated license headers
From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see
http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/

Updated license headers to use new LGPL header instead of LGPL21 one
(in those files which will be under LGPL v3)

Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-01-15 12:25:24 +00:00
Olivier Goffart 420b4dbece Android: Implement QInputMethod::keyboardRectangle
We can use getWindowVisibleDisplayFrame to know the height on the
keyboard, and we can use getLocationOnScreen to find out how much
the view is scrolled. Since onPreDraw is always called when the
view is scrolled or when the keyboard appears or disapear, we can
call the native functions from there.

This is not working for floating keyboards.

[ChangeLog][Android] Implemented QInputMethod::keyboardRectangle

Task-number: QTBUG-40731
Change-Id: I7848eb34fece410b29a06bf0bbb2313112fffa68
Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2015-12-07 16:56:25 +00:00
Friedemann Kleint bba86a01c9 Libraries: Fix single-character string literals.
Use character literals where applicable.

Change-Id: I8e198774c2247c1cc1d852a41b59b301199b7878
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-10-13 16:37:37 +00:00
Kai Uwe Broulik fc410c1398 Android: Add support for EnterKey
QAndroidInputContext now sends along the EnterKey type provided by the
EnterKey input method query enabling the QtActivityDelegate to set the
imeOptions for the TextView accordingly.

Change-Id: Ic96077ab4b11cf6dec52283ecf66b2cabe7af665
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2015-08-11 13:14:26 +00:00
Shawn Rutledge 01d78ba86a Android: generate QTabletEvents for stylus devices such as the S Pen
For example the Galaxy Note series of devices.  This makes possible
drawing applications which handle stylus events differently from touch
or mouse.  As on any other platform, if the application does not accept
the QTabletEvent, a QMouseEvent will be synthesized.
Also fix the tablet manual test to show larger circles on hidpi devices.

[ChangeLog][Android] stylus devices such as the S Pen generate
QTabletEvents

Task-number: QTBUG-38379
Change-Id: Ib594f453b8403cc06aa4e440a76f07afa3bac38c
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-05-21 05:17:38 +00:00
Andy Shaw 4f81719983 Pass on the auto repeat information for key events
Task-number: QTBUG-45340
Change-Id: Iecc55987fa784e4bf14317d9d4a085a8f0b58451
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-04-15 21:04:45 +00:00
Jani Heikkinen 83a5694dc2 Update copyright headers
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.

Outdated header.LGPL removed (use header.LGPL21 instead)

Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing
combination. New header.LGPL-COMM taken in the use file which were
using old header.LGPL3 (src/plugins/platforms/android/extract.cpp)

Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license
combination

Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe
Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
2015-02-11 06:49:51 +00:00
Simon Hausmann 015002fec9 Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	doc/global/template/style/online.css
	mkspecs/android-g++/qmake.conf

Change-Id: Ib39ea7bd42f5ae12e82a3bc59a66787a16bdfc61
2014-12-10 07:58:06 +01:00
Przemysław Czerpak 1b548faa77 Added support for CTRL key modifier to Android builds.
Change-Id: Ib3eddb33348c54cec6cee62abdf69104059affb0
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2014-12-08 13:23:56 +01:00
Frederik Gladhorn 34aba4724f Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/corelib/io/qiodevice.cpp
	src/plugins/bearer/linux_common/qofonoservice_linux.cpp
	src/plugins/bearer/linux_common/qofonoservice_linux_p.h
	src/plugins/platforms/android/qandroidplatformtheme.cpp
	src/tools/bootstrap/bootstrap.pro
	src/widgets/styles/qmacstyle_mac.mm

Change-Id: Ia02aab6c4598ce74e9c30bb4666d5e2ef000f99b
2014-11-24 13:39:13 +01:00
Christian Strømme 4835808287 Android: Simplify the jni code in QtAndroidInput
Let the QJNI classes manager the jni environment and caching of jni
handles.

Change-Id: I8c238375026adf449d6e6e2b521caa6cd63a0fb4
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-11-03 18:25:11 +01:00
Oswald Buddenhagen 189dc655bb Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/corelib/tools/qbytearray.cpp
	src/gui/image/qimage.cpp
	src/gui/image/qppmhandler.cpp
	src/gui/kernel/qguiapplication.cpp
	src/gui/painting/qpaintengine_raster.cpp

Change-Id: I7c1a8e7ebdfd7f7ae767fdb932823498a7660765
2014-09-29 14:08:49 +02:00
Matti Paaso 974c210835 Update license headers and add new license files
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3
- Removed LICENSE.GPL

Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
2014-09-24 12:26:19 +02:00
Marc Mutz 4aba06aa47 Android: use qEnvironmentVariableIntValue()
It doesn't allocate memory, so cannot throw and is a lot faster
than qgetenv().

Change-Id: I6d79852613228658f9093a272edf9b434e60286c
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-09-12 09:58:34 +02:00
Paul Olav Tvete b9a7cedb6e Android: Avoid deadlock in Qt.inputMethod.visible
A blocking isSoftwareKeyboardVisible() is a deadlock
waiting to happen: when the android input method performs
blocking metacalls from the android thread to the GUI
thread all the time, we cannot block the GUI thread
waiting for the android thread.

Task-number: QTBUG-40750
Change-Id: I2490897b0f65e0d92214907e239b10b372d949dd
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-09-02 14:13:14 +02:00
Sérgio Martins 5a278dd42a Android: Fix crash at shutdown when keyboard is visible
This is a follow-up to 4c6ebe5f9e.
Crash was still 100% reproducible for me with the previous fix.

Task-number: QTBUG-40957
Change-Id: Ie59cfe4f1fc746251fe06ba96369738098b2a35f
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-08-28 13:48:39 +02:00
Christian Strømme 8f96ce3733 Android: Fix namespace usage
This change makes it possible to set a Qt namespace for Android builds.

Change-Id: I79f4ae8200223f36f97e2849aae49e45b8850d23
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-06-30 16:58:43 +02:00
BogDan Vatra 449a0a2868 Add unhandled Android keys.
Sort case values.

The following new keys were added:
KEYCODE_F1 -- KEYCODE_F12
KEYCODE_NUMPAD_0 -- KEYCODE_NUMPAD_9
KEYCODE_AT
KEYCODE_PAGE_UP
KEYCODE_PAGE_DOWN
KEYCODE_ESCAPE
KEYCODE_CTRL_LEFT
KEYCODE_CTRL_RIGHT
KEYCODE_CAPS_LOCK
KEYCODE_SCROLL_LOCK
KEYCODE_META_LEFT
KEYCODE_META_RIGHT
KEYCODE_SYSRQ
KEYCODE_BREAK
KEYCODE_MOVE_HOME
KEYCODE_MOVE_END
KEYCODE_MOVE_INSERT
KEYCODE_FORWARD
KEYCODE_MEDIA_PLAY
KEYCODE_MEDIA_PAUSE
KEYCODE_NUM_LOCK
KEYCODE_NUMPAD_DIVIDE
KEYCODE_NUMPAD_MULTIPLY
KEYCODE_NUMPAD_SUBTRACT
KEYCODE_NUMPAD_ADD
KEYCODE_NUMPAD_DOT
KEYCODE_NUMPAD_COMMA
KEYCODE_NUMPAD_ENTER
KEYCODE_NUMPAD_EQUALS
KEYCODE_NUMPAD_LEFT_PAREN
KEYCODE_NUMPAD_RIGHT_PAREN
KEYCODE_BOOKMARK
KEYCODE_BRIGHTNESS_DOWN
KEYCODE_BRIGHTNESS_UP
KEYCODE_MEDIA_AUDIO_TRACK

Change-Id: I599e9e46ea720e52004a53747d6b21fc7a44262e
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-04-09 20:53:06 +02:00
Paul Olav Tvete 68a9229a97 Android input method improvements
Use the new inputmethod query API. and get rid of the hack where
we would move the cursor back and forwards to make sure that the
Android software keyboard noticed that the cursor had moved.

The android plugin now uses absolute positions instead of
position within the paragraph for all cursor handling (provided
that the control supports the new API).

Task-number: QTBUG-37511
Change-Id: I03463dbbcb4acbfa41e2eab06889d021d50da01f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-03-18 09:59:20 +01:00
Paul Olav Tvete 80d4a19f51 Android: Use proper empty strings in key events
A key event with no unicode would get a text of "\0" instead of
the empty string. This would lead to various widgets interpreting
the Key_Back event as text input, meaning that it would be grabbed
by the widget instead of being propagated.

Task-number: QTBUG-35784
Change-Id: Ibdb0e491572e41dd1aaf3b03ae1a780731f0559a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-03-14 22:39:48 +01:00
BogDan Vatra 8a9bd001c9 Support multiple native surfaces on Android.
Support for multiple native surfaces is needed by applications that need
to mix raster windows with GL windows.
Rework the raster and opengl implementation, get rid of eglfs and
fbconvenience dependencies.
Create a single android platform plugin.

[ChangeLog][Android] Rework the raster and opengl implementation.
[ChangeLog][Android] Create a single android platform plugin.

Task-number: QTBUG-34650

Change-Id: I9b1ab51554823329dda8cfbf8fef27c38f917c7b
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-01-17 10:23:08 +01:00