The previous change (SHA 82c2118c) to provide better
than 1ms accuracy for timers on QNX is not safe.
According to the docs, ClockCycles is not guaranteed to
return consistent information if called from different
CPUs. While this can be addressed by locking the thread
to a single CPU, you wouldn't want to do that here.
On some systems (e.g. BB10) the behavior is extremely bad
since ClockCycles only has 32 bits of precision. This
results in overflows in the calculations making short
timers run very slowly (16ms timers were around 1s). Also
ClockCycles wraps in under three minutes causing even
more problems.
I've talked to the kernel developers and there is currently
nothing that will give you better than 1ms accuracy. An
individual program could use ClockCycles to calculate more
accurate times if they want.
It's not clear to me what benefit one would get with
increased accuracy. Unless I've missed something, these
times are only used to calculate timeouts for calls such as
select. These timeouts will themselves have the same
resolution as clock_gettime provides so the increased
accuracy would appear to be for naught.
Change-Id: Ia38b154ca41949becbd0b8558a9ff4ddd5e01a43
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
384388f2 introduced some checks, and used an assignment in an assert;
that sets off compiler warnings about expressions with side effects
into an assertion. Hence, that code needs to be reworked a bit.
Unfortunately, there's no single define we can use to know if
assertions are enabled or not in Qt, so simply use QT_NO_DEBUG
to enable/disable those checks. The actual "thread" data member
is kept around to avoid break ABI depending on debugging flags.
Change-Id: I8b07e7ff6f81359d6b0653a1d9cc2b720541d1b9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
The order is:
1) own header
2) own private header, if any
3) other headers
Commit f17d7a124f broke the order.
Change-Id: I7225024691db91fd936a057accdad65bacb3f979
Reviewed-by: Richard J. Moore <rich@kde.org>
Gesture events sent to a disappearing tooltip can crash. This can most
easily be seen by scrolling over a tooltip on OSX with a magic mouse
middle scroll gesture.
Task-number: QTBUG-42826
Change-Id: Id5510895f63297ca157e3d24a3f4e3a6034586e8
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Include statvfs.h on all non-Linux and non-Solaris systems.
* Fix type of stat_buf structure on BSD.
Change-Id: I6336503082fafd7f6108cf95c079bdd329d2ea0f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
According to the documentation, the argument is called COPYONLY instead
of COPY_ONLY.
Fixes warning and ensures it works properly.
Change-Id: I643f5ea808aaaf94c3ee666ec39485e84ed38df1
Reviewed-by: Vishesh Handa <vhanda@kde.org>
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Fixes combo-boxes being too big and some alignment issues
that were not present in Qt4.
See screenshot in JIRA task.
Tested with QT_SMALL_COLORDIALOG too.
Task-number: QTBUG-43501
Change-Id: I2aefb64be1c5f3c4894149d85e1a12c9c0cc3d62
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
This reverts commit 8c538d10da.
This patch, unfortunately, do not combine well with another
problematic code producing, as a result, a serious regression.
While the proper/better fix in Cocoa menu not found, I'm reverting
this patch.
Change-Id: I1ff03dbe12805da447cb3cfe3e2f231528bf1a16
Task-number: QTBUG-43471
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
This allows the tests to be run on Windows too by using TCP socket
connections instead of requiring Unix sockets. The tests shouldn't have
hardcoded the path, which came from QDBusServer anyway. Now the tests
simply defer to QDBusServer.
This is a slight behavior change for Windows, but not one that should
matter since anyone who was using the default constructor resulted in a
QDBusServer that failed to listen.
[ChangeLog][QtDBus][QDBusServer] Fixed a bug that made QDBusServer's
default constructor try to bind to a Unix socket on non-Unix systems.
Now QDBusServer will attempt to bind to a TCP socket instead.
Change-Id: I2a126019671c2d90257e739ed3aff7938d1fe946
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
QLibrary does not append the version suffix on Windows by itself, since
there's no established practice on how to do this. The MinGW builds of
dbus-1 call it "libdbus-1-3.dll", so we need append the suffix
ourselves.
Unfortunately, other names like "dbus-1.dll" have been seen in the wild,
so we need to try both basenames (Windows doesn't prepend the "lib"
prefix). Both basenames work on Unix, so give "libdbus-1" on Unix since
that will result in one fewer stat.
Change-Id: I92506df5fd30c7674216568406bf86b25bf646b8
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
The cookies may contain sensitive information. so we should not store cookies in disk cache.
Task-number: QTBUG-42546
Change-Id: I6331bdd766445af41f55bfaf0e9132b75dd7957f
Reviewed-by: Jeongmin Kim <jm86.kim@lge.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Glibc will use the intrinsics for 32- and 64-bit, but didn't for 16-bit
(probably because GCC didn't document it until version 4.8), so this
commit will make us access the intrinsics directly the intrisincs for
all type sizes.
Additionally, this will get us access to the compiler intrisics even
without Glibc, such as when building against uclibc or Bionic.
Another benefit is that both Clang and ICC will use the MOVBE
instruction on Atom and Haswell architectures.
Change-Id: I39d1891f479887d719d69ebe4ac92ac9bfeda8af
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
QFile::readAll could be asked to read a file that is over 1 GB in size
and thus cause an assertion:
ASSERT failure in qAllocMore: "Requested size is too large!", ...
The idea behind the existing code was correct, but the value was wrong.
It prevented overflow of the integer size request, but didn't prevent
overflowing the storage size.
Change-Id: I072e6e419f47b639454f3fd96deb0f88d03e960c
Reviewed-by: Martin Smith <martin.smith@digia.com>
The BSD4 code (including OS X) calls sysctl and if that fails, it sets
cores to -1. Similarly, the generic Unix code calls sysconf() and
assigns the returned value to cores, but sysconf can return -1 on
failure.
Change-Id: I9e521d366e9c42f36c2ba20a37e7a74539ddb8f4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Put also processing of control activation into initial timer check for possibly
pending mouse release event.
[ChangeLog][QtWidgets][QScrollBar] Fixed a bug where the valueChanged() signal
was emitted twice if a connected slot took too much time.
Task-number: QTBUG-42871
Change-Id: I7bad5279ef84463a033b55256d241d4445374081
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
On Android, none of the file system paths used for QFINDTESTDATA
currently are suitable. We do have the possibility of putting
test data in qrc, but in cases where the test is specifically
testing access to the regular file system, we need a way to
find files there as well. We add a fifth step when all other
fail, which searches the current active directory for the data.
Change-Id: I4f02f8530b5843eb282bd112ea03ed6a476593d6
Reviewed-by: BogDan Vatra <bogdan@kde.org>
This fixes a regression introduced with
c09e9f71173a698670d6c728291ee24f53d50800 which caused the lineedit to
clear the whole text when an invalid character was entered into a lineedit
with an echo mode that was not Normal and a validator was set.
Now if undo() is called directly then it will still clear the text as it
is considered to be called as a user. Whereas the validation will take
care of the invalid entry by using internalUndo() as before which avoids
the clearing of the entire text.
Task-number: QTBUG-29318
Change-Id: I5ff5777a75ab864de2217441b5f518f50646bd8f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
They were made 'private' as a side effect of a change enabling
support of template friends for MSVC. However, accessibility
is part of the MSVC's name mangling and thus BC was broken.
[ChangeLog][Important Behavior Changes] Restored binary
compatibility with Qt 5.3.2 on Windows when using MSVC 2012 or
MSVC 2013. This means that Qt 5.4.1 is no longer binary compatible
with Qt 5.4.0 when using either of those compilers.
Change-Id: I18679aa15821a7365606dc80fdc8411641573820
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This update fixes some links in the table of contents on class
reference pages. Links to sections of reimplemented functions did not
work because the word 'reimplemented' was not included in the anchor.
This update fixes that bug.
Change-Id: Ifae972c45ebf6c81e865cfb36f645ea42d74cf55
Task-number: QTBUG-42237
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reported on qt-interest: should say "true" instead of "false".
Change-Id: Ic9d2608631679896179ae8601790847163a9224c
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
It appears that there is no code in the plugin that actually uses dbus.
Change-Id: I654cf0b8f5ecc018f2c6ae8701220f7496915a60
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The patch was incorrect and caused semi-transparent images
have inversed colors instead of fixing it.
This reverts commit 624740cdcd.
Change-Id: I3f1fa17309fcb53995520843449aae972e0090b8
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Screen sometimes returns a refresh rate of 0. This has been observed
on VMWare though it is unknown if this is always the case and whether
it happens on other platforms as well. Returning a refresh rate of
0 causes animations to fail so we're better off returning a value that
might be wrong than returning 0.
Change-Id: I4846017bcb0d6bd52faad727df4ef6dac1a6250f
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
This method is not being called anywhere.
Change-Id: Ia32e8b48d324e4848db666de4d274a260d22b06d
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
It's possible to get 0 for baseQtKey in case Caps Lock is used as
a layout switcher. So don't include this value in the result.
Similar fix was in commit d904533acb.
Task-number: QTCREATORBUG-9589
Change-Id: I46fc91f9faf6fd0699f062a72fd2ca3187232f5a
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
The extra character was added in 5.4.0 to allow web browsers to
break up long function signatures in a nice manner. However, not
every browser supports it, and it causes problems in some code
editors when copy-pasting the code.
Change-Id: If6a52b92d683788c5e32f40bb8c280d76112723e
Reviewed-by: Martin Smith <martin.smith@digia.com>
What gets passed to this function is in milliseconds, not seconds (see
QSystemTrayIconPrivate::showMessage_sys_qpa implementation), and the only
currently existing implementation (in KDE frameworkintegration) expects
milliseconds as well.
Change-Id: I7a2c847530391aa73183704251c996664668a740
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Fixed regression bug of the commit #fc11798
Change-Id: I3d64fd67dfe2196a726886a19b9510dd12ff255d
Task-number: QTBUG-43392
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Add the source widget to the texture list (may be null for custom
compositor implementations that add textures not belonging to actual
widgets). This allows us to do proper checks with the
dirtyRenderToTextureWidgets list.
As a result paint events are only sent to a QOpenGLWidget if (1) there
was an update() for it or (2) it was actually marked dirty. (2) was
previously behaving differently: the widget got a paint event when
anything in the window has changed. This is fine for naive animating
OpenGL code but less ideal for QGraphicsView.
Bool properties like stacksOnTop are now stored in a flags value to
prevent future explosion of texture list fields and parameters.
Task-number: QTBUG-43178
Change-Id: I48cbcf93df72ac682c9b5d64982a8b648fe21ef3
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
The Qt bug tracker URL changes as part of the qt.io transition
Change-Id: Icb4ab198943b93639b5e3a8d99262303785c6459
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Setting lfHeight to a positive value in LOGFONT requests the font
with the given cell height, which is em square size + internal
leading. When setting this to the em square size, it means we
will get glyphs that are actually sized for an em square with
sides that are (emSquareSize - internalLeading). For most fonts,
this was not noticeable, but for some fonts with large internal
leading, the resulting glyphs would be very small.
When setting lfHeight to something < 0 instead, we are selecting
the font with the given character height instead, which is not
including the internal leading.
[ChangeLog][PDF] Fix embedding glyphs from fonts with large
internal leading.
Task-number: QTBUG-43082
Change-Id: Id74cf2279df2062804e9431fe305d803cb0b19d2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Otherwise, potentially active players no longer receive the keys when
a Qt application is running.
Task-number: QTBUG-43343
Change-Id: Iefa511a101734690305e3244fafec4a460a9212d
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
The grids are filled top to bottom, left to right, so use division to get
the column.
Task-number: QTBUG-43371
Change-Id: I02ad518512858ed71e0e3a0cae8c4e02d537a9b9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
The LOG_TAG for Android can be set by QCoreApplication::applicationName
instead of a constant "Qt" tag. This will avoid that multiple apps
will use the same tag.
Also it will be easier to filter the logs for different apps instead
of "adb logcat -s Qt" for all Qt apps.
Change-Id: I422cc3adf8b526634b5daa9a1bb1b90403de5618
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The calculateTabWidth() can trigger shaping of the item, which can
cause the layout data to be reallocated, so we need to update the
local pointers to it, like we do when we explicitly invoke the
shaper.
[ChangeLog][Text] Fixed problems with text layout when using custom
tab stops.
Task-number: QTBUG-43126
Change-Id: Ifaeeeb4bfb1a55e6638b12b444f53d2679d3d1e6
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Load again JSON document is it was freed.
Task-number: QTBUG-43111
Change-Id: I22f1de221371b49fec8b3d66ad5f0bd2af9656fe
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Update4 provides a native Sleep implementation. Hence the wrapper
needs to be disabled.
Change-Id: I162da45934b02c262ac09b557c66c3363c276e54
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Ensures that we have a consistent view of what the last used texture
was, which is critical when deciding whether or not we need to re-bind
the texture or update texture properties.
Change-Id: Ib47eb00abde98d148fc6e569ce3e359b340328fb
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
If you click "Pick screen color" and move mouse over QColorPicker (the square with gradients)
unexpected things will happen: black will be picked half the times.
This is because QColorPicker's black cross is painted under our mouse cursor.
Although "pick screen color"'s use case is to pick colors in other windows, there's no reason
to not make it work on QColorDialog itself too.
Task-number: QTBUG-43288
Change-Id: I03ca02148cc15ad41d545723d4ac4f5a82842b4b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Calling QOpenGL2GradientCache::getBuffer() will generate the texture the
first time, calling glBindTexture in the process. We did this without
first ensuring that the right texture unit was active, resulting in the
generated gradient texture binding onto the glyph cache mask unit.
We now provide a specialization of bindTexture for a QGradient, which
ensures that the right unit is active before calling getBuffer().
Unfortunately we have no way of knowing if the result of getBuffer()
was a texture that was already bound, or if we need to bind the result,
which means we have to do an unconditional bindTexture of the resulting
texture ID. This means double-bind for the initial texture generation,
but this was already an issue in the original code.
Task-number: QTBUG-43039
Task-number: QTBUG-41244
Change-Id: I20c9b795c8c14f8d58be2b60a284c5a060705ec0
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
QFontEngine must be accessed amd deleted only in a thread in which
it was instantiated, so we remember that thread and check if it
hasn't been changed every time we access the engine.
Change-Id: I28bc0394ced9cbd437dc950d35ffcbd99cfa7152
Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Switching texture units means the value of lastTextureUsed could be
invalid, meaning we need to unconditionally re-bind and update parameters.
A future optimization would be to keep a per-texture-unit cache, so
that we wouldn't have to re-bind and set parameters when switching
units back and forth, but this complicates the current code somewhat,
so it's left for another patch.
Change-Id: Icb2a5d03457a907f3c25bbb437feeb7c5f155716
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
The xcb backend relies on grabbing the x server in a few situations like
popuphandling. For Qt 5.4.0 the logic enabling this code path was moved
into the plugin. However it defaults to never grabbing the server
Change-Id: I82489a0727affbce62587b3d7470085cf716a0cc
Task-number: QTBUG-43049
Reviewed-by: Martin Gräßlin <mgraesslin@kde.org>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Samsung does not support TYPE_TEXT_FLAG_NO_SUGGESTIONS, even
though that flag was introduced in API level 5. Therefore, we
have to use TYPE_TEXT_VARIATION_VISIBLE_PASSWORD. This effectively
makes ImhNoPredictiveText a synonym for ImhSensitiveData on Android.
Task-number: QTBUG-43297
Change-Id: I3e7139d144276462e46512445ad7b8e7114d8e32
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
QImage::transformed compensates for unwanted translation. This compensation
is performed in "pixel space". However, a possible code path to perform the
transformation uses QPainter which is devicePixelRatio-aware and expects the
transformation matrix to be in logical coordinates.
For example, image.transformed(QTransform().rotate(45)) will result in
cropped out image if devicePixelRatio == 2.
Change-Id: I830ff3ffa25531d842dc9c77f1d0e8d4bd502c9d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
A bunch of zeroes were missing. And not to the left.
Task-number: QTBUG-43279
Change-Id: I1a710cf572099547b2ade7b2574a7e0a61649758
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Set the source for mouse events which were caused
by other mouse events.
Change-Id: Ifca1648883ef2b94bb317ed9340759475d350146
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Let the keyboard gesture work better alongside other gestures
by reporting that it should:
1. not prevent other gestures from triggering. This means that
even if our gesture triggers (we close the keyboard), gestures
attached to sub-views will still continue tracking.
2. not be prevented by other gestures. This means that if
a gesture in a sub-view triggeres before our gesture, our gesture
will still continue to track.
In short it means that regardless of other gestures, we always
close the keyboard if our text responder is first responder and
the user flicks down. And we do so as "silently" as possible.
Change-Id: I22386b5ef5dedbc498a2899929ddd07424e514d8
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
We try to keep a on-to-one relationship between UI controls with text input
and keyboard visibility. But if the control does not use text input, then
there is no reason for us to clear focus when the keyboard hides. In fact, we
should avoid doing so, since that will stop e.g buttons from working correctly.
The typical flow is:
- a touch release targeting a button is sendt to QApplication.
- QApplication transfers focus to the button.
- qiosinputcontext gets notified, we refuse, and clear focus again.
- QApplication enters a propagation loop where it tried to
find out the receiver of the event. Since the button is now
unfocused, the event will propagate up to a grandparent instead.
- the button will as such not trigger.
Change-Id: I70baa38299f40defc4a77f62790502e2d6ebbba9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
This is a cherry-pick from upstream change
e7cfb3dd2029c1bfe5c175ad994c03cac221ad4d
Change-Id: Iefe01545319f9ad268c0c6bf8e8b2181e09d8a84
Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Change-Id: I15b313b5f0d57358e405f16e941fc5061028c6a7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
We auto-scroll the screen to reveal the cursor whenever the cursor rect
changes or other properties of the input methods are updated, but the
expected behavior when explicitly moving an item under the keyboard,
such as when scrolling a view or moving an item using drag, is to
not scroll the screen until typing commences. This matches how eg.
Safari or the Notes app handles the same use-case.
Change-Id: I6b6932d9bcbdccd8df26db982246c162f1574d86
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Rewrite of updateTextureFilter to include activating and binding as well,
so that we can maintain a single view of which texture was the last one
to be used from within the engine itself.
The behavior should be the same as before.
Change-Id: I41781d00458b0176c614266f4360db3c68b120a1
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
The glyph cache internally uses the image texture unit when blitting,
but doesn't always activate the unit before binding its texture,
resulting in sometimes binding the glyph cache texture to the
wrong unit.
The image texture unit is also the same as the brush texture unit,
so any time we fill in pending glyphs we need to re-bind the brush
texture, otherwise drawing text with eg. gradients will fail after
the new glyphs have been filled.
The new hasPendingGlyphs() member function of the glyph cache
is an optimization so that we don't need to activate and rebind
unless there are glyphs that need to be filled.
Change-Id: Iac74130145d2d6d7bf95206b5e8a2fc760743cb5
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Make it possible for widgets to have non-widget focus objects. Since
we cannot add new virtual functions due to binary compatibility, we
have to do it in QWidgetPrivate.
Task-number: QTBUG-42677
Change-Id: I5f74daed2793c1c149bbe02e54ff2f7e2ad1af9e
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
QXcbClipboard listens for subtype SelectionClientClose of Xfixes
SelectionNotify event, but doesn't handle it. When the client holding
the clipboard selection closes the Clipboard becomes empty and thus the
change should be emitted.
This fixes downstream KDE Bug #329174.
Change-Id: I19fb8cfd7bd3b249c0bc6ca2a724a9aeeb05ac7e
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
Document that NOTIFY signals should be emitted only when really needed,
and that such is the case with MEMBER variables.
Change-Id: Icc38a0790aa43ffe8f24d124da966b4240a41a6f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Place all debug output into the 'qt.network.ssl' category.
This allows people to disable certain warnings at runtime.
Task-number: QTBUG-43173
Change-Id: Ide731fae3109f9cd7730cc096ee069a5b99d35f1
Reviewed-by: Richard J. Moore <rich@kde.org>
If the enumeration "Type" isn't declared in the public scope, it will
cause an issue upon compilation. Previously, it was ambiguous on which
access level this should be in. Snippet [18] though has the enumeration
in the correct access level.
Change-Id: If699df80def3e1b09d8d82df74c4ca85eba003d2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Snippets [1] and [QGraphicsItem type] are the exact same, each
referenced once, and only in the same file. Removed the later snippet.
Change-Id: I4f35a8322034b00e9b5f5d6c6d96e652f11f8384
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
On Android, we disable mouse selection, since that does not work
well with touch screens. In change a03a69efb9,
we accidentally disabled keyboard selection as well. Unfortunately,
disabling keyboard selection will disable all keyboard movement.
This change re-enables TextSelectableByKeyboard.
Task-number: QTBUG-42991
Change-Id: Ie63ed3d88a0abcb72f04e0ec60a5b91c0b14a47e
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Instead listen for if the accessibility service is running or not by
implementing AccessibilityStateChangeListener.
This seems to work smoothly when turning on or off TalkBack.
This should also improve startup time.
Change-Id: I3eb7d6cb9c9c1618afbb59675e4e089c9159019c
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Prevent the cursor cache from growing indefinitely hitting GDI resource
limits if new pixmap cursors are created repetitively by purging out
all-noncurrent pixmap cursors.
Change-Id: I4a3bbd6235af13e306ca84ac6fea3fcd69d53279
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
There is no such thing as a vertical slider in the native Android
style. Therefore, we need to rotate the painter in order to draw
one.
Task-number: QTBUG-41992
Change-Id: Ibe2bf1d7fa27756aad0b8469c8752d6d3e848527
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
By adding PM_HeaderMarkSize to the margins if the section is showing
a sort indicator. Turns out that that particular enum was actually
unused in QtWidgets (!), so tune the value to match reality.
Task-number: QTBUG-629
Change-Id: I8bc70451656d634a064c8b5014e449977c55aa9d
Reviewed-by: Cristian Oneț <onet.cristian@gmail.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
The docs were wrong, and the returned values from some styles
did not match reality, so fix that. Again, this style hint was
not used at all within QWidgets...
Task-number: QTBUG-629
Change-Id: Ie6ff80fd09bc3292ba3d787ccca4d6f4c0056e89
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
The \inqmlmodule command only accepts one parameter: the name of the module.
This was producing some confusion, since in qtdeclarative there were some wrong
import statements and it wasn't obvious which command was producing them.
Change-Id: Idb41f12f20f05757942b0957c512d195ec8500b3
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
While the attribute was originally intended for widgets (QOpenGLWidget,
QQuickWidget) only, we need a way to get multiple QOpenGLWindow instances
whose contexts share with each other.
Change-Id: Ib983c9c2815b0a3911bc504ffad8d8dddad192aa
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
An application might choose to change focus when receiving mouse/touch
press/move events. This is in conflict with Qt assigning focus on touch
release (QPlatformIntegration::SetFocusOnTouchRelease), since Qt
might then reassign focus to something else.
An example of this is seen with the "frozencolumn" example. Here, when
the user double clicks on a cell, the application creates an 'edit'
widget inside the cell that gets focus. But at soon as the last release
is sent, Qt will change focus to the focus proxy of QScrollArea instead.
This patch will introduce an exception to setting focus on release, so that
we only set focus if we detect that focus didn't change (by the app)
while processing press/move events.
Task-number: QTBUG-39390
Change-Id: I7b398b59e3175265afd2fcd938e11f88155abc89
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Activate previously #ifdef'ed code which cleared
the Qt::X11BypassWindowManager hint. With the hint
set, the tool bar stays on top and does not get deactivated
along with the application by the WM.
Task-number: QTBUG-41189
Change-Id: I6f3f334860e46dd4867f5942f15e5a090340f2d7
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
If we're changing the contents of the nib files in Qt, we need to
overwrite the nib files that we write to /tmp, as QFile::copy() does
not overwrite files.
This also catches the case where the files in /tmp are empty due to
a possible broken qrc-run, where re-runs of qrc to fix the resources
would still leave the corrupt nib in /tmp, resulting in:
-[NSKeyedUnarchiver initForReadingWithData:]: data is empty; did
you forget to send -finishEncoding to the NSKeyedArchiver?
And as a consequence:
qt_mac_loadMenuNib: could not instantiate nib
ASSERT: "mainMenu" in file qcocoamenuloader.mm, line 154
Change-Id: I2907a32d1a56c23a27343c81839a06b65a529372
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
kernel\qtranslator.cpp(880) : warning C4267: 'initializing' : conversion from 'size_t' to 'const uint', possible loss of data
kernel\qtranslator.cpp(881) : warning C4267: 'initializing' : conversion from 'size_t' to 'const uint', possible loss of data
kernel\qtranslator.cpp(882) : warning C4267: 'initializing' : conversion from 'size_t' to 'const uint', possible loss of data
kernel\qtranslator.cpp(975) : warning C4267: 'initializing' : conversion from 'size_t' to 'const int', possible loss of data
Task-number: QTBUG-39757
Change-Id: I54f130e1d83ecc1623ab3c7b9b4fb14de6351625
Reviewed-by: Albert Astals Cid <albert.astals@canonical.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
A window with a renderToTexture child uses the OpenGL path, but when
we open a popup or dialog, that uses the raster compositor, which opens
a separate surface. This patch fixes two issues when combining GL rendering
with the raster compositor:
1. GL-rendered widgets were counted as part of the raster-rendered region,
meaning that we did not punch a hole in the raster surface.
2. We did not destroy the surface when no longer needed.
Task-number: QTBUG-41467
Change-Id: I2a2a0e860cce065b330df1c864d51fd02103aa1b
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Again one of those CGRect vs. NSRect issues.
Change-Id: Ia933cd6f002585e21247d2f9f85d2451db6dbaa0
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
The keepalive socket can only be set if the socket is not connected
(see
http://msdn.microsoft.com/en-us/library/ie/windows.networking.sockets.streamsocketcontrol.keepalive)
Task-number: QTBUG-38623
Change-Id: Ia40dc66f071a8109538e4be7a8f420de81d5be8d
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
When any item in a QColumnView gets selected, the next column gets
normally set to show the children of that index. When we are on a leaf
of a tree model, the next column will have an invalid root index, yet
we set that root index as the "current index" for the current column.
Due to the special handling for invalid indexes in
QAbstractItemView::setCurrentIndex, this ends up breaking the current
item AND the current selection in that column. Further clicks inside
the column for instance trigger the entire column (up to the clicked
index) to get selected, because of that broken first setCurrentIndex.
The simple fix is to stop doing that when the next column has
an invalid root index.
Task-number: QTBUG-2329
Change-Id: Icd10c0b958e25cd868536e1315561787977b68bd
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Previously, the accessibility focus rectangle was only visible when it
overlapped with the m_editText View of QtActivityDelegate. The reason for
this is not completely verified, but this is the most likely reason:
* The SurfaceView and QtLayout (ViewGroup) does not do any drawing
themselves. Due to this their default value of the View::willNotDraw
property is true. Because of this Android might assume there is no
content for the focus indicator to surround. (This was verified with
setting the willNotDraw property to false on the accessibility view);
* Another possible reason could be that overlays does not work for
SurfaceView. It is documented that overlays does not work for
SurfaceViews, so therefore it tried to use the overlay of another
view. For some reason it picked the m_editText overlay instead of the
QtLayout overlay.
See here about overlay:
http://developer.android.com/reference/android/view/View.html#getOverlay()
The solution is to add another View that covers the whole screen, which
will be used solely by android to draw the accessibility focus indicator.
In addition, we change the QtAccessibilityDelegate to no longer have the
SurfaceView as a host, but have the m_accView as a
host (the host can be freely changed, since all accessibility nodes are
virtualized through the delegate anyway)
For the record, this will be the current ordering of views in QtLayout:
(back-to-front order):
Qty Default Qty
* Surface View(s) >= 1 1
* Accessibility View == 1 1
* Native View(s) >= 0 1
* m_editText View == 1 1
where the m_editText migth be interleaved among the Native Views.
[ChangeLog][Android][Accessibility] Fixed an issue where the accessibility
focus rectangle was not drawn properly
Task-number: QTBUG-38869
Change-Id: I64d6b6ec45b27d0d93ac9dd840de764c18c55d04
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Always skip calculating style-dependent margins for windows claimed
to be frameless by Qt. This allows users to remove the margins by
handling WM_NCCALCSIZE with WS_THICKFRAME set to ensure Areo snap still
works.
Task-number: QTBUG-40578
Change-Id: Ice7771df8fbf59b370568219d10c12ce04e99628
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
The fixed-size EGL display must be updated on PC as well as Windows Phone.
Task-number: QTBUG-43112
Change-Id: I0ba90370b67e8c065843e5754579e341b647266d
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
The Fira Sans font by the Mozilla Foundation has bytecode that goes
into an infinite loop. Fortunately FreeType catches the case, but we
fail to render any glyphs and spends too long trying the bytecode on
every glyph.
This patch instead switches the font to auto-hinting when this error is
encountered.
Task-number: QTBUG-41034
Change-Id: Icd044b41396a06fb435bc189cdbd71d703107de6
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
When calling QDockWidget::setTitleBarWidget() from within signal
QDockWidget::topLevelChanged(), a nested call of
QDockWidgetPrivate::setWindowState(unplug=true) is triggered, leaving
it with Qt::X11BypassWindowManagerHint set and thus invisible/off
screen.
Force the unplug parameter to false if the widget is already
in floating state.
Task-number: QTBUG-42818
Task-number: QTBUG-38964
Change-Id: I6aff61e4ee1501f5db281566b66db66c19351410
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Fix warnings:
QWindowsContext::windowsProc: No Qt Window found for event 0x46 (WM_WINDOWPOSCHANGING), hwnd=0x0xde0408.
occurring when using Active X controls.
Factor out message handling to a static function which can be used
during window creation when QWindowsWindow does not yet exist.
Task-number: QTBUG-36318
Change-Id: I3ce56fd377e3392b0dd22d3d26a7048065380f13
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Only reproduced with Windows font Calibri. This font has both
outline (vector) and bitmap glyphs. QFontEngine_FT has an hack
to get metrics from EBLC table, but this might fail, resulting
in a 0 ascender and descender, meaning QFontMetrics::height()
will be 0, meaning totally broken text.
This patch checks for that failure, and fallbacks to the outline
metrics instead of the bitmap ones.
Task-number: QTBUG-42898
Change-Id: If33fc3404d0c7f84557f8c4a5ae71b30f78d60a7
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
The text was very washed out, almost white on small font sizes.
This ifdef was introduced to cater for GDI differences between Vista
and Pre-Vista, it's GDI specific, nothing to do with FreeType.
Text now looks good, and md5sum of the rendering is the same as on Linux.
Task-number: QTBUG-42564
Change-Id: I2e06b83b80df093331454fe1b780d26462db597d
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
This reverts commit 2ffa46054d.
It completely broke text selection in text edits on iOS, and wasn't
even tested on that platform before landing. It's also changing
behavior in a patch release for multiple platforms, from being
able to both scroll and select text, to only being able to scroll,
which would be considered a feature-regression and an automatic
-2 on the original patch.
This means QTBUG-40461, a P2 regression from Qt 4 on Windows, will
have to be re-opened, so that we can fix it properly.
Task-number: QTBUG-43101
Change-Id: I26a2bafb4500b1ff4dc3fb942f197d11038b630b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
This reverts commit cf0d96f4c8.
It broke text selection on iOS and was never tested on that platform.
Task-number: QTBUG-43101
Change-Id: I9f224a3838a1f741bc9a9c24f16923ef2018ddf3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
When setting a left corner widget on a QMenuBar, the first
action rectangle is offset by its width and thus the width
should not be added to the size hint. Use QSize::expandedTo()
instead.
Task-number: QTBUG-36010
Change-Id: I660e3facbd0aeb5fb84fac8923db3e0c7998309d
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
"no signature" is misleading and even led me to re-check the code to see
if it meant that the reply failed and no signature could be obtained.
Saying that the signature was obtained but is empty is better.
Change-Id: I1381cf53b334798125d36db0934105d15b63b84f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
The App might use response data of Synchronous 401 reply. (example : specific error info of code, string as json)
so, Added a function to read it for Sync.
Async is already OK. Sync path is different from Async path.
Change-Id: I683d4b6b40f600793d2545811dcd6644515de79c
Task-number:QTBUG-43030
Reviewed-by: Jeongmin Kim <jm86.kim@lge.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
This is a cherry-pick of upstream f60fab6d154f4c9bf599e92976cd8cee7f8633e0
(See https://chromium-review.googlesource.com/231612)
Task-number: QTBUG-42882
Change-Id: I7b4bdc4b68a1b93ff514f09ce35dbf4e9360af9b
Reviewed-by: Marko Kangas <marko.kangas@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
The sizeHintChanged() signal from the column and row delegates need to be
connected to the doItemsLayout() slot so that the view is updated when the
size hint changes.
Additionally doDelayedItemsLayout() is called to ensure that this is
up-to-date as the size hints may have changed when the new delegate was
set on the row or column.
Change-Id: I458293f05ce9ef40a03bdbcab1a6e7a10f648c89
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Kevin Puetz <PuetzKevinA@JohnDeere.com>
When we overwrite the default palette, we have to make sure
we don't overwrite default values with black for all the
colors that are not retrieved from the json file. We would
for instance get black as both the base color and text
color which would make some components unusable.
Change-Id: I1079a70a0ac7eb379ed5e8d92c6b39c2ea77ba49
Task-number: QTBUG-42812
Task-number: QTBUG-42998
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Must have been a copy paste mistake, the check is used in other places
to make sure we don't unlockFace() without a lockFace(), but here
we're certain lockFace() was called first.
Makes Coverity happy.
Change-Id: I679129727b29a40d780f4fa903f44f7cbc9ec8cf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
There is no need to call bringToFront() when the item was just made to
be the last child in the two previous lines. (Child views are ordered
in stacking/paint order)
Change-Id: Ie9fbe5de6dce2bbc96cd44a8a6a779504cd0becd
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
The old code would stack the new surface just below the topmost surface.
It also did not consider if the m_editText was added to the layout or
not (thus, m_layout.getChildCount() - m_nativeViews.size() - 1) was only
correct if the editText was added.
Spotted by plain code reading while investigating some accessiblity
issues.
Change-Id: I12c9f373a471c0a7ee624a47232e8952d69c9067
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
We pass in self to initWithTarget, so we need to be sure that the
init doesn't return a new self.
Change-Id: I90d0d10d2fd1a5d38ef1ff3f23169dcce00b28e2
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
We now emit and change the 'visible' and 'animating' properties of the
QInputMethod according to the documentation, which means the 'visible'
property will change immediately when the keyboard is about to become
visible, or about to hide, and the 'animating' property will determine
if the visibility-change is just starting out, or has ended.
The keyboard rect will at all times reflect the currently visible area
of the virtual keyboard on screen (in focus-window-coordinates), not
future state after the animating completes. Getting the future state
is a missing piece of the QInputMethod API, and could be solved in
the future by adding arguments to the animatingChanged signal that
allow platform plugins to pass on the before- and after states.
The logic for determining the keyboard state has been moved into
a central function, updateKeyboardState(), which allows us to change
and emit property changes atomically. There is still some parts left
of the old approach, but these are left in to make further changes
to the code easier to diff and understand in isolation.
Change-Id: Ica52718eba503165ba101f1f82c4a425e3621002
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
We don't need to keep track of the view-controller or add ourselves as
a gesture recognizer inside QIOSKeyboardListener. In fact, leaving the
call to removeGestureRecognizer in [QIOSKeyboardListener dealloc] will
result in QIOSKeyboardListener never being released, as the view that
we add the recognizer to will keep a strong reference to the recognizer,
so dealloc is never called unless the view is also released, which is
unlikely to happen. We now fully control the lifetime of the recognizer.
Change-Id: I6755e8cdfcc8f1062314db51aa54a2b7ecd1b967
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
QIOSKeyboardListener takes care of both maintaining the virtual keyboard
state, and acting as a gesture recognizer for the hide keyboard gesture.
We make this explicit though a union in QIOSInputContext, so that we can
access each 'mode' separately. This improved code readability and allows
later refactoring of the state and gesture into separate classes without
changing the call sites.
Change-Id: Icc60f4a542983cda7ca0fd6622963d32d1e90db9
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
http://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/?id=b3500af717010137046ec4076d1e1c0641e33727
../gui/text/qfontengine_ft.cpp: In member function ‘QFontEngineFT::Glyph* QFontEngineFT::loadGlyph(QFontEngineFT::QGlyphSet*, uint, QFixed, QFontEngine::GlyphFormat, bool) const’:
../gui/text/qfontengine_ft.cpp:1126:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
for (int x = 0; x < slot->bitmap.width; x++) {
Change-Id: Idb58f9e5895aac8c02163870d7c7d4a49237086b
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Those functions weren't getting properly namespaced. Even if we're
testing WinRT namespaced builds, it wouldn't catch this mistake: those
functions would simply all be in the global namespace. I guess we don't
have a "namespace cleanliness" test.
Change-Id: I2d3d09dc66dad476563dbf51c171683be155ebfd
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
Keep the WinRT specific parts for WinRT only. This commit is a partial
reversal of 67c83f329e "Tighten Q_OS_WINRT
ifdefs in qfunctions_winrt.h", which let the WinRT definitions out too
wide.
Strictly speaking, the C++ code that uses
Microsoft::WRL::ComPtr<IAsyncInfo> without the #include is broken. The
forward definition is not enough, but since Visual Studio is also
broken, two wrongs made a right... (MSVC does not implement two-stage
parsing of template code properly). But if you accidentally tried to
compile qfunctions_winrt.h with a non-broken compiler, like GCC (MinGW),
it would correctly complain.
Change-Id: I7591015861d291a82050afe0f4df0cb18b43e23d
Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
The GL_RGBA8_OES define is not in scope for dynamic OpenGL builds, so
pass in GL_RGBA8 instead (it is defined as the same value, 0x8058) when
in ES mode. The functionality check already ensures the extension is
available, so the ifdef guards can be removed.
This fixes default multisampled FBO creation under ANGLE when using
-opengl dynamic.
Task-number: QTBUG-40921
Change-Id: Iac4b7e230a463c27b61af75c3307421f9deac856
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
WinRT requires that IDXGIDevice3::Trim() is called on application
suspend in order to pass Store Certification.
Task-number: QTBUG-38481
Change-Id: Ia3cb5d3f6a2db8f11e4bfa4fd5c7791e18d6c36d
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
Unfortunately the FSEvents implementation for watching parent
hierarchies has the major flaw, that watching a path will then
create watches for the whole parent hierarchy even if that
hierarchy is already watched. Watching /A/B/C and /A/B/D will
create two watches each for /A and /A/B. This leads to an explosion
of open file handles.
Luckily we do not need to watch the parent hierarchy since this
is not a supported usecase of QFileSystemWatcher anyhow, so just don't
do it.
Task-number: QTCREATORBUG-13531
Change-Id: I9ecb5f08e4be35e4fbd58a7ca3155867fcb1589f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Most of QtDBus already needs very little from libdus-1, so create an
extra header containing the minimum API we actually need.
One large advantage of this solution is that now QtDBus can always be
enabled, even if the system doesn't have libdbus-1 installed. This is
interesting on OS X, where libdbus-1 is often installed by Homebrew or
MacPorts, which may include extra libraries we don't want in our
packaging.
Change-Id: I1b397121ec12eeca333ef778cf8e1c7b64d6b223
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The loop is there because watchers may have two Watcher for the same
fd, one for read and one for write, but after we're processed the
correct one we don't need to keep looping.
This fixes a crash since it's possible that while in processing
q_dbus_watch_handle we get a watch added/remove this invalidating
the iterator and crashing
Change-Id: Icb61deae272d2f237a4c616fae598404d419af90
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Conflicts:
dist/changes-5.4.0
7231e1fbe2 went into 5.4 instead of the
5.4.0 branch, thus the conflict.
Change-Id: I70b8597ab52506490dcaf700427183950d42cbd1
propagate size hints means that we should forward minimum/maximum
size set on QWindow to the underlying native window to restrict
how the user can resize the window. On iOS this does not make
sense, but nevertheless, if we don't override the function, the
default implementation will issue a warning. This again will
always make creator inform that the application ended with error
upon exit.
Change-Id: I0a8bd74c47fafe2115add5b6eb4e77616fcbc365
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
This is a temporary "fix" until we'll fix all the problems with the new
Android Material theme.
Task-number: QTBUG-42900
Change-Id: I5485cfd5ac5fdd66cb85da423fe2e63e65be010f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Add a virtual function QWindowPrivate::closestAcceptableGeometry()
which is called from the platform plugin.
Task-number: QTBUG-36220
Task-number: QTBUG-36318
Change-Id: I2b3d205e2c75f1d4dd2ba1d333b0d89bc0fcf13a
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
The size calculation in QByteArray::toBase64 overcalculates the size
required for the output by up to 3 Bytes. This is fixed, which also
implies that truncate() at the end is needed only if OmitTrailingEquals
is used.
Task-number: QTBUG-32436
Change-Id: I92a893047e7aca027c4aa0a6655bcca514585ff5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QString::clear() sets the string to the null QString, not just an empty
one.
Change-Id: Ie6f070f9f2e464105a7b87376e6dad90b5e4d2f2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Clarify that shown here refers to where they are shown initially.
Change-Id: I962fd4b98d80fb1d43e086660fb74eea6b8f532a
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
ifdef panTouchPoints which is not used on OS X. Otherwise the build
fails when the -Werror,-Wunused-function flags are used.
Change-Id: I4f5498774905fcb2ba1fae40e41587d5821af8b9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Just like the other typedefs; removes the doc warnings.
Change-Id: I61142b8db57f4e0cc44cb8c459b1e82e69da3413
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
sizeHint() did it exactly like this, but minimumSizeHint() didn't,
which made it too small. Didn't affect the actual size in most cases
since the vertical size policy is fixed, so sizeHint() is called instead.
But when writing a subclass, if one re-implements sizeHint() by
calling the QLineEdit's minimumSizeHint(), it would then be wrong,
when text margins are used.
Change-Id: I29ae8dcab00842b3b5ca534cdb250efc0b496f45
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
If you build with configure -DQT_NO_DEPRECATED this will avoid some
build errors.
Change-Id: If2b2e57b6919091f3f077ebc2aeca0c3fd2421aa
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Associate a 0-context with the window if IME is disabled, store
this state as a flag to QWindowsWindow. Associate default context
again when enabled window gains focus.
Task-number: QTBUG-40691
Change-Id: I78d5494a05f93a39e245ca7c096d45445e684ea8
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Add a capability enumeration to QPlatformInputContext and
use that to turn off input methods for hidden text depending
on platform support. Disable on Windows.
Task-number: QTBUG-40691
Change-Id: I9909005de1f21316ec8f64e2729f1fffcd37c7c3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
As pointed out in 13b939c7f4 the approach
qdevicediscovery_p.h takes is just wrong. The defines it relies on will
often be missing when the header is included from random places in qtbase.
This results in different class layouts. It was working only because the
interface of the class is very limited and the public part was matching
regardless of having the macro defined.
This is now corrected by introducing subclasses and a common, non-variated
base class. QDEVICEDISCOVERY_UDEV is removed completely.
Change-Id: I9c83b5b041440a3a6ea3a604eee4a325d4d74439
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
The current approach of not activating transient windows with the
popup flag set was found to be too restrictive, as it would
e.g stop transient dialogs from being able to contain editable
controls.
This patch will restrict the number of popup types that we
skip activation for to only contain a few subtypes.
Task-number: QTBUG-41613
Change-Id: I381a5a79fb4f7082da18a6b4e06a7255ff400b1a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
On iOS, autoSIP is handled by the platform plugin. We therefore
avoid letting widgets tell the input panel to hide on focus out
so we can gain better control over this from the plugin.
Note that we could also set QApplicationPrivate::autoSipEnabled
to false and achieve the same. But since autoSIP is logically set
on iOS, it's better to report it as set in case the app asks.
Change-Id: I96c68bc446a1e299fd57afe03a9e273491df08a7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The enum was made public in f84b00c6d2, but this
makes it follow the convention to camel case acronyms too before it's too late
to change it.
Change-Id: Ibb81e9221cb73fe0502d0a26f2d73512dd142f08
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
On iOS 7.1 [UIScreen screens] sometimes (and against documentation) returns
an empty array, which will lead to a crash. This patch will add a fallback
path that uses [UIScreen mainScreen] instead when the screen count is 0.
Task-number: QTBUG-42345
Change-Id: Ie72578ff7ecd0c8fbc971fafea45047bf1347cd9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The special-case that was added for OS X before the iOS port
came to be stops the virtual keyboard from working correctly.
Task-number: QTBUG-41613
Change-Id: I0b8c83e98584389ea4a8aada16a1ee1a64300400
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
This function is apparently optimized in a way that gives a bad return
value (or leaves the variable where it is used uninitialized), leading to
extreme memory allocations and eventual heap exhaustion.
Task-number: QTBUG-42038
Change-Id: Ia4ee9fc6475a0bf40e25eed356b027a4dc68d119
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
When a popup is opened it grabs the input, but the leave event to the other
windows needs to be sent.
Remove the popupEnterLeave test as it did not test any code. The Popup
never gets any enter or leave events so it will succeed always succeed
Task-number: QTBUG-36862
Change-Id: I625c616eeb74b5168af7b751485e2a9a53b76cd3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
qFind is deprecated, so these cause build errors with
configure -no-feature-DEPRECATED
Change-Id: Iefcb061d5e8ce256445528f601ead4c9d5d1dfd2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
so that it can build with configure -no-feature-DEPRECATED
Change-Id: Id2decc05974bad249c79936d99ab63d3cfc375ad
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
to support configure -no-feature-CURSOR
Change-Id: I8e7f9a7f80d3d44a1f8e25b909d552351b5f37e4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
One of the fontEngine()'s methods was missing hinting. This bug only
manifests on Windows because on Linux QFontConfigDataBase already sets
hinting on both code paths.
Task-number: QTBUG-42534
Change-Id: I3a66a9d4aaa5e390fee305a3d5aacfeba38a1fc3
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
In qt_fontHasNarrowOutlines, if we proceed to call alphaMapForGlyph
when the glyph does not exist, there will be a failed assertion.
The docs for FT_Get_Char_Index say that zero means the glyph was
not found.
Change-Id: I371e9a2797a34fa3ebeae44531af51e24dadad79
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Multi QFontEngine should be handled just like all other cases
covered several lines below.
Change-Id: If3dd9a2e38a5f6f61b113576cb188da378fc9efb
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
QFont is not POD and shouldn't be instantiated statically,
otherwise we could end up with UB during qApp destruction.
Change-Id: I2372c7a643eb3007957ab2b798732c1a18fd0ae5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
If GetTextMetrics() failed, there is no guarantee that
TEXTMETRIC is initialized with any safe values.
Change-Id: Idb5e3bc1bc2451368950978365487c908ce529e7
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Never assume the engine is still cached but rather delete it
if we are the last consumer.
Change-Id: I4e3c796d45c53f42722a437482d71e2dae14cad2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Implements isValid(), which should be returning true for subclasses,
and re-orders and adds Q_DECL_OVERRIDE where appropriate.
Change-Id: I03519bf674b6f7b7ccc07a7154c9a1fb9a8105f2
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
This removes some code duplication in the QFontEngineFT and
it also removes the condition that loadTransformedGlyphSet()
will return 0 if the font is too large to be cached, since
this is handled by setting outline_drawing on the glyph set which
will fall back to painter paths.
Change-Id: I2fe6a963e854cdd7c6015154547dc06325cbe3b0
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
This makes it follow the coding style, which says to camel case acronyms too,
and makes it consistent with the rest of the class.
Change-Id: I4a1b21de1815530e476fc5aa8a0d41c724fc8021
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: hjk <hjk121@nokiamail.com>
HTC does not do beginBatchEdit/endBatchEdit when committing text.
We implement the commit in two steps: first set the text, then move
the cursor. To avoid sending an updateSelection for the intermediate state,
we need to block updates when we set the text in the editor.
Task-number: QTBUG-42300
Change-Id: Icd18700ecf1fba5acb9f8a78762555c1309b221b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
The virtual method was added for 5.0 but never called.
The old code (only checking mimetypes) is now the default implementation
for canDropMimeData. Model subclasses can now refine this by having
index-specific logic instead, or in order to inspect the dropped data
(e.g. to accept files and refuse directories, which are all text/uri-list).
[ChangeLog][QtWidgets][QAbstractItemView] now calls canDropMimeData in
order to decide whether or not to accept the drop.
Task-number: QTBUG-30534
Change-Id: Ied3aa964b4025bae6a1a26df89a681bfe61c3faa
Reviewed-by: Stephen Kelly <steveire@gmail.com>
The code in 4696e9dbaa was incorrect. It is perfectly valid to call
these methods with row=-1 column=1 parent=some_index, this is exactly
what happens in QListView and QTableView. Child row/column is only for
trees.
Move the coordinate mapping from QSortFilterProxyModel into a new
mapDropCoordinatesToSource internal method, used by QAbstractProxyModel.
Task-number: QTBUG-39549
Change-Id: I3312210473d84b639cbe4c01f70ea36437db3e91
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Stephen Kelly <steveire@gmail.com>
CoreText doesn't seem to provide us with a "maximum advance" value,
but 0 is really wrong, it leads to QLineEdit::minimumSizeHint() being
0 since it's based on maxWidth(). It even led to a negative min width
with setTextMargins(-1, 0, -1, 0).
Change-Id: I4faf8ecfb6d91e9dff66ec63651d003014503cb4
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The current implementation returns the DocumentLocation folder.
Since now only cocoa is supported, we can use NSFileManager to get the
correct path.
[ChangeLog][QtCore][OS X] Now QStandardPaths returns the correct path
for the DownloadLocation.
Change-Id: Ic0ea3ebf8585a1e34a7b43c734df78fd3949d4d4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
When compiling with GCC 4.9's LTO, the compiler realizes that the class
looks different in two different compilation units and prints a warning.
Adding the necessary #define will make sure that the warning isn't
printed.
It's possible the warning indicates a real problem, if the class
actually got used in those two plugins. I wouldn't know.
QtPlatformSupport/private/.../qdevicediscovery_p.h:66:7: warning: type ‘struct QDeviceDiscovery’ violates one definition rule
.moc/.../qdevicediscovery_p.h:66:7: note: a type with the same name but different layout is defined in another translation unit
Change-Id: I73ca8e553e392b8d368f0deaa318d3e6635d73e1
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
The presence of the inline QTestFontEngine's constructor causes a linker
failure because QFontEngineBox isn't exported. I'd say this is a
compiler bug (GCC 4.9), but it's an easy workaround and a difficult
testcase.
typeinfo for QTestFontEngine: error: undefined reference to 'typeinfo for QFontEngineBox'
vtable for QTestFontEngine: error: undefined reference to 'QFontEngineBox::glyphIndex(unsigned int) const'
Change-Id: I84829d111616977d6f3fcbbb48509d1c7d4f5fa6
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
If "encrypted" signal is fired the configuration of ssl is not updated.
If someone wants to perform additional checks on the certificate chain
it is now possible to use peerCertificate and peerCertificateChain.
Change-Id: Id5136a8c52727562c36028eaef721cc9ad86619d
Task-number: QTBUG-40401
Reviewed-by: Richard J. Moore <rich@kde.org>
QDBusMessage is intended to avoid sending reply messages unless
the message is a method call without the NO_REPLY_EXPECTED flag set.
However, since messages which are not method calls will never have
this flag set, the code will currently cause all non-method call
messages to expect a reply. This patch changes the code to examine
the message type, and to only check for the flag in cases where the
message is a method call.
Change-Id: Ic5bb00df69d3cfb38f60bf6bfd8463fb28cf2c99
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
If you write xxxx::min(), min() might be expanded as a macro on silly
environments that follow that poor practice (read: inclusion of
<windows.h> without NOMINMAX). However, if you write (min)() or
(xxx::min)(), it means the same but prevents the expansion as macro.
Task-number: QTBUG-42767
Task-number: QTBUG-31469
Change-Id: If3c93aafd4d0bf63ca15f3d01c2297d58d00f6bc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Never start a line with a comma.
Change-Id: Idce1766f2661aa97fd163c02436ef315999985ec
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Fixes CVE-2014-8964.
Upstream diff: http://www.exim.org/viewvc/pcre?view=revision&revision=1513
Change-Id: I59dc1f4c290e29ab5f22ed68eaeba702f4232e0e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
This fixes a issue that has been neglected for a while, namely, that
the access to the global jni caches where not sufficiently protected
for concurrent usage. This change also fixes an issue with the
thread-name storage.
Task-number: QTBUG-42755
Change-Id: I22f95ae7f44d1f6a13e289e52b050d98ccb9fb28
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
On newer Androids, exceptions have started happening when using old
manifests that refer to splash.xml because the layout is missing
some required attributes. We add these to avoid crashing with these
apps.
Change-Id: Iefd4718e811df844e53890ee5bc772871d0a9803
Task-number: QTBUG-42807
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
The default should be the actual time of day. Showing the process's time
is the optional case. In the future, we'll provide a way to showing the
monotonic reference time ("boot") and we should improve the detection of
actual application runtime.
Change-Id: I41936d77ab9fad2073dc0ce1c97cabe57ec39f16
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
qdevel is an option used from winrtrunner to indicate a specific
environment to the app. QTestLib needs to ignore that parameter similar
to the Visual Studio generated arguments.
Change-Id: I00a3abe19f1e5b4159e65d26050f04e28f40316f
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
customMenuFont was null, so objects was an empty array, and
NSDictionary throws an exception when being called with arrays
of different sizes.
Task-number: QTBUG-42728
Change-Id: I8cdab449fd8c1d12b65c46dd5617a7f5e3e96c6e
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Also, no need to create objects to get properties, when the properties
can be had for free.
Make plugin more robust to network-manager or ofono crashes
Change-Id: Ibadb46bd51aa27f130f8d245e8c50aa7bff5f9c8
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Reviewed-by: Timo Jyrinki <timo.jyrinki@canonical.com>
This is in order to skip certain nodes that usually only carry
structural information (such as ListItem nodes). However, because of the
flattening, this structural information is never used on iOS, so we can
just skip the accessible node completely.
Change-Id: I17018c6565f8b39831f2d2944422c6670a438ab9
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
The weather app had a search field with a clear button as a child.
Because of this bug it didn't report the content of the text edit (but
only the clear button)
Change-Id: I174c6e150e1991fa9aa2a911048590030b5ccc40
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Pick up logging rules set by QT_LOGGING_CONF, QT_LOGGING_RULES,
and qtlogging.ini file also for bootstrapped tools. This helps e.g.
in the case of winrtrunner, which uses categorized logging.
Change-Id: I47d392137e17a59cb57b5c0226f282b0ccf29961
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
Do not register new timers after closingDown() has been called. They
might call back into QEventDispatcherWin32 after the object has been
destructed, leading to crashes on exit.
registerSocketNotifier has a similar protection using
QCoreApplication::closingDown(). This however does not work in all cases,
because QEventDispatcher::closingDown() is called in
~QGuiApplication(), while QCoreApplication::is_app_closing is set
in ~QCoreApplication(). In between qt_call_post_routines() is called,
which might trigger new timers to be registered.
Task-number: QTBUG-42772
Change-Id: I91325fb10e38c117c1cbedfee272d0ab6a5ca8fa
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Using LocalServerSocket is way much safer than ServerSocket because is
not using ports which might be in use by other applications.
Change-Id: I0e2be0b4561362939950861024f1f95ab819f2c2
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Change the number of pan points to 1 for these classes as a
workaround until pan/tap gestures are fully fixed.
Task-number: QTBUG-40461
Change-Id: I0d68726a545ee6148f3ab88f2ab7308b10464ecd
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Add a convenience function to QApplicationPrivate returning
the source of mouse events to be able to detect synthesized
mouse events.
Change-Id: I09f82ed917586cd3de8b4146fc6638d19d428163
Task-number: QTBUG-40461
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
The autoscrolling interferes with scrolling pan gestures
and causes the scroll direction to be reversed when moving
outside the window.
Task-number: QTBUG-40461
Change-Id: I30ef848a346418929540c23730ab92f44e4565e2
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
QRegularExpressionValidator and QRegularExpression disagree on what a
partial match means.
[ChangeLog][QtGui][QRegularExpressionValidator] Allow empty string as
intermediate match
Change-Id: Ia6c55beb54870b1be5c88b6ef3eceebc8ca3f86b
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
In Qt Quick (or in Qt Widgets when setting QT_NO_FT_CACHE to 1 or
when using OpenGL engine), the alphaRGBMapForGlyph() will be used
to get glyphs, because we need to keep our own cache. Transforms
was not supported in this code path, instead it was turned off
in supportsTransformations().
This patch enables transformations in the alphaRGBMapForGlyph()
and alphaMapForGlyph() code paths as well, since this is needed
for proper rendering with QT_DEVICE_PIXEL_RATIO.
Change-Id: I7d6b79918f7c0bcc051a8343b16b315bfbba59cf
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Whenever the source model of a QSortFilterProxyModel changes, and
the changes involve the sorted column, the implementation removes
the changed rows from the mapping, sorts them, and inserts them back;
in case of identical items, the rows are inserted at the end of the
block of equal rows.
The problem is that if the change doesn't actually happen on the roles
that are used for sorting, then we shuffle the rows, terribly confusing
the user. The typical case is a model with identical checkable rows:
(un)checking one row will move it at the end.
So, instead of trying to be smart with the removal/sort/insert sorted,
simply resort everything under the changed parent index. Since the
sorting used is stable, this keeps the items in the same positions.
Task-number: QTBUG-1548
Change-Id: Id0e61bd49da53b0a3e8aefa6b6893ac41179dc6f
Reviewed-by: David Faure <david.faure@kdab.com>
The qt_memfill32_asm_mips_dsp function is only declared if
QT_COMPILER_SUPPORTS_MIPS_DSP is defined, so we can't reference it
unless the same macro is defined.
Change-Id: Ib959b4b969b699ca78804394206266469b4ebf64
Task-number: QTBUG-36017
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The file qstandardpaths_ios.mm doesn't have an implementation for
this function, only (the wrongly named) qstandardpaths_mac.cpp
does. There's no Foundation API to get the directory name, so
we fall back to the hard-coded strings like all other platforms.
Change-Id: I6dcfeb6a0e5860dd0d4e9a0cd334b2c2181a0004
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Groups: richtext and sharing.
Task-number: QTBUG-42682
Change-Id: I46bd7e5bba0f665519ee4f3c033b971f0836e314
Reviewed-by: Martin Smith <martin.smith@digia.com>
Add a socket based handshake method for gdb. The previous file based
method remains for now and can be activated from Qt creator. It will
be used by older creator builds but has the limitation of not working
on 5.0 devices.
The new mechanism works on pre 5.0 devices too.
Task-number: QTCREATORBUG-13418
Change-Id: Ia3ecd1b144b544f52d90940ca885653bcbc477ac
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Place the rubberband over the tabs instead of where the hidden
subwindows happen to be.
[ChangeLog][QtWidgets][QMdiArea] Fix rubberband position for tabbed mdi windows
Task-number: QTBUG-42612
Change-Id: I41e81ab8b99ab9e0fa533fd4ed1b2a8141d19753
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
While a POST request with no body may be a pointless thing it does
happen on many websites. Currently this causes QtNetwork to print a
warning to the console and set an invalid content-type. This patch
allows the content-type to be absent when content is.
Task-number: QTBUG-42479
Change-Id: Ia84c89147d2469a9421b9694d062c797987b3194
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Caused by qstringlist.h no longer including qdatastream.h.
Change-Id: I4dee5565ebaa1c8593633a6ad27f142e4424c5c9
Reviewed-by: David Faure <david.faure@kdab.com>
There was a missing break statement in the function that generates the
.index file, which caused qdoc to output extra attributes in the
<module> element.
Change-Id: I110c15c67a228249bfe0c7da138f2ca0b4921371
Task-number: QTBUG-42625
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
We can save detaching a QBrush when setColor is called trying to set
the current color.
Change-Id: I8f4042325d0f9c2bda69d469d6861e3cc310f329
Reviewed-by: Samuel Rødal <srodal@gmail.com>
Variable dsa is assigned in this block with q_DSA_new instead of rsa.
So this should be the destination of memcpy.
Change-Id: Id5a41d99f1606bf525ad5f819bbc06bb1235bf5b
Reviewed-by: Richard J. Moore <rich@kde.org>
Convert a Windows-specific WebDAV specification
"//host@SSL/path" into URL's with scheme set to
"webdavs" and back to local file (Windows only).
Task-number: QTBUG-42346
Change-Id: I12663243848ea7b2d3f208743e837e9de14a93eb
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The public is needed for qdoc which sees class, not struct.
Task-number: QTBUG-42689
Change-Id: I28298b5fd13c6841838634a440bb2f726ddbe7be
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
The context has to be made current. Otherwise we may fail to clean up or,
what's worse, we may delete FBOs and textures in some random context.
The latter was visible with ANGLE in the qopenglwidget example. When having
two QOpenGLWidget instances, the context for the second happened to be the
current one when destroying the first. This is now avoided by making sure the
correct context is current when deleting the FBOs.
Task-number: QTBUG-42696
Change-Id: I8c1eed7c13a869968cc67141e585d02c6bc6f279
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Prepare for determining the suitable number of touch points
from the device type. For now, 2 points are used as
before, which can be overridden by setting the environment
variable QT_PAN_TOUCHPOINTS. Add member variable
to QPanGesturePrivate which is set on gesture creation and later
used for comparison.
Task-number: QTBUG-40461
Change-Id: I6d9e35ca752375bc6a54435482ca0925195b8142
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
There was still a TODO left in there and the data was never filled.
In addition to filling the data, some pointer checks for addr and port
were added.
Task-number: QTBUG-42244
Change-Id: I8e358b5544edcdb4077a52f433e4bc17d92014ce
Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
Since HarfBuzz-old's HB_Face doesn't support ref-counting,
it is impossible to keep the same behavior as for NG's ref-counted hb_face
when we're going to reparent the data of unknown type in QFontEngineFT.
We should either not release the object returned by harfbuzzFace(),
or introduce ref-counting for HB-old's HB_Face. Stop referencing HB-NG's
objects on access for now and thus avoid a need to release them manually.
Task-number: QTBUG-42674
Change-Id: Ia21e7ba9c17185796b0dd98c2c27d02566f2a701
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
To avoid duplicating code in ANGLE, we can resize the framebuffer in QPA.
This potentially allows us to synchronize rendering to avoid displaying
a frame which is rendered for the new geometry but is displayed with the
old geometry.
Change-Id: I5f3a0634628d9ea4ca73349a02e646eb043bd757
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
This crash is visible on Android L. This patch removes the static_cast which caused the
crash and it also fixed the list view item problem. I could not create separated patches
because they depend too much on each other.
Task-number: QTBUG-42673
Task-number: QTBUG-41814
Change-Id: I5d3e9c2b73df8f0e87e815b785b1c64d65a3ffaf
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
When font embedding is explicitly disabled, fall back to painter paths
as we would if the font prohibits embedding. Note that this flag was
never respected on any platform in any version of Qt, as far as I've
been able to tell, because the handling of it in the X11 print
engine was removed shortly after it was introduced in 2005.
[ChangeLog][Printing] Disabling font embedding is now possible using
the QPrinter::setFontEmbedding() function.
Task-number: QTBUG-41943
Change-Id: Ice5e893f9893c5243310ae7892bec7497dd55c4a
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Removed the teletype (code) formatting used in the requisite table:
include, qmake (qtvariable) and import statement (for QML types).
This makes the table look more uniform as it doesn't mix font
styles anymore.
Also, remove the closing </b> tag that caused incorrect html to
be generated.
Change-Id: I180a90c22d4b0066aade8ce38d13343076285ff0
Reviewed-by: Martin Smith <martin.smith@digia.com>
This passes the EGLConfig created in the platform screen to the
underlying context, and certain GPUs are blacklisted to be prevented
from creating a configuration which does not render properly with Qt
Quick.
Task-number: QTBUG-42260
Change-Id: I7e1cdc33c2f5662538723c6930fad5f13b151d6f
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
The following patches have been changed:
0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch
Removed because it is no longer possible to build ANGLE with MSVC2008
0002-Fix-compilation-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch
Removed because the minimum version of MinGW moved to 4.8.2
0005-Fix-build-when-SSE2-is-not-available.patch
Removed because it was fixed upstream
0006-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch
Removed because older versions of MinGW are not supported
0007-Fix-ANGLE-build-with-Microsoft-Visual-Studio-14-CTP.patch
Removed because it was fixed upstream
Task-number: QTBUG-41903
Change-Id: I976d30802f7f6fee725cf9a9f1325d5e82609835
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Upstream changed how WARP is meant to interact with EGL, and so the
enum names changed.
Change-Id: I10d4bcac71b75a1223ea8af4d3fcf584f5685a02
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Fix the style trap that leads people into thinking that's an
else-if, while it's a plain if.
Change-Id: I62963f0d6270eadcbd8aede7bac60f83968cb0d4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
For a default Qt build this change is a NOP, ftlcdfil.c is
ifdefed by FT_CONFIG_OPTION_SUBPIXEL_RENDERING, which we don't
define.
But for users who changed ftoption.h, or are using 3rdparty/freetype/devel/ftoption.h
instead of 3rdparty/freetype/include/freetype/config/ftoption.h they can now
enable Subpixel rendering without getting a build error.
Change-Id: I547e8a20514fcb97e4e56cb0100e9c2ed525f483
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
We're not ready.
[ChangeLog][EDITORIAL] Remove all mentions of QVersionNumber.
Change-Id: I03ad95992982eb3177f982c1eeddb6a6bc29336c
Reviewed-by: Keith Gardner <kreios4004@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
If the menu is closed from the keyboard gesture, and
the focus object doesn't change, the menu will still
be in a visible state, even if the keyboard is hidden.
This patch will ensure that this can not be the case
by listening for keyboardWillHideNotification. Since
we have no guarantee for when the destructor runs, we
apply a pessimistic approach and ensure we stop listen
when the menu gets closed.
Task-number: QTBUG-42523
Change-Id: If734ea32d1823b978c9c1c67ebcc5b6c3c5c338c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Since the picker menu uses IM to set an alternative
input view, we also need to specify that we IM is enabled.
Task-number: QTBUG-42523
Change-Id: Ia559fbc0ca7e6a1a4499d5eb179baa2d915ecb17
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Current approach of reloading input views assumes that
the first responder is not a QIOSTextResponder, but
a QUIView. This is not always the case, e.g if someone
calls update after setting IM enabled on current focus
object to false. In that case we'll try to close the
keyboard by reloading input views on a quitextresponder which
can fail if the text responder has an external input view
attached.
This patch will instead hide the keyboard by resigning first
responder when it is a QIOSTextResponder. If it is not
a QIOSTextResponder it means that the keyboard is already
closed, or a third-party UIVIew that supports key input is first
responder. In either case we then leave it as-is.
Task-number: QTBUG-42523
Change-Id: I4dab648af9029941a8d5d3b00011fbd169be5482
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Mandatory as per the standard iterator requirements, was causing
compilation errors in the STL algorithms.
Task-number: QTBUG-41628
Change-Id: Iee12a3b822383f63c07e270244fd0e145a486b95
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Because change a093204f07
qeglfshooks_stub.cpp don't compile anymore on any other *nix
platform than linux as those functions have been set linux
specific only.
Change-Id: I339672b1bf2745511076030cc1fe13dc7f2356ff
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
This reverts 1dd9a0af4f. It was
a band-aid for a change in the unicode itemizing algorithm
which caused the script of a script item to become unreliable.
This change has since been reverted, so the band-aid is no longer
needed, and it also causes problems for WebKit on Windows when
it ends up preferring Arial Unicode MS as the font for Uchen
script, even though the font does not support this script.
The autotest from the reverted commit is kept in place and still
passes.
[ChangeLog][Text] Fixed regression when rendering Uchen text in
WebKit on Windows.
Change-Id: I488c84703bb55a050d90092c6bf9e5c70a9e31c2
Task-number: QTBUG-41372
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Otherwise, a widget can't detect pinches if the points don't start
simultaneously unless it sets WA_TouchPadAcceptSingleTouchEvents.
The use case is for a widget that doesn't actually want the single
touch events, but only when there are two or more touchpoints.
Task-number: QTBUG-42389
Change-Id: I5269d9acb93a0001c4fde02b1f7b9e0dfcc0032f
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
When a widget's parent's window is not a top-level window, it should
find the top-level window before calling setTransientParent,
to avoid a warning (since a71e285133).
Task-number: QTBUG-42464
Change-Id: I732691b0d40aba226470332426775d1bd4381009
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
qwindowsxpstyle.cpp: In static member function 'static QRect QWindowsXPStylePrivate::scrollBarGripperBounds(QStyle::State, const QWidget*, XPThemeData*)':styles\qwindowsxpstyle.cpp:2542:45: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
Change-Id: I6a4b62057a612fa9234744e892950c959c513d15
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
If buffer() returns 0 then there is no bufferPixels available which will
cause a crash later on when it tries to set that memory. If this function
fails then all we can do is return, a warning will have already been
outputted from buffer() itself indicating why.
Change-Id: I5890b3c34536f7f3d17def0936970c0a694b005a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Unlike QTextEdit, there's no implicit width for a QGraphicsTextItem,
meaning any rich text that is supposed to be centered or right aligned
will not be unless the user explicitly sets the width.
There's also another possibility: calling adjustSize() manually.
Document that.
Task-number: QTBUG-312
Change-Id: I83023269f4c63643e8224887efe2143dd1bb1908
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Without setting firstResponder to 0 upon destruction, the current retain
count would never reach zero after the event was used. The result being
that QIOSTextResponder was seldom destroyed, which would also affect its
inputView etc which would also be kept alive.
Change-Id: Ia88e6a9d8764e7e9532487153e5e81a7ad0f9741
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
We'd transfer or clear first-responder in a lot more cases than just
when transferring to a new Qt window, such as when presenting a new
view-controller on top to send an e-mail or take a picture using the
camera.
Change-Id: I6b2a8a6d9fd99910b96a86cf9847b7ff0128f20a
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
This hack was reintroduced in a4478b2896,
and hides scaling artifacts in fonts where there is heavy hinting,
such as Arial, but introduces new bugs in other fonts, such as
Vijaya. The bottom line is that we shouldn't arbitrarily override
the pixel size of the font with the character height that we get
from GDI. Due to hinting, there will be some artifacts when printing
with screen resolution on Windows. The only way to make this look
correct is to use high resolution printing, like the documentation
says, or perhaps to force design metrics on the text layout.
Task-number: QTBUG-40770
Change-Id: Id151eb0ede5f73efb2a401924ce379d4414ca2b1
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The new template and CSS have some requirements that need changes
in the generated .html:
- Generate a new div 'sidebar' and place the TOC (if one
exists) inside it, allowing the template to extend the
sidebar contents dynamically. Do this for all pages
except index.html.
- Change the DOCTYPE declaration to be html5-compliant
- Replace <tt> tags with <code> to be html5-compliant
- Add a new config variable HTML.prologue - this allows
the template to insert custom html into beginning of
the page, before the page title but after any navigation
or table-of-contents items.
- Wrap tables inside <div> elements. This allows for
better-working CSS design for small-screen devices.
- Write out extra parameters first when outputting
function synopsis to have better styling.
- Inject zero-width-space characters into function
names to allow the browser break up long function
signatures in a nice manner.
- Edit the CSS for the offline style to adapt to
above changes.
Task-number: QTBUG-42086
Change-Id: I3075cdc11bcb07a66150388519263fd721c8002b
Reviewed-by: Martin Smith <martin.smith@digia.com>
We need to reset the active_engine belonging to QOpenGLContext whenever
we make the QtOpenGL paint engine active, to give the OpenGL paint
engine in QtGui a chance to sync its state if we've used the QtOpenGL
paint engine inbetween.
Change-Id: I445ce2f99bfbacf55650c881c4fdf07f2ff85069
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
When using QGLWidget in combination with QOpenGLFramebufferObject from
QtGui, instead of QGLFramebufferObject from QtOpenGL, the current_fbo
variable doesn't get updated when framebuffer object bindings change.
To ensure that the QGLWidget correctly releases the currently bound
framebuffer object when using a QPainter, we keep track of whether
QOpenGLFramebufferObject has modified the current FBO binding, and if
that's the case we need to read the OpenGL state directly instead of
relying on a cached value.
Change-Id: If7e0bd936e202cad07365b5ce641ee01d2251930
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
This particular "feature" leaked into QtQuick1 back in the day. Still
it was never documented in QGraphicsView.
Task-number: QTBUG-18267
Change-Id: Ib5fb446015176f6e9b4095f6ec9030258cbd1ad4
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
To match rendering of subpixel antialiased text in Qt 4.8 and other
toolkits on X11, we should not apply gamma-correction. This also
makes the rendering of subpixel antialiased text closer to normal
antialiased text.
Task-number: QTBUG-41590
Change-Id: I45ad3448334951353657b878d002eea429858f2d
Reviewed-by: Samuel Rødal <srodal@gmail.com>
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
This allows apps to ship their own openssl libraries inside the
application bundle.
The change consists of two parts: First, adding
<bundle>/Contents/Frameworks
to the alternative search paths. Second, disabling the preemtive
check for libssl.dylib, libcrypto.dylib in the system paths:
The system's /usr/lib/libssl.dylib, /usr/lib/libcrypto.dylib
will still be picked up as a fallback in the alternative search
paths, but only after .app/Contents/Frameworks have been inspected.
[ChangeLog][QtNetwork][QSsl] On OS X and iOS, openssl dylib's are
picked up from the 'Frameworks' directory of the app bundle.
Change-Id: I982930f4a6cf5e0114c04ecbc87f27e54ba8bb88
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
The marker can occur legitimately twice e.g. on iOS
with universal binaries.
Change-Id: Ie334bcd104d45140ff969f44230e6de2212e8e25
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@theqtcompany.com>
Switch_showText specifies whether the on/off text is shown in the
thumb and Switch_splitTrack specifies whether the track is clipped
underneath the thumb.
Change-Id: I03fc6b799fe714e7b6e604328901c8c5a418ca6e
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Commit ec360d7ad9 made it work for ELF
platforms, Apple platforms and for MSVC, but we apparently forgot it for
MinGW. This patch corrects that mistake.
We won't have the PE-COFF section parser until 5.5, but this will at
least making Qt 5.4-built plugins work on the faster case.
Change-Id: I51b06837dc321eaa4724c9598293cf85570f67fc
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Calling the function has the same effect as dismissing the keyboard using
the native keyboard dismiss button or the hide-keyboard gesture, and will
result in the QIOSTextInputResponder losing first-responder status and
the current focus object being cleared.
QtWidgets and other parts of Qt will try to hide the keyboard during
focus changes between widgets, which we already take care of when the
focus object changes, so we detect the situation and ignore it, by
requiring that the current focus object matches the one we've brought
up the text responder for.
Showing the virtual keyboard is still a no-op, as there is no way to
show the virtual keyboard without a focus-object.
Change-Id: Iefcb403c2b6d3da8a4df3fcd53bc1244ba9c4d23
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Allows us to track state through the normal gesture recognizer states
instead of custom variables.
Change-Id: I4fe1b370a581132a9bbb8f51f7bee73381b80341
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
The standard POSIX clock functions are present on QNX, but only
return timing information with millisecond accuracy. To get
accuracy beyond that, platform-specific functions must be used.
Change-Id: I54a0550f1865dbea3c60a86ecd8ad99df3fe42b4
Reviewed-by: Frank Osterfeld <frank.osterfeld@kdab.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
In rare cases, the Windows event loop can be spinning inside the inner
loop and the message hook is never called. This can be triggered on the
Direct2D platform by opening 32+ window handles.
The issue can be worked around by using the same approach Windows CE uses:
don't rely on the message hook to inform the event loop that the post
message has been delivered. Instead, uninstall the hook and let it be
called directly by the event loop.
Task-number: QTBUG-42428
Change-Id: I10280126dd50729bc260aa5f7029549e2e061c01
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
It is possible that Qt calls paint() several times for an item that
has caching enabled, even without any explicit call to update(). There
are various reasons why that is possible (memory pressure, item gets
transformed, etc.); the important part is that
1) the user must not rely into "caching enabled" = "1 paint() call"
2) the user must always draw the same content from within paint(),
unless update() was called before that call to paint().
Task-number: QTBUG-18410
Change-Id: I2c8d77e6e11aaceffc9a21003dd3f4cc46edd582
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
The defaultConfiguration could switch and be either active connection,
so we determine the default should be what has the default route.
Change-Id: I194f27b60e7a3598eca2ff09c2225ba1a46564d9
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Cabling changes can be detected right away, so we should act on that
and change the configuration state.
Change-Id: Ifa9709077215567001e11ab655208a2c1b090073
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
There are some issues preventing 2x images from loading, mainly incorrect
testing for exist() by passing an url, which always reports ‘false’.
Task-number: QTBUG-36383
Change-Id: I1e8e5a91b01f1a4ddd3559c2e860db5bc41908ce
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
QIODevice makes readData() call only when its read buffer is empty.
Also data argument points to the user or reserved read buffer area.
So, no need in data transfer from read buffer at this point at all.
Task-number: QTBUG-41797
Change-Id: Ieb4afdf7eec37fdf288073e4a060e64424f22b9c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry picked from commit 1853579dad1bbb44599314213a1d8a203ecae1c9)
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
IBus can hand us multiple attributes for different formatting properties
of the same text range for events. The IBus input method plugin used to
convert these straight into multiple QInputMethodEvent::Attributes, each
with their own QTextCharFormat instance.
According to the QInputMethodEvent documentation, behavior with multiple
TextFormat attributes for the same text range is undefined. In at least
one known user, KDE's Kate text editor, it causes invisible text for
pre-edit text events as the QTextCharFormats are applied in turn with
partially default-constructed foreground/background brushes:
https://bugs.kde.org/show_bug.cgi?id=339467
This patch makes an effort to merge formatting information for identical
text ranges into a single QTextCharFomat, while otherwise preserving
existing behavior (attribute order is unchanged and attributes deseria-
lized from D-Bus as having invalid QTextFormats remain untouched).
No attempt is made to cope with overlapping text ranges. Segmenting into
smaller ranges and merging for the overlaps would be conceivable, but
until a case of an input method creating events with overlapping ranges
is known seems not worth the effort.
It's worth noting that the IBus input method plugin for Qt 4 also
attempts to merge formatting information into a single QTextCharFormat,
but with a distinct implementation from this one.
Change-Id: Ie3dc38b353724ffb7b5f2d7f316393027373baf2
Task-number: 41640
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Not all platforms do have QRegularExpression as it is based on
pcre.
Change-Id: I6b8e701ff7cf30e776ee34e5dc836cd24c9543b5
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
The GraphicsView stack still seems to have issues emitting focusObject
change signals when the focus object changes inside the item hierarchy.
To be on the safe side we use our own view of whether or not IM is
enabled, and try to detect and warn if we find a case where the two
are out of sync.
Change-Id: I9fde896ea14ea5b65784723110887e06453edbd4
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
In the toolchain for x86 the va_list type is defined as char *, which
in itself isn't strange, but it was somewhat unexpected as it differs
from the arm toolchains. Either way we should not make assumption about
the va_list type as there is no guarantee it won't cause conflicts when
overloading. This fix simply renames the private overloads.
Change-Id: I7808619d0fa3ca63b75796308cfdff6aa41a7fd0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Found by clang static analyzer.
Change-Id: I8f15ae1a8e6afb91eafa6cee1d1b21e3539af6c1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
This commit changes several instances where moc was generating code that
used 0 as a null pointer constant. The Q_NULLPTR define is the more
idiomatic way to do this, and additionally this silences warnings
generated by e.g. GCC's -Wzero-as-null-pointer-constant.
[ChangeLog][Tools][moc] Fixed "zero as null pointer constant" warnings
in moc's generated code.
Change-Id: Ibe382b7bdbdddaf20cb4bdfd075fcdd1f363f9d3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Refactor old code
Stop memory leaks
Properly support mobile data (ofono)
Change-Id: I7f23882ee0ee345a049a4a93ddd452b6d2e53710
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Since QNAM is initialized with defaultConfiguration, we need to
reset the internal configuration used to the current
defaultConfiguration when the state changes and a new configuration
becomes the default.
Task-number: QTBUG-40234
Change-Id: I50f23c62804f29370915eecac2c92301c5f3ead2
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Any filter not filtering on suffix shows up duplicated in filter
combo.
Change-Id: I9fc9e33b6081cf6894fabc6dd52c12a4d3dfd393
Task-number: QTBUG-42405
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
The files here are a copy of the parser from the qtdeclarative repository.
This patch combines commit cfff375afcfe63d25b3c1904ff58a90bcd1edb43 and
f876562de8eb978cea39fe72e76c49ae51ff2f97 from the qtdeclarative repository to
fix the license and allow for read-only object property syntax.
Change-Id: Idb58948cede2cd47858e3831785009f8b7ea2169
Reviewed-by: Martin Smith <martin.smith@digia.com>
Needed so that we can build simulator builds for x86_64 as well as
i386. The function call alignment is the same, but we need to use
the 64-bit versions of the instruction and operands.
Change-Id: I62cc78e23b5e0923382d19570ce18f558894e6a0
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
The commit was 9361be58f47ec256bf920c378479a02501219c1f (2008-11-17),
referring to the race condition fix that was applied in commit
d47c05b1889bb4f06203bbc65f4660b8d0128954 (2008-10-08). The fix for the
deadlock reintroduced the race condition and the commit message noted
it.
The workaround is no longer necessary since we've fixed the original race
condition differently now (see the previous two commits).
Task-number: QTBUG-42189
Change-Id: I5a83249597a83c4d4caa2ae57964ad3cc61c1d70
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Albert Astals Cid <albert.astals@canonical.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
We don't need two anymore because they now protect the same thing: the
state of the DBusConnection. The difference existed when it was possible
for two threads to access the DBusConnection at the same time: one doing
dispatching and one doing something else. Unfortunately, even though
DBusConnection supports this, QtDBus doesn't.
From d47c05b1889bb4f06203bbc65f4660b8d0128954 (2008-10-08):
Details: if we're removing a timer or a watcher from our list,
there's a race condition: one thread (not the QDBusConnection thread)
could be asking for the removal (which causes an event to be sent),
then deletes the pointer. In the meantime, QDBusConnection will
process the timers and socket notifiers and could end up calling
lidbus-1 with deleted pointers.
That commit fixed the race condition but introduced a deadlock.
Task-number: QTBUG-42189
Change-Id: I034038f763cbad3a67398909defd31a23c27c965
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Albert Astals Cid <albert.astals@canonical.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
We lock it before dbus_connection_send_with_reply (the async version) in
QDBusConnectionPrivate::sendWithReplyAsync. We weren't locking it before
send_with_reply_and_block and we apparently should. The locking around
the dbus_connection_send function might not be necessary, but let's do
it to be safe.
The lock now needs to be recursive because we may be inside
QDBusConnectionPrivate::doDispatch.
Task-number: QTBUG-42189
Change-Id: I7b6b350909359817ea8b3f9c693bced042c9779a
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
QString::sprintf does actually support all length modifiers, including
%lld. The format string is also parsed as UTF-8.
What's worthwile to mention, though, is that %lc and %ls is at odds
with the standard, since wchar_t isn't necessarily 16 bits wide.
Change-Id: I30cd22ec5b42035824dd98e3cdcc79d7adcc953a
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Panels windows are usually outside QScreen::availableGeometry, because
they will usually set extended struts to reserve the screen area for
themselves, but their own screen() must remain the one in which they
are.
This cause one downstream behavior to KDE
https://bugs.kde.org/show_bug.cgi?id=339846
in which a panel got by mistake few pixels on another screen, and
was immediately reassigned to that screen, because its geometry was
intersecting the new screen availableGeometry() but not the geometry
of its own screen, because itself reserved its own geometry away
from availableGeometry()
Change-Id: If6c9defdef62732473687dd336dbcec582bd0ea2
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
QMenu needs to check result of QPlatformMenu::menuItemForTag to avoid
a crash dereferencing a null pointer.
Task-number: QTBUG-42327
Change-Id: Ie54a94caec7a5d756c459741df182fbe4e38bec0
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
...instead of using the current mouse position. This
is important if event processing is delayed: we want
the QMouseEvent to have the position when the event
happened, not the current position.
Regression from Qt 4.
Change-Id: Ifd4f0f02853236a204de96c5a97e72f86c29f0b7
Task-id: QTBUG-37926
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Will be fixed in a different way.
This reverts commit ae5f3df59b.
Change-Id: Ie706396667a5b6c9003bb92a018d88346a180e65
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Fix "Recursive repaint" crash.
Add guard to QCococaWindow::setGeometry and QNSView
updateGeometry to prevent processing window system
events during setGeometry.
Task-number: QTBUG-41449
Change-Id: I304fdf134d433cbc50fafd997ecd91e31cb57f4e
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Conditions for when updateExposedGeometry() should
actually send the expose event goes into the function
itself.
The window()->isVisible() check could arguably be
moved to isWindowExposable(), but I'm keeping this
as a straight refactor without any behavior changes.
(isWindowExposable() is called from multiple locations)
Change-Id: I6d792286ccbc50065ebfc588daca2240761a1937
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Qt expects a handleWindowActivated call for non-
popup windows only. Add a window type check, similar
to the other handleWindowActivated calls.
Task-number: QTBUG-38707
Change-Id: Iaa5959675f7e3ae4664bdf785d3f374debb0d0a7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
This patch replaces the old Qt logo with the new, flatter one.
The PNGs were optimized via: optipng -o7 -strip "all"
Task-number: QTBUG-41685
Change-Id: I51983a45144373bf7aee31a32990ecbb2582f488
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The two-pass feature depends on the QRC_DATA signature that needs
to be stored in the array later overwritten by the embedded data.
Task-number: QTBUG-42359
Change-Id: Ida1ccff40dda28f92a4267f86f48ee96d62bd214
Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
This is for completeness, since we've done the same for Q_CC_GNU and
Q_CC_CLANG. We won't really use the macros like this because both
__INTEL_COMPILER and _MSC_VER are readily usable.
Change-Id: I669c60166fa4839d43f84f339e6896321d62817f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The sequence of (__GNUC__ * 100 + __GNUC_MINOR__) was used in quite a
few places. Simplify it to make the code more readable.
This follows the change done for Clang, which was quite necessary since
Apple's version of Clang has different build numbers.
Change-Id: I886271a5a5f21ae59485ecf8d140527723345a46
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
We map the Apple Clang versions to upstream, so that we have one
define to compare against.
Fixes build break on iOS due to qbasicatomic.h not defining
QT_BASIC_ATOMIC_HAS_CONSTRUCTORS on Apple Clang versions, which
is needed after 1e9db9f5e1
Change-Id: I17493c0187c20abc5d22e71944d62bfd16afbad2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
When the QWidgetWindow receives a resize or move event, it should check
with the widget if its crect already has this geometry. if not then send
the resize or move event
Ideally events should be sent whenever the QWidgetWindow receives them.
QTBUG-42383 is created for this problem
Task-number: QTBUG-29937
Task-number: QTBUG-38768
Task-number: QTBUG-30744
Change-Id: I1e9a5d25de29a98885edece927ba14d7a763eb01
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
This avoids the creation of demos-manifest.xml if there
are no demos in the repo.
Change-Id: I4d3bbe4540f4b1532c0d51f62b8d1494864a7b1c
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
This makes is possible to generate a valid D-Bus XML from a class that has
e.g. internal slots with pointer parameters by explicitly marking all D-Bus
exports with Q_SCRIPTABLE and running qdbuscpp2xml with the '-a' switch.
Change-Id: Iab32a0a7f46f2516f6385808bbf35b26c7708b1a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The latter name was used by Apple in their internal AArch64 LLVM backend,
but has since been merged into LLVM upstream and renamed to AArch64.
https://github.com/llvm-mirror/llvm/commit/29f94c72014eaa5d0d3b920686e68
Change-Id: I319f42f07c95dfbcd121134fbe6e554e2d36453d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Do not clear the QLibrarySettings configuration information already
in ~QCoreApplication (via qAddPostRoutine). This fixes issues where
multiple QCoreApplication objects are created over time (in plugins).
Task-number: QTBUG-34290
Change-Id: Ib5c58f825619ede484492e057e08d73b2b4c6101
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Fixes case if custom icon size is given and height is more than width.
Check of minimum valid height was compared wrongly to width and caused invalid
vertical alignment. After fix vertical alignment is correct aligned to vertical
center with the tab text.
Change-Id: I6c4a710b15e91225edeabb629bfea7049ab2f42a
Task-number: QTBUG-42143
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Reviewed-by: Jens Bache-Wiig <jensbw@gmail.com>
The private was not deleted. Adding the dtor in turn
causes a warning about not having a virtual dtor
in the base class, so add that as well.
Change-Id: I24a90caf2cf6192a6f17cf5af96b8f77010d9127
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
This key combination should open the context menu.
Task-number: QTBUG-40085
Change-Id: I7cfc89f766b3734b9fb9d3c9135b4896ffbadb5b
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Two fromstrerror_helper overloads are defined, to manage the fact that
strerror_r returns an int or a char* depending on the system. The problem
is that then only one overload used (again, depending on the actual
stderror_r return type), leading to one of the two overload to be unused
and thus triggering the unused function warning.
kernel/qsystemerror.cpp:64:27: error: unused function 'fromstrerror_helper' [-Werror,-Wunused-function]
static inline QString fromstrerror_helper(int, const QByteArray &buf)
Change-Id: I6a1c8e1a4b7d14068b682db26002ff68ad36167c
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
The result of pressing the key is still a Qt::Key_Return press/release
sequence, which needs to be handled manually.
Change-Id: I72c7b0067bd3ec1bc315ab2c84361800b7be0943
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Marius Bugge Monsen <marius@cutehacks.com>
The technique of sending an action does not always end up at the actual
first responder, but it will end up in a responder in the responder
chain of the first responder, so we continue searching the subviews
recursively until we find the real first-responder.
Change-Id: I6abc9bc18eb127fa4b317cd308783c0ecfcd670a
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Instead of faking it, by returning YES for isFirstResponder, which caused
issues when iOS would try to dismiss the keyboard by resigning the true
first-responder.
Change-Id: I816c4cf9c699d72995ce7968e1f1a4aa9c9c167e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
In the non-native QFileDialog, a QSplitter separates the two central
views (the list view of "places" and the tree view for navigating
the file system).
Unfortunately, that splitter allows sections to be collapsed,
resulting in a weird status where the user doesn't
understand what has just happened and thinks that (s)he may have
broken something. Worse, that gets actually saved into the
application settings, so the splitter may stay collapsed forever.
Instead, let's simply prevent sections from being collapsible.
Task-number: QTBUG-19467
Change-Id: I11ff7c55a5535680a3edce5f4e70c9338291b94f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
The old designer generator inserted stray spaces etc.;
save it again with the new designer to fix those.
Change-Id: I3890dd942970d9da71582ccb70b75d59888304bf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
1. Add comment about the magic TYPE_NUMBER_VARIATION_PASSWORD value.
2. ImhHiddenText, ImhNoPredictiveText and ImhSensitiveData should all
disable suggestions.
3. Only ImhSensitiveData sets TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
4. Don't OR date and time to get DateTime...
Task-number: QTBUG-38080
Change-Id: If456563983130e9af409ffa8cb717ddf259f1d6b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
The JNI environment should be managed by QJNIEnvironmentPrivate
directly or through QJNIObjectPrivate. There is also a clear
difference between calls coming from or going into Java code.
Calls coming from Java already comes with the 'right' environment and
in most cases no extra considerations or set-up is needed.
Change-Id: I92d935ddfb70332041869185d5a92438930ff9b9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
This is one of several fixes where the goal is to simplify the jni code
by letting QJNI manage the environment.
Change-Id: Ia714e25fbb3fcd170150392e822b0a3fc3812818
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
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>
Enables QRunnables to be run on the UI thread. For now this function
is only intended for internal consumption.
Change-Id: I5e2abb06104219a9dd55b3308113056e4da5fa07
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>