profile/ivi/qtbase.git
12 years agoQSqlTableModel: fix segfault when overriding selectRow()
Mark Brand [Tue, 25 Sep 2012 21:50:01 +0000 (23:50 +0200)]
QSqlTableModel: fix segfault when overriding selectRow()

The STL-style iteration over the cache in submitAll() assumed the
iterator would remain valid until reaching cache.end(). This failed
to consider that virtual selectRow() might be overridden so that
it removes rows from the cache. For example, it might call select()
which would empty the cache.

The new approach checks at each iteration whether the row is
still in the cache. Using foreach here is justified by its fitness
for purpose and readability.

New test included.

Change-Id: Idee8807ede239c3ba56ff1604574c49f47385ad2
Reviewed-by: David Faure (fixes for KDE) <faure@kde.org>
12 years agoUse slogger2 for logging on Blackberry instead of writing to stderr
Fabian Bumberger [Tue, 18 Sep 2012 18:15:18 +0000 (14:15 -0400)]
Use slogger2 for logging on Blackberry instead of writing to stderr

Change-Id: Id0137400f18c8dfe7be7ca44670c16615401d424
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Peter Hartmann <phartmann@rim.com>
12 years agoFix Windows mouse enter/leave event generation
Miikka Heikkinen [Mon, 1 Oct 2012 14:09:24 +0000 (17:09 +0300)]
Fix Windows mouse enter/leave event generation

QWidget::underMouse() did not report correct widget in cases where
mouse was grabbed by popup, which was especially disruptive in case
of QCompleter popup, as that wouldn't close anymore with off-popup
clicks.

Root problem was that mouse capture in Windows caused enter/leave
events for QWindows to be generated incorrectly.
QPlatformWindow documentation specifies that enter/leave events
should be sent independent of explicit mouse grabs and only automatic
mouse grabbing done when button is pressed should suppress
enter/leave events. Updated Windows mouse handling to conform to
this.

Task-number: QTBUG-27283
Change-Id: Iecf786a702f7d29e6026c42ff8ec4c9cbf1b6ac3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
12 years agoRun per-QWindow native event filter for all events.
Friedemann Kleint [Thu, 4 Oct 2012 10:30:46 +0000 (12:30 +0200)]
Run per-QWindow native event filter for all events.

Task-number: QTBUG-27101

Change-Id: I064f91e250d68223da3b81d605e522c8b78535f5
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
12 years agoCocoa: fix regressions in cocoa filedialog helper
Teemu Katajisto [Wed, 3 Oct 2012 10:17:12 +0000 (13:17 +0300)]
Cocoa: fix regressions in cocoa filedialog helper

mOpenPanel is set to 0 if save file dialog is used so call
mSavePanel instead.

Fixes regression introduced in
2e902799df6298ad4c75b4c565a0baf9cb7f7ab8

Change-Id: Idb93e44437731cad3c985d51b57b793a3ff2f292
Reviewed-by: Pasi Matilainen <pasi.matilainen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
12 years agotest: Remove QSKIP from tst_QToolButton::triggered()
Sergio Ahumada [Tue, 2 Oct 2012 13:48:37 +0000 (15:48 +0200)]
test: Remove QSKIP from tst_QToolButton::triggered()

This test actually passes on Mac OS X, so removing the QSKIP

Task-number: QTBUG-24374
Change-Id: I0b761ca9c30afc9d511e9962ee1c0958b863b374
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
12 years agoRemove unused placeholder from qErrnoWarning().
Friedemann Kleint [Thu, 4 Oct 2012 10:04:54 +0000 (12:04 +0200)]
Remove unused placeholder from qErrnoWarning().

The intention probably was to use __FUNCTION__, but since
Qt logging can now be configured to print the function name
by setting environment variables, just remove it.

Change-Id: Ic87aebfea633dd91eda7376b33ca3b14d1cab93f
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
12 years agoFix segfault when delegates change properties on editors.
Stephen Kelly [Tue, 2 Oct 2012 16:15:33 +0000 (18:15 +0200)]
Fix segfault when delegates change properties on editors.

The solution is similar to that
in b84e180263d0da3d1e6967fcf759225a778ea6ea which affected
QSortFilterProxyModel.

Task-number: QTBUG-25370

Change-Id: I6bbb9d9786bcb2c9fa8027ab8a7cc13664784b8d
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
12 years agoMac: Safely dispose of scrollbars temporary NSGraphicsContext
Gabriel de Dietrich [Wed, 3 Oct 2012 11:50:02 +0000 (13:50 +0200)]
Mac: Safely dispose of scrollbars temporary NSGraphicsContext

When rendering transient scrollbars, we instanciate a specialised
NSGraphicsContext since those need non-opaque rendering. This context
is being used as current context, but it was never properly released
and the previous context never properly restored.

Task-number: QTBUG-27327
Change-Id: I4e867e64a09368dbe64b84b17f07fd8e57bbae24
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
12 years agoWindows: Append file suffix in save-dialog.
Friedemann Kleint [Thu, 4 Oct 2012 09:36:11 +0000 (11:36 +0200)]
Windows: Append file suffix in save-dialog.

Task-number: QTBUG-27186
Change-Id: I04304fce1cbf6fb6794f352ff896eb463699d42b
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
12 years agoCMake: Improve QT5_GET_MOC_FLAGS macro
Stephen Kelly [Tue, 2 Oct 2012 10:04:00 +0000 (12:04 +0200)]
CMake: Improve QT5_GET_MOC_FLAGS macro

We need to handle CMAKE_INCLUDE_CURRENT_DIR for include directories.
Otherwise generated files located in the current binary directory are
not found as expected.

e.g. *.json file as meta data for Qt5's plugins generated at build time.

Change-Id: I14ae1e7013f9d8b485aa990d50db4a03ca4f4b81
Reviewed-by: Yuchen Deng <loaden@gmail.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
12 years agoUpdate the window style when the modality changes on Cocoa
Andy Shaw [Tue, 25 Sep 2012 05:04:01 +0000 (07:04 +0200)]
Update the window style when the modality changes on Cocoa

On Cocoa if the modality of a dialog changes then the style of the
window needs to change to reflect this. So we add a variable to
cache the windows modality when it is created to compare against when
being made visible.

Task-number: QTBUG-22316
Change-Id: I7bfd016321510a9ec70ccb90672f5203a0f3a468
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
12 years agocompile fix for MSVC 2008 and std::upper_bound
Thomas Hartmann [Tue, 2 Oct 2012 14:50:01 +0000 (16:50 +0200)]
compile fix for MSVC 2008 and std::upper_bound

qUpperBound was replaced by std::upper_bound.

Unfortunately the STL of MSVC 2008 enforces
the definition of the operator in both
directions.

Change-Id: I3e0f775c23e43332d106e0847d3611e488da6c06
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
12 years agoReturn if header is 0.
Frederik Gladhorn [Wed, 3 Oct 2012 10:45:38 +0000 (12:45 +0200)]
Return if header is 0.

QT-BUG: 184868

Change-Id: Iff041c66fdfb2267e0349bdd47fec0fe63b1799d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
12 years agonative android support with eglfs
Arvid Picciani [Sun, 23 Sep 2012 19:21:12 +0000 (19:21 +0000)]
native android support with eglfs

Enable eglfs build against any android > 4 tree,
linking to native libs without emulation layers,
running on top of surfaceflinger.
No GNUs where harmed in the process.

Yes, any android.
Tested on maguro, tf300, eeepc-x86
x86-64 compiles but broken elsewhere.

You don't need an Android.mk, but you must compile from within
a shell setup with androids "lunch" or an equivalent that set TOP and OUT.
Since we do callbacks to androids build system,
the same env restrictions apply (must use gnu bash, and gnumake 3.81)

Done-with: Samuel Roedal <samuel.rodal@digia.com>
Done-with: Robin Burchell <robin+qt@viroteck.net>
Done-with: Brian Avery <brian.avery@nokia.com>

Change-Id: Iec0178cdeadbeefc79e4fe6ef449d399ac8ca666
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
12 years agoShow widget cursor after restoring last override cursor
Miikka Heikkinen [Wed, 3 Oct 2012 09:06:14 +0000 (12:06 +0300)]
Show widget cursor after restoring last override cursor

qwidget_qpa.cpp was setting cursor directly to platform window, so
QWindow didn't actually know what cursor was supposed to be shown.

Since QWindow now supports setting cursor and has override cursor
handling there, set cursor via QWindow instead of platform window.
Also changed QGuiApplication override cursor handling so that
it will query the cursor from QWindow if there is no override cursor.
With these changes, widget's custom cursor will be properly shown
when final override cursor is restored.

Task-number: QTBUG-24674
Change-Id: I2d2bb1027779256f9d6de560b6533f45e205ffe9
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
12 years agotst_QLocale: remove QSKIP, wrap Q_OS_MAC/Q_OS_WIN
Sergio Ahumada [Tue, 2 Oct 2012 14:13:12 +0000 (16:13 +0200)]
tst_QLocale: remove QSKIP, wrap Q_OS_MAC/Q_OS_WIN

Change-Id: I44755379561b98e43dd19c8c01b40349be203e14
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
12 years agoRemove #if 0 usage in QElapsedTimer autotest.
Leonard Lee [Wed, 3 Oct 2012 12:06:07 +0000 (14:06 +0200)]
Remove #if 0 usage in QElapsedTimer autotest.

Given QElapsedTimer t1, t2 variable, the t1-t2,
t1+1000 (add 1 second) operations not supported.

Task-number: QTBUG-22446
Change-Id: Idd87f778c212831aa7f92242452538d113c9cfcf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoFix #if 0 usage in collections autotest.
Leonard Lee [Mon, 1 Oct 2012 13:32:44 +0000 (15:32 +0200)]
Fix #if 0 usage in collections autotest.

Removed inappropriate use of #if 0 in collections autotest.

Task-number: QTBUG-22471
Change-Id: Ibf4e5fae8e671ebfd0dc5734875fcc8879b330af
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoRename quick1_debug back to declarative_debug
Kai Koehne [Fri, 28 Sep 2012 13:31:55 +0000 (15:31 +0200)]
Rename quick1_debug back to declarative_debug

The library name changed back from quick1 to declarative, so the
debug option should be renamed accordingly.

Change-Id: I192520a0a4de4764cf93da8cdbb14e24ba7de093
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoAccessibility: For app claim support for app iface.
Frederik Gladhorn [Fri, 28 Sep 2012 18:15:02 +0000 (20:15 +0200)]
Accessibility: For app claim support for app iface.

Change-Id: Idb7f5971d61885f18d827f6bff3994df7a3860e5
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
12 years agoImplement action de-marshalling.
Frederik Gladhorn [Fri, 28 Sep 2012 18:03:55 +0000 (20:03 +0200)]
Implement action de-marshalling.

Change-Id: Ie9ae85298fad6217f9f50a018fbba50f028deba2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
12 years agoRemove unused function.
Frederik Gladhorn [Fri, 28 Sep 2012 17:56:27 +0000 (19:56 +0200)]
Remove unused function.

Change-Id: Ie8eecf7e4a7475ac84a66b6055149ce92d019785
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
12 years agoCheck for valid model and view in isValid for TableCells.
Frederik Gladhorn [Fri, 28 Sep 2012 17:22:13 +0000 (19:22 +0200)]
Check for valid model and view in isValid for TableCells.

Change-Id: Iadca5503ed2a1d6411d46ed6fe9d5b9a56461a3a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
12 years agoMake accessibility debug output optional.
Frederik Gladhorn [Fri, 28 Sep 2012 16:04:37 +0000 (18:04 +0200)]
Make accessibility debug output optional.

On linux with the new plugin debug output was
a bit too generous. Instead use environment var:
If QT_DEBUG_ACCESSIBILITY is set, give the full a11y output.

Change-Id: I1c9e2078e38799f91468cfc2d9ddcaa36ba4fa03
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
12 years agoMac: QComboBox wouldn't receive mouse events when shown within a modal dialog
Gabriel de Dietrich [Mon, 1 Oct 2012 17:16:04 +0000 (19:16 +0200)]
Mac: QComboBox wouldn't receive mouse events when shown within a modal dialog

The mouse events were being stolen by the modal dialog, preventing the
combo box to update itself. Key events were being properly forwarded,
but this was probably due to the different way key events are being
delivered.

Change-Id: I5bfc4800fad9fd4122a212e6fdec13811a7e647b
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
12 years agoFix for integer overflow in QString::replace
Christian Strømme [Mon, 24 Sep 2012 10:38:44 +0000 (12:38 +0200)]
Fix for integer overflow in QString::replace

Task-number: QTBUG-22967

Change-Id: I604e6a725d46eab4c4369ebb54e8c9ea1350f492
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoOpenGL: Don't request a context version higher than is supported
Sean Harmer [Thu, 27 Sep 2012 14:24:34 +0000 (15:24 +0100)]
OpenGL: Don't request a context version higher than is supported

The function wglCreateContextAttribsARB will fail if we request a
context version higher than is supported. We therefore upper-bound the
requested version by the version of the static context. This results
in context creation succeeding and having the closest possible match
to the requested format.

The xcb qpa plugin is modified to operate similarly to the windows
plugin in that it now creates a "static" context which is used to
limit the versions of contexts requested by the user.

Change-Id: I277ad7cc82edfdf7b9d8502ad921c8175feb1a4a
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
12 years agoFix issue with mispositioned family name i QFontComboBox
Eskil Abrahamsen Blomfeldt [Tue, 2 Oct 2012 07:09:26 +0000 (09:09 +0200)]
Fix issue with mispositioned family name i QFontComboBox

Mac OS X 10.7 comes with the family of Stix fonts, some
of which exposed an ugly layout bug in the QFontComboBox
because the ascent/descent ratio is very large due to
a very high ascent, so centering the text vertically might
cause most of the text to be clipped away.

The solution is to detect when the ascent is larger than the
height of the destination rectangle (hence a large part of the
characters will be clipped) and use the actual bounding rect
for centralizing instead. Since this only happens for a
very few of the fonts, the overhead of getting the bounding
rect should be tolerable.

This is a port of 4679c6901fc7c388fdf6c022d3499708222ef1f1 from
Qt 4.8.

Task-number: QTBUG-26691

Change-Id: Ia2014775e5baf0568df3290f2dc4ad64fb5a74bd
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
12 years agoFix QTextBoundaryFinder assignment operator
Konstantin Ritt [Wed, 3 Oct 2012 12:29:16 +0000 (15:29 +0300)]
Fix QTextBoundaryFinder assignment operator

for the case when the boundary finder is assigned to an invalid one.

Change-Id: I5b60984ff3fd99972fcae21895684bd83b012780
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
12 years agoIntroducing the PlatformPanel event type.
Sergio Martins [Tue, 25 Sep 2012 15:46:56 +0000 (16:46 +0100)]
Introducing the PlatformPanel event type.

This event can be used by any platform plugin to implement
special application panels/overlayed menus.

Currently used by QNX only.

This replaces sending fake Qt::Key_Menu presses in the QNX
plugin. Qt::Key_Menu is already used when invoking context
menus with the keyboard.

Change-Id: I9c8f1743fd147a07c11883323800017376915ae1
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
12 years agoChange Q_ASSERT to warnings and returns for the menu classes
Andy Shaw [Wed, 3 Oct 2012 09:45:49 +0000 (11:45 +0200)]
Change Q_ASSERT to warnings and returns for the menu classes

On Mac usually release frameworks are used during development so asserts
don't tend to get fired. Since the menu code did not crash in Qt 4.8,
it was decided that we should ensure that the same code does not crash
now so instead we warn instead of asserting for those cases.

Change-Id: I923e5591202cb2ad801074ce3ad2a11d7190cee8
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
12 years agoDefine QMAKE_EXTENSION_STATICLIB for MSVC mkspecs.
Jason Barron [Tue, 2 Oct 2012 08:19:01 +0000 (10:19 +0200)]
Define QMAKE_EXTENSION_STATICLIB for MSVC mkspecs.

Change-Id: Ia652001f9be67b0c509495c054875ca1ef8fc049
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
12 years agoOverhaul a little the QUrl error reporting.
Thiago Macieira [Thu, 20 Sep 2012 15:22:01 +0000 (17:22 +0200)]
Overhaul a little the QUrl error reporting.

Keep the original QString that triggered the parsing error, instead of
just one QChar. This provides more powerful error messages, like:

 Invalid IPv6 address; source was "http://[:::]";  scheme = "http", host = ""
 (QUrl cannot keep invalid hostnames)

 Invalid port or port number out of range; source was "http://example.com:abc";  scheme = "http", host = "example.com"
 (QUrl cannot keep a non-numeric port number)

 Invalid path (character '%' not permitted); source was "foo:/path%?";  scheme = "foo", path = "/path%25%1F"
 (the tolerant parser runs first, so the faulty component is fixed)

This stores the error state in a special structure which is not
allocated under normal conditions, keeping the memory consumption
down. On 32-bit systems, QUrlPrivate does not increase in size; on
64-bit systems, it grows by 8 bytes.

Change-Id: I93d798d43401dfeb9fca7b6eed7ea758da10136b
Reviewed-by: David Faure <faure@kde.org>
12 years agoUpdate some error messages in QUrl::errorString()
Thiago Macieira [Thu, 20 Sep 2012 14:30:48 +0000 (16:30 +0200)]
Update some error messages in QUrl::errorString()

Make both invalid hostname messages start with "Invalid hostname". And
split the empty port error from the invalid port one.

Change-Id: I870d1ed6fb07ec494f553871a37ed167141ffc06
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
12 years agoAdd Q_UNREACHABLE / Q_ASSERT to two conditions that can't happen
Thiago Macieira [Thu, 20 Sep 2012 14:16:27 +0000 (16:16 +0200)]
Add Q_UNREACHABLE / Q_ASSERT to two conditions that can't happen

Just so the code generation is a little better.

Change-Id: I2a43a4df0ae67900c465a6c2b4f2b8ba284dbbaa
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: David Faure <faure@kde.org>
12 years agoMove QUrlPrivate to qurl.cpp and mark all methods as inline
Thiago Macieira [Thu, 20 Sep 2012 14:05:30 +0000 (16:05 +0200)]
Move QUrlPrivate to qurl.cpp and mark all methods as inline

They're never accessed outside of qurl.cpp anyway, so let the compiler
know that it doesn't need to generate a full out-of-line copy for them
in case it does inlining.

Change-Id: I2be069b3fd2658eff9ad3023c21c8ae653c389ab
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: David Faure <faure@kde.org>
12 years agoChange QUrlPrivate::setAuthority to return void
Thiago Macieira [Thu, 20 Sep 2012 13:59:46 +0000 (15:59 +0200)]
Change QUrlPrivate::setAuthority to return void

It used to return bool because setHost returns bool and, therefore,
setAuthority could fail. However, the return value is never checked,
in either parse() or QUrl::setAuthority(), because there's no error
recovery.

This is a small optimisation.

Change-Id: I25660d66cfad64ca5b9706cc38afa0e97ba3ee0b
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: David Faure <faure@kde.org>
12 years agoRemove the annoying qWarning when QUrl::setPort is out of range
Thiago Macieira [Thu, 20 Sep 2012 13:46:41 +0000 (15:46 +0200)]
Remove the annoying qWarning when QUrl::setPort is out of range

That's what we have QUrl::errorString() for. This will become evident
especially now that QUrl::toString() / toEncoded() return empty if
there are errors.

Change-Id: I64a84e9c6ee57c0fc38cc0c58f5286ddc1248d1f
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: David Faure <faure@kde.org>
12 years agoUpdate QUrlPrivate::setScheme: EmptySchemeError never happens
Thiago Macieira [Thu, 20 Sep 2012 10:54:38 +0000 (12:54 +0200)]
Update QUrlPrivate::setScheme: EmptySchemeError never happens

As the comment says, an empty scheme is not permitted. However, if
that error were to happen, QUrl falls back to parsing the URI as an
"URI reference", starting with the path.

E.g., ":/foo" is a path of ":/foo", which will in turn trigger the
compound "colon before slash" error.

Also, we don't percent-decode in the scheme.

Change-Id: I438a61e17323c7722ddcc64792577a9ecb869c4b
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: David Faure <faure@kde.org>
12 years agoMake QUrl::errorString() usable for QtTest output in invalid URLs
Thiago Macieira [Tue, 18 Sep 2012 21:07:46 +0000 (23:07 +0200)]
Make QUrl::errorString() usable for QtTest output in invalid URLs

If an URL is invalid, let's indicate that in the test output. To be
helpful, let's make QUrl::errorString() include the component form of
the URL.

Change-Id: Iaafe16973ded79c7ea688fbb23808d91253e8c14
Reviewed-by: David Faure <faure@kde.org>
12 years agoMake QUrl::toString() / toEncoded() return empty for invalid URLs
Thiago Macieira [Wed, 19 Sep 2012 12:47:09 +0000 (14:47 +0200)]
Make QUrl::toString() / toEncoded() return empty for invalid URLs

Change-Id: I6ebb4ad2901a9bacb09fb81082202f37ebbc2e97
Reviewed-by: David Faure <faure@kde.org>
12 years agoAdd two compound URL invalidity cases for isValid()
Thiago Macieira [Wed, 19 Sep 2012 12:28:25 +0000 (14:28 +0200)]
Add two compound URL invalidity cases for isValid()

These two errors can only happen if one calls setPath() explicitly. They
cannot happen for parsed URLs, which is why they are only caught with
isValid(). It's not possible to set the error condition in setPath()
either because they depend on the presence / absence of the authority
and scheme.

Also update all the unit tests that set a path not starting with a slash
and were just "freeloaders" on the previous behaviour.

Change-Id: Ice58cd4589a850452d7573a5b19667bbab2fb43e
Reviewed-by: David Faure <faure@kde.org>
12 years agoFix DIB image reading.
Friedemann Kleint [Tue, 2 Oct 2012 13:38:29 +0000 (15:38 +0200)]
Fix DIB image reading.

Position the QIODevice correctly for DIB (==BMP without file
header).

Task-number: QTBUG-26690
Change-Id: I7922b4e830a92dcc19f1b52e305ca9ff3fd5d9f5
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
12 years agofix #includes
Mark Brand [Sat, 29 Sep 2012 11:12:31 +0000 (13:12 +0200)]
fix #includes

Change-Id: Ia33d7ef08e43bad95d57823e37757a09e53493b9
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
12 years agoRemove Cleanlooks as a dependency of QGtkStyle
Jens Bache-Wiig [Mon, 1 Oct 2012 15:41:34 +0000 (17:41 +0200)]
Remove Cleanlooks as a dependency of QGtkStyle

Since we no longer do the sanity checking against
gtk-qt-theme at startup, there
is no longer any need to inherit from cleanlooks.

Cleanlooks should no longer be needed as it has been
completely replaced by Gtk style and this dependency
is not required at this point.

Change-Id: I05b59278cd3ff915df49a7ad2d04494258db0d42
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
12 years agoSet CWD when launched from Finder.
Morten Johan Sorvig [Thu, 9 Aug 2012 11:07:21 +0000 (13:07 +0200)]
Set CWD when launched from Finder.

Like Qt 4. Use the presence of the "-psn_" command-
line argument to detect Finder launches.

Link QtGui against the Cocoa framework due to CFBundle
usage.

Change-Id: I947ae53462072fbdb23afcc0a13ce6b26d02c191
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
12 years agoCocoa: add missing auto release pools
Richard Moe Gustavsen [Tue, 25 Sep 2012 08:57:21 +0000 (10:57 +0200)]
Cocoa: add missing auto release pools

Got complaints while running file dialog example. Adding in
the release pools will fix the problem.

Change-Id: Ib33fddd5aedfc3e4aaa6fdd8995bbc8c8098267c
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
12 years agoCocoa: bugfix staysOnTopFlag in combination with transient parent
Richard Moe Gustavsen [Tue, 2 Oct 2012 09:28:58 +0000 (11:28 +0200)]
Cocoa: bugfix staysOnTopFlag in combination with transient parent

A staysOnTop window with a parent would never stay on top. The reason
was that we placed the window on the same level as the parent, which
would undermine the staysOnTop flag.

The fix for this is to always level the window to _at least_ as the same
level as the parent, but never lower. A code path for this already
existed in the windowLevel function for popups. so we factor that out
and use it for all cases.

Task-number: QTBUG-27410
Change-Id: I0c30194be33703f54b6c2fe7f3088a9febcd1e2c
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
12 years agoFix a crash with xcb on 64bit systems when hitting any key.
Jocelyn Turcotte [Wed, 26 Sep 2012 14:25:57 +0000 (16:25 +0200)]
Fix a crash with xcb on 64bit systems when hitting any key.

xcb uses 32bits for xcb_keysym_t, but Xlib uses 64bit longs on 64bits
systems for KeySym and all other XIDs on the client side. Passing
an xcb_keysym_t* to XLookupString, expecting a KeySym*, would overwrite
the next 32bits in memory and possibly cause a crash.

This patch makes sure that a KeySym* is passed to XLookupString, and use
the signature declared in Xutil.h to make sure the types are right.
Encapsulate it in qxlibconvenience.cpp since including Xutil.h inside
qxcbkeyboard.cpp causes macro expansion problems.

Change-Id: I68451a24cb44a43dfa4382b5dce1ea7845f14e26
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
12 years agoStop delivering messages when drop has occurred.
Gatis Paeglis [Mon, 1 Oct 2012 11:53:10 +0000 (13:53 +0200)]
Stop delivering messages when drop has occurred.

Task-number: QTBUG-27406

Change-Id: If14c108060ad6de70991658f0e0249eb544b87a0
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
12 years agoRetrieve drop data with a proper timestamp
Gatis Paeglis [Mon, 1 Oct 2012 10:29:36 +0000 (12:29 +0200)]
Retrieve drop data with a proper timestamp

Occasionally drag-and-drop was returning empty mimedata due to
using wrong value for timestamp. Accoring to the xdnd specification
we must use timestamp from XdndPosition or XdndDroptime for retrieving
the data.

Task-number: QTBUG-27367
Change-Id: Iadb6b6989cfc4e8ab241e2fd0ded59355108f22f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
12 years agoEnsure that QDrag is set correctly at all times.
Gatis Paeglis [Mon, 1 Oct 2012 10:26:20 +0000 (12:26 +0200)]
Ensure that QDrag is set correctly at all times.

This patch fixes broken code in handleSelectionRequest(). There are 2 cases
when this function is called:
1) When XdndDrop has arrived (on mouse release)
2) When drop has not occurred yet (while mouse are still pressed down)

Second case was not working due to this bug.

Task-number: QTBUG-27405
Change-Id: I913cfd332128a28861e2fcc027b406eb821d2597
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
12 years agoFixed xdnd protocol-version detection code
Gatis Paeglis [Mon, 1 Oct 2012 10:13:10 +0000 (12:13 +0200)]
Fixed xdnd protocol-version detection code

Bug introduced when porting from Xlib to xcb. Xcb returns
actual number of bytes read while Xlib returns number
of 8-bit, 16-bit, or 32-bit items stored in the returned data.

Task-number: QTBUG-27403

Change-Id: Ia64da1953ec7be8d32cc591565cd1b41ce8d7dbb
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
12 years agoQProcess.tests: adding test for channel forwarding
Thomas Hartmann [Tue, 2 Oct 2012 09:54:50 +0000 (11:54 +0200)]
QProcess.tests: adding test for channel forwarding

This tests QProcess::setProcessChannelMode().

The tests verifies if testForwarding really forwards
the output of testProcessEcho (spawned by testForwarding).

Change-Id: Ifc4164569256aeaeab0edef42116986272362c01
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
12 years agoDon't let mimeData return 0.
Gatis Paeglis [Mon, 6 Aug 2012 13:31:11 +0000 (15:31 +0200)]
Don't let mimeData return 0.

Fixes bug introduced in SHA e247e2810 (QTBUG-26709).

Change-Id: I9aa80239675b2d564d08a019ca267a9aa814074e
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
12 years agoFix filter regular expression for native Windows file dialog.
Friedemann Kleint [Tue, 2 Oct 2012 08:55:54 +0000 (10:55 +0200)]
Fix filter regular expression for native Windows file dialog.

Task-number: QTBUG-26986

Change-Id: Idbbaca4ea4fc298c50a30671c48b597ac38d3308
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
12 years agoOpenGL: Propagate version and profile from QSurfaceFormat to QGLFormat
Sean Harmer [Mon, 1 Oct 2012 17:28:02 +0000 (18:28 +0100)]
OpenGL: Propagate version and profile from QSurfaceFormat to QGLFormat

Change-Id: I386ec75c429f58309527532bb160679ea51e6ccc
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
12 years agoForward the layout change hint through QSortFilterProxyModel.
Stephen Kelly [Thu, 27 Sep 2012 09:12:15 +0000 (11:12 +0200)]
Forward the layout change hint through QSortFilterProxyModel.

Change-Id: Ic9ae7f011f63c4a53fec4d9425ac6cd6776153ee
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
12 years agoFixed text drawing in OpenGL 2 paint engine.
Samuel Rødal [Mon, 1 Oct 2012 14:57:50 +0000 (16:57 +0200)]
Fixed text drawing in OpenGL 2 paint engine.

Regressions introduced in 8d762c9caea4f8b9ff589b6c23564f4e37242745 and
f4c1c2f939e1cd6e08197284edb84b202cd6749e.

Task-number: QTBUG-24453
Change-Id: Ib1cb05693cde2d6066476a350eb95eaa503ee53c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
12 years agoMade cube example not use glActiveTexture.
Samuel Rødal [Mon, 1 Oct 2012 15:25:01 +0000 (17:25 +0200)]
Made cube example not use glActiveTexture.

We're setting the default texture unit anyway, and glActiveTexture would
require resolving through QOpenGLFunctions.

Task-number: QTBUG-24555
Change-Id: Id8d660baaa1532e7b8e623673f501703c76fac65
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
12 years agoRename createLocalFile to createNativeFile & deprecate createLocalFile
Andy Shaw [Tue, 25 Sep 2012 11:14:52 +0000 (13:14 +0200)]
Rename createLocalFile to createNativeFile & deprecate createLocalFile

As it was confusing to use the term local file when referring
to a file that was accessible using native APIs and not just
a file that was on a hard disk somewhere already the function
name has been changed.

By renaming it to createNativeFile we keep it consistant with QFileInfo
which has an isNativeFile() function too.

Test also added.

Task-number: QTBUG-3169

Change-Id: I410e7ed28133d68fd312c6c0faf3f7191460d7ce
Reviewed-by: João Abecasis <joao@abecasis.name>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agofix QWidget::setWindowFilePath on Mac OS
Joerg Bornemann [Mon, 1 Oct 2012 10:56:28 +0000 (12:56 +0200)]
fix QWidget::setWindowFilePath on Mac OS

Task-number: QTBUG-27299

Change-Id: I4dddbb9690aac327ad33477d8cea9afa84d10eb3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
12 years agoQWindow::setWindowFilePath added
Joerg Bornemann [Mon, 1 Oct 2012 10:55:27 +0000 (12:55 +0200)]
QWindow::setWindowFilePath added

QWindow::setWindowFilePath sets the file path of the document
that is currently represented by the window.
The window system might display it in the window's title bar
along with an icon matching the file type.

Task-number: QTBUG-27299
Change-Id: I8f620d1262fc0b4cd16884198b16853b73ce3b1f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
12 years agotypo fixed in tst_QLocalSocket::verifyListenWithDescriptor_data
Joerg Bornemann [Mon, 1 Oct 2012 09:46:28 +0000 (11:46 +0200)]
typo fixed in tst_QLocalSocket::verifyListenWithDescriptor_data

Change-Id: Ic549c8fa7f98052a45b391d6a9bfef3d2557c709
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
12 years agoQWindowsPipeReader: use CancelIoEx on Windows >= Vista
Joerg Bornemann [Sat, 29 Sep 2012 16:37:56 +0000 (18:37 +0200)]
QWindowsPipeReader: use CancelIoEx on Windows >= Vista

This cancels only the I/O operation of the reader and not all
operations on the handle.

Change-Id: Ie442199534cf45e58bb2e053da9fecee961a460e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
12 years agoQWinOverlappedIoNotifier test for multiple I/O operations added
Joerg Bornemann [Sat, 29 Sep 2012 15:56:49 +0000 (17:56 +0200)]
QWinOverlappedIoNotifier test for multiple I/O operations added

tst_QWinOverlappedIoNotifier::multipleOperations starts asynchronous
read and write operations on the same named pipe handle.
The received notifications must contain the right byte count and
OVERLAPPED pointer corresponding to the I/O operation.

Change-Id: I6f3fa5cf3ca6d62fcb9bc7073d28611fcfa7d98a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
12 years agoQWinOverlappedIoNotifier: multiple I/O operations on the same handle
Joerg Bornemann [Sat, 29 Sep 2012 15:55:32 +0000 (17:55 +0200)]
QWinOverlappedIoNotifier: multiple I/O operations on the same handle

When doing multiple I/O operations on the same handle, we get notified
for every operations. These must be distinguished by comparing the
pointer to the OVERLAPPED struct.

We now pass the OVERLAPPED pointer via the notified signal and let the
receiver decide if it wants to handle this notification.

Change-Id: I4efe70f39c6ae5282b949f2f4b21f6e7dd3df785
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
12 years agoremove tests/auto/network/socket/qlocalsocket/example
Joerg Bornemann [Sat, 29 Sep 2012 14:00:04 +0000 (16:00 +0200)]
remove tests/auto/network/socket/qlocalsocket/example

The programs in the example isn't used in the test.
Examples should be in the right directory and be of a certain
quality.

Change-Id: Id77bd1295efb3387fa54c379eb9c882cdc5b88bd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
12 years agomake tst_QLocalSocket::listenAndConnect faster
Joerg Bornemann [Sat, 29 Sep 2012 13:40:24 +0000 (15:40 +0200)]
make tst_QLocalSocket::listenAndConnect faster

Replaced qWait/QCOMPARE with QTRY_COMPARE.

Change-Id: Ic534443c187f791c75fe9528251bf47e54f33eed
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
12 years agoQNX: Also support input method hints from QtQuick elements
Thomas McGuire [Mon, 1 Oct 2012 14:09:28 +0000 (16:09 +0200)]
QNX: Also support input method hints from QtQuick elements

Turns out some QtQuick elements have the "inputMethodHints" property
as well, so don't only accept input hints for widgets.

Change-Id: I81a14be20cdca7d993dc88e8e252ecdfde8eb4ea
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
12 years agoDocument QPA implementation aspects.
Friedemann Kleint [Mon, 1 Oct 2012 10:22:44 +0000 (12:22 +0200)]
Document QPA implementation aspects.

Change-Id: I4fef8a534b145efa9655a9070f790bf9aba030d9
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
12 years agoFixed Qt GUI landing page.
Samuel Rødal [Mon, 1 Oct 2012 08:58:47 +0000 (10:58 +0200)]
Fixed Qt GUI landing page.

Change-Id: I9af2ed12e27c00060a6bcc6262064ee95295a8a8
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
12 years agoQXcbWindow: Don't recreate window when reparenting.
Yoann Lopes [Fri, 28 Sep 2012 15:04:01 +0000 (17:04 +0200)]
QXcbWindow: Don't recreate window when reparenting.

For consistency, this behavior has been kept across Qt versions... Just
get rid of it.
Also fixes native child widgets not being notified of the change of
window handle (winId) when being reparented.

Updated auto-test.

Change-Id: I3616dc0f1c32a519d78a4846297d6d4a6e926fbf
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
12 years agoFix moc stumbling over gcc __attribute__ extensions
Simon Hausmann [Mon, 1 Oct 2012 09:57:53 +0000 (11:57 +0200)]
Fix moc stumbling over gcc __attribute__ extensions

Reported by David Faure.

In KDE a DEPRECATED macro gets defined in a header file created by cmake.
The define is not guarded with #if Q_CC_GNU or similar because at cmake
time the compiler is determined. Therefore moc suddenly sees this gcc
specific token and stumbles over it.

This patch simply defines an empty __attribute__ macro that will expand
to nothing and thus become invisible to moc's "C++ parser" after the
pre-processing.

Change-Id: I4448b9ac3f72b6334e32b27484401fb0fca23a0c
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
12 years agoQNX: change suffix for separate debug files
Peter Hartmann [Tue, 25 Sep 2012 13:30:44 +0000 (15:30 +0200)]
QNX: change suffix for separate debug files

QNX uses .sym for files containing debug symbols.

Change-Id: Ieb995ae90af771ff5c877213f4f4982169f333c6
Patch-by: Greg Bentz
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
12 years agoBlackberry mkspecs: Refine compiler options
Peter Hartmann [Thu, 20 Sep 2012 12:11:25 +0000 (14:11 +0200)]
Blackberry mkspecs: Refine compiler options

stack-protector-strong gives performance benefits over
stack-protector-all and is still checking more than -stack-protector,
so seems to be a good middle way and we want to use it when it is
there.

The -shared option for the compiler (not the linker) prevents a
RIM internal version of qcc from forcing -fPIE, and should not harm
in general when set.

In addition, add a method "compilerSupportsFlag" for Windows as is
present in the Unix configure script.

Change-Id: Iba300e9cb82f34043e7b36f8e45287a1aed2a1a5
Original-patch-by: Greg Bentz
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
12 years agoQPA/Windows example: Set proper window flags, titles, names.
Friedemann Kleint [Fri, 28 Sep 2012 15:14:44 +0000 (17:14 +0200)]
QPA/Windows example: Set proper window flags, titles, names.

Do not leak windows.

Change-Id: I3af29ce597742cbe6444208aa72443c0507819db
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
12 years agoFixed qglxconvenience.cpp compile for GLX 1.3.
Samuel Rødal [Fri, 28 Sep 2012 07:36:21 +0000 (09:36 +0200)]
Fixed qglxconvenience.cpp compile for GLX 1.3.

These defines are new in GLX 1.4, earlier they were ARB extensions.

Task-number: QTBUG-27370
Change-Id: I83828067d106e93a3909de46a4051d492e277ba9
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
12 years agoQNX: Only set parent window if it is not NULL
Rafael Roquetto [Thu, 27 Sep 2012 21:24:16 +0000 (18:24 -0300)]
QNX: Only set parent window if it is not NULL

There are cases where a widget has a parent, but is also a toplevel window at
the same time, causing the system window to have no parent.
For instance, a QMenu usually has a QMenuBar as a parent, however QMenuBar
itself does not have its own platform window, as opposed to QMenu. Thus
QMenuBar::parent == QMainWindow (for example), but QMenuBar::platformWindow ==
0x0; QMenu::parent == QMenuBar, but QMenu::platformWindow != 0x0 (which is
QMenuBar's value).

Change-Id: Ib203fa1b85f5f20ef53366c80d6752d6384a202d
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
12 years agoReturn QPersistentModelIndexes from QItemSelectionRange.
Stephen Kelly [Thu, 27 Sep 2012 09:24:38 +0000 (11:24 +0200)]
Return QPersistentModelIndexes from QItemSelectionRange.

They are stored as such anyway, and this allows clients to not have to
convert between QModelIndex and back so much. This should be
fully source-compatible.

Change-Id: Ia606ea082442089a0aae1583380c3710ce61d3d1
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
12 years agoEmit layout change hint from QStandardItemModel.
Stephen Kelly [Thu, 27 Sep 2012 09:13:47 +0000 (11:13 +0200)]
Emit layout change hint from QStandardItemModel.

Change-Id: I6d6a8c146b63c57634ae6b26ed5c1de249aa9e66
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
12 years agoEmit layout change hint from QStringListModel.
Stephen Kelly [Thu, 27 Sep 2012 09:12:59 +0000 (11:12 +0200)]
Emit layout change hint from QStringListModel.

Change-Id: I8b4a01cfcca59103f2616b72645994a22bff40dd
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
12 years agoProcess and forward the layout change hint through the QIdentityProxyModel.
Stephen Kelly [Thu, 27 Sep 2012 09:10:44 +0000 (11:10 +0200)]
Process and forward the layout change hint through the QIdentityProxyModel.

Change-Id: I074c75080b7e74c44fc833c207d297723e5f6e06
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
12 years agoAdd hint API to QAIM::layout*Change signals.
Stephen Kelly [Thu, 27 Sep 2012 09:08:18 +0000 (11:08 +0200)]
Add hint API to QAIM::layout*Change signals.

Usually layoutChange is used for sorting elements. The parents parameter
to the signal already hints at a localization of what is being sorted, if
it's just one level in the tree. The new hints enum can be used to only
consider how the first column of a table gets sorted, because all other
columns will be sorted the same way.

Change-Id: I65dd2996894bbdb45a2f6288edbeaa49e4053256
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
12 years agoQQnxWindow: use a proper cast
Marc Mutz [Fri, 28 Sep 2012 12:36:27 +0000 (14:36 +0200)]
QQnxWindow: use a proper cast

Replace a C-cast with a const_cast.
Casting doesn't care about nullptr, so don't check for one.

Change-Id: I18a3e8f21d73b73385e567c7ceaf64e36aaa2cf3
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
12 years agoMake documentation of QVariant::isNull more explicit.
Jędrzej Nowacki [Mon, 24 Sep 2012 13:21:57 +0000 (15:21 +0200)]
Make documentation of QVariant::isNull more explicit.

Task-number: QTBUG-22933
Change-Id: I1d8d3fc778ba00bcad11caaaf8af7d87186f18e8
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
12 years agoqdoc: Augment imagedirs list
Martin Smith [Fri, 28 Sep 2012 09:23:52 +0000 (11:23 +0200)]
qdoc: Augment imagedirs list

Modularization of examples has resulted in putting
all documentation and code for an example in each
example subdirectory. In particular, each example
subdirectory now contains a doc/images subdirectoy,
where images are stored that are linked to from the
example .qdoc files, which are in the doc/src
subdirectory of the example directory.

Because there are so many example subdirectories,
it would be difficult to list all the doc/images
directories in the imagedirs variable of the
qdocconf file. Therefore, qdoc now searches all
the directories listed in the exampledirs variable
to find all the doc/images subdirectories there,
and it adds these to the imagedirs variable for
use in finding images called out in \image and
\inlineimage commands.

Task Nr: QTBUG-27248

Change-Id: I070ba1a558ab32e1db06429a71c083b55f9dd0ea
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
12 years agoPrevent an overflow warning in assertions.
Christian Kandeler [Wed, 26 Sep 2012 10:32:52 +0000 (12:32 +0200)]
Prevent an overflow warning in assertions.

Functions like QByteArray::at() assert the given index:
    Q_ASSERT(i >= 0 && i < size();
These functions typically get inlined. Now if the index is
e.g. size() - 2, then gcc will emit an ugly warning in
client code ("assuming signed overflow does not occur when assuming
that (X - c) > X is always false").
This can be easily prevented by casting both sides of the second
comparison in the assertion to their unsigned type. The explicit
comparison to zero is then no longer necessary, since that condition
is tested implicitly by the other comparison due to unsigned arithmetic.

Change-Id: Ic7244e1fa5da00a47d1fe0ed56fb81c23d444dfe
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoQNX: fix bug on window hierarchy list
Rafael Roquetto [Thu, 27 Sep 2012 22:10:37 +0000 (19:10 -0300)]
QNX: fix bug on window hierarchy list

removeFromParent() must not be called from raise()/lower(), because it wrongly
sets m_currentParent to 0, causing the parent/child link to be broken after a
call either of these methods.

Change-Id: I58f847dc4a46f2cf120cb3acf230bac46bcf24f5
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
12 years agoQFlags: use unsigned int when the enum's underlying is unsigned
Marc Mutz [Thu, 20 Sep 2012 13:06:11 +0000 (15:06 +0200)]
QFlags: use unsigned int when the enum's underlying is unsigned

Replace storage and operator int() return types with unsigned int
if the enum is unsigned.

This fixes a number of exisiting warnings, in particular with
Qt::MouseButton under GCC.

Change-Id: Ia12d36212329aec3e9d62a5fbd38809a6c2b36d0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoqfuturesynchronizer.cpp: fix whitespace errors
Marc Mutz [Mon, 27 Aug 2012 21:34:55 +0000 (23:34 +0200)]
qfuturesynchronizer.cpp: fix whitespace errors

Change-Id: I106ae536f1411939c3785f0a97c39752db59b19c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoQException/QFuture*: add \inmodule QtCore
Marc Mutz [Mon, 27 Aug 2012 15:06:33 +0000 (17:06 +0200)]
QException/QFuture*: add \inmodule QtCore

Change-Id: Iad787e3280889eae6b6aace9a85bda966b1a7094
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoInclude qexception.h instead of qtconcurrentexception.h
Marc Mutz [Mon, 27 Aug 2012 21:22:53 +0000 (23:22 +0200)]
Include qexception.h instead of qtconcurrentexception.h

Change-Id: I9a54412b77596aa74af7a513c33b10eb52257db2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoMove QFutureSynchronizer back to QtCore
Marc Mutz [Mon, 27 Aug 2012 21:22:15 +0000 (23:22 +0200)]
Move QFutureSynchronizer back to QtCore

This class, too, belongs with QFuture.

Change-Id: I41a532ca66c156f1631e4b22ffc1a5879c854488
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoMove QFutureWatcher back to QtCore
Marc Mutz [Mon, 27 Aug 2012 21:15:40 +0000 (23:15 +0200)]
Move QFutureWatcher back to QtCore

This belongs with QFuture.

Change-Id: I555cd01c1d3890fbbaca4fd8a9170292ea4eb0fb
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoMove QFuture from QtConcurrent to QtCore
Marc Mutz [Mon, 27 Aug 2012 16:33:55 +0000 (18:33 +0200)]
Move QFuture from QtConcurrent to QtCore

This class belongs to QThreadPool/QRunnable more than to QtConcurrent, so
move to QtCore, where QThreadPool awaits it.

Change-Id: Ibf20288a986593bf779453427c2dae8db1e1423a
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoQFuture: remove unused include
Marc Mutz [Fri, 21 Sep 2012 14:21:54 +0000 (16:21 +0200)]
QFuture: remove unused include

qtconcurrentcompilertest.h defines the HasResultType<> template, which
qfuture.h doesn't use.

Include qtconcurrentcompilertest.h in the headers which actually use
HasResultType<> instead.

Change-Id: Ic5939ccf4c9058b2b624432c7ea48a5aca2236b5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoMove QtConcurrent::ResultStore as QtPrivate::ResultStore to QtCore
Marc Mutz [Mon, 27 Aug 2012 15:23:33 +0000 (17:23 +0200)]
Move QtConcurrent::ResultStore as QtPrivate::ResultStore to QtCore

No compatibility header needed. While this wasn't marked as private API,
it wasn't documented, either.

This is a prerequisite for moving QFuture to QtCore.

Change-Id: I8e986e6e2a22fbe5cf08d0600ec39ae9ae993e20
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoMove QtConcurrent::Exception as QException back to QtCore
Marc Mutz [Mon, 27 Aug 2012 10:24:48 +0000 (12:24 +0200)]
Move QtConcurrent::Exception as QException back to QtCore

Leave the old name as a deprecated typedef; adapt users.

This is a prerequisite for moving QFuture back to QtCore.

Change-Id: I81dcee2c7e6eb234c16f3f42e2415ca0da3dc4f8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>