Commit Graph

23683 Commits

Author SHA1 Message Date
Oswald Buddenhagen
03ae6ad8e9 remove $INCLUDE/$LIB hack for mingw
mingw is not msvc, and nobody in their right mind would expect it to
behave like it.

[ChangeLog][Important Behavior Changes][qmake] Qt configure and qmake
used with a MinGW spec will no longer emulate MSVC by picking up the
INCLUDE and LIB environment variables. Use the -I/-L configure options
to pass additional paths, as you would under Unix.

Change-Id: I533bb97de34d14dcbd45e0416283a79f44096c67
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-05-12 09:10:18 +00:00
Laszlo Agocs
6ea636b0bd Create contexts and pbuffers with the correct screen in QOpenGLWidget
It won't be functional otherwise with GLX when the QOpenGLWidget is targeting
a separate X screen.

Change-Id: Ibe5b89023f833039bb67d94b78b173de2e021ac9
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-05-12 08:59:02 +00:00
Laszlo Agocs
55225948a9 Create context with the correct screen in QOpenGLWindow
Targeting a non-primary screen with a QOpenGLWindow requires (at least
with GLX) that the context is created with the same screen. Otherwise
the context cannot be used with the window (BadMatch due to different
X screens)

Change-Id: I64f38ad7317d39a164bb69bb1430692319fc49d4
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-05-12 08:58:56 +00:00
Laszlo Agocs
d33edcfe37 Fix the qscreen manual test for separate X screens
It is fully possible to show a window on all the connected screens
even when the screens are not virtual siblings, i.e. they do not
form one big desktop. When X is configured to use a separate screen
for each physical screen, it becomes essential to do setScreen()
either directly or via QDesktopWidget in case of widgets. The original
code attempting to call QWindow::setScreen() cannot succeed since there
is no QWindow available before the widget is shown. This is easy to
work around.

The app now works identically in all cases.

Change-Id: I519ca0c0109c68aac2f2d4e6972d14b55767b403
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-05-12 08:58:52 +00:00
Laszlo Agocs
1adedb7baa Make the windowcontainer example more robust
The QWindow tends to get mouse releases on Windows when
maximizing the window for example. This is likely a problem
in the platform, but the example should be improved too to
be more robust and ignore such unwanted events.

Task-number: QTBUG-42842
Change-Id: Iecf916a2f753ed1b37d644721ee212ca7c728c49
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-05-12 08:58:47 +00:00
Laszlo Agocs
62f24f04bf xcb: Skip EGL integration with -no-opengl
When EGL is autodetected but -no-opengl is specified the backend
must be skipped, just like the GLX one.

Task-number: QTBUG-44998
Change-Id: I1ccbaf540f3777a1fc39aaf12bded4febf20faa0
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-05-12 08:58:32 +00:00
Andy Shaw
a1ada382ff Handle parsing of GL_VERSION as reported by Nexus 6
The Nexus 6 device reports a GL_VERSION which is strictly not conformant
to what is expected from GL_VERSION, so a check is added for this case so
that it correctly detects the right OpenGL ES version.

Change-Id: I00297dd7c1e505dd7f9ab8a7fa480f514162b488
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-05-11 07:15:46 +00:00
Kai Koehne
dad54e794f MSVC: Silence compiler warning about INFINITY
Contrary to the comment, MSVC does support INFINITY, but
always prints a warning when it's used:

qpainterpath.cpp(3066) : warning C4756: overflow in constant arithmetic

Avoid this by using numeric_limits<T>::infinity.

Change-Id: Ie925b036b807378da5298a275fa108347c24519e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-05-11 07:09:37 +00:00
Richard Moe Gustavsen
e5eb36feb2 qstandardpaths_ios: allow empty strings to be returned for undefined locations
According to the documentation for QStandardPaths::standardLocations() and
QStandardPaths::writableLocation, they should return empty lists / strings
if the location cannot be determined. So remove the section in
qstandardpath_ios.mm that always sets a default path for undefined
locations.

Change-Id: I0c7fc0a1a0bbe2a5e0fb4e79e0f96f0280a647e2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-10 18:15:49 +00:00
Richard Moe Gustavsen
6eaee855c7 ios: change file engine caching logic for loading assets
The current caching strategy had a flaw in that it tried
to lazy-lock the mutex only if g_currentAssetData was non-zero.
For this to be somewhat reliable, g_currentAssetData would have
to be volatile. But that would still not be enough since
thread-unaware code optimizations might also happen on the CPU level.

Instead of complicating the current logic more, change it to
only do caching per thread. Since QThreadStorage will take ownership
of its data, we can't let it store a pointer to QIOSAssetData directly
since we need to control the life time of QIOSAssetData using deleteLater.

Change-Id: I2c3ffb3257ec2bdec8be71a3d63f666ab33b5277
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-10 18:15:42 +00:00
Christoph Schleifenbaum
52c122e616 Improve QListView scroll bar calculation.
When both scroll bar's policies are set to ScrollBarAsNeeded, make sure
the scroll bars are shown if needed and not show if not. Even the corner
case, where one scroll bar's visibility depends on the other, is handled
properly.

Task-number: QTBUG-45470
Change-Id: I11d6ccf7c0b51644a5ce2d5c3fc59e2e4812755d
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Thorbjørn Lindeijer <bjorn@lindeijer.nl>
2015-05-10 07:45:23 +00:00
David Faure
cca5cce205 Use ItemIsUserTristate instead of ItemIsTristate in table & list tests.
ItemIsTristate only makes sense in tree widgets, where it triggers the
auto-tristate behavior between parents and children.

Change-Id: Idfa8bb5d0b9c63fe450115fb58d088929e11c7ff
Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
2015-05-09 10:01:41 +00:00
David Faure
f1bfc4266b Don't overwrite applicationName if already set.
My commit 6c973dee2c broke the case where setApplicationName
is called before the QCoreApplication constructor.
Fixed and added autotest.

Task-number: QTBUG-45283
Change-Id: If7bdb0d82be50b50a95a04027f5f9d7143c1a7ac
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2015-05-09 10:01:33 +00:00
Giuseppe D'Angelo
1ac1ae05f5 QDialogButtonBox: prevent crashes on deletions in slots
As usual, user code connected to signals emitted from Qt may destroy
an object's internal status while a signal is being emitted.

Guard a bit QDialogButtonBox signal emissions to prevent
crashes in case the button or a dialog get deleted from a slot
connected to clicked(). Also, be sure to emit the corresponding
accepted/rejected/etc. signal.

Change-Id: I7b1888070a8f2f56aa60923a17f90fb5efef145c
Task-number: QTBUG-45835
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-05-09 08:41:23 +00:00
Oswald Buddenhagen
4b7d70886f fix ANGLE build with VS2015
... by making the conditional future-proof by inverting it.

Task-number: QTBUG-45972
Change-Id: I0bf8eac1b1095b9bf4dec0b82fc42e5a58d0499a
Reviewed-by: Andrew Knight <qt@panimo.net>
Reviewed-by: Gunnar Roth
2015-05-08 15:35:15 +00:00
Oswald Buddenhagen
93f581e1f2 fix wrong path separators in extra compiler commands
Change-Id: I19a2c53c301becbbe5b70e47067f9a3355f7b04a
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-05-08 15:35:12 +00:00
Oswald Buddenhagen
d4efd4b004 change approach to requesting headers-only modules
there is no need to make exceptions for install targets now, so instead
of abusing qt_no_install_library, introduce a new header_module flag.

Change-Id: I4ad7e301d1b60938b17e1dea732b1dbe3ff88a1a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-05-08 15:35:09 +00:00
Oswald Buddenhagen
82449d7251 fix (un-)installation for TEMPLATE = aux
don't try to install the primary target, as it obviously doesn't exist.
however, we must not disarm bundle installation.

Change-Id: I3074150f749220d77c1210a4978e71aff9c9a3a9
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-05-08 15:35:05 +00:00
Allan Sandfeld Jensen
9b2ee419b4 Merge "Merge remote-tracking branch 'origin/5.4' into merge5.5" into refs/staging/5.5 2015-05-08 17:34:00 +00:00
Laszlo Agocs
4fe68ffbe5 Add GPU_BLACKLIST support to QTestLib
In addition to BLACKLIST, Qt will now look for GPU_BLACKLIST too.
Test cases that are specified as disabled in the GPU blacklist
will be skipped. This is particularly relevant when running tests
on Embedded Linux devices.

For example, the following JSON would configure the test case
glxContextWrap to be skipped on drivers where GL_VENDOR contains
UnstableDriverVendor:

{
    "entries": [ {
            "gl_vendor": "UnstableDriverVendor",
            "features": [ "disable_glxContextWrap" ]
    } ]
}

In contrast to the regular blacklist, GPU-blacklisted test cases are
not run at all. This is because driver problems and instabilities
often lead to crashes.

Change-Id: I340cf5c0261a206109b78409774408981bba5c68
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-05-08 15:11:32 +00:00
Christian Strømme
3a726628f1 Android: Store and use the class names as key when caching.
Previously the jclass handle was part of the key used for caching the
class' methods and fields. Using the jclass handle is not ideal, but
it meant that we could easily create a key when the only identifier we
had was the jobject or jclass handle. However, in Android 5.1, the
re-use of handles seems to be more aggressive and therefore increasing
the chance of a collision in the cache look-up.

This change removes caching for all calls where we don't know the class
name, as that is the only thing that guarantees that we create unique
keys for each class. The consequence of this is that only calls that
provide a class name will benefit from the internal caching.

Task-number: QTBUG-45748
Change-Id: I0039d04e7c068debc9e3b3983632c45dc8e52309
Reviewed-by: Frank Meerkoetter <frank.meerkoetter@basyskom.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-05-08 13:04:13 +00:00
Allan Sandfeld Jensen
1fce111809 Merge remote-tracking branch 'origin/5.4' into merge5.5
Conflicts:
	src/corelib/global/qglobal.h
	src/corelib/io/qnoncontiguousbytedevice_p.h
	src/gui/image/qjpeghandler.cpp
	src/network/access/qhttpthreaddelegate_p.h
	tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp
	tests/auto/widgets/widgets/qmenubar/BLACKLIST

Change-Id: I01de8c1c28efcedfd7953d05025f54802dc08ab3
2015-05-08 13:26:44 +02:00
Thiago Macieira
3545ef4121 Autotest: Check if this D-Bus library knows about file descriptors
Because if it doesn't, then calling dbus_type_is_fixed or is_basic may
result in a failed assertion.

 process 16304: arguments to dbus_type_is_fixed() were incorrect,
 assertion "_dbus_type_is_valid (typecode) || typecode ==
 DBUS_TYPE_INVALID" failed in file dbus-signature.c line 345.

Change-Id: Idf715b895bac4d56b4afffff13db2ed71b1516a5
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
2015-05-08 09:04:23 +00:00
Allan Sandfeld Jensen
9f4fb617e2 Merge "Merge remote-tracking branch 'origin/5.4.2' into 5.4" into refs/staging/5.4 2015-05-08 09:04:10 +00:00
Markus Goetz
00fe833189 QNAM: Fix compiler warning
Change-Id: I2ae6493e13c9b168c64c458e42ea90d4ec2d8628
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-05-08 09:02:51 +00:00
Allan Sandfeld Jensen
de4fae82a9 Merge remote-tracking branch 'origin/5.4.2' into 5.4
Change-Id: I944e9e59d28172290930db0e162c1597ad05c59e
2015-05-08 10:08:42 +02:00
Niclas Rosenvik
e6ffb36b55 Use kqueue on NetBSD in qfilesystemwatcher.
Enable kqueue on NetBSD in qfilesystemwatcher.

NetBSD has kqueue.
http://netbsd.gw.com/cgi-bin/man-cgi?kqueue

Change-Id: I6305a37df079c35b9a9b1f70c75ec00e05d25b47
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-05-08 06:08:32 +00:00
Caroline Chao
201bf9e673 Tests: Remove EXPECT_FAIL in tst_QWidget::widgetAt()
The test is always marked as XPASS in CI.

Change-Id: I629bdec6f038cd8b6208fc4db61c67a9ea003b2e
Task-number: QTBUG-22326
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-05-08 05:33:28 +00:00
Andrew Knight
916cfede05 ANGLE: Allow Windows Phone to communicate swap region
eglPostSubBufferNV is used to communicate the size of the window, as
otherwise there is no way for the renderer to know if the last frame was
rendered in landscape or portrait, causing rendering glitches when the
orientation changes. The rotation flags are utilized in a few additional
places now to fix some corner cases where the rotation was not applied.

This patch should be squashed into "ANGLE-Improve-Windows-Phone-Support"
during the next ANGLE rebase.

Task-number: QTBUG-44333
Task-number: QTBUG-43502
Change-Id: Iec37f7531854184819c30c87eab82d96d56ff133
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-05-08 02:34:03 +00:00
Andrew Knight
00a341daa7 winrt: Use ANGLE sub-buffer swap on Windows Phone
This allows the plugin to communicate the swap region to ANGLE and avoid
glitches when the orientation changes.

Task-number: QTBUG-44333
Change-Id: I40240cbcb3aaec92dbf4a82f4957965e92b9c3da
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-05-08 02:33:58 +00:00
Giuseppe D'Angelo
a34e9ebc1b QLineEdit: show the clear button if it gets enabled after setting a text
We were fetching "lastText" too late, and setting the opacity
of the clear button to 0.

Change-Id: I82c2aea7dab4af4424fb57e12f78d07a0374457e
Task-number: QTBUG-45518
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-05-07 22:24:25 +00:00
Giuseppe D'Angelo
ea17cc0768 QColumnView: re-enable scrolling of the preview widget
For some reason, each column in a QColumnView is a QAbstractItemView,
*including* the preview widget's column. Unfortunately,
the preview widget's column class was not overriding scrollContentsBy,
so scrolling it had no effect.

A more comprehensive solution would be a major refactoring of the
code to make that column a plain Q(Abstract)ScrollArea, as it doesn't
need QAIV's APIs at all, but I don't want to change code and risk
breaking behavior.

Change-Id: Ice500a8eaef13c295df4cc274b9f80d9a24c65f4
Task-number: QTBUG-11392
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Alexander Volkov <a.volkov@rusbitech.ru>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2015-05-07 22:24:17 +00:00
Thiago Macieira
36d6eb721e Require -fPIC instead of just -fPIE for -reduce-relocations
GCC 5 combined with a recent binutils have a new optimization that
allows them to generate copy relocations even in -fPIE code. Clang has
the same functionality when compiling an executable with -flto. We need
to let the compilers know that they cannot use copy relocations, so they
need to use really position-independent code.

Position independent code throughout is not really required. We just
need the compilers to use position-independent access to symbols coming
from the Qt libraries, but there's currently no other way of doing that.

Task-number: QTBUG-45755
Change-Id: I0d4913955e3745b69672ffff13db5df7377398c5
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-05-07 19:42:43 +00:00
Friedemann Kleint
ace86dca15 Revert "configure: Change default of CFG_REDUCE_RELOCATIONS to "no"."
This reverts commit d0eba497c1.

A better fix is to use -fPIC instead of just -fPIE fo
-reduce-relocations.

Task-number: QTBUG-45755
Change-Id: I1759291b684fd76d4009e4be9ba1354eb056e659
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-05-07 19:42:37 +00:00
Allan Sandfeld Jensen
b64e87f2ed Blacklist task256322_highlight on OS X
The test keeps failing. The approach of sending mouse move events is
inherently fragile due to the use of QCursor::setPos and the expectation
that that produces the correct sequence of mouse move events.

Change-Id: I07ec75460b70c27152e8775deffcb77fa9328d0c
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-05-07 19:25:18 +00:00
Marc Mutz
e374ffc29c QSizePolicy: improve docs of retainSizeWhenHidden
Fixed markup and grammar.

Change-Id: Ie2427965f905135572fd1f81e4a6d7514dea7022
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2015-05-07 15:44:16 +00:00
Marc Mutz
07af5bfcea Give QSizePolicy its own .cpp
Previously, implementation was spread between qlayout.cpp and qlayoutitem.cpp
and the docs between those two files and qsizepolicy.qdoc.

Move everything into a new qsizepolicy.cpp.

Change-Id: Id15c2c13572b7b8863be596603100f388eafea07
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2015-05-07 15:44:10 +00:00
Erik Verbruggen
92c2783f77 QStateMachine: allow posting of events when starting.
This allows subclasses to submit any queued events that have to be
handled before normal operation starts. For example, if an error event
got generated during initialization which has to be handled by the
state machine, the startup hook in the private class can be used to post
those events and have the state machine handle them appropriately.

Change-Id: I62249a31d8840f47bc19920870ad5da9647e61f9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-05-07 15:37:21 +00:00
Erik Verbruggen
eb4bf7df60 QStateMachine: Fix transition ordering.
When there are conflicting transitions, a transition that is nested
deeper (i.e. more specific) has priority. If two transitions have the
same nesting level, the one that comes first in the document order gets
priority.

Before this patch, only the document order was considered.

Change-Id: I58f188c270cabe2c386a783ceef7a0a955105425
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-05-07 15:37:17 +00:00
Laszlo Agocs
e46b6db986 ios: Add support for QOpenGLWidget and QQuickWidget
The global shared context is now always enabled on iOS. This means that
contexts used by QOpenGLWindow/Widget and QQuickWindow/Widget and the
iOS backingstore will share with each other.

[ChangeLog][QtGui] QOpenGLWidget and QQuickWidget are now supported on iOS.

Task-number: QTBUG-40034
Change-Id: Ibfb99ffcb18f8f8d263662fbf237bc348fc730ee
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-07 07:13:04 +00:00
Tor Arne Vestbø
fe1fb593ae Make it explicit that a few Qt::WindowFlags are overlapping
Change-Id: Ia161fb9b7196d139e22fe7b3b576c5c72ee8a2f1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-05-07 07:01:39 +00:00
Alexander Volkov
1f18f2c1c1 Doc: Fix spelling errors in the QXcbWindowFunctions docs
Change-Id: I0fe7dab6e80876b0fd17f59559295feecfd8cf63
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-05-07 06:57:50 +00:00
Richard Moe Gustavsen
66bd144cf1 ios: implement Qt::WindowTransparentForInput
If the flag is set, report to UIKit that it should
continue searching for the touch target by returning
'NO' from [UIView pointInside:].

Change-Id: I723f64fd855284fa60d0be18b2535dfa61f31381
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 19:47:23 +00:00
Richard Moe Gustavsen
63a46568bf ios: don't autoactivate if _q_showWithoutActivating
Widgets can have the attribute Qt::WA_ShowWithoutActivating
set, which is forwarded to QWindow as a property
(_q_showWithoutActivating). Both The cocoa plugin and
the windows plugin check for this property before
activating a window upon setVisible, so lets do the
same for the iOS plugin.

Note that this is not the same as shouldAutoActivate, since
the window should gain focus like normal if the user
taps on it.

Change-Id: Ie6c95d4044906d97f0a03d27009a23d462c6ca34
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 19:47:14 +00:00
Richard Moe Gustavsen
41492b8b68 ios: don't accept first responder if Qt::WindowDoesNotAcceptFocus
Change-Id: I01801648a1971444e0727e1bf0790cb3a0d0aad5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 19:47:10 +00:00
Richard Moe Gustavsen
856debeec1 ios: factor out authorization check
Factor out the check since it's needed both
when loading assets and when creating an entry list.

Note that the file flags returned from the file engine
will report if the asset is not readable due to
authorization status, so we don't need to check this
again when trying to load.

Change-Id: I77ebbc370f0a7a6020ed484e53ece32bc7fa51bd
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 19:46:58 +00:00
Richard Moe Gustavsen
8628dd7158 ios: add support for fetching entry list in QIOSFileEngineAssetsLibrary
This patch will implement support for listing all available
pictures on the device by e.g doing:

QDir dir(QStandardPaths::standardLocations(QStandardPaths::PicturesLocation).last());
QStringList list = dir.entryList();

Change-Id: I52a07ba48e074bc6e509f2ed3afc3dfea17abc5d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 19:46:51 +00:00
Richard Moe Gustavsen
c4054ab1b7 ios: add fallback in QIOSFileEngineAssetsLibrary for loading assets from ALAssetsGroupPhotoStream
[ALAssetsLibrary assetForUrl:] will not load assets coming from ALAssetsGroupPhotoStream. Such
assets can be stored in the cloud and might need to be downloaded first. Unfortunately, forcing
that to happen is hidden behind private APIs ([ALAsset requestDefaultRepresentation]). So if
the user through QIOSFileDialog opens the photo stream folder and chooses a
photo inside it, QIOSFileEngineAssetsLibrary will fail loading it.

This patch implements a work-around that basically asks ALAssetLibrary to enumerate all assets
in the photo library, and stop once we find an asset with the correct url. At that point we also
have a pointer to a ALAsset that can be used for loading. This is off course a slow way of loading
an asset, but at least better than not being able to load it at all.

Change-Id: Ie50344974f043f909ee94fa12e7eb4a40a666c7f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 19:46:45 +00:00
Richard Moe Gustavsen
1665e0d105 ios: add helper class for enumerating all available assets
Add support for enumerating all available assets on the device.

Trailing patches will use the class to fetch a list of all available
assets for directory listing, and to search for assets that cannot be
loaded by [ALAssetsLibrary assetForURL:].

Change-Id: I319721b536b14424fc8f54f683513aa7ca64e7f0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 19:46:39 +00:00
Richard Moe Gustavsen
fb5530cd69 QSettings: use QStandardPath to resolve path on iOS
The current solution hard-codes a settings path that on iOS
will point to a write protected path inside the sandbox. So
change the QSP fallback in QSettings to also include iOS.

Note that changing settings path would normally be problematic
since it would cause migration issues. However, since the
current solution can never have worked on iOS, starting
to use QSP now should be fine.

Change-Id: Iecad7d84595aee24ca0e2446fa5997296ad8b5a8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-05-06 19:46:06 +00:00