Commit Graph

7155 Commits (63e451194e9f736fe4e35abd6a2a68c507ec9f5f)

Author SHA1 Message Date
Richard Moe Gustavsen 58add50eb0 QPlatformWindow: change API for QPlatformWindow::setWindowFlags
The current implementation requests the platform window to set
as many of the flags it can, and return the same flags with the
unsupported flags removed.

The problem with this approach is that the platform window is created
as late as possible, so a call to QWindow::setWindowFlags would in
many (most?) cases never be forwarded to the platform window (instead,
the platform window is responsible to check the current window flags
upon creation). As such, the filtering would never be done.
Looking at the current set of plugins, most of them also seems to
ignore this protocol, returning the flags unfiltered.

This patch suggests removing the return value from
QPlatformWindow::setWindowFlags. This will at least be consistent, so
that setting/getting flags would produce the same result independent of
delayed window creation. If needed, we can later add new API to
QPlatformIntegration or QPlatformWindow for querying supported window
flags.

Change-Id: I9c759b5f9fab5ebed764a982f77fe19881118875
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2012-10-15 10:18:31 +02:00
Thiago Macieira 24a231d7a3 Re-revert "Delay creation of the process manager"
This reverts commit daba2c507ad42c66dafa6a29cffa94e9641e0c58,
re-applying commit d9c06bf25210b3d0b31ee6126e57bcb82c292da1, because
the change was accidentally brought back in commit
eae8fb8599.

There's a potential deadlock when a QProcess is created while a
QCoreApplication is instantiated but never executed, or if the main
thread waits() for the child thread.

Task-number: QTBUG-27260
Change-Id: I9e0fdc0341b3063de90979377bac35f2a827b260
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-10-15 04:52:08 +02:00
Olivier Goffart 21426f281e moc: parse properly the gcc extension for variadic macro
Task-number: QTBUG-27547

Change-Id: I983b96b09c405e5330327092e56164b9921a2d0f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-14 20:53:42 +02:00
Konstantin Ritt 289a814778 QCommonStyle: Reduce code duplication
by re-using viewItemTextLayout() helper function.
Also use QTextLayout(QString, QFont) c-tor which is a bit faster than
using setText() + setFont() setters.

Change-Id: I0d09ba43bad2296e932f49fcb9cfd28f42c1f95d
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-14 16:48:18 +02:00
Mark Brand 6cf3229105 QSqlTableModel: let select() and selectRow() be slots
It's convenient to be able to connect a button to select()
and signals that provide a row to selectRow().

Change-Id: I520d5564943f679ec9e68331878a211dd52b4a06
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2012-10-14 09:55:57 +02:00
Rafael Roquetto 7edaf253d5 QNX: code cleanup, use '0' instead of 'NULL'
Qt coding style uses always 0. NULL is wrong.

Change-Id: I163677b512214f853677d21d75f13142fe2ca88d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-10-13 23:24:01 +02:00
Shawn Rutledge 2230e349df qdoc outputs warnings in a form which Creator will recognize
Recently Creator started recognzing the warnings from qdoc, however because
warnings are not labeleled with " warning: ", there is no yellow-triangle
symbol in the Issues list.  This patch makes the output look the same as
warnings or errors that come from gcc.

Change-Id: I895a656d22ce8b59da90c58b86a444c86c8edf84
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-10-13 15:47:27 +02:00
Michele Caini ac8cab0cab Review of documentation.
Documentation has been updated, changes apply to Qt5 as well as Qt4.

Change-Id: I562914a439d8d27dc9e6b1aa117007edce214cc6
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-10-13 15:47:27 +02:00
José Millán Soto e3a89dafb0 Notify accessibility events in QAbstractItemView
Change-Id: Idd713dc3bc3e817529968384edd0418e151f0e5b
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-10-13 15:47:27 +02:00
Konstantin Ritt 0ca57a89a2 Use constFind()/constEnd() for const_iterator-s
to make the strict iterators happy.

Change-Id: Ief4ec309b815f18dc4b2017d4f34c063db510c31
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
2012-10-13 13:49:23 +02:00
Friedemann Kleint e2217187c3 Fix warnings from syncqt.
Stop processing in internal headers, use correct include
syntax.

Change-Id: I9dcf1f6f89907986b7b58658be514083f213a3e6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-13 05:51:19 +02:00
Shawn Rutledge ab926916d2 Fix "open with" functionality on OSX (FileOpenEvent)
QGuiApplicationPrivate::processWindowSystemEvent needs to handle the
FileOpen event type so that applications can receive the events from
the Finder.  This makes it possible to e.g. double-click a qml file
and open it in QML Viewer.

Task-number: QTBUG-26855
Change-Id: I1e14e478460e8823095e4a33cee1e0defbf76d8b
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2012-10-13 05:51:19 +02:00
Oliver Wolff bcbcf5e718 Be able to obtain list of possible key combinations in platform integration
As there is no way to obtain the list of possible keys for a shortcut
in a platform independent way there needs to be a way to get that
from the platform integration.

Task-number: QTBUG-26902
Change-Id: I520add56ee09d5c3c58709fb29dad2fbfe4c9d0b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-13 05:51:19 +02:00
Oliver Wolff 9e44b76093 Added possibleKeys(QKeyEvent *) to QWindowsIntegration
Task-number: QTBUG-26902
Change-Id: I08d244816eae8794b52f244f049ee1fb825dac8b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-13 05:51:19 +02:00
Frederik Gladhorn 889444b403 Update qfiledialog ui to new style.
Simply opened and saved in designer.
No changes otherwise.

Due to designer adding deprecated property margin, reverted parts manually.

Change-Id: I5edbf82126606e224da4d0d51baeedb13b39bd83
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-13 05:51:19 +02:00
Gatis Paeglis d70cb66932 Simplify transaction expiry mechanism
This patch makes transaction mechanism less scattered around and
conforms to the xdnd specification:

Don't block and keep a history of previous data. This can be very difficult to implement,
but it is clearly the ideal behavior from the user's perspective because it allows him to
drop something and then continue working with the assurance that the target will get the
data regardless of how slow the network connections are.

When the source receives XdndFinished, it can remove the item from its history, thereby keeping
it from getting too large. The source must also be prepared to throw out extremely old data
in case a target malfunctions.

I assume that 10min for drag-and-drop operation can be considered 'extremely' old data.

Change-Id: I73dcd21aee3ad188d2260e49d80824da6ba040ab
Task-numer: QTBUG-14493
Reviewed-by: David Faure (fixes for KDE) <faure@kde.org>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-13 05:51:19 +02:00
Gatis Paeglis ce81da52ea Make sure timestamp is initialized before using it for seting selection owner.
Convention from icccm: Clients attempting to acquire a selection must set
the time value of the xcb_set_selection_owner request to the timestamp of
the event triggering the acquisition attempt, not to XCB_CURRENT_TIME. In
some cases it happened that timestamp was set to XCB_CURRENT_TIME.

A zero-length append to a property is a way to obtain a timestamp for this
purpose; the timestamp is in the corresponding XCB_PROPERTY_NOTIFY event.
We used to have this mechanism in 4.8, it was achieved by XWindowEvent.

AFAIK there isn't an equivalent for XWindowEvent in XCB. Therefore i had to
introduce a new mechanism in QXcbConnection - getTimestamp. This function
blocks until it receives the requested event.

Change-Id: Ide46a4fdd44cf026fdd17a79d3c4b17741d1b7d4
Task-number: QTBUG-26783
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-13 05:51:19 +02:00
Mitch Curtis befea1d932 Link to Item Views Puzzle Example in QListView docs.
Change-Id: I75972727077fa1aa1ec66995c4d0ea67057d283b
Reviewed-by: Geir Vattekar <geir.vattekar@digia.com>
2012-10-13 05:51:19 +02:00
José Millán Soto dc57295a7b Check that row and column are not less than 0 in indexFromLogical
Change-Id: Icf6dbb234513de12c772618a046461b8674b01ce
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-13 05:51:19 +02:00
Oliver Wolff 57fac2e83a Do not accept key events if a widget is disabled
The disabled state was handled in qapplication_xxx.cpp before.
As the platform integration only knows about windows and
not widgets the state check is now done in qwidget. This commit
just adds key events to the list of events which are ignored
if the widget is disabled. This list also contains mouse events
for example.

Task-number: QTBUG-27417

Change-Id: I55949e1c1aaa992ba71df51c5b5e8177ec6f1e86
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-13 05:51:19 +02:00
Simon Hausmann 9ab8c0ae98 Fix moc preprocessor-only mode with input that contains seemingly invalid identifiers
In WebKit we use moc -E to pre-process various files before throwing at
further build creation tools. The pre-processing is used to filter out
code depending in #ifdef'fed features.

The latest addition to the family of pre-processed files is the CSS grammar,
which is written in Bison. It contains rule lines like

   $$ = parser->createFoo()

and when pre-processing this moc stumbles over the dollar sign. Instead
of ignoring un-tokenizable input we should add it to the current token
if we're in preprocessor-only mode, otherwise the $$ gets eaten and we
produce data-loss by printing out less characters than.

Change-Id: Ib32e7c04b38dd2ba3726201e76f27405f7ea6c0d
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-10-13 05:51:19 +02:00
Rafael Roquetto eda0e120e9 Fix number of available printers in CUPS support.
If the number of available printers changes, we want
to update the count. Additionally, if that number has
gone to zero, we want to ensure that the number of
available printers in the static object is reset to
zero.

This fixes a crash that occurs if:
 * You print
 * You kill cupsd (or it crashes because you're porting it and your port is unstable)
 * You try to print again before restarting it.

Change-Id: I6c6069db9d800ce7426e75df760829fea278e56e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-13 05:51:19 +02:00
Fabian Bumberger 49f277482e Blackberry: Populating the QCoreApplicationData
Change-Id: I7adb2e207cab89fbad9458cd0bcb856ecd2288f0
Reviewed-by: Peter Hartmann <phartmann@rim.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-10-13 05:51:19 +02:00
Thomas McGuire a1082dbc3f Blackberry: Emit aboutToBlock() and awake() correctly in the dispatcher
On Blackberry, select() can actually temporarily wake up to process
mative BPS events. Make sure to emit the aboutToBlock() and awake()
signals in this situation accordingly.

Change-Id: Ib324e702feb1cfebdc6926f80af9c92f291a2b94
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-10-13 05:51:19 +02:00
Jens Bache-Wiig aea07d1f41 Remove unused private header
This was a leftover after removing motif style from the repo.

Change-Id: I98d47a9443ffce2be34d73e779a0787c0b68913f
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2012-10-13 05:51:19 +02:00
J-P Nurmi a87a0cb050 qfeatures.txt: cleanup obsolete cde & motif styles
both styles were removed in 570ae4

Change-Id: I47b3b268191aecd1c04f1c1f1bd0f500332e3ef8
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-13 05:51:19 +02:00
Jerome Pasion dc0d5bf387 Doc: Removed references to stale links.
The links are from the qt-webpages.qdoc and no longer exist.

Change-Id: I8329032215fa77811117e2767bae745795b209cb
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-10-13 05:51:19 +02:00
Marc Mutz 8229841a4e QGtkStyle: fix a warning
Commit c0893962ef added two
definitions of a variable named gtkToggleButtonStyle in nested
scopes. Because of name lookup rules, the second one wasn't
initialised with the first one, but with itself.

This leaves the second gtkToggleButtonStyle uninit'ed.

Simply remove the surplus declaration, leaving the name to
the original declaration.

Change-Id: I2269e1093f54643ff4dce27b39cc033db6697782
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2012-10-13 05:51:19 +02:00
Frederik Gladhorn 3d466cbcbb Accessibility: Implement GetVersion and GetLocale in app adaptor.
Change-Id: I73a49b22add9e268907025dd0bf7ec76e7fd0c0b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-13 05:51:19 +02:00
Frederik Gladhorn fded075ba4 Add workaround for typo in libatspi VisualdataChanged
Change-Id: I6375d77fac4e743a372f18b3e3d63c128ce51271
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-13 05:51:19 +02:00
Sean Harmer 83aa1a2103 OpenGL: Add missing WINAPI calling convention for QGL functions
This is the QGL equivalent of commit

602cab9bb2

Without this QGLExtensionMatcher causes stack corruption when using
a core profile GL context due to the call to glGetStringi() with
an incorrect calling convention.

Change-Id: Ibd86645e04df8c650c182fecfc8c481dae8a75b2
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-13 05:51:19 +02:00
Sérgio Martins e24dd4d48f QtPrintSupport: Fix build with QT_NO_PICTURE.
Printer support depends on having Picture support.
If QT_NO_PICTURE is defined, qfeatures.h will define
QT_NO_PRINTER.

Not all code is including qfeatures.h, which causes inconsistency,
some code has QT_NO_PRINTER defined and some has not, which causes
the build to fail.

Change-Id: I10a854244a41d017b921b731ec0e08f90a3326cf
Reviewed-by: Holger Ihrig <holger.ihrig@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2012-10-13 05:51:19 +02:00
Martin Smith 9dbe3dc3a6 qdoc: qdoc now can run in 2 passes
Two command line options have been added, -prepare and -generate.
If you run qdoc with -prepare, qdoc reads and parses the source
files but does not generate the documentation. It only creates
the .index file for the module you are running qdoc on.

If you run qdoc with -generate, qdoc reads and parses the source
files as well as the .index files created by running qdoc with
-prepare, and it generates the documentation but no .index file.

If you run without either option, qdoc runs as before, i.e. it
runs both passes as a single pass.

Task number: QTBUG-27539

Change-Id: Idbfe3f0f9dff58283596b504f00dff3f70f6e371
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-10-13 05:51:19 +02:00
Martin Smith 8473b6d05c qdoc: Allow empty character literal ''
qdoc's tokenizer was reporting an error for the
empty character literal ''. Now it allows it.
Apparently it makes sense in .js files.

Task number: QTBUG-25775

Change-Id: If407427fad9b65a035c2c4785d53c9e3d5202e62
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-10-13 05:51:19 +02:00
Konstantin Ritt 264eeb68b2 QFont: Fix build with QFONTCACHE_DEBUG
Change-Id: Ifc89af71cdf6a5f9e4114266030cf265042db626
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-10-13 03:18:58 +02:00
Konstantin Ritt ec4593d6d0 QGlyphRun: Fix isEmpty() and boundingRect() didn't work after setRawData()
Change-Id: I44a347ef24961493d6b8353abbb215c713ccce52
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-10-13 03:17:53 +02:00
Konstantin Ritt 4717d36c91 Fix QTextBoundaryFinder usage cases in QAccessible2
Make the implementation safer and closer to what
http://www.linuxfoundation.org/collaborate/workgroups/accessibility/ia2/ia2_implementation_guide#boundaries
requires us to do.

Change-Id: I00af4697e52a9b6e7f5d7b3f403b29126fa1517b
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-13 03:17:39 +02:00
Konstantin Ritt 539ef45689 Update/fix QTextBoundaryFinder simple usage cases in qtbase
Change-Id: I4d3000558bce86e2de3c32247915868ba18fc8b7
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-13 03:17:28 +02:00
Michele Caini a895359c19 Review of documentation.
Documentation has been updated to reflect changes in Qt5.

Change-Id: I3d54d1875962bd27c43bb360ae7b3fda0b7702ba
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-12 08:15:17 +02:00
Konstantin Ritt da7111be51 QTextBoundaryFinder: Fix handling of break opportunities
Add BoundaryReason::BreakOpportunity flag that will be returned by the
boundaryReasons() when the boundary finder is at the break opportunity
position that might be not an item boundary.
This is the same as (StartWord || EndWord) in Grapheme and Sentence modes;
in Word and Line modes, BreakOpportunity flag might occur between the words
or in between of Line boundaries (e.g. in conjunction with SoftHyphen flag).
In other words, the text boundaries are always break opportunities, but not vice versa.

StartWord and EndWord flags has been deprecated by new StartOfItem and EndOfItem
flags which are not about the word boundaries only. In line breaking,
StartOfItem and EndOfItem are set for the mandatory breaks only.

Change-Id: I79bf297e2b988f5976f30cff0c8ca616385f6552
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-10-12 07:44:51 +02:00
Samuel Rødal dfb55f8a6c Fixed cosmetic line drawing where begin and end points are equal.
This case has typically required specific work-arounds in other
rendering paths as well.

Task-number: QTBUG-25153
Change-Id: I217e710a30222792ebca3bf297e438d944c32992
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-11 13:11:48 +02:00
Peter Kümmel 47b99599e8 QVarLengthArray: use memory on stack if possible
After allocating memory on the heap it is ATM not possible to use the
memory on the stack again, QVarLengthArray then uses/resizes only
the memory on the heap. But the memory on stack could be used
if it is big enough.

Change-Id: I566003c25dd1093eb6ba8087a1e5378a11712934
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-11 02:47:52 +02:00
Peter Kümmel a47f21edd6 Make QVarLengthArray exception safe in case of OOM
After a exception is thrown in resize(), QVarLengthArray has an
invalid state with ptr == 0. On the next resize call when malloc
returns a valid pointer, oldPtr is 0 and it could crash in
memcpy because the pointer to the source is 0.
The patch ensures the valid pointer isn't overwritten with NULL.
When exceptions are disabled the user must ensure that malloc will
not fail.

Change-Id: Id12a5e3e1eacc551e4d1b64cba8e8414cfebd6e1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-11 02:47:40 +02:00
Jocelyn Turcotte 191c0e300b Fix a "warning: 'operator+=' is deprecated" when building with clang
Any file including qstringbuilder.h would trigger a warning when
compiled with QT_ASCII_CAST_WARNINGS defined since it implicitely
converts a QString to QByteArray.

Explicitely call toUtf8() to fix the issue.

Change-Id: If20f9d4571c5d1ed789564196c9f1331e1efd1d9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-11 02:47:36 +02:00
Jocelyn Turcotte e3b7c23ec7 Remove trivial debug output from QSpiAccessibleBridge
This information can get noisy when windows get opened/closed frequently
during auto tests.

Change-Id: I2777b51c97b3108be3d784794e12e20985d4d65b
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-10-11 02:47:34 +02:00
Jerome Pasion dd8fd13f3f Qt Widgets: Added a landing page
-Landing page which lists articles in the module, including:
    -Graphics View, Model/View, Style Sheet, and widget galleries
-Renamed some titles and a whitespace fix.

Change-Id: I84be14d9a425ef380162e9a55ce2742c6812f510
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Geir Vattekar <geir.vattekar@digia.com>
2012-10-11 02:47:23 +02:00
Tor Arne Vestbø 087efb572a Modularize documenation build
qdocconf files can now reference $QT_INSTALL_DOCS to pick up e.g. global
includes, instead of using relative paths. Qt modules will automatically
get a doc target that builds and installs into the right place (including
supporting shadow-builds) if they set QMAKE_DOCS before loading(qt_module).

Change-Id: Ia408385199e56e3ead0afa45645a059d1a8b0d48
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-10-10 23:27:03 +02:00
Pierre Rossi 9adf7fb708 Revert "Handle additional format ranges when itemizing."
This reverts commit 101d04681f.
That change seems to have introduced a few regressions, and
Creator hits an assertion that it introduced because it assumes
the additionalFormats consists of well-formed ranges
(QTCREATORBUG-7995).

Change-Id: Ic4ae761e6e7f6df8a6b5ca565ceb250647420c15
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-10-10 23:27:03 +02:00
Morten Johan Sorvig d4d81fe68a Remove handleSynchronous* functions.
There are now two different ways to implement synchronous
event processing. The platform plugins can choose which
one to use.

1) flushWindowSystemEvents()
   Use to flush the event queue at one point, making
   preceding calls synchronous.

2) setSynchronousWindowsSystemEvents(bool enable)
   Makes all handle* functions synchronous, bypassing
   the event queue completely.

Change-Id: I020b80c731fd13f855a377d7c91d06a4e39b6a0b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2012-10-10 19:49:22 +02:00
Frederik Gladhorn d242c951be Do not handle invalid accessibles in atspi bridge.
Change-Id: I13a7dd1e190c5d3a5bb8be0ee66c2f18d0d3a1b5
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-10 17:07:46 +02:00
Tor Arne Vestbø 3f7388bc1e Centralize place where we ensure qdoc is built before generating docs
Change-Id: Ie0220d3c76990f6052edcd8c738e4e2807f35c71
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-10-10 14:44:51 +02:00
J-P Nurmi c0893962ef QGtkStyle: use gtk_widget_get_style()
Do not access GtkWidget::style directly, it doesn't exist in GTK3.

Change-Id: I947776848f5dd64011a40446fcdb9079f295f182
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-10 14:43:59 +02:00
Jan Arve Saether 9f96bf2023 Fix a regression with regards to hfw behavior in QStackedWidget
This is a regression because we made QStackedWidget actually
support heightForWidth in 4.8. This was done with change
4780f94e391b5e881497c5228661dead42c821fa.

The problem was that heightForWidth was not calculated correctly
because some of the pages were hidden. The hidden pages were
actually not contributing to the hfw of the QStackedWidget at all.
This again caused the QStackedWidget to change its heightForWidth()
value when the current tab changed, which again could cause "jumps"
in the UI when switching tabs (as demonstrated in the task).

The problem was that the patch relied on calling
QWidgetItem::heightForWidth(), and this function would return -1
if the widget was hidden. However, QWidget::heightForWidth() does
not have this magic and returns the proper hfw value regardless
of its visibility.

One could argue about the correctness of this patch, but since
QStackedLayout::sizeHint() disregards QWidgetItem::sizeHint() (it
asks the widget directly), we do the same in
QStackedLayoutHFW::heightForWidth() for consistency.

In addition, QStackedLayout enforces that only widgets can be added
to it, and you cannot add your own QLayoutItem subclasses to it:

  qWarning("QStackedLayout::addItem: Only widgets can be added");

Task-id: QTBUG-24758

Change-Id: I349cf8f4215e4581ea237ef773d53dcdf3db176b
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2012-10-10 14:22:58 +02:00
Konstantin Ritt f0ee31dc93 QTextBoundaryFinder: Introduce BoundaryReason::MandatoryBreak flag
that will be returned by boundaryReasons() when the boundary finder
is at the line end position (CR, LF, NewLine Function, End of Text, etc.).
The MandatoryBreak flag, if set, means the text should be wrapped at a given position.

Change-Id: I32d4f570935d2e015bfc5f18915396a15f009fde
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-10 13:26:13 +02:00
Konstantin Ritt 008e5ba61a Invalidate old QImage data if load()/loadFromData() has failed
This guarantees one will never get `!img.isNull()` after
load()/loadFromData() has failed, even if the image was
not null before.
Apply the same fix to QPixmap and QPicture.

Change-Id: Ida1ad6a6f0fc830df8e75ada0c163fc2d3360dea
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-10 13:24:23 +02:00
Konstantin Ritt 34c31cd74c Avoid warnings about an unreachable code
Change-Id: I57c2967db4c1bd2c39ecb3eac9b18eb7455c6a50
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-10 13:24:17 +02:00
Gabriel de Dietrich 06332df743 Mac: Bring back "Text boxes and list only" tab navigation
Added ThemeHint::TabAllWidgets as a mean to access that platform
specific bool. The default implementation returns always true when
querying QPlatformTheme::themeHint().

Several auto-tests had to be updated to reflect for qt_tab_all_widgets'
type change. One XFAIL removed from tst_QApplication::focusChanged().

Task-number: QTBUG-24372
Change-Id: Ie1f0486c19898fe54c53aa4a27e378485075e512
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-10 13:15:57 +02:00
Martin Smith 9418be80ec qdoc: Implements the -no-link-errors option
The -no-link-errors flag tells qdoc not to print any link error
messages at all. This is useful for finding and fixing all non-link
errors in a module.

Task number: QTBUG-26870

Change-Id: Id4b0eebb6c0509c57d2f01763b6dedbfb6756a91
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-10-10 10:44:12 +02:00
Morten Johan Sorvig c12b4f2685 Cocoa: Send keyboard modifiers with mouse events.
Task-number: QTBUG-27462

Change-Id: Icb9352fcae6f92885d4f1381aa8014fef039149b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-10-10 10:44:12 +02:00
Samuel Rødal 3192cd88c5 Added missing keysym to handleExtendedKeyEvent in xcb plugin.
Now it's propagated to QKeyEvent::nativeVirtualKey() as it should.

Task-number: QTBUG-27353
Change-Id: I40921b99662951decc83d2278e0cd337266dd530
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2012-10-10 10:44:12 +02:00
Friedemann Kleint 0de7440cc6 Windows: Filter out events sent during DestroyWindow().
Task-number: QTBUG-26933

Change-Id: Ie7aaf9f0c9c12a33b059e796a3be161a2d60c64e
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
2012-10-10 10:44:12 +02:00
Miikka Heikkinen fe8eb057fa Fix scrolldown arrow not showing on popup for QMenu
Scrolldown arrow was not shown when a taller than screen QMenu was
opened because the check to draw it used the size that was already
adjusted to the screen.

Fixed by using the actual menu size in the check. Also fixed the case
where the menu was scrolled, closed, and reopened, in which case the
size hint would return incorrect cached value. This led to scrolldown
arrow not being shown in case the menu was previously fully scrolled
down.

Task-number: QTBUG-27445
Change-Id: Icd8d774071662a9317b3ac53cb05b31cadba96ff
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-10 08:45:22 +02:00
Stephen Kelly 43325a23f3 Delete the QVariant ctors taking global Qt enum values.
They have unexpected results in Qt 5 (the Qt::GlobalColor one works
as expected in Qt 4, but was removed in Qt 5):

 QVariant v = QVariant(Qt::red);
 qDebug() << v; // QVariant(int, 7)
 v = Qt::red;
 qDebug() << v; // QVariant(int, 7)

The correct way is to use:

 QVariant v = QVariant::fromValue(QColor(Qt::red));

The deleted constructors are the ones for which there is a class
with an implicit constructor taking the enum, and that class is
a built-in metatype.

QLocale::Language and QKeySequence::StandardKey would also fit
the description, but I can't include the header for QKeySequence
as it is in QtGui, and I don't want to include the qlocale header
in qvariant.h. Putting a QLocale::Language is probably very
uncommon anyway.

The QTextFormat test is doing the wrong thing, but the result isn't
being tested. Added new tests which fail before the patch.

Change-Id: Ia38a0784990f4d40ff7457a86daf58aabd4964eb
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2012-10-10 08:45:22 +02:00
J-P Nurmi 05541111ae QGtkStyle: use gtk_widget_get_parent() and gtk_widget_is_toplevel()
GtkWidget::parent does not exist in GTK3, and GTK_WIDGET_TOPLEVEL has
been deprecated since GTK 2.20 - > use gtk_widget_is_toplevel()
(available since GTK 2.18) instead.

Change-Id: I0f082b2d69a795cadb321802f25c9993029f6865
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-10 08:45:22 +02:00
J-P Nurmi e91b27b610 QGtkStyle: use gtk_widget_get/set_allocation()
Do not access GtkWidget::allocation directly, it doesn't exist in GTK3.

Change-Id: I8ce69fab19ce8f3afe35d0d30d4e28b0348fdaf1
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-10 08:45:22 +02:00
David Sansome c3ffcbd9a2 Scale icons returned by QIcon::fromTheme.
The icon engine behind icons that are loaded from QIcon::fromTheme does
not scale any pixmaps that it returns. When using an icon theme with an
incomplete set of icons (for example, only a "128x128" folder),
QIcon::pixmap will always return 128x128 pixmaps even if you ask for
one of size 22x22.

This is contrary to the QIcon::pixmap documentation that says "The
pixmap might be smaller than requested, but never larger."

This patch uses the same code that is in the main QIcon class in the
PixmapEntry QIconLoaderEngineEntry to scale pixmaps if they are too big.

Change-Id: Ic25a3628ac82cfb899574245f658490a2dd49d54
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-10 08:45:22 +02:00
Samuel Rødal 3d52d67096 Compile fix for when XCB_USE_GLX is not defined.
Fixes compile failure introduced by 394249616c.

Change-Id: I5794d22ee87eb18c08ea1de227b943f2e675356c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-10 08:45:22 +02:00
Thiago Macieira 267b1a791d Optimise the deletion of a QSharedPointer with no custom deleter
When QSharedPointer is created with no user-specified custom deleter,
instead of storing a pointer in ExternalRefCount::destroyer to a
static function which, in turn, calls normalDeleter<T> indirectly (via
another function pointer), specialise the CustomDeleter class and make
it not store the pointer, but instead do the deleting directly.

The benefits are:
 - the QSharedPointer's private data is smaller
 - there is no double-indirection via indirect jumps to the actual
 deleter

Change-Id: Ice5653c144912efb1226e432267a047b9799aaca
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-10-10 08:45:22 +02:00
Thiago Macieira 66324e3049 QElapsedTimer: Instead of two ints, store only the clock type
We don't need two ints if we can do it with one. We need to store only
the clock type to be used, which is either CLOCK_MONOTONIC or
CLOCK_REALTIME. In addition, we need an invalid value to indicate that
the test hasn't been done yet.

This also gets rid of an atomic that wasn't QBasicAtomicInt.

Disassembly of the compiled code indicates this is the most optimal
solution:
 - one single variable load
 - one test-and-branch to verify that a test is needed
 - straight call to clock_gettime afterwards

Change-Id: I49788e45b50b6b7fcb7ba4e9332e5352a4428933
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-10-10 08:45:22 +02:00
Jon Severinsson 4ec79a151f Simplify QDate::addDays() impementation
No need to check for overflows since the change to qint64. as less than
half the qint64 range is a valid julian day, any overflow will be
detected as an invalid date anyway.

Change-Id: I3b6cad24e245ed9418c5804484f846b0b692153a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-10 08:45:22 +02:00
Jon Severinsson 85c47eed6b Change QDateTime::addSecs() and QDateTime::secsTo() to use qint64.
addMSecs() / msecsTo() have always used qint64, and when QDate was changed
to use a 64-bit julian day, QDateTime::addDays() and QDateTime::daysTo() was
changed to use qint64 in order to support the full extended range, but
addSecs() and secsTo() seems to have been forgotten.

Change-Id: I3acc35ee2bcc9f353650eb42f97d428f706b2db6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-10 08:45:22 +02:00
Miikka Heikkinen 78dddc2802 Fix wheel events in Windows
Wheel events were always passed to window that got them from native
message loop, which isn't what Qt expects. Changed the receiver to
preferably be the window under cursor, as long as it is not blocked by
modal window.

Change-Id: I4edf0608842fe5b822a7f574abfdae81fa755ee5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-10 06:51:12 +02:00
Miikka Heikkinen 187b61d879 Don't try to emit focusObjectChanged if window pointer is zero
Task-number: QTBUG-27414
Change-Id: I75ad662e0a66d61b49d55d084f29cefc98221b7f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-10 06:50:23 +02:00
Pierre Rossi fb029eeac6 QDoc/Bootstrap library: fix link error on Windows
QSettingsPrivate on windows requires advapi32.

Change-Id: If4de132827398033c7bb588f6f19bc6fe9619286
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-10-09 18:07:00 +02:00
James Turner 1f0d430c3a QNX: Add and remove screens dynamically.
Watch for display events from libscreen, and dynamically add and remove QPlatformScreens (and hence QScreens) in response.

Change-Id: I56dc7019a4d4c77798a0a88451d2f3060066f5d2
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-10-09 17:48:37 +02:00
Sergio Ahumada 3374f06af2 QtPrinterSupport: Fix compilation with QT_NO_PRINTER
This seems to be a left over of 80f7a38890

Task-number: QTBUG-27177
Change-Id: I72a285ed1d64f756d585a86d8401ee23eb4a1ce1
Reviewed-by: Sérgio Martins <sergio.martins.qnx@kdab.com>
Reviewed-by: Indrajit Tapadar <indrajit.tapadar@digia.com>
Reviewed-by: Holger Ihrig <holger.ihrig@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
2012-10-09 11:23:10 +02:00
Konstantin Ritt 2672c4fa91 Update the Unicode Data and Algorithms up to Unicode 6.2
Version 6.2 of the Unicode Standard is a special release
dedicated to the early publication of the newly encoded Turkish lira sign.
In addition, there are some significant changes to the Unicode algorithms
for text segmentation and line breaking to improve breaking for emoji symbols.

For more details, see http://www.unicode.org/versions/Unicode6.2.0/

Change-Id: I21cfd4f307e41b41a19d36cce87f7a44c2661bc2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-09 03:04:41 +02:00
J-P Nurmi b9a2a0141f QGtkStyle: cleanup unused gdk_drawable_get_depth() (not avail in GTK3)
Change-Id: Ifc04c768dcadc48d459eeb8dd95325823cc44dcd
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2012-10-09 00:46:09 +02:00
J-P Nurmi 8f9346dd66 Add QEvent::StyleAnimationUpdate: style animation target should update
The event will be sent from the upcoming style animations. This change
merely introduces the new event type and makes both QWidget and
QGraphicsWidget call update() upon receiving the event.

Change-Id: I69bb4d05bacb22f7e3a2512cae68848801e4f4d7
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-09 00:46:01 +02:00
Marc Mutz caaeb20435 [QTBUG-13230] Make QVariantAnimation non-abstract
The bug report argues convincingly that, but for the pure virtual
updateCurrentValue(QVariant) function, QVariantAnimation is quite
usable as-is.

So add an empty implementation.

Reported-by: André Somers <andre@familiesomers.nl>
Task-number: QTBUG-13230
Change-Id: I689b4a80fc7d5dfae67c2255777f89afb16f9c21
Reviewed-by: Andre Somers <andre@familiesomers.nl>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-09 00:24:14 +02:00
Thorbjørn Lund Martsum ffc60160d2 QMap - remove unused maximumNode() functions
QMap has 4 different maximumNode() functions, but they are all
unused and just in the way.

Change-Id: I012145cfae32898830ec95e229514d9be838ae2f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-10-08 22:08:21 +02:00
Christian Strømme 0ed3cf2a1c Removed the "tst_QVector::outOfMemory" test.
The test is useless as we assert if the requested size exceeds
a certain limit. We could, as an alternative,
throw an exception, but in the end it's the caller's responsibility
to ensure that the requested size is a sane value.

Task-number: QTBUG-27285
Change-Id: I738950a6a2b51671a54e4d25c7e4c3ac0d7f63b8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-08 17:38:20 +02:00
Friedemann Kleint 803dbf5293 uic: Map QLCDNumber::numDigits to QLCDNumber::digitCount.
QLCDNumber::numDigits was deprecated in Qt 4 and removed in Qt 5.

Task-number: QTBUG-27462
Change-Id: I3772a884f31aeea70121cccd429ac996b2ecbccd
Reviewed-by: Jarek Kobus <jaroslaw.kobus@digia.com>
2012-10-08 17:28:36 +02:00
Pierre Rossi 101d04681f Handle additional format ranges when itemizing.
This is useful when the additional formats are used on a
text layout using a raw font. It can also come in handy for
input methods operating on a QTextDocument.
We now consider all format range edges to generate the
associated items. The capitalization can be overridden via
the additionnal formats mechanism.

Adds an autotest that checks that this works with font capitalization.

Change-Id: I782d2c48d05b0dfbad480a9ca77198465292b358
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-10-08 17:22:56 +02:00
Friedemann Kleint 0e8a2788d8 Fix Windows: QStandardPath::findExecutable() to check suffixes.
Append the Windows executables suffixes from the PATHEXT
environment variable.

The previous code had a bug since the 'break' statement
bailed out of the inner loop only.

Factor search code out into a separate functions, avoiding
repeated invocations of list.constEnd() and variable
assignments in the old code.

Add a static function that is called on Unix and on Windows
for executable names with a suffix.

Call another function applying a candidate list of suffixes
in case an executable name without a suffix is passed.

Lower case the extensions from PATHEXT, streamline code.

Split up the test, add a _data() slot for clarity.

Task-number: QTBUG-27457
Change-Id: I2bf34de52aeadddd3b937ad1e22191c3c850fd26
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-10-08 17:21:35 +02:00
Tor Arne Vestbø cb3af435f1 doc: remove old un-used monolithic qdocconf file
Change-Id: I253fa079928e55e2c3c574e9c98780d2c72086cf
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-08 17:14:33 +02:00
Pierre Rossi f71170aa35 Tools: add QLibraryInfo to the bootstrapped library.
For future use by qdoc.

Change-Id: Id9079a6fa581ff16810df9a8f2bb94314ee11ca9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-10-08 17:14:24 +02:00
J-P Nurmi e0b5571b53 styles.pri: tabs to spaces
Change-Id: I164368222d89ec2dc557bec02840f1d208e8f276
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
2012-10-08 11:14:28 +02:00
Jan Arve Saether 983badb1dc Fix a bug in how paths are made canonical and relative
Change-Id: Id9b2de9097cab4520882b48a28fccd382c5e076d
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-10-08 11:14:28 +02:00
Andrey Leonov e4a6f44ce1 Implementation of the BlackBerry Qt Proxy support.
An implementation for BlackBerry devices based on the BPS netstatus API.

Change-Id: I89deed031d2a867bbd6628bee97f61345b58f1ab
Reviewed-by: Peter Hartmann <phartmann@rim.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-10-08 11:14:28 +02:00
Eskil Abrahamsen Blomfeldt f884a73fcb doc: Brush up QPaintEngine documentation for Qt 5
The paint engine story has changed drastically in Qt 5,
and we no longer need the reference to Qt 3.

Change-Id: I66090582e5c66d2a3cd9de355c34b33a94b67dfe
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-08 09:16:33 +02:00
Eskil Abrahamsen Blomfeldt 3f6122a692 doc: Update Q*PaintDevice docs
Minor syntax typo in QPagedPaintDevice.

Some Qt 5 updates in QPaintDevice (QGuiApplication)
and a couple of other changes:

1. Usually, we say an object is "painted" or "drawn" when it is
drawn on top of another object (like drawEllipse()) not when it
is the destination of the draw commands. To be more consistent I
updated the language here.

2. What's commonly called a 32-bit display has 24 bits of color
information and eight bits of opacity information. This gives a
color count which can be accurately represented by int. To avoid
confusion, the exception in the docs for colorCount() has been
generalized a little.

Change-Id: Iabaaed1f3e4a80e7e14dfd8855da8c3cd8b3012f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-08 09:16:27 +02:00
Sze Howe Koh d4ad9dbbf9 Doc: Update QThread class ref to reflect changes since Qt 4.4
Remove advice to subclass QThread; promote thinking of QThread as a
thread manager, not a thread; promote event-driven programming over time
micromanagement; warn against common pitfalls.

Result of collaboration in forum (https://qt-project.org/forums/viewthread/20691/)
and mailing list (https://qt-project.org/pipermail/development/2012-September/006738.html)

Task-number: QTBUG-16358
Change-Id: I57e3873976fad489176cbf9f7e680fd6992a8837
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-10-08 09:16:12 +02:00
Martin Smith bac9d5921f qdoc: Simplification of target ref construction
This change is being done to simplify qdoc,
but the motivation was to fix a segfault in
qdoc when running the release version of
qdoc on linux. The change improves qdoc by
simplifying the code whether it fixes the
segfault or not.

Change-Id: I2c865f7f1e2a44763aa7349d1bd739ad562f4029
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-08 09:12:20 +02:00
Martin Smith 50eab48fce qdoc: Change to debug output
Only print debug output if -debug is used
on the command line.

Change-Id: I2bdfca1a072f728427da61f05b34e6e07d933183
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-08 09:12:11 +02:00
Martin Smith 5e6e6dd116 qdoc: Change qdoc to use QML terminology
\since command's output to "This QML type was introduced..."

Task number: QTBUG-24784

Change-Id: I741efb57979eb76f4675915ef1a6b983deb492d9
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-08 09:12:00 +02:00
Martin Smith 5da3f7fb85 qdoc: Adding a debug function
qdoc segfaults for one user, when he runs
the release version of qdoc but not the debug
version. This change adds a -debug option to
the qdoc command line options. If set, qdoc
will print debug messages at useful milestones
so we can see where it is when it goes into
the weeds.

Change-Id: I0e826e74399eaf50091817c68c775d02c6b615d2
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-08 09:11:48 +02:00
Thomas Hartmann b40838964d fixing typo in compile fix for MSVC 2008
Change-Id: If1955395d9c476a49e6d6f2ae14e6ad6c63a7da7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-10-08 09:06:15 +02:00
Samuel Rødal 9577c22781 Prevent crashing on screen deletion.
Even child windows need to hook into the screen destroyed signal to
avoid having a dangling screen pointer.

Change-Id: I7b613356c333be6e9dfdf5db45f70a521a9b8fe2
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2012-10-08 09:01:41 +02:00
Thiago A. Correa a0c3a57aed QApplication::palette missing Q_NO_USING_KEYWORD implementation
Added inline implementation of QApplication::palette when
Q_NO_USING_KEYWORD is defined.

Task-number: QTBUG-27393

Change-Id: I833efb950a579db28fcb243c931c9e22b28ec431
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-08 09:01:23 +02:00
Thiago A. Correa 7e6e141234 QSqlQuery::value string overload
Introduce value overload to take field name as a parameter.

This allows for terser application code that avoids explicit
calls to QSqlRecord::value().

Change-Id: I02b6712cd5ec41633b902714315b5716c17d1a9b
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-10-08 08:55:28 +02:00
Teemu Katajisto 179437bdba Cocoa: add qWarnining when trying to create 0 width/height CGImages
Add meaningful warnings when trying to create 0 width/height CGImages.
This way it is easier to track down the place where valid size is not
used.

Change-Id: Id261ddf72d5487afcdb1a2a6d0d9079700888545
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-08 08:51:09 +02:00
Teemu Katajisto 1bd710cbc7 Cocoa: don't animate window transitions for 0 width/height windows
Task-number: QTBUG-26617

Change-Id: I6dfc3f208368ddf6be65259218aee88db9692cfe
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-08 08:50:09 +02:00
Shawn Rutledge d0573aa914 osx: support for QScreen changes at runtime, and physical dimensions
QScreen's physical size and logical DPI come from the operating system.
Physical DPI is calculated as pixel size / physical size.  Whenever the
user changes the display settings, applicationDidChangeScreenParameters
is called; QScreens are created and destroyed when displays are added
and removed, and each QScreen which continues to exist gets updated
properties from the OS.

Change-Id: I7f2e9e32a3ad53d73ea987f39a0c62fa8dd22b05
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-08 08:49:00 +02:00
Thomas McGuire ba8f3002d4 QNX: Fix input lag
We were breaking out of select() too early with a timeout of -1.

Change-Id: Icd47b307a6f3a9d11c862722759e24f560e72e9e
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-10-08 08:33:48 +02:00
Thomas McGuire 4a755752e9 QNX: Remove workaround for BPS bug
This BPS bug  has been fixed with the latest BB10 release.

Change-Id: I07f86f2d18b1e04f48b95a710d57864c69726c42
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-10-08 08:33:45 +02:00
Sean Harmer b72904e854 QNX: Remove the busy loop work around for bps ignoring timeout bug
This commit should now correctly address the throughput issue too.

Change-Id: Ie75d0e6f44500f2720b7af787a58ed6c0a3c8c9d
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2012-10-08 08:33:39 +02:00
Julien Brianceau 2f26560027 qpa: Fix rendering issue in blitter paint engine
Take into account brush transformation for TexturePattern fill.
Example : arrows are not rendered propery in
http://www.youtube.com/leanback website.

Change-Id: I5d4bc7410d1d589a27cf17e84062096cfbdb4d6f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-08 08:14:37 +02:00
Thiago A. Correa 9e4e76d2f8 QSettings Windows documentation does not match behavior
QSettings under windows adds "OrganizationDefaults" to the registry
key path when using QSettings::SystemScope.

commit ee2e497f1c missed the change
to HKEY_LOCAL_MACHINE

Task-number: QTBUG-27452

Change-Id: I561f4e57b5beda0f9a511de067eb17fc23e3c856
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-05 08:38:36 +02:00
Stephen Kelly ef1d18a55f Constify QTableWidget::selectedItems
Task-number: QTBUG-27448

Change-Id: I99175cc2b255b93f698d3c343639c19845c9f5a0
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-05 03:16:48 +02:00
Thiago A. Correa ee2e497f1c QSettings Windows documentation does not match behavior
QSettings under windows adds "OrganizationDefaults" to the registry
key path when using QSettings::SystemScope.

Change platform notes section to document this behavior.

Task-number: QTBUG-27452

Change-Id: I4d00b2da0825efdb360336e4f82080b6b29a54f1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-05 03:16:45 +02:00
Thiago A. Correa b742dbdc3f Fix QSqlQuery::value to use proper index check
Change the validation of index parameter to use -1 constant
instead of QSql::BeforeFirstRow which is unrelated to field index

Change-Id: I43b42bc7ce717bcd9ddc987d2e716f1672c00775
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-10-05 03:16:37 +02:00
Jerome Pasion bdd3521f83 Qt Network: Cleaned up documentation titles
Task-number: QTBUG-27449
Change-Id: Ib2f99bf4266f0d75cbfeddd3693a84c88676a18e
Reviewed-by: Geir Vattekar <geir.vattekar@digia.com>
2012-10-05 03:16:32 +02:00
Jerome Pasion a5feb97c33 Qt SQL: Cleaned up documentation group membership and brief desc.
Task-number: QTBUG-27449
Change-Id: I052c7c9beab344e6c0902f9440c1d6b74e15b0b6
Reviewed-by: Geir Vattekar <geir.vattekar@digia.com>
2012-10-05 03:16:30 +02:00
Frederik Gladhorn 2147e576ae Expose enabled state in mac accessibility.
Change-Id: I8b368cbdd7ce3bd402170a2bc2419d67a88a41ee
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-05 03:16:27 +02:00
Mark Brand 244eeae406 QSqlTableModel::selectRow(): don't expand cache if there is no change
Test added.

Change-Id: Ibd72ef2aeee482abbd22991573460e55dc577457
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: David Faure (fixes for KDE) <faure@kde.org>
2012-10-05 03:16:25 +02:00
Mark Brand c1f15c0485 QSqlTableModel: record(row) must use virtual data()
Commit fbf010a266 introduced a version
of record(row) that includes the generated flags, but it neglected to
populate the values using virtual data() as QSqlQueryModel correctly
does.

Test included lest we forget again.

Change-Id: I49d0f8f87cd0c5078aa6a0e8373b2cffc01f2387
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-05 03:16:22 +02:00
Mark Brand a97c2d8c83 QSqlTableModel: restore use of virtual setData() in setRecord()
setRecord() should use setData() as intended so that reimplementations
of setData() in subclasses will be respected.

Commit 11bd543d90 failed to consider this.

Test added which should prevent this mistake being repeated.

Change-Id: Ia2d930cd42b5a27521bb389edb1b07fb1bf0fa36
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-10-05 03:16:21 +02:00
Mark Brand 10ff9de91b QSqlTableModel: don't cache unchanged value in setData()
This is good for performance in terms of avoiding unnecessary
database activity and keeping the cache smaller.

Detail:
This change was not included in the big refactoring of QSqlTM. The
idea was that the model shouldn't second guess the intention of the
application and maybe the application wants to cause a submit.
It was a marginal consideration.

Now I think it's clear that our interest in not unnecessarily
expanding the cache outweighs that. In addition, applications can now
call selectRow() if they worry that the database values for the row
have changed and want to set a value back again.

Test added.

Change-Id: I63814dcb63a96c6ba1c8cc227807725a954a0b68
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2012-10-05 03:16:19 +02:00
J-P Nurmi 838eadba0b QMacStyle: use proper pimpl
QMacStylePrivate needed to be revised in order for it to have access to
QCommonStylePrivate that is planned to manage style animations in a
generic fashion in the near future.

Change-Id: I03185ae210d2cfc253a236d6b2da35d0201f7e13
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-05 03:16:16 +02:00
Stephen Kelly 356f675592 Add docs to clarify and restrict what the LayoutChangeHint means.
Change-Id: I1b786c5151bcce253b6afa1eebc85e864ed7e91f
Reviewed-by: David Faure <david.faure@kdab.com>
2012-10-05 03:16:14 +02:00
Mark Brand 5fe272f68a 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>
2012-10-05 03:16:12 +02:00
Fabian Bumberger c86ed49a79 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>
2012-10-04 14:25:47 +02:00
Miikka Heikkinen c119767790 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>
2012-10-04 14:24:44 +02:00
Friedemann Kleint dcc2e84fd0 Run per-QWindow native event filter for all events.
Task-number: QTBUG-27101

Change-Id: I064f91e250d68223da3b81d605e522c8b78535f5
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
2012-10-04 14:10:21 +02:00
Teemu Katajisto 924aeb2787 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
2e902799df

Change-Id: Idb93e44437731cad3c985d51b57b793a3ff2f292
Reviewed-by: Pasi Matilainen <pasi.matilainen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-04 13:31:55 +02:00
Friedemann Kleint 7474a74bbb 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>
2012-10-04 12:20:02 +02:00
Stephen Kelly f37d3e2cd9 Fix segfault when delegates change properties on editors.
The solution is similar to that
in b84e180263 which affected
QSortFilterProxyModel.

Task-number: QTBUG-25370

Change-Id: I6bbb9d9786bcb2c9fa8027ab8a7cc13664784b8d
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-04 12:15:49 +02:00
Gabriel de Dietrich 65f6ad26ed 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>
2012-10-04 12:14:15 +02:00
Friedemann Kleint bf55c0ac3b Windows: Append file suffix in save-dialog.
Task-number: QTBUG-27186
Change-Id: I04304fce1cbf6fb6794f352ff896eb463699d42b
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
2012-10-04 11:58:48 +02:00
Stephen Kelly d24b867e56 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>
2012-10-04 11:58:48 +02:00
Andy Shaw 595deca5c9 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>
2012-10-04 11:58:48 +02:00
Thomas Hartmann 1fb3d849e4 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>
2012-10-04 11:58:48 +02:00
Frederik Gladhorn 642867d2dd Return if header is 0.
QT-BUG: 184868

Change-Id: Iff041c66fdfb2267e0349bdd47fec0fe63b1799d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-04 11:58:48 +02:00
Miikka Heikkinen 8547205fe8 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>
2012-10-04 09:13:33 +02:00
Frederik Gladhorn f303320f9e Accessibility: For app claim support for app iface.
Change-Id: Idb7f5971d61885f18d827f6bff3994df7a3860e5
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-03 17:34:44 +02:00
Frederik Gladhorn 0b6007936a Implement action de-marshalling.
Change-Id: Ie9ae85298fad6217f9f50a018fbba50f028deba2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-03 17:34:42 +02:00
Frederik Gladhorn 26022a4eee Check for valid model and view in isValid for TableCells.
Change-Id: Iadca5503ed2a1d6411d46ed6fe9d5b9a56461a3a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-03 17:34:38 +02:00
Frederik Gladhorn 2e99f6c48f 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>
2012-10-03 17:34:35 +02:00
Gabriel de Dietrich afd66b3cb0 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>
2012-10-03 17:30:52 +02:00
Christian Strømme 403b15488b Fix for integer overflow in QString::replace
Task-number: QTBUG-22967

Change-Id: I604e6a725d46eab4c4369ebb54e8c9ea1350f492
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-03 17:30:30 +02:00
Sean Harmer 394249616c 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>
2012-10-03 17:22:03 +02:00
Eskil Abrahamsen Blomfeldt 84100c9085 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>
2012-10-03 17:17:29 +02:00
Konstantin Ritt 3d620088b4 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>
2012-10-03 16:34:32 +02:00
Sergio Martins 9695df4d44 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>
2012-10-03 13:51:43 +02:00
Andy Shaw c79f0f0fba 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>
2012-10-03 12:12:15 +02:00
Thiago Macieira f89fd779fc 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>
2012-10-02 22:34:42 +02:00
Thiago Macieira 4f52a95099 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>
2012-10-02 22:34:42 +02:00
Thiago Macieira 7b696e4ec7 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>
2012-10-02 22:34:42 +02:00
Thiago Macieira 1fc902ac7e 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>
2012-10-02 22:34:42 +02:00
Thiago Macieira 9bbccf5d74 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>
2012-10-02 22:34:42 +02:00
Thiago Macieira ceca141d0c 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>
2012-10-02 22:34:42 +02:00
Thiago Macieira fe1541b268 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>
2012-10-02 22:34:42 +02:00
Thiago Macieira 59ad0019dc 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>
2012-10-02 22:34:42 +02:00
Thiago Macieira adce435a0c Make QUrl::toString() / toEncoded() return empty for invalid URLs
Change-Id: I6ebb4ad2901a9bacb09fb81082202f37ebbc2e97
Reviewed-by: David Faure <faure@kde.org>
2012-10-02 22:34:42 +02:00
Thiago Macieira 7d62f8ace5 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>
2012-10-02 22:34:42 +02:00
Friedemann Kleint a0af0fbcd4 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>
2012-10-02 19:54:43 +02:00
Mark Brand 7c382d81d9 fix #includes
Change-Id: Ia33d7ef08e43bad95d57823e37757a09e53493b9
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
2012-10-02 15:57:58 +02:00
Jens Bache-Wiig 4dac6fc70a 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>
2012-10-02 13:22:49 +02:00
Morten Johan Sorvig 98ad8460a8 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>
2012-10-02 13:22:49 +02:00
Richard Moe Gustavsen 903bd6250a 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>
2012-10-02 13:22:49 +02:00
Richard Moe Gustavsen 2570c081a1 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>
2012-10-02 13:22:49 +02:00
Jocelyn Turcotte 341dcae472 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>
2012-10-02 13:22:49 +02:00
Gatis Paeglis e840b8b2e3 Stop delivering messages when drop has occurred.
Task-number: QTBUG-27406

Change-Id: If14c108060ad6de70991658f0e0249eb544b87a0
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-02 13:22:49 +02:00
Gatis Paeglis 5ba061a66e 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>
2012-10-02 13:22:49 +02:00
Gatis Paeglis caaa94b041 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>
2012-10-02 13:22:49 +02:00
Gatis Paeglis 03fd3a8f34 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>
2012-10-02 13:22:49 +02:00
Gatis Paeglis a5e3e9eaf1 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>
2012-10-02 13:22:49 +02:00
Friedemann Kleint a1915fbb52 Fix filter regular expression for native Windows file dialog.
Task-number: QTBUG-26986

Change-Id: Idbbaca4ea4fc298c50a30671c48b597ac38d3308
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
2012-10-02 13:22:49 +02:00
Sean Harmer eeaf00b24a OpenGL: Propagate version and profile from QSurfaceFormat to QGLFormat
Change-Id: I386ec75c429f58309527532bb160679ea51e6ccc
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-02 10:43:48 +02:00
Stephen Kelly 8b41a29b2d Forward the layout change hint through QSortFilterProxyModel.
Change-Id: Ic9ae7f011f63c4a53fec4d9425ac6cd6776153ee
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-02 10:43:48 +02:00
Samuel Rødal 12590582a2 Fixed text drawing in OpenGL 2 paint engine.
Regressions introduced in 8d762c9cae and
f4c1c2f939.

Task-number: QTBUG-24453
Change-Id: Ib1cb05693cde2d6066476a350eb95eaa503ee53c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-10-02 10:43:48 +02:00
Andy Shaw ef3a544436 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>
2012-10-02 10:43:48 +02:00
Joerg Bornemann f20266f9f4 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>
2012-10-02 08:06:24 +02:00
Joerg Bornemann 24c403a2bd 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>
2012-10-02 08:06:18 +02:00
Joerg Bornemann 49a9c50ea8 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>
2012-10-02 08:06:06 +02:00
Joerg Bornemann 94dc0c6594 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>
2012-10-02 08:05:55 +02:00
Thomas McGuire e5d6268f12 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>
2012-10-01 16:19:27 +02:00
Friedemann Kleint ff3e2fbe21 Document QPA implementation aspects.
Change-Id: I4fef8a534b145efa9655a9070f790bf9aba030d9
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-01 16:03:48 +02:00
Samuel Rødal 39a06115b6 Fixed Qt GUI landing page.
Change-Id: I9af2ed12e27c00060a6bcc6262064ee95295a8a8
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-01 15:59:10 +02:00
Yoann Lopes 65d4dea41a 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>
2012-10-01 15:48:08 +02:00
Simon Hausmann 310031188c 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>
2012-10-01 14:27:14 +02:00
Samuel Rødal af83eecd76 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>
2012-10-01 09:54:27 +02:00
Rafael Roquetto 04d296d641 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>
2012-10-01 09:41:35 +02:00
Stephen Kelly 1511fb37cf 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>
2012-10-01 09:38:31 +02:00
Stephen Kelly 308987fb96 Emit layout change hint from QStandardItemModel.
Change-Id: I6d6a8c146b63c57634ae6b26ed5c1de249aa9e66
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-30 18:30:05 +02:00
Stephen Kelly 5b96f53137 Emit layout change hint from QStringListModel.
Change-Id: I8b4a01cfcca59103f2616b72645994a22bff40dd
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-30 18:29:59 +02:00
Stephen Kelly 123999af3f Process and forward the layout change hint through the QIdentityProxyModel.
Change-Id: I074c75080b7e74c44fc833c207d297723e5f6e06
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-30 18:29:47 +02:00
Stephen Kelly a3ec5d5729 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>
2012-09-29 14:17:34 +02:00
Marc Mutz 9801b2c996 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>
2012-09-29 11:05:48 +02:00
Jędrzej Nowacki abcdc7fd87 Make documentation of QVariant::isNull more explicit.
Task-number: QTBUG-22933
Change-Id: I1d8d3fc778ba00bcad11caaaf8af7d87186f18e8
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-09-29 02:31:35 +02:00
Martin Smith 42b8833712 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>
2012-09-29 02:31:35 +02:00
Christian Kandeler 8e90e0805f 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>
2012-09-29 02:31:35 +02:00
Rafael Roquetto 4c33efc322 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>
2012-09-28 23:50:10 +02:00
Marc Mutz ac9be327f8 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>
2012-09-28 23:50:10 +02:00
Marc Mutz 26f238a80d qfuturesynchronizer.cpp: fix whitespace errors
Change-Id: I106ae536f1411939c3785f0a97c39752db59b19c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-28 23:50:10 +02:00
Marc Mutz b1d2b80a90 QException/QFuture*: add \inmodule QtCore
Change-Id: Iad787e3280889eae6b6aace9a85bda966b1a7094
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-28 23:50:10 +02:00
Marc Mutz 7d21abfca3 Move QFutureSynchronizer back to QtCore
This class, too, belongs with QFuture.

Change-Id: I41a532ca66c156f1631e4b22ffc1a5879c854488
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-28 23:50:10 +02:00
Marc Mutz 08c50599f1 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>
2012-09-28 23:50:10 +02:00
Marc Mutz 727f25214e 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>
2012-09-28 23:50:10 +02:00
Marc Mutz f7a33ec29f 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>
2012-09-28 23:50:10 +02:00
Marc Mutz a65a98399b 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>
2012-09-28 23:50:10 +02:00
Marc Mutz 3a29976eac 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>
2012-09-28 23:50:10 +02:00
Rafael Roquetto 0c0731208b QNX: fix assert condition on the destructor
m_childWindows must be 0 (and not > 0), since at this point it should have no
children.

Change-Id: I149e34849cab2d56f8617cc04fc6bf95c0476e4c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-09-28 16:15:28 +02:00
Mark Brand 2e5fef3e66 fix indentation
Change-Id: Iebec20c1be5a0610007a8e7ffd2646bda7f2785d
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-28 16:02:20 +02:00
Joerg Bornemann 219b0d2174 QProcess/Win fix forwarding of output channels
We must not create pipe readers for the forwarded channels as we don't
want to read from stdout/stderr into the internal QProcess buffer.
Also, we must not pass CREATE_NO_WINDOW to CreateProcess because this
will render our stdout/stderr handles useless.

Change-Id: Ie6485e86c103d1e9225cf39c04aa54093c1efe0d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-09-28 12:46:43 +02:00
Gabriel de Dietrich 1bface4f3e Mac: Fix label margins in QGroupBox
Also use mini-sized checkbox and label when checkable. This looks better when
there are several group boxes on the same dialog.

Change-Id: I69bb0240f2a6725afb9819d20696ca404be0bca7
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-09-28 12:46:43 +02:00
Gabriel de Dietrich 73f3f4e6b3 Some improvements to the system Mac palette
Change-Id: I0c3c306db440a9a230a0916e7ee1eb27b072d057
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-09-28 12:46:43 +02:00
Thomas McGuire d162f27671 Blackberry: Support input method hints
Change-Id: I2d30d6079d3982e5ca2b8d9346d0d511279792ad
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-09-28 12:46:43 +02:00
Rafael Roquetto 72d7a833bd QNX: use assert on QQnxWindow destructor
This makes it clear that the m_childWindows size must be 0 at this point,
indicating otherwise an inconsistency in the logic of the child windows
management.

Change-Id: I04e418bc6e1d23681bd96f4d619cde9645dc6a22
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2012-09-28 10:11:00 +02:00
Pierre Rossi a152157998 QDoc: remove the experimental basedir variable
It was introduced in the early days of the docs'
modularization and appears not to be used anywhere
anymore.

Change-Id: I5b0c60d92828624af2129153fce96ad01aec861c
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-09-28 07:32:55 +02:00
Kai Koehne e47faabe23 TestLib: Fix MinGW compile warning
MinGW-64 defines _CrtSetReportMode, but only as a noop, resulting
in a warning "statement has no effect [-Wunused-value]"

Change-Id: I6e509246134dd5929b23b07abdb6d705db603793
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-09-28 07:32:21 +02:00
Geir Vattekar 46608f98c6 Doc: Small updates to QMenu's addAction() methods.
Task-number: QTBUG-26792
Change-Id: I41289cf10065161baca368ca195268d39cdff6cf
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Geir Vattekar <geir.vattekar@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-27 23:51:30 +02:00
Frederik Gladhorn e8ca2e008f Accessibility: rather than assert, just warn.
Screen readers do random things with the dbus interface,
we should be careful when handling what they send.

Change-Id: Ie8fc515c8d399dae9b5e892a135b54a1820d09e2
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-27 23:51:30 +02:00
jian liang 0a7e8350ae Fix drag and drop with native widgets
Task-number: QTBUG-27336

Don't check 'widget != m_widget' in
QWidgetWindow::handleDragEnterMoveEvent() since the current window's
parent widget may be the actual drop target. I replace it with a check
'!widget->isWindow()' to prevent we pass through a top level window.
I also change 'widget->mapFrom(m_widget, event->pos())' to
'widget->mapFromGlobal(m_widget->mapToGlobal(event->pos()))' since m_widget
may not be widget's parent.

Change-Id: Ia4f10f85ccdf1e27223ddc51afabd98b5d16f2fb
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-27 23:51:30 +02:00
Marc Mutz f9547c89ea QPostEventList: change pointer comparison to integer comparison
This is exactly the type of pointer arithmetics that GCC likes to
miscompile.

Just use offset >= size() (=subtract begin() from both sides).

Change-Id: Ifb13652d7b96bf4c06727d9c965516e95d16ab5c
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-27 23:51:30 +02:00
Gabriel de Dietrich b0a7974c6a Mac: Fix small glitch in editable combo boxes
Change-Id: I4b064116183834226372b14c3c442dcaa518c3b4
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-09-27 23:51:30 +02:00
Stephen Kelly cea7a87d5f Take a QPersistentIndex out of the container instead of casting it.
These indexes are later used as the boundary points of a QItemSelectionRange
anyway, which means that they're going to become QPersistentModelIndexes again
soon.

Because QPersistentModelIndex::row and ::column API are not inline, we cache
the resulting values in the loop.

Change-Id: Ib5099148269a8ccbb7ff2d8819a347e429c55dd1
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-27 18:35:55 +02:00
Stephen Kelly 978d3d01cf Use a QVector to store QPersistentModelIndexes.
QPersistentModelIndex is not so big that it causes very bad QList performance,
but considering how we use the container, QVector is fine. We never prepend to
the container, we only ever append, clear and iterate over it.

Change-Id: If1e53db9252c22340f1e0179b14a460495b5b35d
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-27 18:35:55 +02:00
Stephen Kelly edec823c00 Avoid looping over the indexes multiple times to create a persistent list.
Change-Id: I089d272254eb531cd27c7b23fbab4d7183ba01d4
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-09-27 18:35:55 +02:00
Stephen Kelly 2d97c6a474 Use the sibling method to make iteration over a range potentially faster.
The implementation of QAIM can implement an efficient version of sibling.

Task-number: QTBUG-17732
Change-Id: I474dbc11e52b3ccc42e2165bc9336882fab13d03
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-27 18:35:55 +02:00
Stephen Kelly a7b2c43dfb Create an invalid QPersistentModelIndex if it will be converted anyway.
Change-Id: I278d4515d74e2213492c443e5a04731b2e79fe1e
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-27 18:35:55 +02:00
Stephen Kelly 764c4fa8fe Fix resetting of the QCompletionModel.
This model apparently pre-dates the API required to do resetting properly.

Change-Id: I0ea903cef87077ca4a3d8ca2b53eba213e77cc26
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-27 18:35:55 +02:00
Stephen Kelly 1f2a289834 Store an unsigned temporary for the internalId.
This is compared later with the internalId() of other indexes, which
produces a warning.

Change-Id: I57ea248c792db3b49947cc6a8fe989c68b67ff0f
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-27 18:35:55 +02:00
Pasi Matilainen 2e902799df Sand box support, fix for the file dialogs.
- Also get rid of all deprecated calls

Task-number: QTBUG-21609
Change-Id: I284587517537c7be4229d99637c6907d7e7652a5
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-09-27 18:35:55 +02:00
Samuel Rødal ccf0669da9 Added QGLPixelBuffer implementation using framebuffer objects.
Instead of having QGLPixelBuffer be a unusable stub implementation we
deprecate it and implement it in terms of QOpenGLFramebufferObject.
Framebuffer objects are anyway the recommended replacement for
pixelbuffers in modern OpenGL, as the context switching overhead is
avoided.

Change-Id: Ia220c358ee92813e87981d297c51d84525010322
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-09-27 18:35:55 +02:00
Gabriel de Dietrich 0fbb41dea7 Better drawn 1-pixel thick splitter on Mac
Change-Id: I72effdfb997a7733fbbd270db719c163d1d53a66
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-09-27 15:56:51 +02:00
Gabriel de Dietrich fc0ad0aca2 Fixed selected menu item (& Co.) text color
On Mac, highlighted text remains the same color as normal text. That's
not the case for menu and combobox items.

Change-Id: I3efe2547413f77921524b833b4b10cf2d533e110
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-09-27 15:56:40 +02:00
Gabriel de Dietrich 65b39b3cdc Fixed text rendering in selected tab button
We resort to custom Qt rendering when selected since it looks better
than using Carbon's HITheme engine.

Change-Id: Iefcc2bebb1ba58d0d99f078c4960c5126542f637
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-09-27 15:55:10 +02:00
Joerg Bornemann 0ef459d7a2 use QLatin1String::size() in qt_setWindowTitle_helperHelper
Change-Id: I0c8193a7c6bf8b5f894da3e20af3c4d23e0b593a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-09-27 15:50:23 +02:00
Jędrzej Nowacki 82cc324762 Remove unused qMetaType helpers.
These function were replaced by QMetaTypeFunctionHelper class that is
a bit more flexible.

Change-Id: I5aee2089f543b6e05c4d65a688fa8ca721f8abe0
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-27 15:47:30 +02:00
Giuseppe D'Angelo 1c9b0eb640 Workaround MSVC2008 build failure after switching to std::lower_bound
MSVC2008 tries to see if a container is fully ordered.

This causes a build failure when operator< is not defined
between the elements in the container (but is instead defined
between the element type and the item passed to std::lower_bound).

Change-Id: I093d6f67f64a247f0aae763acb35ee73614f4208
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-09-27 15:47:21 +02:00
Miikka Heikkinen 9c4b7d5eb2 Fix OpenGL context creation in Windows platform plugin
Attribute index was incremented incorrectly.

Task-number: QTBUG-27272
Change-Id: Ia7e9c76acc6c9d8208b8ba43131861a3beff6b2c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-09-27 15:47:20 +02:00
Giuseppe D'Angelo 60e2ec9db4 Workaround MSVC2008 build failure after switching to std::upper_bound
QPostEventList is kept sorted by priority; std::upper_bound
is used to insert a QPostEvent in the right place in the list.

Turns out that MSVC2008 is a bit too picky and tries to see if the
list is actually ordered. This causes a build failure as there is
no operator< defined between two QPostEvents (in fact,
an integer -- the priority -- is passed to std::upper_bound).

Work around this issue by defining operator< between two QPostEvents.

Change-Id: Ie3562dd0cc7253e25fc988b25d566d9d9e9fe62b
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-09-27 15:47:16 +02:00
Laszlo Papp 0e3b1f4b48 Do not reference to the QAbstractNativeEventFilter documentation
1) It is not strictly necessary since the method argument type is already
designed for clickable here. Thereby, it is just a duplication.

2) It is not done inside the removeNativeEventFilter, so it is not consistent
now.

3) Similarly, the following documentation in 4.8 did not have another explicit
reference to the documentation of the EventFilter typedef:
EventFilter QCoreApplication::setEventFilter ( EventFilter filter )

Change-Id: I45fd42a03b16fd173fca9d734a7771e804d577d8
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: David Faure <faure@kde.org>
2012-09-27 15:47:10 +02:00
Yuchen Deng 84c2236f04 CMake: Change suffix from "cxx" to "cpp" for generate sources
Cause Qt5's source file use "cpp" as suffix
and automoc use "cpp" as suffix too.
Keep it with same feel better.

Change-Id: Iba3f8ffb5c3dbf003a9e1aacf3706089c1b6765c
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-09-27 15:46:53 +02:00
Jens Bache-Wiig 9bdd7e2239 More consistent dock widget painting on Windows
Before we would draw dock widget handles on windows classic
and no handles on XP, Vista and Windows 8. This would make it
very hard to make a consistent look and feel across those styles.

I also added a workaround to avoid the redundant toolbar borders
when they are used outside of the toolbar areas.

Change-Id: Ib703453677fcac8d51b2180abe45527297af0a80
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2012-09-27 15:37:29 +02:00
Stephen Kelly b80216c9f3 Fix typo: contais -> contains.
Change-Id: I718b0178ba03fcf15f2962cb6f917efb2da27a04
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-09-27 15:31:52 +02:00
Jens Bache-Wiig 570ae40f57 Remove CDE and Motif styles from qtbase
It is time to clean up some of our legacy code. These styles have
not been actively maintained for a long time and I think it is safe
to say that they should no longer belong as part of the default
distribution of Qt. We dont support any platforms based on CDE with
our source packages.

Note that even if we are removing these styles from the default
distribution of Qt, applications that depend on them
will still be able to bundle the existing (and unmodified) styles
along with their own source code as we are not breaking compatibility.

Change-Id: I1709630c20ba8e8088cd01628628d86856db57a4
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-09-27 15:16:16 +02:00
Thomas McGuire fda3fac1d2 Blackberry: Fix hardware button detection on the BB Dev Alpha
The format of the PPS object has changed, it is now prefixed with
[n], so be more leninent in parsing to support both formats.

Change-Id: I54eb1502a6231acf2dd121531539435c59d7d668
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-09-27 14:59:13 +02:00
David Gil ad4c76d938 [Doc cleanup] Fix typos and style of QPushButton and QGroupBox
Fix some typos. Fix some sentences to make them clearer to understand.
Since both of them are widgets, there's no Qt4-centric info.

Change-Id: I5c3c4a23621505d47b00cf466e4daad9763c3076
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-09-27 14:59:13 +02:00
Kai Koehne 0189315c8c WindowsPlugin: Fix MinGW warnings
Fix warnings:

Change-Id: Ia68607f72087c0085e528fee0e6270b80692e389
warning: enumeration value 'SynthesizeMouseFromTouchEvents' not handled in switch
warning: suggest parentheses around assignment used as truth value
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-09-27 14:59:13 +02:00
Kai Koehne e86e49f02e ItemViews: Fix MinGW compiler warning
Fix compiler 'warning: "_WIN32_IE" redefined'

Change-Id: I70ada35027a2bab0a6c4f84dd1384028d2afbcc9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-09-27 14:59:13 +02:00
José Millán Soto c39b6e3188 Return correct accessible name when a label has rich text
When a QLabel was displaying rich text, the raw html was being returned as
accessible name. Now the plain text is returned.

Task-number: QTBUG-27302
Change-Id: I169d5eff527a0aef810af11d7712a362148974a5
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-27 06:07:27 +02:00
Andreas Holzammer ec44a917f6 (WINCE)Add failure for font outline function
There is no outline function in Windows CE,
so add a failure to inform the user that, he
needs to switch the font rendering.

Change-Id: Ieceb68bec49a88c7f7eee99f1c62cf1701da6aec
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-09-27 06:07:24 +02:00
Teemu Katajisto 99bab571b4 QtPrintSupport: cleanup CUPS tmp files
Set fd so that it gets closed in QPdfPrintEnginePrivate::closePrintDevice()

Task-number: QTBUG-14724

Change-Id: Ic9c02c92b07ece92911d7bc3eac79689b4864253
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-09-27 06:07:20 +02:00
Shawn Rutledge e424354e85 xcb: consistently check xcb_get_extension_data for extension inits
This seems to fix the ability to run a Qt app across a forwarded X
connection (e.g.  ssh -X).

Change-Id: I2b7a26985cf11107e69b303337a5fbb369e38c9e
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
2012-09-27 06:07:17 +02:00
Andy Shaw ae0ddb8c72 Implement the missing raster operations that were in Qt 3
Although not widely used, the raster operations from Qt 3 were useful
and some of them were already implemented, this brings the rest of them
back for those who need them.

Change-Id: Id538611eaaba9be3d39bf2dd33b6c532f5d4aba8
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-09-27 06:07:15 +02:00
Pierre Rossi aae8b745d2 Doc: update QMap's description following 5cb036851
Change-Id: I9dccb9f64578cf8c9da50524c5d4d1201ab488bd
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-09-27 02:40:19 +02:00
Jędrzej Nowacki 60d096ff6d QMetaType build fix with Q_NO_CURSOR and friends.
QMetaType has a way to "switch off" some types from the build.
QtMetaTypePrivate::TypeDefinition<T>::IsAvailable is defined as false
for all unaccessible types. Sadly that information was never used by
gui and widget handlers. The patch implements it.

Change-Id: Ie5835be4c88cfbbca8a4e9199e31ddfc20cae190
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jing Bai <jing.bai@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-27 02:37:19 +02:00