Commit Graph

247 Commits (5043501e64f5a7427fa2cd91989ce2c4e5c0c679)

Author SHA1 Message Date
Joona Petrell 5227ca6ffe Add new composite Qt::ImQueryInput query
When cursor position or editor text changes many input method query attributes like
cursor rectangle, cursor position, surrounding text, current selection and anchor
position change as well. Checking in text control and editor classes what of those
related attributes have exactly changed before calling the update increases code
complexity unnecessarily for a little benefit. Qt::InputMethodQueries flag can still
be used to optimize more independent cases when attributes change individually, which is
more common for input methods hints, fonts, platform data, maximum length or enabled
attributes.

Change-Id: Ic9eee5f1edb6d33ef6c01d2c9c8ad582100c0150
Reviewed-on: http://codereview.qt-project.org/4739
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-09-14 21:30:35 +02:00
Rohan McGovern 7e7a1eefb3 Windows: fixed compile of libQtPlatformSupport
It is incorrect to use QT_GUI_EXPORT to export symbols from any library
other than libQtGui.  When used outside of libQtGui, QT_GUI_EXPORT
attempts to _import_ symbols rather than _export_ them.

Change-Id: I7489067f479edd3acd9bf08bcaa24ee4dea4c3cc
Reviewed-on: http://codereview.qt-project.org/4838
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lincoln Ramsay <lincoln.ramsay@nokia.com>
2011-09-14 05:06:33 +02:00
Gunnar Sletta b62bd0584a Merge branch 'refactor'
Conflicts:
	mkspecs/qws/linux-lsb-g++/qmake.conf
	src/gui/image/qpixmap_mac.cpp
	src/gui/painting/qpaintengine_x11.cpp
	src/gui/painting/qtessellator.cpp
	src/gui/text/qfontengine_qws.cpp
	src/gui/text/qfontengine_x11.cpp
	src/gui/widgets/qlinecontrol.cpp
	src/opengl/qgl.h
	src/opengl/qgl_x11egl.cpp
	src/plugins/plugins.pro

Change-Id: If52dcd55cd55f2983a756c2f843967702b60a310
2011-09-13 08:54:45 +02:00
Konstantin Ritt 289ed56cc9 QSettings: don't assume XDG_CONFIG_HOME is latin1-encoded
use QFile::decodeName() instead

Merge-request: 1341
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>

(cherry picked from commit 38b4b059e83bca2fe82a0826bdf69fd8b02b2827)

Change-Id: I8133885f7b53842d7230eeb80cf2e39a244a87d7
Reviewed-on: http://codereview.qt-project.org/4589
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-09-12 16:03:47 +02:00
Konstantin Ritt 946725afff QSettings: use the common appdata dir when bootstrapping qmake on win
QSystemLibrary doesn't depend on QObject, so nothing could stop us

Merge-request: 1341
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>

(cherry picked from commit 4aff9e52efc7c6fc6124972efb3b381f85c45e4f)

Change-Id: I5209e6424adb5aea00baf1be6f81b286abf32906
Reviewed-on: http://codereview.qt-project.org/4588
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-09-12 16:03:47 +02:00
suzuki toshiya 560e68e2bd Replace explicit surrogate handlers by inline methods of QChar class
Merge-request: 1284
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>

(cherry picked from commit 50af55095afe1ba048dde357b771485ef2188778)

Change-Id: I0b1967145ad62243afc2060a6ae4ca141a9609fd
Reviewed-on: http://codereview.qt-project.org/4587
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-09-12 16:03:47 +02:00
suzuki toshiya 5dd78ba08f Replace 'i < len-1 && func(i+1)' by 'i+1 < len && func(i+1)'
Merge-request: 1299
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>

(cherry picked from commit 81f0c44f6a4fd4cfa41af5d5b292008185bf3981)

Conflicts:
	src/qt3support/itemviews/q3listbox.cpp
	src/qt3support/sql/q3datatable.cpp
	src/qt3support/text/q3richtext.cpp
	src/scripttools/debugging/qscriptcompletiontask.cpp
	src/scripttools/debugging/qscriptdebuggercodeview.cpp

Change-Id: Ie70590e77e69fbb9b2322c48c3963fd9cbba19e6
Reviewed-on: http://codereview.qt-project.org/4581
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-09-12 16:03:47 +02:00
Ritt Konstantin b206ae41b2 don't detach until the list is going to be modified
removeAt() does detach()'ing for us

Merge-request: 1285
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>

(cherry picked from commit 52223d80ec8ba6d579c091efe0e40589a5d2bd67)

Change-Id: I78865e19f989d9079c8dee47b8cf1bdf7e5db261
Reviewed-on: http://codereview.qt-project.org/4578
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-09-12 16:03:47 +02:00
Ritt Konstantin 9f865df5d1 optimize QList::removeAll()
a) don't detach until an occurrence found
b) don't memmove every time an occurrence found
c) truncate quickly )

well, numbers are better than words:
before:
RESULT : tst_QList::removeAll_primitive():
     2,617,902 CPU ticks per iteration (total: 261,790,171, iterations: 100)
RESULT : tst_QList::removeAll_movable():
     2,547,540 CPU ticks per iteration (total: 254,753,960, iterations: 100)
RESULT : tst_QList::removeAll_complex():
     16,852,099 CPU ticks per iteration (total: 1,685,209,906, iterations: 100)

after:
RESULT : tst_QList::removeAll_primitive():
     73,520 CPU ticks per iteration (total: 73,520,442, iterations: 1000)
RESULT : tst_QList::removeAll_movable():
     90,422 CPU ticks per iteration (total: 90,422,464, iterations: 1000)
RESULT : tst_QList::removeAll_complex():
     9,667,073 CPU ticks per iteration (total: 9,667,072,670, iterations: 1000)

Merge-request: 1285
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>

(cherry picked from commit b209fe3b1a51f64541067917e96de99f14ad65f3)

Change-Id: Ia26036ed741cefcf4b5868b7b2fc5eae8130d3dc
Reviewed-on: http://codereview.qt-project.org/4577
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-09-12 16:03:47 +02:00
Bernhard Rosenkraenzer 451afec8b9 Fix building the OpenVG graphicssystem on Linux with static libs
Without this, building OpenVG would fail because Q_OPENVG_EXPORT wasn't
defined at all, causing it to be treated as a variable name

Merge-request: 1256
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>

(cherry picked from commit 8680ced782c5e225b2e15c50c05493a23410b119)

Change-Id: I0da36af8cdcf411325fad25fa5c4d2ab7764c0ee
Reviewed-on: http://codereview.qt-project.org/4573
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-09-12 16:03:47 +02:00
Oswald Buddenhagen e8e2e26d5a don't crash when destroying codec list
this was uncovered by rittk's don't-detach patch.

(cherry picked from commit cc98710df73a590c37dca19bd3aa9fcd9bbd5a92)

Change-Id: I2225e6a94e5562459d9c5fd27ac7c8e611b674fd
Reviewed-on: http://codereview.qt-project.org/4580
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-09-12 12:55:13 +02:00
Gunnar Sletta a9ac6da893 Merge branch 'master' into refactor
Conflicts:
	src/3rdparty/v8
	src/gui/text/qfont_qpa.cpp
	src/gui/widgets/qlinecontrol.cpp
	src/plugins/platforms/fontdatabases/fontconfig/qfontconfigdatabase.cpp
	tests/auto/gui.pro
	tests/auto/network.pro
	tests/auto/qstring/tst_qstring.cpp

Change-Id: Id118c172645303ccf06a207050d5bf1462ff57fe
2011-09-12 07:49:03 +02:00
Thiago Macieira 83ba0d56f8 Add an SSE4.2 even simpler version of toLatin1
Use the new PCMPESTRM instruction (Parallel CoMPare Explicit-length
STRings with result in a Mask) which is added in SSE4.2 for
facilitating string operations. The "compare ranges" mode allows us to
search for characters outside the Latin 1 range and then use the
SSE4.1 PBLENDVB instruction to replace those with question marks.

Unlike previous SSE compare instructions, the PCMPxSTRx family allows
us to operate on unsigned 16-bit values. This saves us another
parallel add.

Reviewed-By: Samuel Rødal
(cherry picked from commit 45d2d36c9dbcbce403c78838ea52acd1ab111b68)

Change-Id: I0f9d864f9d19c0f0da43ccb6918dc28295074496
Reviewed-on: http://codereview.qt-project.org/4468
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2011-09-08 17:32:00 +02:00
Thiago Macieira 526c851902 Create a function that merges the SSE common code
Reviewed-by: Samuel Rødal
(cherry picked from commit bb3bd601560132df769c32808ae0b36c56d1caab)

Change-Id: Icd7f661785a793effcd4d8cd08ffa8bb5a592cd9
Reviewed-on: http://codereview.qt-project.org/4467
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2011-09-08 17:31:48 +02:00
Thiago Macieira 85f963b2f1 Improve toLatin1 x86 SIMD by using a new SSE4.1 instruction
The new instruction is PBLENDVB, which creates a result by selecting
bytes from one of two registers, depending on whether the mask
contains a 1 (0xff) or a zero.

The SSE2 code requires three instructions (and, andnot, or).

The equivalent Neon instruction is VBSL (bit select).

Reviewed-by: Samuel Rødal
(cherry picked from commit bdad106358ae177d1345f5ff85c0e38cfeb5ca90)

Change-Id: I5b0d055a4be532f81c6f11181d710525cd6c3f25
Reviewed-on: http://codereview.qt-project.org/4466
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2011-09-08 17:31:34 +02:00
Lars Knoll 6f65a55fa9 Rename ImMicroFocus to ImCursorRectangle
Also set ImhMultiLine on QTextEdit

Change-Id: I04a5a1d69c2048ea94c24210e2b8374f334be1b6
Reviewed-on: http://codereview.qt-project.org/4414
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-09-08 11:28:38 +02:00
Lars Knoll a30d4162dd Refactor the input framework
Results of the ongoing workshop in Oslo:
QInputPanel will be the application facing interface
for controlling the input context as well as querying
things like the position of the virtual keyboard.
QInputContext is significantly cleaned up and only there as
a compatibility API for existing code.

Change-Id: Ie8e2ee480930763f414bfaae63247b1fb6500c82
Reviewed-on: http://codereview.qt.nokia.com/4357
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Vesa Rantanen <vesa.rantanen@nokia.com>
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-09-07 14:59:18 +02:00
Morten Sorvig cee63e2c17 Cocoa: QMenu refactor.
This change prepares for enabling native menus
on OS X.

Move code from src/widgets to cocoa:
- qcocoaapplicaiton
- qcocoaapplicaitondelegate
- qcocoamenuloader
- qcocoamenu
- qmenu_mac
- misc helpers to qcocoahelpers

Create a QNSApplication and
QCocoaApplicationDelegate at application startup.

New Lighthouse API:
- class QPlatformMenu
- class QPlatformMenuBar
- QPlatformIntegration::createPlatformMenu()
- QPlatformIntegration::createPlatformMenuBar()

Platforms that wants a native menu integration
subclasses QPlatformMenu[|Bar] and implements the
create function. The default implementation returns
0, which causes QMenu to use the standard Qt
menus.

This API is based on the current native menu
abstraction that Mac, Wince and S60 uses in Qt 4.
The main difference is that the platform classes are
proper standalone classes and not #ifdeffed into
QMenuPrivate.

Change-Id: I3da41f80b0ae903a476937908b1f9b88014b7954
Reviewed-on: http://codereview.qt.nokia.com/4068
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2011-09-07 11:00:36 +02:00
Samuel Rødal a6b6e760ac Merge remote branch 'gerrit/master' into HEAD
Conflicts:
	configure.exe
	src/corelib/global/qglobal.h
	src/gui/kernel/qplatformnativeinterface_qpa.h
	src/gui/widgets/qlinecontrol.cpp
	src/gui/widgets/qmenu_mac.mm
	src/gui/widgets/qmenu_p.h
	src/gui/widgets/qmenubar.cpp
	src/gui/widgets/qmenubar_p.h
	src/gui/widgets/widgets.pri
	src/plugins/platforms/wayland/qwaylandnativeinterface.cpp
	src/plugins/platforms/wayland/qwaylandnativeinterface.h
	src/src.pro
	tests/auto/qdir/tst_qdir.cpp
	tests/auto/qfileinfo/tst_qfileinfo.cpp
	tests/auto/qsslsocket/tst_qsslsocket.cpp
	tests/auto/qstring/tst_qstring.cpp

Change-Id: I64cf2cefa532ba87a92f632e3595ce6914183e9b
2011-09-06 10:55:40 +02:00
Bradley T. Hughes 8ed47d961d Don't use QSettings to "cache" plugin information
The main rationale of the cache was to examine the plugin's build-key
before loading it. Now that the build-key has been removed, the cache
has lost its usefulness.

This is part of a larger push to not use QSettings for Qt specific
settings or caches.

See also:
http://lists.qt.nokia.com/pipermail/qt5-feedback/2011-August/000892.html
http://lists.qt.nokia.com/pipermail/qt5-feedback/2011-August/000960.html
http://lists.qt.nokia.com/pipermail/qt5-feedback/2011-August/000907.html
http://lists.qt.nokia.com/pipermail/qt5-feedback/2011-August/000904.html

Change-Id: I96e84aa25983c8e06e027ff70cef109444c362a2
Reviewed-on: http://codereview.qt.nokia.com/3978
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-09-05 13:31:14 +02:00
Shane Kearns c8baa5602a Restore Qt4.7 behaviour of QFileInfo::absolute(File)Path
Many applications relied on the undefined behaviour that the
filesystem engines returned clean paths (despite the documentation
stating that they may not), and consequently suffered regressions with
Qt 4.8.

Unix paths are once again cleaned if necessary.
Windows/Symbian paths were already cleaned, but now use the utility
function to check if a path is dirty, to avoid duplicated code.

Task-number: QTBUG-19995
Change-Id: If8c18469f149291c9d079ae3da23bc2087bbd49a
Reviewed-on: http://codereview.qt.nokia.com/4154
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com>
2011-09-02 20:48:06 +02:00
Bradley T. Hughes 7493ee1c44 Remove the build-key from the plugin verification data
The build-key is an old mechanism to work around binary
incompatibilities in GCC 3.x versions. Modern GCC has not broken binary
compatibility since 3.4, making this mechanism obsolete.

The cache value stored now only includes Qt version, the debug/release
boolean, and the last modified time for the plugin. Old 4-value keys
will be replaced with new keys as the plugins are reloaded the first
time.

This also removes QLibraryInfo::buildKey(), which is a source-incompatible
change.

The UNIX and Windows configure tools have been updated to stop
outputting the QT_BUILD_KEY preprocessor directive.

See also:
http://lists.qt.nokia.com/pipermail/qt5-feedback/2011-August/000892.html

Change-Id: I7d06969a370d3d2c6de413c1230d9d6789cbf195
Reviewed-on: http://codereview.qt.nokia.com/3977
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2011-09-02 14:11:41 +02:00
Shane Kearns e8192883b2 Fix comparison of absolute, unclean paths in QDir
QDir::operator== was creating a clean absolute path for comparison
purposes if the original path was relative.
However original absolute paths were trusted, even though they could
be unclean. Now they are checked for cleanliness first.

Task-Number: QTBUG-19995
Task-Number: QTBUG-20495
Change-Id: I047a1a40ae5151e4604085e4ac87f30a4e4979c4
Reviewed-on: http://codereview.qt.nokia.com/4099
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com>
2011-09-02 10:01:20 +02:00
Ritt Konstantin 7a0a9bd5c4 omit unassigned (and too recent) codepoints from the text Normalization process
http://www.unicode.org/reports/tr15/#Guaranteeing_Process_Stability:
> handle any code points that were not defined in the earlier version
> as if they were unassigned: such code points will not decompose or compose,
> and their Canonical_Combining_Class value will be zero.

since QChar::Unicode_Unassigned value is 0, it's less than any other
QChar::UnicodeVersion value and must ba handled explicitly

Change-Id: I6df025b4173d407660adae77ec5eeb98d15cb8ce
Reviewed-on: http://codereview.qt.nokia.com/4084
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-09-01 16:14:18 +02:00
Bradley T. Hughes 2c8a4fae84 Rename the private helper function QList::free() to QList::dealloc()
As the comment suggests, renaming this function avoids confusion with
libc's free().

Change-Id: Ia077b92c947d81ef9d78de940a1cd8ed022edb3c
Reviewed-on: http://codereview.qt.nokia.com/4063
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2011-09-01 13:52:33 +02:00
Bradley T. Hughes 80559d6cd3 Remove declarations for QListData functions removed by 36c29ab
This commit removed the function implementations, but not the
declarations.

This removes QListData::append2(T) but moves the optimized
QListData::append2(T) implementation to QListData::append(T)

Change-Id: I39b6dea31420a7cefe079b94a91a96eb16000d2a
Reviewed-on: http://codereview.qt.nokia.com/4062
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2011-09-01 13:52:33 +02:00
Friedemann Kleint 090ee21eac Introduce Q_QTQUICK1_EXPORT fixing exports in declarative.
Change-Id: Id70c6792b5342074ef78944e7e28bd9c9b83c107
Reviewed-on: http://codereview.qt.nokia.com/3983
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2011-08-31 16:06:12 +02:00
Lars Knoll 3526560d60 Add QLocale::toUpper/Lower
The toUpper/Lower() methods in QString should not
be locale dependent, as this can lead to rather
hard to find bugs in at least a turkish locale.

Rather have explicit, locale dependend case conversions
available in QLocale.

Reviewed-by: Denis Dzyubenko
(cherry picked from commit da0e1e101bb4c44c25b6523357fa81ad1b2d6539)

Change-Id: I1cc3f341bef17ad573a736dc94c9c5d514ace54e
Reviewed-on: http://codereview.qt.nokia.com/3259
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
2011-08-31 13:12:43 +02:00
Samuel Rødal 42f2da5e6b Merge remote branch 'gerrit/master' into refactor
Conflicts:
	src/src.pro

Change-Id: Ic04fb170b82e86dc3cef6fe979f8fb709db10daf
2011-08-30 11:51:20 +02:00
Aaron Kennedy 009f3d1404 Add a signal emitted callback to QAbstractDeclarativeData
For property notify signals, QtDeclarative can manage connections
in a more special case - and more performant - way.  This patch
adds a callback hook so that QtDeclarative can intercept signals
being emitted by declarative objects.

Change-Id: I72554e80df0a4257da65d81cc1c5db88a11446a4
Reviewed-on: http://codereview.qt.nokia.com/3363
Reviewed-by: Martin Jones <martin.jones@nokia.com>
2011-08-30 02:23:38 +02:00
Samuel Rødal d0c48efbae Merge remote branch 'gerrit/master' into refactor
Conflicts:
	src/gui/accessible/qaccessible.h
	src/gui/kernel/qapplication.cpp
	src/gui/kernel/qapplication.h
	src/gui/kernel/qapplication_mac.mm
	src/gui/kernel/qapplication_qws.cpp
	src/gui/kernel/qapplication_s60.cpp
	src/gui/kernel/qapplication_win.cpp
	src/gui/kernel/qapplication_x11.cpp
	src/gui/kernel/qdnd_x11.cpp
	src/gui/kernel/qwidget.cpp
	src/gui/widgets/qlabel.cpp

Change-Id: Ief9c75724d2cff89ed45f009bdee2ffc5e4395ba
2011-08-29 12:11:53 +02:00
Ritt Konstantin 580bd22dc6 optimize parsing of templates like p{IsArabic}, etc
use qBinaryFind() with a case-sensitive string comparison
instead of QHash. This also improves startup time and reduces
runtime memory consumption.

Change-Id: I5c5f7cae5e42acb3fa727acac19fe39c53310329
Reviewed-on: http://codereview.qt.nokia.com/3673
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-08-26 14:15:05 +02:00
Ritt Konstantin 24667a905d optimize parsing of templates like p{L}, p{Lu}, etc
replacing the if-else trees with the switch statement
gives a 2x-3x parsing performance boost on parsing these
expressions.

Change-Id: Ia0e76ae4e1ab6930dbecf1d4a5232a4cc7198654
Reviewed-on: http://codereview.qt.nokia.com/3672
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-08-26 14:14:49 +02:00
Ritt Konstantin c400a3433a don't build code related to CClass if QT_NO_REGEXP_CCLASS is defined
Change-Id: If86835b1065eeb95e0774f1b42870dcd5225da58
Reviewed-on: http://codereview.qt.nokia.com/3671
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-08-26 14:14:26 +02:00
Gunnar Sletta 04d0a9626c Merge branch 'master' into refactor
Conflicts:
	src/gui/kernel/qapplication_qpa.cpp
	src/gui/kernel/qcursor_qpa.cpp
	src/gui/kernel/qwindowsysteminterface_qpa.cpp
	src/gui/kernel/qwindowsysteminterface_qpa.h
	src/gui/kernel/qwindowsysteminterface_qpa_p.h
	src/gui/text/qtextcontrol.cpp
	src/plugins/platforms/wayland/wayland.pro
	src/widgets/accessible/qaccessible2.h
	src/widgets/widgets/qwidgetlinecontrol_p.h

Change-Id: I5e6f4eb184159dccc67e8f13673edb884d179c74
2011-08-25 12:48:52 +02:00
Friedemann Kleint 2e95ce7459 Fix build.
- Introduced EXPORT definition for new QPrintSupport library.
- Fixed dependencies in src.pro
- Fixed some includes.

Change-Id: I9863233ca2767928b37cf3fd1fdec31351b5da6b
Reviewed-on: http://codereview.qt.nokia.com/3253
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2011-08-19 10:55:28 +02:00
Eike Ziller a3bd9d4c0f Fix compilation with thumb2.
Task-number: QTBUG-16402
Rubber-stamped-by: Thiago Macieira

(cherry picked from commit 6be1b235f7db38146f7080a4bfcfe3051ae54699)

Change-Id: I6f60f1d3079395e765a183961db5c8543cf58cdc
Reviewed-on: http://codereview.qt.nokia.com/3078
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Eckhart Koppen <eckhart.koppen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-08-18 17:59:18 +02:00
David Faure 168fe50106 Make QThread::sleep/msleep/usleep public.
Merge-request: 43
Reviewed-by: olivier
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>

Change-Id: Ic5e3ce8f49daf83665865f89fa9fd3488cc5b349
Reviewed-on: http://codereview.qt.nokia.com/2959
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
2011-08-15 15:45:52 +02:00
David Faure 3a1568c30c Add flag for non-recursive lookup of child qobject(s)
Merge-request: 40
Reviewed-by: olivier
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>

Change-Id: I1194ba0d8bba92ece3132171e230cece341ec127
Reviewed-on: http://codereview.qt.nokia.com/2957
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2011-08-15 13:37:49 +02:00
Harald Fernengel ad9f5c7e93 Remove all non-const operator==
We had to leave the non-const operator== for binary compatibility.
Remove them all, just leave the const version in there. 100% source
compatible.

Change-Id: Ib7a70fb441fe51d5164d9cbf495cbeda0f48fafe
Reviewed-on: http://codereview.qt.nokia.com/2773
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Robert Griebl <robert.griebl@nokia.com>
2011-08-09 12:00:51 +02:00
Samuel Rødal 92c998afb6 Merge remote branch 'gerrit/master' into refactor
Conflicts:
	src/gui/kernel/qapplication_x11.cpp
	src/gui/widgets/qlinecontrol.cpp
	src/gui/widgets/qlinecontrol_p.h
	src/gui/widgets/qtabwidget.h

Change-Id: I90ba893a5553b9ff5658ca0a3221ecf76be4c736
2011-08-03 11:03:22 +02:00
Friedemann Kleint 6f4212e593 Fix QString/QByteArray literals for MSVC2010 (compilation of tests).
- Specify return type of QByteArrayLiteral/QStringLiteral lambdas.
- Define QT_UNICODE_LITERAL instead of QT_UNICODE_MARKER.

Change-Id: I8a53506887d2736b093798220b088f645f05e415
Reviewed-on: http://codereview.qt.nokia.com/2514
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2011-08-02 17:14:02 +02:00
Bradley T. Hughes 2c3382d305 Fix compilation with namespaced builds
Add QT_BEGIN_NAMESPACE and QT_END_NAMESPACE to src/corelib/tools/qfreelist.cpp

Change-Id: Ie01e74a3c2d9cd4de1f52a546d13398e1409c86b
Reviewed-on: http://codereview.qt.nokia.com/2390
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2011-07-29 12:49:12 +02:00
Olivier Goffart ddf444d31a Simplify the mutexpool used in QObject.
Since we now have QBasicMutex as a POD, we can simplify the mutexpool.
This remove the call the the Q_GLOBAL_STATIC and some others tests that
are taking CPU cycles when activating a signal.

The QMutexPool class itself can't be simplified because its mutex are
recursive mutexes, and the size is dynamic. also it is harder to get all
the mutexes initialized to 0.

Change-Id: Ie781655635907d2ad620eb189099cba14638414f
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-on: http://codereview.qt.nokia.com/2171
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
2011-07-29 10:32:16 +02:00
Olivier Goffart 86a237929e QMutex is now just a pointer
And added a POD QBasicMutex. (QBasicMutex* can safely be
static_cast'ed to QMutex*)

The d pointer is not anymore always a QMutexPrivate.

If d == 0x0: the mutex is unlocked
If d == 0x1: the mutex is locked, uncontended

On linux:
if d == 0x3: the mutex is locked contended, waiting on a futex
If d is a pointer, it is a recursive mutex.

On non-linux platforms:
When a thread tries to lock a mutex for which d == 0x1, it will try to
assing it a QMutexPrivated (allocated from a freelist) in order to wait
for it.

Change-Id: Ie1431cd9402a576fdd9a693cfd747166eebf5622
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-on: http://codereview.qt.nokia.com/2116
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
2011-07-29 10:32:07 +02:00
Aaron Kennedy 78cf553469 Flag meta objects generated by QtDBus
QtDBus requires a QVariant argument to be passed to property reads and
writes.  For performance reasons QtDeclarative does not do this.  By
flagging the meta object as requiring this, QtDeclarative can do so only
required.

Task-number: QTBUG-15052

Change-Id: I032c946f079523f5f10217ed56642fb315265d9f
Reviewed-on: http://codereview.qt.nokia.com/2365
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
2011-07-29 05:19:47 +02:00
Denis Dzyubenko 85f05924f4 Added meta type info for Q[Explicitly]SharedDataPointer
Change-Id: I1269630ae5154f7318e1c7ae9fa2014a15234bf4
Reviewed-on: http://codereview.qt.nokia.com/2110
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
2011-07-28 13:16:50 +02:00
Olivier Goffart 404126d578 Get rid of compiler warnings with MSVC
Change-Id: Ibd027c502a5b8bcbfc6dae71c4f244f1080d4064
Reviewed-on: http://codereview.qt.nokia.com/2303
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-07-28 13:16:50 +02:00
Jason McDonald d692b8663c Fix obsolete contact email
Replace the old Trolltech contact email address with the current Qt
contact email address.

Task-number: QTBUG-20370
Change-Id: If5b9c3a044e1ee46264548eea456c704ced8e363
Reviewed-on: http://codereview.qt.nokia.com/2153
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-07-28 10:03:45 +02:00
Bradley T. Hughes 33a55c5661 Use QFreeList for timer id allocation
The timer id allocator doesn't need a paylod (hence T=void), but we want
to tune the allocation 'strategy.' We allocate a maximum of 6 blocks
(like before), but the first block is twice as large as before and is
not static writable anymore. The initial value is 1 (0 is not a valid
timer id), but otherwise the constants are the same as the defaults.

Change-Id: Ied49ff4d7a6a8d69bc8c7bfa5475e4111446659f
Reviewed-on: http://codereview.qt.nokia.com/2161
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
2011-07-26 13:40:07 +02:00