Commit Graph

12947 Commits

Author SHA1 Message Date
Thiago Macieira
dcf9c403ba Use Bionic's __pthread_cond_timedwait_relative
The Linux futex interface uses relative timeouts anyway, so this avoids
a double round-trip through clock_gettime: once in Qt code to calculate
absolute from relative and once in libc for reversing.

Glibc does not offer such a function because its pthread_cond objects
use a kernel interface that works on absolute times.

Change-Id: I8fbcd3f73d4364a16716b0eea17e8f5f9ab5cd05
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-04-02 19:01:32 +02:00
Thiago Macieira
2fbe972a65 Add a function to do the relative waits, simplifying the code a little
More to come.

Change-Id: I108f23e94c322ad4e1466ff69100ad6af91d95e9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-04-02 19:01:27 +02:00
Thiago Macieira
786c790176 Fix build on Android: libpthread is deficient and lacks functions
Even if the monotonic clock is available, Android's Bionic lacks the
pthread_condattr_setclock function, so we can't tell it to use the
monotonic clock.

Task-number: QTBUG-30450
Change-Id: I4f53708b1e834ff5d9462b3bf778b96c22662a04
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-04-02 19:01:23 +02:00
Oswald Buddenhagen
4e3b1ee6a6 fix non-bootstrapped build
Change-Id: Ic615dc3bee423e2bb05798ce861ca809ac89a23c
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-04-02 19:00:31 +02:00
Oswald Buddenhagen
779516957a move the setup of QT_INSTALL_DOCS from qdoc to qt_docs.prf
this is a qt specific option and really should not be hard-coded.

also, the implementation used undocumented api that is internal to the
bootstrapped process, which made it impossible to de-bootstrap it.

Change-Id: If706960671744e64a9a7c366437977a800a6058e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-04-02 19:00:27 +02:00
Thiago Macieira
782cd9ef2e Ensure GCC prints its messages in English when we parse them
We're trying to parse GCC output, so let's make sure that they are in
English. I've seen some reports that "search starts here" was
translated to some locales.

Change-Id: If09b1f45607f65d054496db65418e413b8aa8d48
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-02 18:58:33 +02:00
Oswald Buddenhagen
d8a127fdcc don't try to de-duplicate QMAKE_DEFAULT_{INC,LIB}DIRS
the de-duplication has the side effect of sorting, which is a very bad
idea: x-compilers tend to append the host library paths at the end, and
we really want them to stay at the end.

and the lists should have no duplicates to start with. should we find a
compiler which breaks this assumption, we can use qmake's $$unique()
strategically.

Change-Id: I01560e3c33736c2dfffdb05d5c960c492439c946
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-04-02 18:58:30 +02:00
Oswald Buddenhagen
6c9e8e611f don't complain about missing macros in <module>version.h
we just generated them, and they really don't need QT_{BEGIN,END}_*.

Change-Id: Ib7b2454ae80762e644d9667106960cc7632f90fc
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-04-02 18:58:28 +02:00
Oswald Buddenhagen
0aa0093479 prefer 'release' for non-bootstrapped host build_all configs
... like qt_tool does. otherwise we get linker errors with debug builds
on windows.

Change-Id: I583f277ff3fb75c9fe5f305a6f1b5d066b840c07
Reviewed-by: Debao Zhang <hello@debao.me>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-02 18:58:24 +02:00
Frederik Gladhorn
b2ec0da956 Cache QAccessibleInterfaces.
Since there already is a one-to-one relationship
between QObject and QAccessibleInterface it makes
little sense to create and destroy the interfaces
on each call to queryAccessibleInterface.

Add a cache and keep created interfaces around for
the lifetime of the corresponding QObject.

This changes the memory management rules: accessible
interfaces must no longer be deleted. If you get an
QAccessibleIntrface pointer that pointer will stay
valid as long as the corresponding QObject is not
deleted.

This also re-enables accessibility for Mac.

We limit the range of the IDs so that they are
useable for Windows directly.
That means we can get rid of the event cache there.

This is based on: Iebf2f374916fc70a9dd29e95f45a6444b85f6cee

Change-Id: I9fe6531812c0dbc5b41101ac05830a6dd75e13a3
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-02 14:32:25 +02:00
Mark Brand
8dfe1385b5 QSqlTableModel: expose methods for getting primary values
These methods are very useful in subclasses.

Change-Id: Ifdfee9d90cbdad97f349e46b587582f1d9e7cd7a
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-04-02 14:31:59 +02:00
Mark Brand
4131bfb2c2 make QSqlResultPrivate::fieldSerial() virtual
The Qt psql driver has its own implementation of fieldSerial() it uses
when it invokes positionalToNamedBinding() to generate a query using
its native naming style. Now that QPSQLResultPrivate is derived from
QSqlResultPrivate this can be implemented more conventionally using
a virtual function instead of pointers to static functions.

Note that this change preserves the current behavior of
executedQuery() which will continue to return the query with
positional syntax that is presented to virtual prepare() by
QSqlResult::savePrepare(). Since the driver does not have the
NamedPlaceholders feature, QSqlResult::savePrepare() will not use
positionaltoNamedBinding() to set executedQuery. Although
QPSQLResult::prepare() calls positionaltoNamedBinding(),
it does not put the result into executedQuery.

Change-Id: I7740f386cbfec9eadd9e4d6a7df3e590294655a5
Reviewed-by: Israel Lins Albuquerque <israelins85@yahoo.com.br>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2013-04-02 14:31:47 +02:00
Mark Brand
db6190d6fe QPSQLResultPrivate inherit QSqlResultPrivate
Follow the usual pattern that a subclass's private class inherits
its base classes's private class. This will allow the private class
to use virtual functions.

Change-Id: Iafdf1cb5db672d973ad1f60bdd7e37b9072fbb1b
Reviewed-by: Israel Lins Albuquerque <israelins85@yahoo.com.br>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2013-04-02 14:31:44 +02:00
Mark Brand
7565f6fe0a QPSQLResultPrivate: do not duplicate reference to private driver
The "private driver" is already known, so don't keep an extra reference
to it.

Change-Id: I34ec4108694bfbc3da3107f79598ae50a699911c
Reviewed-by: Israel Lins Albuquerque <israelins85@yahoo.com.br>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2013-04-02 14:31:40 +02:00
hjk
6361227846 Reduce the likelihood of underflows in qFuzzyCompare
As indicated in the discussion of the bug report, this
does not address the real problem but only reduces the
frequency it occurs.

Task-number: QTBUG-26453
Change-Id: I20ac3f41f52effb674bee6924ccdfd2f641576ef
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-04-02 14:10:54 +02:00
Gunnar Sletta
35a51de5b4 Let EglFS pick up a platform input context if installed
Change-Id: Ia3765997682f8f90c7f7da712527beea365e01ed
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-02 08:29:43 +02:00
Thiago Macieira
620f911fd8 Update the QMetaMethod::tag() documentation due to moc expanding macros
Since 34a3b63dc7 (Qt 5.0), moc expands
macros to their defined values. This broke the example of tagging a
method: in Qt 4, it never expanded anything, so the tag was always
visible and extracted. Now it's necessary to avoid defining it to empty
when moc is run.

Change-Id: I89967f7f993cf8e14119b086f4dd5573b348646d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-01 21:33:29 +02:00
Giuseppe D'Angelo
11ad8c8bd9 Upgrade the PCRE import script to 8.32
Notably, SPARC JIT was added. Also, sort the entries alphabetically...

Change-Id: I78ab4ea2f30a31592d870ce07d35e318135a14bd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-01 21:33:29 +02:00
Giuseppe D'Angelo
bb5552a229 Upgrade the bundled PCRE to 8.32
Changelog: http://pcre.org/changelog.txt

Amongst other things, the Unicode tables were upgraded to 6.2.0
and case folding support was added, which also fixes a QString
autotest (marked as XFAIL).

Qt still requires 8.30, not 8.32.

Change-Id: I4056c1dc1d949d33443bb8ca280de4c8c363ac74
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-01 21:33:29 +02:00
Mark Brand
3499940289 update bundled sqlite to 3.7.16.1
Change-Id: Ia7d73d44c1e7707e81c022268b3a6df6d85703a5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-01 21:33:29 +02:00
Konstantin Ritt
03875c0ba5 Fix reporting writing systems for non-TrueType fonts
According to EnumFontFamExProc docs:
> The ENUMLOGFONTEX structure includes the localized name
> of the script (character set).

lfCharSet ENUMLOGFONT's member must be used instead of comparing
these names to non-localized ones.

Also, when the font supports more than a single charset,
EnumFontFamExProc callback is called for it once per charset; thus,
we shouldn't "unsupport" writing systems in a subsequent call.

Task-number: QTBUG-30448

Change-Id: I58fcf32958490cf5a3e873db8335e71a39a9c518
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-01 21:33:29 +02:00
Alan Alpert
22cd698e39 Document Q_REVISION macro better
Previously it was only mentioned in properties.qdoc

Task-number: QTBUG-18802
Change-Id: Iab23128c1567974154cdcce7412b2e1468bb846a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-04-01 19:30:28 +02:00
Konstantin Ritt
6845a4fb01 Update bundled FreeType sources to 2.3.12
Most important changes:
* SFNT cmap 13 table format support;
* fixed glitches when rasterizing stretched TTF (xsize!=ysize);
* various fixes in Type1, CFF, and PCF drivers

Change-Id: Ib9e2210ffbd0daa2fdbf518ea87f4be502de6b48
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-01 12:03:55 +02:00
Konstantin Ritt
0fcadcca3d QFontConfigDatabase: fix fallbacksForFamily() for CJK languages
For Han Unicode script, the language couldn't be determined algorithmically,
the only way is guessing based on the user's locale.

The is a regression introduced in 9b0fab6b62

Change-Id: I84645885a825fdfb6c268edaf10185bf5e447eb5
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-01 12:03:55 +02:00
Konstantin Ritt
f0af3ed4e5 Update QLocale data to CLDRv23
Say hello to Interlingua and Mongolian once again.

Change-Id: I735fbc5793f34620be1f6932a251224b9ded02e3
Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-01 12:03:55 +02:00
Jens Bache-Wiig
59b2a85654 Fix tickmark painting on Fusion style
The problem seems to be that Fusion assumed that tickmarckoffset was
a fixed size, which probably changed when we moved the inheritance
from Windows to CommonStyle. I also had to modify the paint order

Task-number: QTBUG-30294
Change-Id: Ie7320c39fd572d39b641b6bd5a9db05f494f6b74
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-01 10:00:58 +02:00
Marc Mutz
5fcb438e7b Publish qEnvironmentVariableIs{Set,Empty}()
Change-Id: I81b960495c206024b4124cebf88b48b0c0d73619
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-30 13:41:59 +01:00
El Mehdi Fekari
2523f20c61 Fix typos in QBBSystemLocaleData
Change-Id: Ic893cdf4a274af660fae7f39011851318f0d244b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-30 10:50:40 +01:00
Gatis Paeglis
21c23ca539 Remove unused header file.
As Thomas Senyk found out, the compose input context
plugin had a redundant include for the X11 keysym header file.

Change-Id: Iad603b545803867d02d915acffe27991bb0b7ee4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-30 08:49:36 +01:00
Konstantin Ritt
bc4dcb6994 QLocale: Report textDirection() by looking to the locale script
Change-Id: Ic562b0301271ba414d5d3ff75a308d84bd288f56
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-30 08:23:04 +01:00
David Faure
f052cefc2f tst_qthread: fix race on "bool visited"
Change-Id: I438bad9a4f8afb76272c8d8f08461a6d2c9a0b18
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-03-29 15:16:47 +01:00
Gabriel de Dietrich
6c10f5203b Mac style: Fix disabled menu item palette entry
Also, removed an "magic color" form the style implementation.

Change-Id: Iefd3ddc0d9d651d2b87f20eb1f9990a214b651df
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-03-29 13:06:40 +01:00
Morten Johan Sørvig
fc8759064c Make qt_setDockMenu work and call it.
The application delegate code from Qt 4 implements
a non-working qt_setDockMenu. Correct the signature
of the applicationDockMenu method.

Change-Id: I6f531a78f91e0550b0e66cc4f2fa072006a030f4
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-29 13:06:40 +01:00
Morten Johan Sørvig
c0065187d7 Remove QMacQuartzPaintDevice.
Not used in Qt 5.

Change-Id: Ia0e14414afa524c5cc04151d20c168d93d8dcadb
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-29 13:06:40 +01:00
Morten Johan Sørvig
7b9d45311c Fix missing devicePixelRatio propagation on copy.
Change-Id: I0cb541fe8a92b7a7c159e0a6e5036baf43185a93
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-29 09:47:32 +01:00
Morten Johan Sørvig
eb5d8d2fc3 Update the high-dpi manual test.
- Organize the test images into different sizes.
- Add a button and icon drawing test.
- Don't show all tests by default.

Change-Id: I95eff846b8c5159085f53b413dea7212c1ea5071
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-29 09:47:32 +01:00
Topi Reinio
0d98a67424 Doc: Document Q_OS_WIN* macros
Fix the documentation for Q_OS_WIN32 and document Q_OS_WIN64 and
Q_OS_WIN.

Task-number: QTBUG-23120
Change-Id: Ie040c8deb6aeba326b6fafab302fadf4d93fa49f
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
2013-03-29 09:47:32 +01:00
Venu
edcfbebe98 Doc: Replaced canConvert() with canConvert(int)
This change makes the function reference more
relevant to the example being discussed.

Task-number: QTBUG-28204

Change-Id: I50bea45f1e11d7e1eef4bc6726ebb329151fbc3d
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-03-29 07:36:48 +01:00
David Faure
5a5a09289f QEventLoop: fix race on 'exit' and 'returnCode' private members
Change-Id: I380046f386448783e3e4e93bde8cbe15b9b0279e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-29 04:04:40 +01:00
Marc Mutz
2f531d8db3 QWidget: micro-optimisation
Compare string size before content.

Change-Id: I00f9c6c6cf31148af4807455fa6f6b9254dda9d7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-03-29 04:04:40 +01:00
Marc Mutz
c400e16a58 QMetaTypeId: use QByteArray, not QVarLengthArray, to construct type names
So far, type-name strings for class template instantiations were constructed
in QMetaTypeId::qt_metatype_id() by concatenating various bits and pieces
into a QVarLengthArray<char>, presumably to avoid the dynamic memory
allocation for small strings.

Yet, when passing the result to qRegisterNormalisedMetaType, which takes
a QByteArray, the QVarLengthArray was copied from, not by
QByteArray::fromRawData(), but by QByteArray(const char*,int), which
unconditionally results in a dynamic memory allocation after all.

What's worse: the characters are copied twice: First into the QVarLengthArray,
and then into the QByteArray.

Remove the first of these copies by using QByteArray+reserve() to copy
directly into the final QByteArray.

Change-Id: Id915798a318fe97279a7cc0aca176544f99c7e86
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-03-29 04:04:40 +01:00
Morten Johan Sørvig
04ebd8e56f Load "@2x" images on high-dpi "retina" systems.
Check for the existence of a "@2x" file when adding
an image to QIcon. For example, adding "foo.png" will
also add "foo@2x.png" if that file exists.

Change-Id: If32a3446cf56ca0828de17f6a361091e4c874f26
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-28 22:21:07 +01:00
Thorbjørn Martsum
f4c8fb6b39 QTreeView - improve ItemNeverHasChildren slightly
QTreeViewPrivate has a private function hasVisibleChildren that
returns if an index has visual children. This can (and should)
check the ItemNeverHasChildren flag.

That will likely be an performance improvement and it will ensure
consistent behavior in error-situations. (The flag will then always
overrule even if the model is inconsistent)

Change-Id: Ied37daf56c39daccea1cb4f5cc555d5cdbc7d971
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-03-28 14:42:15 +01:00
Morten Johan Sørvig
ebde672032 Support high-dpi pixmaps.
When Qt::AA_UseHighDPIImages is set images and pixmaps
may be of the high-dpi type.

Account for this when calculating layout sizes by
dividing by devicePixelRatio() to go from device pixels
to device-independent pixels.

Change-Id: I977a86789f9097ebc3c3704ae76e9706f2cb79d8
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-28 14:42:15 +01:00
Morten Johan Sørvig
4ecd6bc560 Support high-dpi pixmaps and images.
When Qt::AA_UseHighDPIImages is set images and pixmaps
may be of the high-dpi type.

Account for this when calculating layout sizes dividing
by devicePixelRatio() to go from device pixels to
device-independent pixels.

Change-Id: I8aa3d2ee947635ce2a49fff9e0029c9f55ae6c09
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-28 14:42:15 +01:00
Gabriel de Dietrich
8aed635640 Mac style: Fix scaled clipping regions on retina displays
Task-number: QTBUG-30311

Change-Id: Ic91fc6b2787a035292917c39d26b578dde0a6346
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-03-28 14:42:15 +01:00
Debao Zhang
c59f1aea65 QtSql tests: Remove DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
Change-Id: I93169244b51f8b993f97f7595e0bc7006ae04e3a
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2013-03-28 14:42:15 +01:00
Ray Donnelly
95f4751ff3 Add some more qconfigs to configureapp.
REDUCE_EXPORTS -> QT_VISIBILITY_AVAILABLE
REDUCE_RELOCATIONS -> QT_REDUCE_RELOCATIONS
!QT_GETIFADDRS -> QT_NO_GETIFADDRS

These will be used for Android build on Windows.

Change-Id: I2cde989e41dc5b7f9bef1345e935cc7e19aba983
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-28 12:10:40 +01:00
Morten Johan Sørvig
c7cca2dd74 Make QMacStyle paint right side up again.
491dcbfac8 accidentally removed the y-axis inversion
for the widget case. Move it back to the common
code path.

Change-Id: Ie6bbe6f442ca342347af77071da3a743b5655159
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-03-28 08:04:38 +01:00
Debao Zhang
ba3418ae75 QtWidgets tests: Remove DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
Change-Id: I1264784d6984edc70bf07e58ed763e1d1b001d7d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-03-28 02:02:14 +01:00