Commit Graph

136 Commits (343d538727ccff3bea625ffc8068f4aeae60c751)

Author SHA1 Message Date
BogDan Vatra f81e76da1e Allow QtCreator to pass additional args and env vars to the application.
We need them to allow developers to easily pass args and env. vars like
QSG_RENDER_TIMINGS, QSG_VISUALIZE to theirs apps.
The env vars and params must be base64 encoded!

Change-Id: I1d781873ffdc6efd40b30543a9fd2514bbdede43
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-10-23 08:53:58 +02:00
BogDan Vatra c5b0308dc5 Android: Update Ministro's requirements.
Task-number: QTBUG-41968
Change-Id: Ia0c204dd87b9de3cbb7bb388099c435b855ad4d5
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-10-19 11:38:33 +02:00
Paul Olav Tvete 7755b4af41 Android: null pointer check
Task-number: QTBUG-41680
Change-Id: I740fb2a6df5613a8ee724b59dab08674a3337236
Reviewed-by: Kai Uwe Broulik <kde@privat.broulik.de>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-10-10 10:04:34 +02:00
Christian Strømme 8d8000b5fe Android: Don't call requestLayout() when changing the geometry.
requestLayout() is already called when setLayoutParams() is called, so
calling it again is extremely wasteful.

Change-Id: Iddfb488830a6b7277a653a84ffacabf966baf0b5
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-10-09 22:57:19 +02:00
Eskil Abrahamsen Blomfeldt 538248d930 Android: Don't include Apache code under LGPLv2 license
The code which extracts style assets for the Android style
is licensed under the Apache license, which is not compatible
with LGPLv2.1. It is, however, compatible with LGPLv3. This
means that the Android platform plugin cannot be LGPLv2.1
as long as this code is included.

To minimize licensing confusion, we default to only providing
LGPLv3 for Android. If you want to build a LGPLv2.1-compatible
library, you can add -no-android-style-assets to the
configuration. This will in turn enable the LGPLv2.1 in
the configure output, and it will disable the extraction
code in the platform plugin.

Running the Android style with an LGPLv2.1-compatible platform
plugin will work, but it will look horrible.

[ChangeLog][Android] Default open-source license for
Qt for Android is now LGPLv3. For compatibility with the LGPLv2.1
license, add "-no-android-style-assets" to your configuration.

Change-Id: I6c7b52140f38138520871fa7c69debbb4ee90e6c
Task-number: QTBUG-41365
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-10-02 05:59:17 +02:00
BogDan Vatra 3b577dfe79 Use PopupMenu when possible.
On API-11+ we are going to use PopupMenu instead of ContextMenu to show
context menus. A PopupMenu displays a Menu in a modal popup window
anchored to a View. The popup will appear below the anchor view if there
is room, or above it if there is not.

Task-number: QTBUG-39736
Change-Id: Ie412ab0935b868348ce5c8bb0bf53571ffefd582
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-10-01 20:10:58 +02:00
Christian Strømme 10a0f93c86 Android: Add function to change the stacking order in the layout.
This change enables us to reorder the stacking order used by the
layout. This is necessary if we want to influence the drawing order.

Lowering or raising views are done separately for native views and
Qt surface views, that is, the two different view "types" are moved
relative to other views of the same type and Native views are always
placed on top.

Change-Id: I01cbb88f8efee08877b5972cf330fd25266a2aa9
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-09-26 23:45:13 +02:00
Christian Strømme 8b0d9a16db Android: Improve the foreign-window implementation
Adds:
- Improved geometry calculations (e.g, inside a parent)
- Change visibility
- proper stacking order. Native views now reserve the top of the stack
  to ensure that they stay visible.
- React to application state changes.

Change-Id: I35de0396937fff37ffcd272c9a7d8e9873a91dfb
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-09-26 23:44:42 +02:00
BogDan Vatra 1168ed8f6e Handle InsetDrawable.
Remove an unused function.

Change-Id: I79fda0fb56b0621e062a0ccb5bd68291d9ccdf50
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2014-09-24 13:52:55 +02:00
Frederik Gladhorn c5a3e5edd9 Merge remote-tracking branch 'origin/5.3' into 5.4
The isAlwaysAskOption was removed in 3862171315
so manually removed code in
src/plugins/bearer/connman/qconnmanengine.cpp

Conflicts:
	src/corelib/global/qglobal.h
	src/corelib/tools/qcollator_macx.cpp
	src/corelib/tools/qstring.cpp
	src/gui/kernel/qwindow.cpp
	src/gui/kernel/qwindow_p.h
	src/gui/text/qtextengine.cpp
	src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h
	src/plugins/platforms/android/qandroidinputcontext.cpp
	src/plugins/platforms/xcb/qglxintegration.cpp
	src/plugins/platforms/xcb/qglxintegration.h
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/testlib/qtestcase.cpp
	src/testlib/qtestlog.cpp
	src/widgets/dialogs/qfiledialog.cpp
	src/widgets/kernel/qwindowcontainer.cpp
	tests/auto/corelib/tools/qcollator/tst_qcollator.cpp
	tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp
	tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
	tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp

Change-Id: Ic5d4187f682257a17509f6cd28d2836c6cfe2fc8
2014-09-23 11:23:36 +02:00
Samuel Nevala 105fa5b5d9 Respect android:windowSoftInputMode in manifest.
Read and store softInputMode set at AndroidManifest.xml on QtActivityDelegate.
When showSoftwareKeyboard is requested setSoftInputMode for main window if
softInputMode is not defined fall back to old behavior.

Change-Id: I71cb27d4bdb4ae4e3c2a0706560173703a2f5a50
Task-number: QTBUG-34401
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-09-04 14:04:44 +02:00
Paul Olav Tvete d450eb5e6d Android: Guard against invalid surfaceID
Do not try to resize or destroy invalid surfaces.

This caused update problems with all GL apps after suspend,
since we would forget the dummy view that we always keep
around so we get proper transitions on shutdown.

Also make sure that we don't mess this up even if we try to destroy a
non-existing surface. This would have fixed the bug by itself, but
then we would still be stuck with the annoying warning message.

Task-number: QTBUG-41093
Change-Id: I83299e93eb9ac5357b98ca47014789b56c91b35a
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-09-02 22:00:02 +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
Giuseppe D'Angelo 75b62f3a17 Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4 2014-08-19 00:42:00 +02:00
Eskil Abrahamsen Blomfeldt 3e0a6c1b36 Android: Also support android style for debug deployment
Both bundling and debug deployment can use the local cache for
the Android style assets, since Ministro is not necessarily
available in these cases.

Change-Id: I33367aceec1829f27377fcb6793ca95ecf5cc434
Task-number: QTBUG-40676
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-08-16 23:27:40 +02:00
BogDan Vatra ef4a999a9f Forward menu button events to Qt if there is no visible menubar.
Task-number: QTBUG-32334
Change-Id: If1b4517f233b04d4c6c165cbfe62c8cf7b624c60
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-08-16 13:41:01 +02:00
Frederik Gladhorn ca524e5b70 Merge remote-tracking branch 'origin/5.3' into 5.4
Manually included changes from
3a347a4e70
in src/opengl/qgl.cpp.

Conflicts:
	src/opengl/qgl_qpa.cpp
	src/plugins/platforms/android/androidjnimain.cpp

Change-Id: Ic26b58ee587d4884c9d0fba45c5a94b5a45ee929
2014-08-12 13:05:02 +02:00
BogDan Vatra 8b7a2d582c Android: Say hello to gradle!
Add build.gradle script, move Android template files to another folder.
These files are specific to every project, and they should be copied to
then project android folder.

Switching from Ant to Gradle brings lots of advantages:
 - it is way faster when rebuilding (25-50% faster than ant).
 - it enables first class Android Studio integration.
 - adding Android Extras libs (e.g. Google Play services, OBB, etc.) to
   your project is now painless.

[ChangeLog][Android] Added Gradle support to build the APK.

Change-Id: I9c8cb355118c9ac1997270c8b80916eca43fce4d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-08-07 12:27:51 +02:00
J-P Nurmi c8321a9c10 Android: extract window style attributes
Task-number: QTBUG-39215
Change-Id: I29120f5dcc97051705bc6ebacfa5843d8953810b
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-08-06 22:19:10 +02:00
J-P Nurmi c793839681 Android: add support for Android.R.attr.state_accelerated
This lets the Qt Quick Controls Android Style choose the appropriate
window background that is meant to be used with HW acceleration.

Change-Id: I65d6f9319d77364637460e7c4ebb7ea3f4d53f12
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-08-06 22:18:53 +02:00
BogDan Vatra a2ad0ba630 Android: Fix debugging.
When re-install a package without uninstalling it first, a few files
are leftover from the previous installation which makes the debugging to
fail.

Change-Id: I603491668bcec2a6f8054951ea2dea806fcc4c88
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-08-06 22:07:52 +02:00
Christian Strømme 4946ed0496 Android: Fix QAndroidPlatformServices::openUrl().
Return true only if an activity was found for the intent.

Task-number: QTBUG-34716
Change-Id: I764caf1e8afa3b17b2d71f52873c17e5d834a956
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-08-06 17:16:30 +02:00
Gabriel de Dietrich a258ac8feb Android: Extract assets for 'listSeparatorTextViewStyle'
These are used in Qt Quick Control's TableViewStyle.headerDelegate.

Change-Id: I2d87896b9987b86e30123b34872f9322d304a190
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-08-05 17:38:25 +02:00
BogDan Vatra c0c80f14af Android: Fix exceptions in ExtractStyle.java on Android L
Android L adds support for 64 bit (arm and x86) and they did lots of
changes that are incompatible with old implementation.

Task-number: QTBUG-40120
Change-Id: I69b78a9eed896d2ddabc1bf2a55886faeae47974
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2014-08-01 22:12:41 +02:00
BogDan Vatra 734c126826 Android: Really suspend apps that are put in the background
The main event loop will be paused when an application is suspended,
this is also the normal behavior of any Android application. When an
application is suspended on Android all its Gl surfaces are destroyed
and can't be used to render anymore. So, we need to pause the main
event loop in order to pause all the timers which might trigger
drawings. The event loop is resumed immediately after the application
is foreground. AndroidManifest.xml contains more info about how to
disable this behavior and what might happen if you do it.

[ChangeLog][Android][Important Behavior Changes] The main event loop is
now stopped when the app is suspended

Task-number: QTBUG-36274
Change-Id: I4c0ba5df9d95f348bca67ea5c76865d6d20775e4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-07-31 19:20:28 +02:00
BogDan Vatra a64da3fbd2 Cache the parsed drawables.
Change-Id: I4a386c644505ac84a5ddd15a898c3e9c58e682b3
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2014-07-30 16:32:22 +02:00
J-P Nurmi c38af4e6bb Android: extract ListView divider & selection
Change-Id: I2a4f72d94c4868f9db4b8066bbdadbe222d0da62
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-07-30 16:24:50 +02:00
J-P Nurmi 40705cb4c1 Android: fix Switch & CalendarView text appearances
This reverts the extractTextAppearanceInformations() changes done in
f7ac2b4 and introduces another method extractTextAppearance() for
extracting a specific TextAppearance.

The problem was that extractTextAppearanceInformations() was overriding
the TextAppearance attributes with TextView attributes. This resulted
in wrong text colors for Switch & CalendarView:

- Switch_switchTextAppearance
- CalendarView_dateTextAppearance
- CalendarView_weekDayTextAppearance

Change-Id: Ib300b6eb14649319b2f07012803a4d031a717b50
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-07-24 16:26:45 +02:00
Frederik Gladhorn 7c495cfea9 Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
	src/gui/text/qfontengine_qpf2.cpp

Change-Id: Ib04f92c41d0edd55d3aef8fb1708d917fba0f2a8
2014-07-14 10:35:51 +02:00
Eskil Abrahamsen Blomfeldt 0cbebb21cc Android: Prefer "Droid Serif" as default serif font
I've also updated the qfont test so it passes on Android now. Note that
there are no suitable cursive/fantasy fonts on Android, so the regular
default "Roboto" (or "Droid Sans" on older devices) will be picked here
instead.

[ChangeLog][Android] Fixed font selection to prefer "Droid Serif" when
Serif style hint is set on QFont.

Change-Id: I294eebcc4d79410e435bdddce552acc6044753b2
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-07-10 16:23:50 +02:00
Frederik Gladhorn a09a8d509a Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
	mkspecs/qnx-x86-qcc/qplatformdefs.h
	src/corelib/global/qglobal.h
	src/network/socket/qnativesocketengine_winrt.cpp
	src/plugins/platforms/android/androidjniaccessibility.cpp
	src/plugins/platforms/windows/qwindowswindow.cpp

Manually adjusted:
	mkspecs/qnx-armle-v7-qcc/qplatformdefs.h
	to include 9ce697f2d5

Thanks goes to Sergio for the qnx mkspecs adjustments.

Change-Id: I53b1fd6bc5bc884e5ee2c2b84975f58171a1cb8e
2014-07-01 16:25:19 +02:00
Christian Strømme 50cf698b76 Android: Fix hover-event handling.
The accessibility delegate needs to intercept the hover events before
the view gets them, but since the dispatchHoverEvent() method was added
in API level 14 and we build with API level < 14, we can't call the
super class implementation (e.g., when the event isn't handled by
the accessibility delegate). In the previous implementation we where
trying to solve this by using the reflection API, but that does not
provide a solution to call the super class implementation
(Note: It's possible with JDK 7 or newer), so the code would call
itself recursively and we would eventually get a stack overflow
exception.

This change uses the OnHoverListener class to intercept the hover
events, this way we avoid "overriding" the dispatchHoverEvent() method
in QtSurface and therefore avoid the problem it causes.

Task-number: QTBUG-38905
Change-Id: I8b3cbad718d8524042397bb877e39e3005bfb4ce
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2014-06-30 16:58:57 +02:00
J-P Nurmi 61c3ab9967 Android: extract actionOverflowButtonStyle (button menu icon)
Task-number: QTBUG-39215
Change-Id: I6fdb5ab4a7469017505376421d17cf4367baf76f
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-06-25 12:37:07 +02:00
Jan Arve Saether a14aff64a1 Accessibility: Add actions for value interfaces
To support increment / decrement of sliders, dials and spin boxes.
(anything with an {in,de}crementAction or a valueInterface.

Other platforms will follow the same pattern in follow-up patches.

Task-number: QTBUG-38832
Change-Id: Ie570acc39b3d9494a8bb9f624b61a398b1d8de89
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2014-06-20 17:20:13 +02:00
J-P Nurmi 7bd33c36db Android: extract style attributes for tabs
Task-number: QTBUG-39215
Change-Id: I727a12fa9696e22d3f31393a0fe2f9392afbfe45
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-06-20 17:18:19 +02:00
J-P Nurmi de1afe41e3 Android: fix typo in QtActivityDelegate.java
Change-Id: I6704627ed0bf7cb70a09c1637084ed2c8e5031cf
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-06-09 21:19:17 +02:00
J-P Nurmi d9a7ad80f7 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2014-06-07 00:40:44 +02:00
J-P Nurmi 0f8d35ff73 Android: extract calendarViewStyle
Task-number: QTBUG-39215
Change-Id: Ic11b088cbfa62eb01f4326d557e4434afad9fa10
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
2014-06-06 15:56:48 +02:00
J-P Nurmi 0fcce50af0 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/features/qt.prf
	src/plugins/platforms/xcb/qxcbwindow.h
	src/tools/qdoc/qdocindexfiles.cpp
	src/widgets/kernel/qwidget_qpa.cpp

Change-Id: I214f57b03bc2ff86cf3b7dfe2966168af93a5a67
2014-06-05 22:26:44 +02:00
J-P Nurmi 74d46a669b Android: extract complete actionBarStyle
Task-number: QTBUG-39215
Change-Id: I67d89ac28b73bc52cd2ed952cfc8db21437d6e3b
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-06-05 14:56:09 +02:00
J-P Nurmi f7ac2b446a Android: extract switchStyle
Task-number: QTBUG-39215
Change-Id: I53c435b80ea2603eb942eac3307654dd0fc0ae12
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-06-04 16:13:27 +02:00
J-P Nurmi 46630f866f Android: extract styles for ToolBar & ToolButton
Task-number: QTBUG-39215
Change-Id: I1d424436e50f96385b5581444b260c3e27e7291e
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-06-04 16:13:09 +02:00
Eskil Abrahamsen Blomfeldt 90808ead98 Android: Fix flashing on startup/shutdown
There were several issues on startup of the application which
were caused by the fact that we would get the wrong
available screen geometry on startup, set this as the
initial surface size and then expose native windows with this
size. This would cause first a flicker of white on the early
expose and the window contents to jump around as the window was
resized to the actual available space on screen.

The fix for this is to postpone the first expose until we have
actually got a proper screen size from the main layout. We use
width,height = 0 as an indicator that the available geometry
is not yet known, and we skip posting any expose events before
this is set by the layout.

In addition, since we removed the surface before we shut down
the application, it was by a white rectangle before the
shutdown transition happens, and this white rectangle will
be animated instead of application contents.

To rectify this, we make sure the last surface in the stack
remains in the layout until it is either replaced by a different
surface or until the application has shut down. This way, the
shutdown animation will work on this surface instead.

[ChangeLog][Android] Fixed regression where there would be flickering
on startup and shutdown of the application.

Task-number: QTBUG-38960
Change-Id: Ia1579ca8c522d8beeab066f78070ad49009d0238
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-06-04 09:29:43 +02:00
BogDan Vatra b8961e799b Android: Introduce SimpleJsonWriter
It speeds up the extraction and it reduces memory consumption.

Change-Id: I188f7efbb826343e5bd75f63ace36522f0d7a24d
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2014-06-03 09:56:00 +02:00
J-P Nurmi df1ba3594b Android: add support for extracting AnimationDrawable
Required for implementing indeterminate ProgressBar

Task-number: QTBUG-39215
Change-Id: I128eaf2879dd493da86541767a870ea786a5ddf9
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-06-03 09:18:11 +02:00
J-P Nurmi d318e14715 Android: extract View_scrollbarDefaultDelayBeforeFade
Task-number: QTBUG-39215
Change-Id: I8cc6e16a7155710ad322dc884ccbb194ca7d5b67
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-05-27 13:04:16 +02:00
J-P Nurmi 26deadef47 Android: extract scrollViewStyle
Task-number: QTBUG-39215
Change-Id: I8d4155aa4db5d807d1846c5741c01693af24f846
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-05-26 18:25:48 +02:00
J-P Nurmi fedd1ba84d Android: ensure unique IDs when extracting style data for layers
Indeterminate progress drawables can consist of multiple layers that
don't necessarily have an ID. Ensure that the extracted file names
contains unique IDs to avoid extracted layers overwriting each other.

Task-number: QTBUG-35081
Change-Id: I3dc48bf363510ded9b955aa51fa479c607541169
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-05-26 14:12:15 +02:00
J-P Nurmi 8097d67293 Android: extract SeekBar_thumbOffset
Task-number: QTBUG-39215
Change-Id: I2a7b878b1a86280c92a445826f196de3245fd4e2
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-05-26 14:12:15 +02:00
J-P Nurmi c7f99f3e86 Android: extract progressBarStyle(Small|Large)
The indeterminate drawable is used for QtQuick Controls BusyIndicator

Task-number: QTBUG-35081
Change-Id: Iecdc6e80444b5134ec1fa61916c7ac1612cd275f
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-05-26 14:12:15 +02:00