Commit Graph

9923 Commits (02afd94ef4c1913735bd650ca93279cfb00dc534)

Author SHA1 Message Date
Konstantin Ritt 4c83aafc11 Add missing Bodo language introduced in CLDR 1.9.1
Change-Id: I4feb6ba781299d65ff3bf2717f08a0ac7eae7928
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-15 13:55:00 +01:00
Thorbjørn Lund Martsum fc271b4273 Regression fix to QHeaderView::setDefaultSectionSize
When the sections has been resized we need to calculate new values
for the section start-positions. Otherwise we break visualIndexAt
and sectionPosition.

This fixes a regression introduced in
b800d8b94a

Change-Id: I148dbf44f742208787ed59b70d82b8048d721e90
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-11-15 13:55:00 +01:00
Oliver Wolff 46fe591a53 Windows: Fixed mouse events related to size grips
The code which was adapted from Qt4 seems not to work as expected on
current Windows versions. There are no additional mouse move events
after releasing the mouse button from the size grip.

One special behaviour in regards to SizeGrips here seems to be that
there is no WM_LBUTTONUP message but a WM_MOUSEMOVE received when
the mouse button is released from the size grip. Due to mouse event
handling in the Windows plugin that event triggers the desired mouse
release event so everything should be fine.

With the previous implementation the behaviour from the bug report
can be explained by the fact, that the mouseMove event is eaten in
qwindowsmousehandler and so the second mouse click isn't even
delivered. Basically the first click triggers the press event without
a release and the second click does not trigger a press but a release
event.

Task-number: QTBUG-27864

Change-Id: I987c6e01dec4a6b6189ed30959daf7a2fcc17df6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
2012-11-15 13:55:00 +01:00
Giuseppe D'Angelo 45fecb2472 QHash: constify some QHashNode members
They're read-only member variables (key, hash value of the key)
set only in the ctors, or a "comparison" member function.
All of them can be constified.

Change-Id: Ifd9242577213f38439a4f998b678f5b05413ad21
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: João Abecasis <joao@abecasis.name>
2012-11-15 13:55:00 +01:00
Miikka Heikkinen b8be2e67ea Change to enter/leave policy while grabbing.
Sending enter and leave events to other windows than the grabbing
window is not logical. The policy should be that only the grabbing
window receives enter and leave events.

Changed the documentation accordingly and provided the necessary
changes to Windows implementation.

Also removed explicit leave event generation for widgets when
popup is opened as that is now redundant.

tst_QWidget::underMouse() test was changed to behave according to
new logic.

Task-number: QTBUG-27871
Change-Id: I127fb8685b4a4206d1a319f42cba491ec02bc8ca
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-15 11:59:34 +01:00
Jan Arve Saether a6135c55b9 Add comment to resetCursorBlinkTimer to avoid accidental removal of it
Change-Id: Ied4c686ab5f4d4530d4d5ae3ce22c6b9ffc4c1de
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-15 11:32:03 +01:00
Jan Arve Saether e2942d0a5b Add resetCursorBlinkTimer() back again.
Apparently it was used by QtQuick1

Change-Id: Ia0cf8535cbfed9b09e151b887c243fb173ca300a
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2012-11-15 11:14:39 +01:00
Miikka Heikkinen 90de0c4178 Fix mouse cursor behavior for QMainWindow splitters
The cursor handling has changed in Qt5 somewhat, which made old cursor
logic for splitters invalid, causing the splitter resize cursor to
persist after hovering over splitter, as well as cursor flicker
during splitter drag.

Since the cursor is changed always in dispatchEnterLeave, CursorChange
event can now come for QMainWindow when cursor hasn't actually changed,
so we now check if the cursor is still our adjusted cursor before
updating the old stored cursor. We also ensure that our adjusted cursor
stays visible if cursor is in fact changed - the changed cursor will
be shown when we no longer need adjusted cursor.

Additionally, we skip cursor adjustments while we are dragging the
splitter to avoid cursor flicker, which is caused by splitter actually
moving asynchronously after the mouse event is handled.

Task-number: QTBUG-27970
Change-Id: Id9f6a0e9653563e09b883f21396de056a88f78a7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-15 10:56:52 +01:00
Jonathan Liu aa309b9677 ANGLE: Invalidate client window area when resetting swap chain
Resizing a window larger results in the newly exposed region being
invalidated but the old region is treated as valid. This can result in
the old region no longer updating. This has been observed on Windows 7
64-bit with Aero theme using NVIDIA GeForce GTS 250 and driver version
301.42. Invalidate the entire client window area when resetting the
swap chain so that it updates properly.

Upstream patch: https://codereview.appspot.com/6812076/

Task-number: QTBUG-27822
Change-Id: I0f5d2004576019458baee74c35e52f69b893a219
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-15 10:54:21 +01:00
Miikka Heikkinen aeb566db73 Windows: Fix autocapture for multiple buttons
Automatic capture of mouse events on button press was released when
the first button was released, even if multiple buttons were pressed.
Changed it so that the capture is released when the last button is
released.

Task-number: QTBUG-28007
Change-Id: Icee59aacaf0ba947820c40cb7ede00193ff46a14
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-15 10:45:29 +01:00
Teemu Katajisto 0a334b2180 Mac: add runtime check for not calling preferredScrollerStyle on 10.6
Task-number: QTBUG-27915
Task-number: QTBUG-27913
Task-number: QTBUG-27911

Change-Id: I1da49c5a1455b30335dec53921a35dc09cd27aa4
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-11-14 14:18:31 +01:00
David Faure 7721c3d27c QMimeDatabase: Fix handling of duplicate mimetype definitions.
When both freedesktop.org.xml and kde.xml define text/x-qml (*.qml),
the XML provider would look up *.qml, see two mimetypes, and treat that
as a glob conflict, and proceed with contents-based-determination,
which for this sample file, would find "C source" due to the C comment.

Fixed by ignoring duplicate pattern-mimetype associations.

The binary-cache provider doesn't have this problem, update-mime-database
already filters out duplicates when generating the on-disk extension tree.

Change-Id: Ie335b0b419e7413fa0550779709513f68c2bfc68
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-11-14 14:18:31 +01:00
Gabriel de Dietrich 9346cb9552 Widgets: Stop cursor blink timer when QLineEdit is read-only
This prevents unnecessary updates, since the cursor is not visible.

Change-Id: Iec54ed338a0cb526a03cd611de4d823e26f3d804
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-11-14 14:18:31 +01:00
Martin Smith 6326746d22 qdoc: better copying of .css files
This fix searches for the css files specified in the
stylesheets variable. It searches for them in the
directory specified as the templatedir. It copies
them into the style subdirectory of the outputdir.

It also tests QT_INSTALL_DOCS before setting it to
the library info. If it was set on the command line,
it is not set from the library info.

This change also includes some debug code, which
will be removed after testing.

Task-number: QTBUG-27878
Change-Id: I7a9469b840e13b966aca44b99aebba102e5d4f0c
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-11-14 13:29:17 +01:00
Richard Moe Gustavsen 85ff27d9ec Cocoa: application menu items sometimes get duplicated
Under some circumstances, the same menu item appears several times
in the application menu in the menu bar. This can be seen in Qt creator,
where "About Qt Creator" appears twize.

The reason is that QCocoaMenu::syncMenuItem does not take into account
that merged items cannot be found in the QCocoaMenu that owns the
menuItem, but rather inside the application menu. And because of this,
it fails cleaning up the old item when it changes from e.g
TextHeuristicRole to ApplicationRole.

This patch will fix this.

Change-Id: Ia84f552d1788d80d778c7dded3393412b9d2d8cb
Reviewed-by: Chris Meyer <cmeyer1969@gmail.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-11-14 12:29:01 +01:00
Friedemann Kleint 39a0952687 Send enter to the child at the position of the QEnterEvent.
This was apparently done so in each of the widget_<platform>.cpp
in Qt 4.8. This then causes the cursor to be updated in
dispatchEnterLeave() on Windows and Linux.

Task-number: QTBUG-27871
Task-number: QTBUG-27585
Task-number: QTBUG-26424
Change-Id: Idf14cd96ccb36f7c2607853ed8b0024c36a5413c
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
2012-11-14 10:36:38 +01:00
Samuel Rødal 4334e0fcc6 Added expose and configure event compression in xcb platform plugin.
We had this in 4.x to prevend swamping the event queue and causing a lot
of needless processing of stale events.

Task-number: QTBUG-27734
Change-Id: I020fe44885569f5a68c07220fcb44bea3e138089
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-14 10:36:38 +01:00
Oliver Wolff 5055183bc5 Windows: Fixed handling of key events containing ctrl modifier
QKeyEvent::key() returned the wrong value if the ctrl modifier was used
in that key event. That was due to the fact that ToUnicode might not
return the correct code for these events/keyboard states. While it works
for alt+shift+= (us layout) and gives '+' as unicode value it just
claims that it cannot translate the given state for ctrl+shift+=. So if
the control modifier is used and ToUnicode return 0 toKeyOrUnicode
should try again without the control modifier.

Task-number: QTBUG-10781

Change-Id: I5eb9c200701b4c98a8089fc0ab1ebaa385dbeea8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-14 10:36:38 +01:00
Richard Moe Gustavsen 26db7de13d Cocoa: QPrintDialog does not show/closes down immediatly
This happends if an event loop recursion ends before
the native print dialog gets executed (in the same scope).

The reason is that the event dispatcher gets interrupted as the
first recursion ends. And (because of the big difference between
how AppKit implements modal windows compared to Qt) this sets a flag
in the dispatcher that gets handled on the next callback to
QCocoaEventDispatcher::processPostedEvents. This will tell
the dispatcher to break out of the current modal session.
But since it cannot detect that an alien (native) session is now
running, it closes down that session by accident instead.

While code can be written in the event dispatcher to detect this
problem, it ends up more clean to just work around the problem
from the native dialogs instead. This to avoid making the
dispatcher more complex than it already is. Native dialogs is
a bit messy already, and the work-arounds needed should be
isolated inside those components, and not inside the dispatcher.

Change-Id: Ibfde9db4c98401562e7628da1db18d6bed619245
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-11-14 08:37:50 +01:00
Andreas Aardal Hanssen f3597af5ad Fix zero-duration animations running Backwards.
If you set the duration of any variant or property animation to 0,
its progress will be stuck at 1 (0..1), and its "end" value set on
the target object, after start() has been called. If you change the
direction of the animation to QAbstractAnimation::Backward, you
would expect the progress to be 0 after start. Instead it's still
1; the code seems to assume that if the duration is 0, the
progress must be 1 always.

The fix is that if the duration is 0, the direction is checked to
determine whether progress should be 0 (Backward) or 1 (Forward).

Task-number: QTBUG-27969
Change-Id: Ibeca084bbbce41df1dca7b7d96c15b6b54394996
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Thierry Bastian <thierryb@filewave.com>
Reviewed-by: Magne Zachrisen <mazachri@cisco.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-11-13 15:34:56 +01:00
Mitch Curtis 041769d4e4 Clean up styles.qdoc.
Corrected all spelling and grammar mistakes and formatted values
properly.

Change-Id: Iecfa0126e532ab08f8b6c307b5c00dc046e77a2a
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-11-13 12:51:09 +01:00
Richard Moe Gustavsen 6b61e97063 Cocoa: fix window focus lost when opening combobox
In cocoa, saying that a panel accepts key events, will make it receive
key events, but also show it as the active window on screen. The former
we dont really have to care about, since Qt will take care of forwarding
events to the popup for us anyway, even when they target another window.
So the only reason to actually let a panel become key window, is when
we want it to become active. And for popups, we only want this to happend
for Tool windows.

Change-Id: Ic4e5058307c514cbe30174d2a2d4ca0f41c8f71f
QTBUG: 26598
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2012-11-12 17:38:06 +01:00
Gabriel de Dietrich 64da20405a QWidget: Move break statement to the right place
An InputMethodQuery event should NOT be transformed into a PolishRequest
if the receiving widget has no WA_InputMethodEnabled attribute set.

Change-Id: I0727c600f1eb68087cb9fbc25f6458aca5417693
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-12 15:46:40 +01:00
J-P Nurmi 46d302854e Avoid duplicate entries in QGenericUnixTheme::themeNames()
Change-Id: I6dc258274dc6614f56f306c30c95fe20c14fdf89
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-12 12:33:24 +01:00
Jon Trulson 43c4d909c5 evdevtouch: also use BTN_TOUCH with value == 0 to detect TouchPointReleased
The current code seems to rely on an event, ABS_MT_TOUCH_MAJOR with a
value of 0 to detect a touch release.  Not all devices[0] emit this, and
the spec[1] does not specify this behavior.

So, add a check for a BTN_TOUCH with a value of 0 to also indicate
Qt::TouchPointReleased.

[0]
http://www.chalk-elec.com/?page_id=1280#!/~/product/category=3094861&id=14647624
using hid_ntrig kernel module.

[1] https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt

Change-Id: I4fc8ff404cad2083a57ff18737c5ea2b06d8ceac
Reviewed-by: Robert Daniels <robert.daniels@vantagecontrols.com>
Reviewed-by: Laszlo Agocs <lagocs83@gmail.com>
2012-11-11 12:10:53 +01:00
Oswald Buddenhagen 26cdc11503 add QLinkedList to bootstrap lib
lrelease will need it.

Change-Id: I929d8eeb4c2d342aaf780a4c72283deb051a7bec
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-11 12:10:45 +01:00
Thiago Macieira 4712b0e99f Add -archdatadir and change some of the default install dirs in Qt 5.
Architecture-depedent Qt data defaults now to something under
-archdatadir. Architecture-dependent data is everything that contains
machine code (e.g., plugins) as well as anything that hardcodes
build-specific data, like qconfig.pri and qmodule.pri. That is:

  QML imports:    $archdatadir/imports     (includes plugins)
  Qt plugins:     $archdatadir/plugins     (machine code)
  Mkspecs:        $archdatadir/mkspecs     (build-specific)

Architecture-independent Qt data defaults now to something under
-datadir. This option existed in Qt 4, but did not differentiate between
arch-dependent and independent. Following Autoconf's lead, --datadir is
the *independent* data root.

  translations:   $datadir/translations    (.qm files are arch-independent)
  docs:           $datadir/doc

By default, both new options are equal to the Qt install prefix.

(Strictly speaking, for complete Autoconf compatibility, we'd need a
--datarootdir=$prefix/share, --datadir=$datarootdir/qt5 and
--docdir=$datarootdir/doc/qt5, but that's just nitpicking and
unnecessary)

Change-Id: I39c886a6a2d2d2c0b11923c50974179e21f2af76
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-11-11 07:41:50 +01:00
Friedemann Kleint 2d07d3b4e3 Add a QEnterEvent containing the mouse position.
Enter handling requires knowledge of the mouse
position. Extend the enter handling of
QWindowSystemInterface to receive the position
(implemented for Windows, XCB and Mac), passing it
on to QEnterEvent. Dispatch QEnterEvent from
widgets code.

Change-Id: I49c07d2b1f46310c877017dd55d4cd7d636bdbce
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-10 20:08:28 +01:00
Stephen Kelly 1fe0c2c25d Add warning about non-API in Qt5CTestMacros.
The macros are only for tests in Qt itself, and will be changed without
restriction.

Change-Id: I4cf5b8559be510f01d0122c59492c5ea3e71c8d3
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-11-10 18:13:06 +01:00
J-P Nurmi 8ba6f75fa6 Refactor and cleanup QGtk(2)Painter
Move all the GTK2 specific function resolving and painting routines
to QGtk2Painter. A GTK3 specific and Cairo based QGtk3Painter will
be introduced later, and it will be QGtkStyle's job to choose
between the two.

Change-Id: I2c8a85de0cf8187468798cf5faff0006da4b9623
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-10 15:50:55 +01:00
Thiago Macieira 22c6d13a64 Add the GCC 4.8 C++11 feature list
This list is current at the time of writing. Since GCC 4.8 hasn't
finished development, it may still change before the final 4.8.0
release.

Change-Id: Ie4a6809bc6680cafcdd0c7a6a2fd6f8be790c8d2
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-11-10 13:38:00 +01:00
Konstantin Ritt ea82707e96 QTBF: Remove StartOfItem/EndOfItem enum values
Since the behavior of boundaryReasons() method has been changed a lot,
remove the StartWord/EndWord enum values to force the affected code be revised;
StartOfItem/EndOfItem must be used instead.

Change-Id: I3d1d97d2dbe9680d290646d8c3adb5558ca26bd7
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-09 22:39:56 +01:00
Samuel Rødal f9d122159e Added private header warnings in src/gui/kernel
Change-Id: If3ad9d1e18543639f9e6abb8899b72772bc70c83
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-09 19:06:10 +01:00
Samuel Rødal d729ca5ece Added motion event compression in xcb plugin.
We did this in 4.8 too, to avoid swamping the event queue with stale
motion events. If you're interested in fine grained motion events you
just need to have a responsive main loop. Most applications are only
interested in the latest mouse position in any case.

Fixes performance issues in QML where an onMouseXChanged or
onMouseYChanged in a mouse area does directly or indirectly runs some
heavy computations, slowing rendering to a halt since the main loop is
constantly busy.

Change-Id: I169c96458db4d57b689d6c2c915765b11c35e123
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-09 18:51:40 +01:00
Gabriel de Dietrich e5eeffbf8b Mac: More accurate focus mask
Small artifacts were visible when tabing in and out QLineEdits several times.

Change-Id: I56334e0534c67c94d357e3517d2470adcc1d8a1c
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-09 16:11:48 +01:00
aavit d91c1422a9 Fix GIF image decoding: do not zero transparent pixels
For the special transparent color index, the decoder would skip
writing anything out (thus leaving the pixels at 0 rgba value).
Although correct for later frames, for the initial frame this would
loose the color information for such pixels (which one otherwise
could have made visible e.g. by converting then image to an
alpha-less image format).

Change-Id: I316cefce8f21797feedebfbf98296ad84eaa4b99
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
(cherry picked from qt/c309d424f45dc0e7b62fbbbabf20dbfe355f48a7)
Reviewed-by: aavit <eirik.aavitsland@digia.com>
2012-11-09 16:07:51 +01:00
Friedemann Kleint 6dffbccbf3 Fix warnings about unused variables in stylehelper.
Change-Id: I6f18fff5277a95301a525209b7d45f0d4f182b97
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-09 13:44:45 +01:00
Sergio Martins 92fd0fc6bc QNX: Don't crash on application exit.
Variable should be initialized in ctor so it doesn't crash
when deleting it.

Crashes with QNX SDP 6.5

Change-Id: I462f1e374f0588f29fe6fc14a957672467c9b2f7
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-11-09 11:09:44 +01:00
Liang Qi 7aae8c0f0f Support native event filter for Mac OS X
Ported from Qt 4 implementation, updated with
QAbstractEventDispatcher::filterNativeEvent() call.

Tested with an example.

Change-Id: I3271f8a565d06d80b7b48ba81728bcdb7b1c32e3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-11-09 04:09:09 +01:00
Mark Brand 593b8f7f0b fix binding of bool type in mysql driver
MYSQL_TYPE_TINY should be used for binding bool input value.
MYSQL_TYPE_LONG might be too big for bool, resulting in bools being
saved in the database as int 127. The problem was not specific to
the vendor's BOOL column type.

http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html
http://dev.mysql.com/doc/refman/5.0/en/c-api-prepared-statement-type-codes.html

Added generic autotest to make sure that binding bool works. All
drivers should pass this test.

Task-number: QTBUG-27763
Change-Id: I4e69f8e3b32fffb702ec9fa8a80ff5c50dea954b
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-11-09 00:37:42 +01:00
Sergey Borovkov b009ed0cc8 Save grayscale palleted images to grayscale png
While Qt does not support grayscale images explicitly it makes sense to
save palleted images to grayscale png when possible for better
compression and compatibility as opening and saving grayscale images now
converts them to palleted

Change-Id: Iab7c5a5a9d24b9352f5a7bafe04824a97d2463d9
Reviewed-by: aavit <eirik.aavitsland@digia.com>
2012-11-09 00:37:42 +01:00
aavit 0d519164f2 Simplify and speed up OpenGL framebuffer grabbing.
If possible, let glReadPixels() itself provide the pixel format
that QImage requires, so we can drop the pixel manipulation afterwards.

Change-Id: I6c9226003c15d49548fa00696f31d0b2e26c0783
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-09 00:37:42 +01:00
J-P Nurmi 89ccb0a699 QGtkStyle: GTK3 compatible gtk_adjustment_new()
In GTK3, gtk_adjustment_new() returns GtkAdjustment* and there's no
such thing as GtkObject anymore. Just typedef the function pointer
appropriately and as a bonus we'll save ourselves from the casts. ;)

Change-Id: I2f17ab10b835dd0bffabb86345488e84aea51f3c
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-08 22:47:42 +01:00
Samuel Rødal ede6412104 Report threaded rendering support in xcb when using event reader thread.
Threaded rendering had issues due to bugs in xcb before
xcb_poll_for_queued_event() was added. Now xcb_poll_for_queued_event()
is resolved at runtime and if present xcb events are received on a
separate thread.

Change-Id: I05420c8c9f9a20f41ce0f86ed255bc8b295e7fe5
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-11-08 22:47:42 +01:00
Samuel Rødal e24c8d1266 Return appropriate currentContext() in platform's makeCurrent().
This way the platform plugin can use convenience classes such as
QOpenGLFramebufferObject in the makeCurrent() implementation.

Change-Id: I1fb5f6b8ec094ff39454adbeca9eb0d1a8f43ee6
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2012-11-08 22:47:42 +01:00
Orgad Shaneh 5f915d0b91 QFutureInterface: Remove unused function
Following 731ba8ed08 this function is
not used anymore

Change-Id: Id908931b4b21c825bd80a4f03790630818c73c07
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2012-11-08 22:47:42 +01:00
Rafael Roquetto 18553bc50d Cleanup old signal handler mechanisms
Remove watchUnixSignal(), unixSignal() and associated code. These are relics
which were being used by QWS to detect virtual console switching. Currently
they are not being used at all. The recommended way to watch for Unix signals
in Qt is http://doc-snapshot.qt-project.org/5.0/unix-signals.html.

Change-Id: Id34207cb8853442302a45b2816356da0f973ebb1
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2012-11-08 22:47:42 +01:00
Mark Brand 999109866d QAbstractProxyModel: fix sibling() reimplementation
The previously missing mapFromSource() sets the proxy model in the
returned index. Otherwise, the returned index refers incorrectly to
the source model.

Follow-up to 9dfba89c28 and
e5ac4fb9b2
Change-Id: I25cd7baa4a93284ab14ede988ac524971870794e
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-11-08 18:56:46 +01:00
Oswald Buddenhagen e268cf6a38 add (parts of) QtXml to the bootstrap lib
we bootstrap it anyway (as qdoc already needed it). now lrelease will
also need it.

Change-Id: I5117634448368e18d6cf5540d678e039a66c7260
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-08 16:59:50 +01:00
Oswald Buddenhagen 306f5f86c1 compile bootstrap lib with QT_NO_TRANSLATION
Change-Id: Ie0d65d69dd924f0815e1214adc4598e0e1b3b8f4
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-08 16:59:50 +01:00
Oswald Buddenhagen 3ad90ea8f6 Generate a proper static QtBootstrap module
Making a properly installed libQtBootstrap simplifies
our tools build process a little and in addition allows
other comand line tools to use the bootstrap lib and
link against it.

Initial-version-by: Lars Knoll
Change-Id: Iddf4568a5505bc24898ec1abf7e7022e19f0a454
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-08 16:59:50 +01:00
Oswald Buddenhagen 486261f40c fix QMAKE_{,X}SPEC when a qt.conf containing [Paths] is present
unlike for the paths which fall back to defaults based on the Prefix,
the specs must fall back to the values from qconfig.cpp.

Change-Id: I5f110621921cf278f2c3938a4ec5eb30a78c8502
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-08 16:59:50 +01:00
Miikka Heikkinen 0aafef094d Windows: Add missing support for X-buttons.
Autocapture and framestrut event generation didn't handle X-buttons.

Task-number: QTBUG-27874
Change-Id: Icfe9dfb9abc9cd506e1875f2b2b4cbc644cff6cd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kevin Funk <kevin.funk@kdab.com>
2012-11-08 16:59:50 +01:00
Frederik Gladhorn 4c1c8207b9 Accessibility Linux: Do not depend on external libatspi2
This has (and still does) caused lots of grief since
it means accessibility was often unintendedly not built.

Instead copy the lib-at-spi-2 header file needed for the
type enum and build it by default again.

Change-Id: I1ba26f20edff1aeb444c96a37928f36230ac7576
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2012-11-08 16:59:50 +01:00
Samuel Rødal 15b5ed3294 Relax QOpenGLContext::swapBuffers() conditions.
There's no need to force the context to be current and the correct FBO
to be bound when swapBuffers() is called, as this can easily be handled
on a per-platform basis.

Change-Id: I7af5a082d6a2b03dfa2cdc874c27617139a781a9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-11-08 16:59:50 +01:00
Frederik Gladhorn 96e3b44cdc Accessibility: Make accessibleInterface() in event virtual.
This function can then be used by webkit in a different way.

Change-Id: I2e4c0570b5fc446114f63b3dc43e3c4505bcad79
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-11-08 16:59:50 +01:00
Frederik Gladhorn 0dc2b5e083 Accessibility: Warn if an event cannot create an interface for some reason.
Change-Id: I87d0290286243f8ead114e238798c9a7b882d978
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-11-08 16:59:50 +01:00
Martin Smith 2cf7aceb4e qdoc: better copying of .css files
This fix searches for the css files specified in the
stylesheets variable. It searches for them in the
directory specified as the templatedir. It copies
them into the style subdirectory of the outputdir.

Task-number: QTBUG-27878
Change-Id: Ic9ff43ab6f939cb50f1b41a9cc58f3f8686ebaf5
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-11-08 15:41:20 +01:00
Giuseppe D'Angelo 33ffbf21e0 Remove qSort usages from SSL code
Change-Id: Ie080cd3d0a6ac37fad625759946a71134c989c83
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-11-08 15:06:03 +01:00
Giuseppe D'Angelo 6e7ab54862 Remove qSort usages from QDnsLookup
Change-Id: I2f7dfcfdf13cdd85af5ba251478e10cafe7f649b
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-11-08 15:05:59 +01:00
Rafael Roquetto 602ea84f44 Fix TapAndHoldGesture (others) for QWidgets
After the migration to QPA, touch events usually have a QWindow as a receiver,
unlike Qt4 where receivers were QWidgets. This broke QGestureManager and
gestures such as the TapAndHoldGesture, because
QGestureManager::filterEvent(QWidget *, QEvent *) was never called. Since the
receivers are now of QWindow type, QGestureManager::filterEvent(QObject *,
QEvent *) gets called instead, always returning false. This has several side
effects, one of them was causing the TapAndHold gesture to time out, because
it never got a TouchEnd event (and thus it thought that the touch was still
going on, even though it was not). This patch ensures that if a gesture event is
meant to be delivered to a QWidget, the right event filter method is called.

Change-Id: I1df5f763fe6c4d8db0058adbd17d23d70b4988fe
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
2012-11-08 15:05:26 +01:00
Oliver Wolff d2e5c7787e Do not call QWidget::show/hideEvent twice
While handling events for Widgets and Windows in QWidgetWindow::event
makes sense for other events, it causes QWidget::show/hideEvent to be
called twice when handled like "the rest". Having that as one case here
seems to be the cleanest solution. Removing the call to showEvent from
QWidgetPrivate::show_helper (as proposed in the bug report) causes
autotests to fail and thus is not a viable option.

Additionally the expected result for the task221221 test for
QDoubleSpinBox was reverted to the Qt4 value as Qt4 behaviour was
restored.

Task-number: QTBUG-27199
Task-number: QTBUG-26424
Task-number: QTBUG-22565

Change-Id: I0ac42b09b1a7618de042d27aa5dd1b3d9f30f552
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2012-11-08 15:01:52 +01:00
Shawn Rutledge a6f49a4223 Temporary backwards-compatible QWindow::setPos accessors
To be reverted after I19c00b54b1d2712f9418e8bcf56e35a8008b89ef and
and Ibd5cd10814c8cbd2b1f6e49b70782c7768d2366d are both integrated

Change-Id: I2e14d732cc7fc4168e8b4507a050f43f1e4c9e49
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-08 15:01:42 +01:00
Shawn Rutledge 672e7c875e Remove QWindow pos, geometry and size as properties; pos->position
Abbreviated properties are to be avoided.  But all 3 of these
properties are redundant from the QML perspective; and because QRect,
QPoint and QSize are (wisely) not QObjects, it's not possible to bind
to _their_ properties, which make these QWindow properties less useful
than users might assume that they are.

Change-Id: I19c00b54b1d2712f9418e8bcf56e35a8008b89ef
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-08 15:01:30 +01:00
Andy Shaw 38545380e4 Prevent frame notifications going out when the content view is set
When the content view is set it will trigger a frame notification which
we do not want to see because it would put our internal data on the
geometry out of sync. So ignore the notification until after it is set.

Change-Id: I704c2f186c8b0c6508a90d5dab51b7f6f02162fc
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-11-08 06:35:46 +01:00
Shawn Rutledge 26e2ebf66b Temporary backwards-compatibility window properties
These are intended to exist only during the integration of patch
Ie4424ec15fbdef6b29b137f90a2ae33f173edd21, so that it will be possible
to build the other modules.  Then it will be reverted after the
property renaming is propagated to all the other modules.

Change-Id: I8d0c0774e685a728a98e8c866d95c606c927ff46
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-07 21:26:08 +01:00
Shawn Rutledge cd34da5426 Rename all QWindow properties that have "window" in them
windowTitle, windowModality, windowIcon and so on are named that way
to be similar to the ones in QWidget.  However QQuickWindow inherits
all of the declared properties, and we would like to have shorter
property names in QML.  If you are working with a Window then it's
obvious the title property is the window title.  Unfortunately,
there must be patches in many other modules which depend on this one.
In order to avoid the need to merge them all at the same time,
there is also patch https://codereview.qt-project.org/#change,39001
which temporarily adds backwards-compatible accessors, which can be
removed after the other modules are able to build without them.

We should not rename windowState to state, because in QML, state
usually drives the state machine for animation transitions etc.
(although QWindow is not an Item, a user might get confused about it).

Related patches are
https://codereview.qt-project.org/#change,39001
https://codereview.qt-project.org/#change,37764
https://codereview.qt-project.org/#change,37765
https://codereview.qt-project.org/#change,37766
https://codereview.qt-project.org/#change,37762

Change-Id: Ie4424ec15fbdef6b29b137f90a2ae33f173edd21
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-07 21:26:08 +01:00
Giuseppe D'Angelo a454ccb89e Remove qSort/qStableSort usages from itemmodels
Change-Id: I53c650f170fc8a6142373c1e7da0f4876188a39e
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-11-07 21:26:08 +01:00
Kai Koehne 21bd66e1ea Add configure option to minimize xcb runtime dependencies
Some of the xcb- libraries we depend upon are not (yet) common across
distributions. This is problematic for binaries that should be working
on different distributions. The patch mitigates this by:

Adding the files from
  libxcb-proto (version 0.1.6), compiled with libxcb-1.5
  xcb-util (version 0.3.9)
  xcb-util-image (version 0.3.9)
  xcb-util-keysyms (version 0.3.9)
  xcb-util-renderutil (version 0.3.8)
  xcb-util-wm (version 0.3.9)

from xcb.freedesktop.org/dist to src/3rdparty/xcb.

Adding a configure option '-qt-xcb' to use the sources instead of
linking to the respective runtime libraries.

Task-number: QTBUG-27803
Change-Id: I6ea87daa382871b2b9072a601511523fa0b9f44b
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-07 16:55:50 +01:00
Oswald Buddenhagen f4121624e9 fix warnings about empty "while" bodies
as it happens, this matches our coding style ...

Change-Id: I88d0916499a05a48d12691f5df5999c5ffd7a91c
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-07 16:48:08 +01:00
Oswald Buddenhagen 285b966670 fix sign mismatch warnings
enums are signed, while sizeof is unsigned.
as a side effect, we can optimize away one comparison by taking
advantage of the two's complement representation.

Change-Id: Ic0871306d30ad7217f2909e51e96a876a3f393dc
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-07 16:47:15 +01:00
Miikka Heikkinen 5b52cb5b85 Fix autocapture for doubleclick in Windows
Holding down the second click of a doubleclick should also autocapture
the mouse like it does in Qt4.

Task-number: QTBUG-27863
Change-Id: I38c0567eca9fd7dcd3ef3d17921db5ebd3fe18b1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-07 14:19:00 +01:00
Julien Brianceau 07ea3cf0b3 qpa: Fix rendering issue in blitter engine (negative scaling factors)
A 180° rotation results in a TxScale QTransform with negative scaling
factors (x=-1.0 y=-1.0). This is not properly handled by blitter paint
engine yet, so use software rendering fallback in this case.

This rendering issue can be seen when using "-webkit-transform" CSS
property in WebKit with DirectFB QPA platform.

Change-Id: Iee496b6bf0c90ffe36c4235ceaa2c80f296b2ca4
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-07 14:19:00 +01:00
Martin Smith 3b78aa72c7 qdoc: Removed setting of codeindent variable
All the qdocconf files in use for Qt 5.0 set the
codeindent variable to 1, which prefixes each line
of a snippet with one ' '. But this messes up the
cutting and pasting of snippets into editors for
actual use. qdoc now lets the codeindent variable
be initialized to 0, and then it never changes it.
This looks ok in the default formatted html output.
If the html output formatted with the template CSS
files also looks ok, then the codeindent variable
can be removed from all the qdocconf files, since
it will no longer be used by qdoc.

Task number: QTBUG-27798

Change-Id: I398c57bdfc99e747ec086fbd8ddf5994cf3ee6d5
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-11-07 14:08:14 +01:00
Mitch Curtis 950b679792 Fix sentences in QGraphicsItem documentation.
Change-Id: I5f86cdca53be103976017c83123e1ac80fcb8aa8
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-11-07 12:19:14 +01:00
Teemu Katajisto fe7f4e9394 Cocoa: fix backingstore flush for 10.8
Remove compile time version check to make flushing work correctly
when building with other sdks than 10.8.

Task-number: QTBUG-27862

Change-Id: I915ae80017be1c03d5217aa9bdb60991603f8d01
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-11-07 12:19:14 +01:00
J-P Nurmi c072ee1277 QGtkStyle: remove references to gtk_progress_configure()
gtk_progress_configure() is deprecated and no longer exists in GTK3.

Change-Id: I02d58456285326b8aee6050da1a155cacbb86eee
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-07 12:19:14 +01:00
Erik Verbruggen 1b4df67580 Fix for compiling with clang with c++11.
Change-Id: Ibb1e3290edbb2bdc68bb8164be6c484e49b9c69e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-11-07 10:27:04 +01:00
Erik Verbruggen 26c7bb2520 Do not define QT_BASIC_ATOMIC_HAS_CONSTRUCTORS for clang.
This triggers a bug in clang (before version 3.2). See also the bug
report: http://llvm.org/bugs/show_bug.cgi?id=12670 .

Change-Id: I9e0bc1cc39059ffa5e062652b932bc01e453ef98
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-11-07 10:27:04 +01:00
Jerome Pasion b4a05fd2d8 Doc: Cleaning up QHP information in module configuration files.
There is a common standard among all Qt modules. These changes affect
the final .qch file for each module.

Changes:
1)URL in qt-project.org is confirmed by DevNet maintainer
url = http://qt-project.org/doc/<module>

2)Landing page title mapping
indexTitle = landing page

3)"C++ Classes" as a child node.
The list of C++ classes and the titles are specified in the wiki.

4)Removed extra subprojects.
They are not needed for now. Each module may need additional nodes.

Change-Id: I1825476c21fe9aaddc9d6b512ff74229f17271a0
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-11-07 10:16:08 +01:00
Jerome Pasion ce85e1b228 Help generator: Add a global config for "extraFiles".
There should be a way to include files across projects regardless of
their project configuration.

Change-Id: I61797fad594c425a30a54b73539ae670e9545cb9
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-11-07 10:15:52 +01:00
Miikka Heikkinen dde3f6a934 Fix excess enter events when showing modal dialog on button press
QApplicationPrivate::leaveAfterRelease was not properly cleared when
mouse event handling was interrupted by a modal dialog, which caused
every mouse move over the modal dialog to trigger enter event to the
widget under cursor.

Fixed by clearing QApplicationPrivate::leaveAfterRelease if mouse event
without any buttons pressed is handled.

Task-number: QTBUG-27643
Change-Id: I4f31daa656bc643c88e5338282a671ae2077e255
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-07 08:44:38 +01:00
Miikka Heikkinen 6dcfbe552a Fix invalid mouse press and release events on window maximize
In Windows, if the window is maximized with a doubleclick on the title
bar or resized with a doubleclick on the bottom or top frame border,
there comes no WM_LBUTTONDOWN or WM_LBUTTONDBLCLK event for the second
click, but there comes at least one WM_MOUSEMOVE with left button down
and eventual WM_LBUTTONUP.
Since QWindowSystemInterface::handleMouseEvent() can't differentiate
between actual button down event and a move event with button held
down, the move resulted in a button down event being sent to the widget
that was under cursor after resize.

Fixed by ignoring any events with left button down for which we didn't
get the initial native button down event. Since entering an application
with mouse button already held down is not generating mouse events
anyway until the button is released, this should be safe.

Task-number: QTBUG-27845
Change-Id: Ibc7abf8a127c401801e1b654a2829582f43a1ae8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-07 08:44:25 +01:00
Samuel Rødal 04f6edc379 Resolve xcb_poll_for_queued_event at run-time.
By not making this a compile time decision we ensure forward
compatibility for older xcb versions if the xcb plugin is built against
a newer xcb.

Change-Id: I744777d53bf7b8deb6eff372494f4403d19d364c
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2012-11-07 08:42:29 +01:00
Erik Verbruggen 7c21fddb2c Fix for compiling with clang with c++11.
Change-Id: I4f4928783d0e35b0df5e979fef1de80e9a026f55
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-11-06 22:06:28 +01:00
Teemu Katajisto 8e22d05dc9 Cocoa: fix memory leaks
Change-Id: I2e805aa64c65b90d33924ea4a8671735dee581fd
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-11-06 22:06:28 +01:00
Miikka Heikkinen 715902051a Fix inconsistent leave/enter events for main window when popup is open
Changed the platform leave event handling logic in QWidgetWindow to
match platform leave event handling logic in Qt4, where last mouse
receiver is used as leave target only if last mouse receiver wasn't
a native window itself. In that case it is assumed to get leave event
of its own when relevant.

Task-number: QTBUG-27639
Change-Id: Id6edcd29754a15c959f18ab38b20d66e5d446510
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2012-11-06 20:26:43 +01:00
Liang Qi 7d5b813de3 Mac: remove some unused code in QFontDialog
Those code was warpped by Q_WS_MAC and should be part of QPA already.

Change-Id: I48b751aad0509b50ccf9e82778c962ed80a2a9f9
Reviewed-by: Jiang Jiang <gzjjgod@gmail.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-11-06 20:26:43 +01:00
Olivier Goffart 029cc40c2a Allow connect to functors with less parameters than the signal
Before, the functor slot (or lambda expression) had to have the same amount
of arguments as the signal.
This shown to be a big problem to be able to connect to signals that had
a QPrivateSlot.

This implementation use the type of the operator() of the functor to
know how many arguments we have.
As a bonus, we also can check the arguments in a static assert.

The test comes from https://codereview.qt-project.org/#change,38703
But this patch also works without variadic template

If the compiler does not support decltype, we workaround the lack of it
by using another level of indirection.

Change-Id: I9850b43e8caf77356a2ec3f4c0b0ed532d96029e
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-11-06 18:43:14 +01:00
Kevin Funk 202bfbceda Don't include qaccessible.h on QT_NO_ACCESSIBILITY
Change-Id: I1da4036c211172a72b73440648f4ff9ede761a69
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-06 16:35:31 +01:00
Friedemann Kleint 87f16671c3 Send QContexMenuEvent when Context Menu key is pressed.
Bring back code from keymapper_x11.cpp.

Task-number: QTBUG-27648
Change-Id: I2a189a0537bcd2ae0eb093576c84814b2f09933b
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-06 16:35:21 +01:00
Friedemann Kleint 3c092b7e58 Improve Direct X SDK detection in configure.exe
Check presence of Direct X SDK depending on
compiler version.

Check for presence of the headers d3dcompile.h and
intrin.h (SSE2) as well as d3d9.lib and the shader
compiler since the header d3dcompile.h is
also present in MinGW.

Change-Id: I7ee9701f4f9dc175ed2d733db79dda46de4d69f1
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2012-11-06 16:35:16 +01:00
Friedemann Kleint 92cd94ed1d Dynamically resolve functions of dwmapi.dll.
The library is not present on Windows XP, for which /DELAYLOAD
is used in ANGLE. However, as this causes problems with MinGW,
use dynamic resolution.

Task-number: QTBUG-27741
Change-Id: Ie4a2706d57b751fbb6fc6f3e76ef2e8ddac3b892
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2012-11-06 16:35:11 +01:00
J-P Nurmi 15fc255c7c QGtkStyle: GTK3 compatible combo boxes
Use gtk_combo_box_new_with_entry when gtk_combo_box_entry_new is not
available. The latter was deprecated since 2.24 and is no longer
available in GTK3.

Notice that gtk_combo_box_new_with_entry returns a GtkComboBox, whereas
the old gtk_combo_box_entry_new returned a GtkComboBoxEntry.

Change-Id: I4aa3c528c6e04967ed783fce72036acb6063445b
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-06 16:34:42 +01:00
J-P Nurmi b73465550b QGtkStyle: GTK3 compatible type checking
- GtkType -> GType
- GTK_CHECK_TYPE -> G_TYPE_CHECK_INSTANCE_TYPE

Both are deprecated aliases in GTK2 and do not exist in GTK3.

Change-Id: If2dc4ba09451cabb6730f8b23e15db7554a9f829
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-06 16:31:34 +01:00
J-P Nurmi a80c217583 QGtkStyle: handle focus & default widgets in GTK3 compatible way
Change-Id: Ib4409c15599953a6626738543b27d14d711e7109
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-06 16:30:11 +01:00
Martin Smith 2efbf2dbbe qdoc: Added module attribute to most index elements
The index file generated by qdoc when it is run in
-prepare mode has been modified so that most elements
have a module attribute. The value of the module
attribute either came from an \inmodule command, or
it is the value of the project variable specified in
the qdocconf file that was read by qdoc.

Task number: QTBUG-27626

Change-Id: I44198bbbc1738fafc110c6b905eb1d67bc745323
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-11-06 14:09:59 +01:00
Marc Mutz 9d95bc58e8 De-inline some destructors in QtWidgets
Destructors should be out-of-line so that the compiler doesn't generate
one per translation unit.

Apart from creating more work for the compiler, it can also lead to
duplicated vtables if the dtor is the first virtual function
(reimplementation), and all other virtuals are inline, too.
Duplicate vtables then break RTTI.

In addition, having virtual dtors de-inlined allows us to add code
to them in a BC way.

As a final argument, this change may lead to less code app-side, since
a sequence of cross-DLL calls (to member variable dtors) is replaced
by a single cross-DLL call to the new out-of-line dtor.

Change-Id: Ifb8c4aa992c75d61ba9ac8de5ab41d1e96b0a0b1
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2012-11-06 12:40:55 +01:00
Eskil Abrahamsen Blomfeldt 65755f9a68 Fix native RGB text on OpenGL ES 2 without BGRA extension
Angle, for instance, which is now the default on Windows,
does not support the GL_BGRA_EXT format as input for
glTexSubImage2D(). In the case where it's not detected, we
therefore need to flip the bytes in the input.

Change-Id: Ibe78d0223e3c2c39cb1943cdcf67103044d00aa7
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-06 12:36:16 +01:00
Olivier Goffart cf1eb70070 Fix connection to const slots (or from const signals)
Pointer to const member function have a different signature, and hence
need their own traits code.

Change-Id: Ie4b2434a412f412444fb07ef1388a37cab105ecd
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-11-06 09:18:54 +01:00
J-P Nurmi f306ebc042 Fix QAccessible to build when QT_NO_ACCESSIBILITY is defined
Change-Id: I6104633cdc80425b8f4697acd28c9a156cd0d76f
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-11-05 22:20:03 +01:00
J-P Nurmi 1dd9586a71 QGtkPainter: use gtk_widget_get_style()
Do not access GtkWidget::style directly, it doesn't exist in GTK3.

Change-Id: I1ee4ad5ca0894c9277219fc2a70f5f1c69ec632f
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-05 22:19:54 +01:00
Miikka Heikkinen cbf4762426 Fix GDI leaks in fontengine
GDI objects that are created need to be deleted once no longer needed,
instead of just released.

Task-number: QTBUG-27812
Task-number: QTBUG-27825
Change-Id: I53b04b54cea9e2aaa8fc72365c215f516c5682e6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-05 15:16:01 +01:00
Friedemann Kleint 96ebbad5f0 QWindowsVistaStyle: Restore altered brush origin.
The line to restore it was missing, and the leftover variable
caused a warning, which was removed in
abe5a0a432 .

Task-number: QTBUG-27828

Change-Id: I00b8b89b07bec38a1660c3a9c61220b6d0d7eb48
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
2012-11-05 12:25:49 +01:00
Marc Mutz 55410fd6d1 QtWidgets: add some explicit
Change-Id: I0650db3d47b506c67074c526ab9857f8159fd599
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-05 09:13:02 +01:00
Frederik Gladhorn bc88080a42 Doc fixes.
Change-Id: Id2042c33a9762261756d1065781005dfef341797
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-11-03 21:10:20 +01:00
Frederik Gladhorn 5bd55890fa Implement editable text interface for QLineEdit.
This was uncovered by the linux accessibility test which
tried to call non-existing functions.

Change-Id: Iaa9640c23ee77d7c5b2321d7f8cfa6d12d61c0e9
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-11-03 19:24:00 +01:00
Peter Kümmel 9764907240 QTscii and QIscii are not big codecs
This fixes the build when QT_NO_BIG_CODECS is defined.

Change-Id: I832fb8ba5df6c4a6c1db9bdaecc498690357a56a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-11-03 16:16:35 +01:00
Jędrzej Nowacki fb0f58f50f Fix conditional jump based on an uninitialized variable.
Valgrind warns about the jump in qfontconfigdatabase.cpp:522 based on
uint QFondDef::hintingPreference:2 property. Surprising thing is that
the property is initialized in the default constructor, so there should
not be an issue.

The warning disappear if the property is _not_ placed on a boundary of a
two words, or if bit field is fully initialized. So I suspect that only
one bit of the two was initialized properly.

I decide to implement both solutions because of a potential minor
performance improvement, during reading the property.

I still fail to say why the value was uninitialized, I believe that this
patch simply workarounds gcc bug or valgrind bug.

Change-Id: I2e87738f66a435ef6e30b3d2db6baa73da025426
Reviewed-by: Jiang Jiang <gzjjgod@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-11-03 11:20:26 +01:00
Antti Harju 8fb379dc8a Improve QByteDataBuffer::read() performance with partial reads
Add a read position variable to eliminate excessive memcpy'ing when
reading a partial buffer.

Specifically, fix performance issue of reading large files from
QNetworkDiskCache in QtWebKit2.

Task-number: QTBUG-27522
Change-Id: I21edc909bf9223971b2c3db5f1fa6b89c5b61c5f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Antti Harju <antti.harju@ixonos.com>
2012-11-03 00:24:37 +01:00
Yuchen Deng 0d9eba94dc Angle: Make it call the correct host tools
Change-Id: Ib5a0da0ac50e0d2abebc825d6d6105ad5d84acd8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Jason Barron <jason.barron@digia.com>
2012-11-03 00:24:37 +01:00
Morten Johan Sorvig 9830ba007a Make QGLWidget::paintGL() call glClear().
Creating and displaying a plain QGLWidget on Mac would
display "garbage" or previous frame buffer content
on screen. This looks broken and raises interesting 
privacy concerns.

Fix by adding a call to glClear().

Change-Id: I507c24275e41fac0be5f518c5a70d151099ae6b8
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-03 00:24:37 +01:00
Teemu Katajisto efc9b77a6e Cocoa: make text subpixel rendering check to work for non-Apple displays
Task-number: QTBUG-27386

Change-Id: I4e12663f80060dfcea6970a705861af388d816ac
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-11-03 00:24:37 +01:00
Mark Brand e5ac4fb9b2 QIdentityProxyModel: fix sibling() reimplementation
The previously missing mapFromSource() sets the proxy model in the
returned index. Otherwise, the returned index refers incorrectly to
the source model.

Follow-up to 9dfba89c28.

Change-Id: I78ab9183820909b646a7333f28aa5ec7266fa675
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-11-02 22:42:36 +01:00
Liang Qi 698ae963e4 Update mac-specific code in qtestlib for Qt5
1. Remove the code for activate application, due to Qt 5 already
has this feature
2. Update the code for power setting

Task-number: QTBUG-23267

Change-Id: Id257c2e10e8e750a4b68cd2995c2ac4b70f8910c
Reviewed-by: Jiang Jiang <gzjjgod@gmail.com>
Reviewed-by: Liang Qi <liang.qi@digia.com>
2012-11-02 19:49:22 +01:00
Thorbjørn Lund Martsum e0fc088c0c Qt 5.0 QTreeView. Prevent manual moving of the first section
This prevents the user of moving the leftmost column.

There will be no API to allow move of the tree-structure.
It is very weird to do that, so it shouldn't be a problem.

In case it is a big problem somewhere it can be hacked with:
QTableView unused;
unused.setVerticalHeader(tree->header());
tree->header()->setParent(tree);
unused.setVerticalHeader(new QHeaderView(Qt::Horizontal));

Task-number: QTBUG-332

Change-Id: I3a251c8d0fd472ec0ad7edb20a7f3e00af7e0da8
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-11-02 19:49:22 +01:00
J-P Nurmi 3c2bfbff5f Mac: refactor scrollbar animations
Get rid of QWidget-centric QMacStyle::eventFilter() and implement the
fade out animations for scrollbars using QNumberStyleAnimation-based
QFadeOutAnimation.

Change-Id: I2000fa50d46b153e981ceafc12a53932a196382e
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-02 19:49:22 +01:00
Jens Bache-Wiig 020196d16b Make it possible to use mini and small size on mac without widget
We need to add the styleoption when evaluating the small and
mini size hints.

Change-Id: I00f8709912aa2202caef4dbdeaebb5d67cc9a9b4
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2012-11-02 19:49:22 +01:00
Michele Caini b0bc4f3279 Review of documentation.
Documentation has been updated, changes apply to Qt5 as well as Qt4.

Change-Id: I13241a3b4c16d2cb1b24f80fe26832467621923a
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-11-02 19:49:22 +01:00
Mitch Curtis 61e0fa5d68 Make it obvious that adding a QLayout to QSplitter is not supported.
It does not make sense to add a QLayout to a QSplitter, since the
splitter manages its child widgets in the same manner as a QLayout.
The result of doing so is that the child widgets inside that layout
will lead to the splitter and the layout fighting to position the child
widgets.

QSplitter::addWidget should be used to add widgets directly to the
splitter instead.

Change-Id: I640b463cae8673f87354d28636bff4dd3cfb9679
Reviewed-by: Samu Voutilainen <samu.voutilainen@gmail.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-02 18:07:54 +01:00
Uli Schlachter b4dd6faac3 xcb: Fix a trivial reply leak
Change-Id: Ib9a0f96007e6dc5e125bfcd39bd1ef09baebae3b
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-02 18:07:35 +01:00
Uli Schlachter 546abecd8a xcb: Fix a colormap leak
The function createDummyWindow() allocated a colormap, but never freed
it. Freeing it is safe after the window is created.

Change-Id: I4c876568572c9e1e9dde7047850a51917ef3702f
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-02 18:07:35 +01:00
Uli Schlachter 0b1ce5db9e XCB: Handle connection errors
When the XCB connection breaks, all following XCB function calls will fail and
function calls that are currently in progress will return. This means that
xcb_wait_for_event() will return NULL and thus the QXcbEventReader thread will
exit.

This patch uses the above behavior to make sure that processXcbEvents() will be
called. The error handling should always be done before normal event processing,
because all XCB calls will fail once the connection is in an error state. This
is especially unexpected for xcb_get_setup() which suddenly returns a NULL
pointer.

Task-number: QTBUG-27686

Change-Id: Ie3e4058f9d92bcbfc45934a8b36d9a7254e2b4bb
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-02 18:07:35 +01:00
Thomas McGuire 92d75077d6 QTranslator: Use resource memory instead of copying it
Previously, translations in resource files were loaded through
QFile and the data was copied. Now, simply use the resource memory
in-place.

Change-Id: I55a06c1e7bb15c169cc69b908b3021136beac9d2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-11-02 18:07:35 +01:00
Jens Bache-Wiig 28f36ebcc2 Fix progressbar animation on macstyle
The animation is not just supposed to run when indeterminate, but
also while it is progressing.

Change-Id: If176bd230c2f6f83781e01ea77526c24d54c8477
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2012-11-02 18:07:35 +01:00
Oswald Buddenhagen faa3759120 don't return false from removeTranslator() just because of shutting down
the condition is supposed to suppress the event emission, not to trash
the return value.

Change-Id: I3e327ceedb909ac29ba975c49b0f039b50eb4ee1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-02 18:07:35 +01:00
Jens Bache-Wiig 0506c2fbb9 Fix height of combobox in macstyle without a widget
When no widget is provided we hardcode the height and the value
was off by 2. There is no change when a widget is provided.

Change-Id: I555b5206b8750db06595a1e2572a3f8212635a9d
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2012-11-02 18:07:35 +01:00
Joerg Bornemann 40c9a3ef11 fix cleanup of QWinIoCompletionPort
The QWinIoCompletionPort thread was never properly cleaned up.
Maintain a reference count for QWinIoCompletionPort and create/destroy
it on demand.

Change-Id: I607b574484554dd3ad107dfb43b0a248bcf8b7a4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-11-02 18:07:35 +01:00
Oswald Buddenhagen 76dfe82add move QT_NAMESPACE define to qtcore's module pri file
it's basically an attribute of qtcore (and everything that depends on it).

Change-Id: I6eeefeb5df70764399d9f22dca9dbec1843b8d68
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-02 18:07:35 +01:00
Oswald Buddenhagen 32437370d6 let winmain just use qtcore
this is correct dependency-wise (anything which links to this needs to
link qtcore), and just cleaner.

Change-Id: I2c49d16fc8a0ee8bc55a3c165993fd1c4e313dab
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-02 18:07:35 +01:00
Oswald Buddenhagen bc64a7a6f7 remove pointless messing with CONFIG+=fix_output_dirs
the function is automatically performed by debug_and_release.prf,
regardless what we do with this flag.

Change-Id: Iddec69b35e0e905fdf4133ee240af37d3a8ada0b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-02 18:07:35 +01:00
Sergio Martins b8e7265a50 QNX: Fix build with QNX SDP 6.5.
__EXT_LF64SRC isn't defined in this case.

This also makes it consistent with mkspecs/common/posix/qplatformdefs.h
which uses QT_USE_XOPEN_LFS_EXTENSIONS and QT_LARGEFILE_SUPPORT
to decide which type of stat struct to declare.

Change-Id: Iaa155acc270783901376b543fdeffb5263294754
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-11-02 18:07:35 +01:00
Sergio Martins 527e67f232 Blackberry: Fix QCoreApplication::applicationFilePath() performance.
Listing all files with QDir is slow.
Instead, use argv[0] for zygotized apps and _cmdname() for
non-zygotized.

Apps run through the terminal will fall in the zygotized case,
which is ok.

Note about zygotized apps:
  Zygotized apps don't have an executable, they live in a shared
  object file.

  These apps are run through a deamon that forks and dlopens()
  the shared object ( for performance reasons ).

  For this reason we can't use _cmdname(), since it just contains
  the the file path of the daemon.

  On the other hand, non-zygotized apps have a bogus argv[0]
  when run through the navigator ( command line is fine ).

Change-Id: I9953e8fa05c9fb11c33b3a38ebab00fe33ba4c44
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2012-11-02 18:07:35 +01:00
Thorbjørn Lund Martsum d625535728 QHeaderView 5.0 - correct drop on manual QHeaderView sectionmove
This fixes an error in the calculation of the exact drop position
when an user is moving a section in QHeaderView.

Before we compared a mouse-position local to the widget
(pos) with a summed length of sections (posThreshold).

However we need to consider/substract the headers offset to make
the posThreshold comparable to the local mouse position.

This solves e.g.
Task-number: QTBUG-14814

Change-Id: If0281cf0c7b98316474f18e8eaa32c6d062dda56
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-11-02 16:25:22 +01:00
Thorbjørn Lund Martsum aa2578a100 QHeaderView - call invalidateCachedSizeHint() on clear
This calls invalidateCachedSizeHint on clear, which is a logical
thing to do.

Task-number: QTBUG-22528
Change-Id: I0befb2d492599fa8a05b1c2162bbca586e1b019d
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-11-02 16:25:12 +01:00
Stephen Kelly 9dfba89c28 Add implementations of QAIM::sibling in public APIs.
Change-Id: I2248641f2ed8735c28bd9572470520995a4a5b62
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-11-02 16:25:02 +01:00
Morten Johan Sørvig b2189acfc1 Cocoa: Fix fonts on retina displays.
Hardcode logical dpi to 72 again. NSDeviceResolution
gives us the physical dpi (144) and results in double-
sized fonts in Qt. QPlatformScreen does not currently
have a physicalDpi virtual, perhaps this can be added
later on.

Unfortunately the usefulness of a per-screen correct 
DPI metric seems questionable to me:
1) The value returned by the system is not correct,
   pixels per inch on the rMBP is around 220.
2) Qt always uses the dpi for the main screen, via
   qt_defaltDpiX/Y.

Change-Id: Ia35804be62ee7f1c623bad854f65d744dc9075d4
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2012-11-02 15:58:25 +01:00
J-P Nurmi 324a41db45 QWindowsVistaAnimation: inherit QBlendStyleAnimation
Change-Id: I15b348eb842730513480ecbb90bca87174d7c771
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-02 15:58:14 +01:00
J-P Nurmi d53ac9d8ca Introduce QBlendStyleAnimation (based on QWindowsVistaAnimation)
Change-Id: Ie289debe69ea7f6bb7833f979e39bb91290cc49c
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-02 15:57:11 +01:00
Morten Johan Sørvig 3cf5ef7fe5 Cocoa: Disable malfunctioning updateScreens().
The current updateScreens() implementations deletes
QScreens and creates new ones. Deleting a QScreen hides
all its windows. The result is that Qt windows disappears
when applicationDidChangeScreenParameters is called.

Change-Id: I5870d025d2bbf36621817cb220a835d1a6b367dc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2012-11-02 15:48:53 +01:00
Mark Brand 36514a9220 specify MODULE to avoid module .pri filename clash
Since 733ac1f6e6 the default MODULE
is the base of the .pro file for the plugin (i.e., "windows"). Since
MODULE becomes the base of the module .pri, the names of the module
.pri files can clash. Now we explicitly specify MODULE for
printersupport plugins to avoid overwriting the module .pri files of
the platform plugins whose .pro files have the same names.

Follow-up to 81f8f0db5c which renamed the
TARGET.

Change-Id: Ie83892dc419257e1df3b81bcf6ecec751ae345b0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-11-02 15:25:14 +01:00
Jens Bache-Wiig 7d497846f0 Fix font and positioning of headerview labels on mac
The old code rendered text too large. On desktop components,
the widget workaround ensured that text was clipped.

This should address both problems. Since we anyway do not
adapt the height to font size, I dont se a point in
supporting custom fonts here.

Change-Id: If3c0509cdff4dbadfd98bd4b1934eaa665148cbf
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2012-11-02 15:24:20 +01:00
Friedemann Kleint 0a91c9df01 Fix submenu navigation.
Bring back code that was removed
in Qt 4: 60324267fbb8a8554e62aaf9ef01360709292320 for QTBUG-7411 .

This code reselects the submenu action of a currently opened
popup when the mouse is moved to the submenu crossing other
actions. In addition, make sure it only triggers when
the reason is not keyboard selection.

Task-number: QTBUG-20094
Change-Id: Ibb73f83e86635083aad8b1e79fc0fdd512c65754
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-02 15:18:57 +01:00
Thiago Macieira a025a2fcfa Allow QStandardPaths (Mac, Windows, Unix) to be bootstrapped
This allows using QStandardPaths in one of the bootstrapped tools, if
required for a future need.

The Blackberry version appears to be usable in bootstrapped mode
already.

Change-Id: Ia4e9b9564395d2e151f8ac229ac2a2aa2982e92f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-11-02 15:18:44 +01:00
Jerome Pasion c808dd2745 Merge branch 'master' of ssh://codereview.qt-project.org/qt/qtbase into newdocs
Change-Id: I7e6cee190a341901dfbf8effb54ebccb91bf7a17
2012-11-02 14:41:27 +01:00
Martin Smith d9d8845d50 qdoc: Fixed the since list for modularized Qt
This required adding a "since" attribute to the index file.

Task number: QTBUG-27695

Change-Id: I97ca96b837ce404ea85ca8086718be4e7a9e21a8
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-11-02 12:41:43 +01:00
Samuel Rødal 300534fc21 Added MultipleWindows platform capability.
Several platform plugins, like eglfs, kms, etc don't support multiple
windows as there's no system compositor, they're rendering directly to
a single back buffer. By adding a platform capability we'll be able to
provide better error reporting when an application tries to create
multiple QWindows on a single-window platform. Also, QML apps can use
this capability to figure out whether they should create a QWindow for
dialogs / popups / menus, or whether to just create items in the same
scene, that are shown on top of the rest of the content.

Change-Id: I15b8d21ee2bc4568e9d705dbf32f872c2c25742b
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2012-11-02 12:17:27 +01:00
Friedemann Kleint 8727826871 QFileDialog: Do not pass on file model root to QFileDialogOptions.
QFileDialog::selectedFiles() defaults to file model root
for 'AnyFile', which confuses native dialogs since
selectedFiles == directory in that case. Split up
QFileDialog::selectedFiles() and skip the default when
initializing QFileDialogOptions for native dialogs.

Change-Id: I65cda182df8b1748159058fc361c10d97f5650ce
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-11-02 12:16:49 +01:00
Joerg Bornemann c6f3d919dd fix error handling bug in QWindowsPipeReader
If ReadFile returns with an error then we must set our internal state
accordingly. QWindowsPipeReader::readSequenceStarted must be set to
false. If ReadFile fails, we're not within a read sequence.
Also, we must handle the ERROR_BROKEN_PIPE error.

Task-number: QTBUG-25342

Change-Id: Ic9247f170fa9cc47fa7e45d0f47ccfedac06a593
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-11-02 12:16:49 +01:00
Frederik Gladhorn a4aa5ea63f Use fusion instead of motif.
Change-Id: Ic75ea959ac825efabf0f3a8606dfca4b65fae474
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-02 12:16:49 +01:00
Jon Severinsson 53e6cb3ff6 Fix the gregorian date <-> julian day calculations in QDate
The old code is just plain wrong for negative julian days. Replaced
with plain math from The Calendar FAQ [1], which is correct for all
julian days, provided you use mathematical integer division (round to
negative infinity) rather than c++11 integer division (round to zero).

[1] http://www.tondering.dk/claus/cal/julperiod.php

While the conversion code works for up to around JD +/- (2^63/4), we
only use an int for the year in the API, so this patch limits minJd()
and maxJd() to 1 Jan (2^31) BC and 31 Dec (2^31-1) AD, respectively.

Note that while the new conversion code looks like it would be more
expensive than the old, gcc will in fact be able to optimize it to be
slightly faster (probably because x86 hardware implements round to
negative infinity, and so GCC manages to optimize floordiv to a single
instruction, compared to the three instuctions needed for operator/).

In the following test application, run with a release mode Qt and
redirecting stderr to /dev/null, I measured an improvement from
6.81s +/- 0.08s to 6.26s +/- 0.16s user time over five runs on an
otherwise idle x86_64 system.

int main(int, char *[])
{
    int year, month, day;
    qint64 jd;
    for (qint64 i = Q_INT64_C(-1048576) ; i < Q_INT64_C(1048576); ++i) {
        QDate::fromJulianDay(i).getDate(&year, &month, &day);
        jd = QDate(year, month, day).toJulianDay();
        qDebug() << jd << year << month << day;
    }
}

Change-Id: Ifd0dd01f0027f260401f7f9b4f1201d2b7a3b087
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-02 12:16:49 +01:00
Samuel Rødal f01b498310 Introduced QWindow properties {min/max}imum{Width/Height}
These are useful when QWindow is exposed to QML.

Change-Id: I7ec49ef365183e2c784605889e8ea22c2ef34781
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-02 12:16:49 +01:00
Mitch Curtis 774b643b85 Update QDateTime serialisation docs and increase version number.
Refer to Qt::TimeSpec instead of listing potential values (which are
incomplete).

Also, the current QDataStream version number is now 13.

Change-Id: I9a68385977dc2fe4dacee75330cb539850478480
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
2012-11-02 12:16:49 +01:00
Mitch Curtis 56552a5633 Improve QDateTime test coverage.
Change-Id: Ic521d9d2ffb1b8e3b14d9cebdeb3dc7a5e08580e
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2012-11-02 12:16:49 +01:00
Miikka Heikkinen 2f6543ebcd Remove a couple of unused variables.
Change-Id: I33528cdb27801317d311d39e4499d2db6a291377
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-02 12:16:49 +01:00
Leena Miettinen 8f1687c572 Doc: add landing page for Qt Test
Replace "QTestLib" with "Qt Test". Some style and language edits.
Remove some empty headings.

Change-Id: I568b4bbde981c3ef1899c830931892c16b66b4e2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2012-11-02 10:35:30 +01:00
Jan Arve Saether 12e92ff807 Expose IAccessibleTable2 to non-conformant screen readers
This seems to be the established practice.

Change-Id: I75a65d722a026ab0eb1805688743f46aba406e6c
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-11-02 10:28:34 +01:00
Jan Arve Saether 5b19228c2a Compile cocoa with QT_NO_ACCESSIBILITY
Change-Id: I82b5dbf1bce94bd928eee207992c0036edc527ad
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-11-02 10:28:23 +01:00
Friedemann Kleint 39964b94c9 XCB: Use screen's client leader as fallback for transient parent.
Modal dialogs that do not have a QWidget parent may be hidden
by their parent unless they actually have a transient parent.

Task-number: QTBUG-27786
Change-Id: I7847df3517e5ba6e8d77a2a18c905e908a3cd2f4
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-11-02 06:41:40 +01:00
Liang Qi e3b78896d2 Fix warnings when using QImage as QtConcurrent::mapped return type
Task-number: QTBUG-27391

Change-Id: I68b37ffa645be21d4d23b205bc052540b9aba7f4
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: João Abecasis <joao@abecasis.name>
2012-11-02 00:38:51 +01:00
Gabriel de Dietrich 30542304f1 Mac: Add support for WindowMasks platform capability
Also brings back a working QWidgetPrivate::setMask_sys().

Change-Id: Idde9eea15d28bb0299258df81322a5a3ff0b9493
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-02 00:38:51 +01:00
Oswald Buddenhagen 81f8f0db5c disambiguate plugin name vs. windows platform plugin
static plugin linking needs unique names.
also, non-unique names are generally somewhat counterproductive.

Change-Id: Idffba2b442b98dd2b0917f9f0af89f0694a99196
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-11-01 22:34:57 +01:00
Giuseppe D'Angelo a2eff5c244 Improve / fix QRegularExpression* docs
Fixed a couple of typos; also, wrapped the snippets in a main() function,
so that now the snippet file can be compiled
(and therefore the compiler can help us at detecting those typos).

Change-Id: Ie182a9c4cb451db13a6f4bfa5eaed66bc6966c8f
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-11-01 22:32:24 +01:00
Oswald Buddenhagen 7d20f3dd10 rewrite default spec handling
instead of symlinking (on unix) or creating a forwarding spec (on
windows), just put the default specs into (the bootstrapped)
QLibraryInfo.

Change-Id: I595500ef7399f77cb8ec117c4303bc0a2ffe505f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-11-01 20:17:57 +01:00
Oswald Buddenhagen 8abfe4bb43 purge dead defines
Change-Id: I8770416a19fb0951c0096cedf3f36c3493437903
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-01 20:17:57 +01:00
Oswald Buddenhagen 8c39b4c05f beef up qt_plugin.prf
it now defines the DESTDIR and creates an INSTALLS rule.

Change-Id: I15a462ccad9acbe3521c352fa98327825dc27c05
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-01 20:17:57 +01:00
Jens Bache-Wiig f5bc3fb2f0 Some Vista style cleanup
Creates a function for cloning the style options
used by Vista style.

Change-Id: I4d83661acd6bdfff5c633447046a206018b537af
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2012-11-01 20:17:57 +01:00
Jens Bache-Wiig 70dea61670 Make ToolButton work with Macstyle for components
We needed a new helper function for this. The widget cast was
breaking desktop components. By using accessible role, we can make
it work for both use cases without depending on the widget.

Change-Id: Ic854dc45a4e5b7a50c5be701e903d58a4a914ee5
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-01 20:17:57 +01:00
Jens Bache-Wiig 8c15be7bb2 Fix groupboxes for desktop components on mac
The logic was a bit odd as it would check if the groupbox had a
font set and then override it anyway. Since we anyway want the
fallback to be used for components we just make sure that the fallback
is to use the same code path.

Change-Id: Ic5071b43cda76e2bb7356a6f71cc8458c4e8bf27
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-11-01 20:17:57 +01:00
Harald Fernengel 5b21b6a7f0 Fix build when libQtGui is not available
Change-Id: I9e35d9302f58d283459f7e625c4e0b87fd1dc2bf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-01 18:16:22 +01:00
Stephen Kelly 3de5a8e78b Strip trailing whitespace in itemviews.
Using

 git ls-files -z |     xargs -0 sed -i 's/ \+$//'

in the relevant directories.

Change-Id: I861ef9952fb32ed2db9ec8b67864ec7d0d61f0f2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-01 16:10:32 +01:00
Christian Strømme 731ba8ed08 Fix for leak in QFuture
To avoid leaking when converting a QFuture<T> to a QFuture<void> we need
to have a separate ref. counter for QFuture<T>. When the last QFuture<T>
goes out of scope, we need to clean out the result data.

Task-number: QTBUG-27224

Change-Id: I965a64a11fffbb191ab979cdd030a9aafd4436c2
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2012-11-01 16:09:29 +01:00
Jan Arve Saether d45cebbf4d Remove #ifndef QT_NO_ACCESSIBILITY around qaccessible.{h,cpp}
Jens has an use-case for using accessibility from styles.

By making the enums always available regardless of QT_NO_ACCESSIBILITY,
it makes the style code less littered with ifndefs.

It should (ahem) also solve the problem where Qt Desktop components
does not compile if QT_NO_ACCESSIBILITY is not defined.
This happens on some linux distros, since atspi-2-dev is not installed
by default, which again causes grief for those affected.

Change-Id: I15d65df8c752a0c4af37cc7b4d908a757cb6a9c4
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-11-01 16:07:42 +01:00
Jerome Pasion e8702e5cef Qt Core: Removed unnecessary group membership.
The 'Non-GUI Classes' page is not relevant.
Also removed landing page from the 'modules' group.

Change-Id: Ie2d34d36f98a4697becfebd5fbc215913bbb41ce
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-11-01 15:59:36 +01:00
Jens Bache-Wiig 62b9ca4320 Fix buttonsize on macstyle when no widget is defined
The previous size was incorrect and added far too much height
when the widget was undefined. When it was defined it would get
its size corrected so the patch should have very little effect on existing
widget code.

Change-Id: I7c22f4226eda270f0d71050bc4248686b035cb39
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2012-11-01 13:48:48 +01:00
Kai Koehne e27a588643 Testlib: Disable gcc warning about deprecated qInstallMsgHandler
Fix warning: 'void (* qInstallMsgHandler(QtMsgHandler))(QtMsgType, const char*)' is deprecated (declared at qtestlog.cpp:85) [-Wdeprecated-declarations]

Change-Id: I28d2baf696fdeddec90780edc88574fc368468db
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-11-01 09:06:15 +01:00
Andrey Leonov 4b71432987 Adding PAC and exclusion list support to BlackBerry Qt proxy implementation.
The additional proxy functionality is only available starting BPS API version 3.1.1.

Change-Id: Iadd2950119fa1dca706e8cd34804b038e3f704bc
Reviewed-by: Peter Hartmann <phartmann@rim.com>
2012-10-31 17:55:55 +01:00
Martin Smith 7c50e0b8df qdoc: Fixed All Namespaces list
In Qt5, each namespace has a URL, so the test for an
empty URL fails in findAllNamespaces(). The test is
now wrong and is therefore removed.

Task number: QTBUG-27695

Change-Id: I888f70aff6e6e6c696e173caa91b5dcfabdab0ec
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-31 11:52:38 +01:00
Stephen Kelly 03b9b423b0 Generate instances of types in the CMake tests.
All modules currently have a test_modules CMake test. The
new module_includes test has very similar requirements, and can
obsolete the hand-maintained test_modules tests in all modules.

After all test_modules have been removed in other repos, the
module_includes test can be renamed to that name.

The types chosen need to have a constructor which can be invoked
with no arguments. QtConcurrent has no public classes which fit
that description so it is still tested separately

Change-Id: Id7929cd32b3112c293cbf5e6964cc894a697f9b1
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-10-31 07:16:03 +01:00
J-P Nurmi dca34854ef Fix QCommonStylePrivate::stopAnimation()
Make sure that QCommonStylePrivate::animation() does
not return an animation that was already stopped.

Change-Id: I35b7f8e0fabff9908f247b3632e35388e2c95a6d
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-30 19:40:31 +01:00
J-P Nurmi 85a8df184b Add QNumberStyleAnimation for fading out scroll bars on Mac
Change-Id: I6a85ed069a418d62078af6490a3d3186d5599a95
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-30 17:51:21 +01:00
Eskil Abrahamsen Blomfeldt 788e1b2ffa Pixel-align vertical metrics in QTextLayout again
To avoid regressing due to de58eb64bc,
we need to return a pixel aligned height in QTextLine::height() and
also use pixel aligned heights when calculating the position of
lines as well as the bounding rect of the layout.

Later, we can add a QTextLine::naturalHeight()
or something like that which gives the fractional value, but until then,
we need to access private API in QPainter to get the correct
alignment, since we still don't want to align the height of the
last line in the layout, we only want to align the origin of each
line.

Task-number: QTBUG-27740
Change-Id: I12325f07d33aaf1a1b967e0a11492759d0f565d9
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-30 17:49:26 +01:00
Martin Smith 09ebab46b6 qdoc: Fixed All Functions list
In Qt5, each class has a URL, so the test for an
empty URL fails in findAllFunctions(). The test is
now wrong and is therefore removed.

Task number: QTBUG-27695

Change-Id: If1aa823d4c59b91c67113f77a1a57c04ff7d1a02
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-30 15:07:08 +01:00
Thomas McGuire fc0cbef595 QNX: Use inotify on QNX systems that support it
Change-Id: Ia9bf8d3c202b17746036e203268ef6229aaa900d
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-10-30 14:52:14 +01:00
Jason Barron 9f390bb686 ANGLE: Add TextureSSE2.cpp to SSE2_SOURCES.
This file needs to be compiled with SSE2 intrinsic support.
It happens to compile on x64 system because SSE2 is implied
here, but on 32-bit compilers (in this case MinGW 32-bit) it
needs to be explicit.

Change-Id: I92dd5bc9257b6dd344ab02341475c023327b756a
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2012-10-30 12:53:46 +01:00
Miikka Heikkinen a48508cd76 Send leave to most recently entered window when modal dialog is shown.
If a modal dialog was shown as a response to button click, the button
retained its hover highlight, because it didn't get leave event.

Fixed by tracking the most recently entered window and sending a leave
to it when modal dialog is shown that blocks it.

Also modified tst_QGuiApplication::modalWindow() autotest to check
for enters and leaves.

Task-number: QTBUG-27644
Change-Id: I387647e18a762a39d523e3df31221b9583a39f9d
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-30 12:53:46 +01:00
Andy Shaw 50ec06da2c Only use the user set page margins for custom paper
When the QPrinter is initalized then it will set up page margins based
on the default paper size. If the paper size is changed to be a custom
one then it should disregard the margins for the default paper size.

If the page margins are set explicitly beforehand then it will use these
page margins.

Change-Id: Ic535c3a80b8b217dbd5eb5f4fb2cbc0ab1354563
Reviewed-by: Titta Heikkala <titta.heikkala@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-10-30 12:53:46 +01:00
Thomas McGuire 03cd922e31 QNX: Remember information on whether a file is a link
This avoids an additional call to lstat() When using QDir::entryList()
with the QDir::NoSymLinks flag.

Change-Id: I3b602546c6a4502ae25a5748a12c60e69325bb5d
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: João Abecasis <joao@abecasis.name>
2012-10-30 12:53:46 +01:00
Friedemann Kleint d402d0c3e3 Bring back native dialogs for Windows XP.
The  CLSID_FileOpenDialog, CLSID_FileSaveDialog-based dialogs
are available from Windows Vista on only, the old Shell-function
based ones are required for Windows XP.

Add a command line argument to switch dialog types.

Extract some common functionality for both dialog types.

Task-number: QTBUG-27621

Change-Id: I224c5c4574c2ff54daf354f00d3d1f82abc6f459
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
2012-10-30 11:07:27 +01:00
Liang Qi edfb24009c Mac: Correct writingSystem check value for Chinese
For simplified and traditional Chinese.

Based on the Apple doc: Internationalization Programming Topics -
Language and Locale Designations.

Task-number: QTBUG-27130

Change-Id: I677563525edd607583561be20f4dbed24b2443a5
Reviewed-by: Jiang Jiang <gzjjgod@gmail.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-30 11:07:24 +01:00
Morten Johan Sorvig adb156e4dd Cocoa: Disable touch events.
Enabling touch events has a negative impact on overall
performance. In particular, enabling touch events seems
to disable scroll event compression, resulting scroll
processing lag.

Until we find a solution where we can have both proper
scrolling and touch events we choose scrolling over
touch events. Applications that disagree can enable 
touch events manually:

NSView *qtView = (NSView *)QGuiApplication::platformNativeInterface()->
	nativeResourceForWindow("nsview", qtWindow);
[qtView setAcceptsTouchEvents:YES];

Change-Id: I85cdd6e8c8ed8685c6cd5418c89fed6af02887cd
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2012-10-30 07:24:17 +01:00
Thiago Macieira 9fb536adda Use -ffunction-sections in libbootstrap.a
So that the linker discards unused functions too. Some of our .cpp are
way too big

Change-Id: I1a2685be6a5e7fd3cf34f18d545483c63c2343dd
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2012-10-30 04:29:18 +01:00
Mitch Curtis 6497649730 Check for both A and P when converting QDateTime to string.
hasUnquotedAP currently only checks for an a or A, which is wrong
according to both the toString documentation and the comments for
hasUnquotedAP.

Change-Id: I03015734b846fe761085cf8f8fca2b29210cff97
Reviewed-by: Jon Severinsson <jon@severinsson.net>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2012-10-30 00:06:26 +01:00
Jonathan Liu d3c1a9f387 Define additional math.h constants if not already defined
The M_E, M_PI_2, etc. math.h constants are not defined with MinGW-w64
GCC when compiling with -std=c++11.

Task-number: QTBUG-27561
Change-Id: I2267c170dd3788abc9c37425a9be514bbae51f5a
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Alexey Pavlov <alexpux@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-30 00:06:26 +01:00
Peter Hartmann f7893223e8 QtNetwork: introduce configure switch to use system proxies by default
This option is opt-in (default: no). When configured with
"-proxies-system-default", Qt automatically picks up the system
proxies.

Change-Id: I8cc002f29587854f448d97117b08c43d8eedec76
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-30 00:06:26 +01:00
Thiago Macieira 3e52901641 Remove qstandardpaths_json.cpp
This implementation is unused. It was part of a platform that will
unfortunately not see the light of day. Remove it since no one is
maintaining it.

Change-Id: I9e675225a32f227739c688608f937df66a14e9a4
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-29 22:21:32 +01:00
Thorbjørn Lund Martsum af437047a2 QMap - improve QMap stl-map ctor
We can insert directly on the most left-most Node.

We always enforce an insert here (unlike the insert call),
but that is not a problem since the keys in a std::map are unique.

Change-Id: Ib409b90ffc57a5a43dab4a4b08d34f6fdabd057f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-29 22:21:32 +01:00
Konstantin Ritt 3a333f2d92 QSyntaxHighlighter: minor code de-duplication
The (r.start != -1) case is equal to (i == formatChanges.count()) case
in the loop; no need to exit the loop just to do exactly what it did.

Change-Id: I4129d8012399895c2fce70b26716ca5aeadee79c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-10-29 22:21:32 +01:00
Konstantin Ritt 7aa0adf130 QFontEngineMulti: Fix possible crash in stringToCMap()
in case when the layout is partially initialized.
We shouldn't access any data except of indices
if GlyphIndicesOnly flag has been passed in.

Change-Id: I264689b498e0f9de8b5c040d47dbae4f6ef391c4
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-10-29 20:31:08 +01:00
Jan Arve Saether c21564b1ef Remove some dead code
This code became dead when the Symbian code was removed, and should
ideally have been removed at that point.

You can find the old code in 4.8 repo:
    bool showSystemDialogFullScreen = false;

    if (qobject_cast<QFileDialog *>(this) || qobject_cast<QFontDialog *>(this) ||
         qobject_cast<QWizard *>(this)) {
         showSystemDialogFullScreen = true;
    }

    if (showSystemDialogFullScreen) {
        setWindowFlags(windowFlags() | Qt::WindowSoftkeysVisibleHint);
        setWindowState(Qt::WindowFullScreen);
    }

So, obviously, stuff inside the #ifdef Q_OS_SYMBIAN was removed, but
the side-effect of that was not realized.....

Change-Id: I6b5d1066c97367c354af4da1ce6b9c60c8dc2120
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2012-10-29 20:27:37 +01:00
Jan Arve Saether c360fbcd6c Do the actual removal of the Soft Keys API and related code
In addition to the actual removal of the softkeys API in QAction,
this commit removes some enums related to the softkeys feature:
  Qt::WA_MergeSoftkeys
  Qt::WA_MergeSoftkeysRecursively

It also removes some "zombie" enums:
  Qt::WindowSoftkeysVisibleHint = 0x40000000,
  Qt::WindowSoftkeysRespondHint = 0x80000000,

  (The only implementation that used these were removed when
  qapplication_s60.cpp and qwidget_s60.cpp were removed.)

Change-Id: Ib6fc6d543def4757383d5f19256199d9d190c614
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2012-10-29 20:27:27 +01:00
Konstantin Ritt 63e451194e Fix build on MinGW after 0f14ea3f3a
Also generalize set _WIN32_WINNT to 0x0501 and _WIN32_IE to 0x0501 globally,
as it is out minimal requirement these days.

Change-Id: I8ca9102d49c37f908fd8ac032f707f8fe4fdcb22
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-29 18:22:29 +01:00
Sergio Ahumada 914e1f3608 Remove some dead code in switch statements
Following the Code Style described in
http://qt-project.org/wiki/Qt_Coding_Style#e289ee44592e9c32d4212069f0806daf

There is no need for a 'break' after a 'return'.

Change-Id: I1eca350391a7e4e14e504d60b24b69982cc5ac47
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-29 13:51:10 +01:00
Friedemann Kleint e880ff9cae List possible matches when specifying invalid test function.
List functions matching the command line parameter instead
of dumping all functions.

Change-Id: Ic504587b1036f09702f47579f90406333c4efbeb
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
2012-10-29 13:46:55 +01:00
Jerome Pasion b1e739b524 Qt GUI: Adding Rich Text Processing documentation from qtdoc
-included the snippets
-editing for technical accuracy still to be done.
-ported missing files from Qt 4

Change-Id: I0b2d27630b762c6518c08973a40b476d7852001d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-10-29 10:42:34 +01:00
Jan-Arve Saether b626b98b95 Implement QAccessibleLineEdit::characterRect()
It was probably not implemented because it needed to access
private APIs.
However, accessing those from this a11y plugin is unproblematic.

Forward-ported from Qt 4.8 with change
d2fb64d52fc6ec229d775f829a9a0cb3d251aad3 (and then slightly improved)

Change-Id: Ifa2d48c152fd75fc1fff49a05369787a7db3b902
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-10-28 00:50:09 +02:00
Sze Howe Koh 47459d3350 Enable the "#include <QSql>" camel-case header, for the QSql namespace
The sync.profile Perl script will now generate the "QSql" header file
during compilation. By removing the \inheaderfile command, the
documentation will now display the namespace's own name as the header
(i.e. "QSql" in this case).

Previously, the only documented way to include the namespace was to
include the whole module, which is expensive. This change also makes
QSql consistent with other namespaces, such as QSsl and QAudio, which
have their own dedicated camel-case headers.

Part of the Header Consistency Project
(http://lists.qt-project.org/pipermail/development/2012-October/007421.html)

Change-Id: Ibb82d442956e767c13b82f1e552aabdf2e8ff110
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-10-27 22:21:46 +02:00
Frederik Gladhorn b36e254e41 Accessibility: remove redundant role function
The role is already set through the ctor,
no need to explicitly do it again.

Change-Id: I0027068c66b5771b628a9fe10fbfe929e7bf1554
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-27 20:24:43 +02:00
Frederik Gladhorn e6258e390a Accessibility: make sure right objects are cached on linux
This patch goes together with 730a5a994f
and is the second code path that deals with the hash of valid objects.

Change-Id: Ia7b0995cb667cfce5f7697aa61856e44f745a932
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-27 20:24:33 +02:00
Frederik Gladhorn 31b4507cf4 Be more careful about asserting in accessibility.
It is possible to call the accessibility update for any widget,
even if it doesn't implement the right interfaces.

While that is bad, warning about it is better than asserting.

Change-Id: I23c0c783083f73fb816d75b2c9b78efd603edcb6
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-27 20:21:56 +02:00
Frederik Gladhorn 8a0602873e Doc fixes for qcoreapplication.
Change-Id: I58806424b37ebf7bdf9b7f1ead9953b605332361
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-10-27 20:21:50 +02:00
Frederik Gladhorn 596f23554a Clean up index handling in itemviews accessibility.
Change-Id: Icc017c7df9cb0dc4bf17e5168c1e3acda6af7523
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-27 14:22:52 +02:00
Thiago Macieira 1baadd8513 Fix compilation: QChar(char) is "from ASCII"
This fixes the build if QT_NO_CAST_FROM_ASCII is defined.

Change-Id: I0273794a83b0adaa0c15a9910cbcc9ea5d48ef7a
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-10-27 07:37:52 +02:00
Thorbjørn Lund Martsum 6e4d7bbb0b QMap 5.0 - keep track of leftmost node (BIC)
This suggestion keeps track of the most left node.
The point is that constBegin() becomes a lot faster.

That speeds up iteration a bit, and makes it O(1) to get the
first element. The penalty in insert and remove is very small.
On large trees it seems to be less than 1%.

It should be noticed that constBegin() is a very common hint
on my planned change to 5.1, and this opperation will without
this patch cost 2 x log N. One when the user calls the hint
with begin - and one where it is compared with begin.

Other std::maps has a very fast begin(). E.g
http://www.cplusplus.com/reference/stl/map/begin/
(begin with constant time)

Change-Id: I221f6755aa8bd16a5189771c5bc8ae56c8ee0fb4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-27 07:35:57 +02:00
Thorbjørn Lund Martsum cfc3eeea1b QMap - use hint on insert in QMap::toStdMap
Giving the std-map a hint (normally) improves insert performance.
There seems to be no reason not to provide this hint.

Change-Id: I4344607ebf54574a3ae9666d87a41a3c14762361
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-27 07:35:48 +02:00
Samuel Rødal d998469740 Prevent potential crash in QXcbCursor::queryPointer().
xcb_get_setup might return 0, but we already have it in QXcbConnection.

Task-number: QTBUG-27686
Change-Id: I58418aedd6bc121ae2b9605389beb3f6612d7fb7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-26 22:39:39 +02:00
Samuel Rødal fe4068a12b Check the EGL error before calling eglTerminate().
Otherwise we always get EGL_SUCCESS, which is not very informative.

Change-Id: I25311c14108ae385913aa9dc159a1f5fad142342
Reviewed-by: Rainer Keller <rainer.keller@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2012-10-26 22:39:30 +02:00
Bernd Weimer 9dacccd039 Removed usage of pipe in Blackberry event dispatcher
Using a pipe for thread wake-ups is inefficient and can introduce significant
latency. Replaced the pipe by directly sending a BPS event.

Refactored the wake-up code in the private class of the UNIX event dispatcher.

Change-Id: Ic073b0b56c3cbf8327fc6bc3c37132cc3583ef86
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2012-10-26 20:49:01 +02:00
Jon Severinsson 02dacc2c06 Change one int to qint64 in QDateTime::setMSecsSinceEpoch(qint64)
This one was missed when the QDate range was extended.

Change-Id: I0dbcc9fdebca88f7397203d8e539429dcff9ac30
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-26 20:49:01 +02:00
Mark Brand 5ca03eddd3 QSqlRelationalDelegate: remove setEditorData reimplementation
Since commit 84787d82ee
QItemDelegate::setEditorData() works out of the box
on QComboBox.

Change-Id: Ic9839f7eccccbdb787ce204fe98311335ee16b92
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-10-26 18:57:54 +02:00
Stephen Kelly bb8c83986f Set the Directory flag when we find a directory.
Change-Id: I103a0b8e7b7ba673d00f920944026d7d04fac193
Reviewed-by: hjk <qthjk@ovi.com>
2012-10-26 18:57:54 +02:00
Jerome Pasion 9bf0176802 Qt Core: Adding a landing page and sorted the documentation.
-Added \annotatedlist for the groups
-Sorted and placed the pages on the index page.

Change-Id: Id1a4344c0b39f00036f5ac29b1fcb869d5602d2b
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-26 17:08:03 +02:00
Cyril Oblikov 38e02188ee Possibility to change custom Drag&Drop cursors while dragging something. Implementation for Windows and X11.
Additional checks to figure out if new Drag&Drop cursors where set. This means it is possible now to keep QDrag object in your program and call setDragCursor() method every time we need to change cursor depending on context.

Change-Id: I4be69e44b2863371a7ffbb29efc17c18210d6cde
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-26 17:08:03 +02:00
Jonathan Liu 8900bc778f QGLTextureGlyphCache: Fix text rendering artifacts on NVIDIA
Check GL_VENDOR to test whether using NVIDIA graphics. On Linux,
GL_VERSION and GL_VENDOR contains "NVIDIA". On Windows, only
GL_VENDOR contains "NVIDIA".

Task-number: QTBUG-27658
Change-Id: I5e74d07ecb9522d1a86ac2953415a51bbdbe8c49
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-26 15:25:32 +02:00
Mark Brand 5bddaf76e0 QComboBox: new signal currentTextChanged
Adds NOTIFY to currentText property.

Test included.

Change-Id: I3e92b585ad6697891d61537c82f6ab9e8beb1a00
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-10-26 15:24:19 +02:00
Mark Brand 84787d82ee QComboBox: fix use in QDataWidgetMapper/QItemDelegate
QItemDelegate and QDataWidgetMapper use the WRITE method on the USER
property to set a value in a widget. This did not work for QComboBox
whose USER property currentText lacked a WRITE method.

This change adds the missing setter and flags it as the WRITE method.

The setter setCurrentText() simply calls setEditText() if the combo
box is editable. Otherwise, if there is a matching text in the list,
currentIndex is set to the corresponding index.

Test included.

Follow-up to 816c554017 which restored
currentText as the USER property.

Task-number: QTBUG-26501
Change-Id: I5f2f999e60b09728ca03ead4e28fe36d1f3ee189
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-10-26 15:24:00 +02:00
Thorbjørn Lund Martsum 4fbdb969fb QHeaderView 5.0 - no emit of sortIndicatorChanged when unchanged
There is no reason to emit this when there is no change.

Change-Id: I34f0ceec7c4b0959b77bc5be3ce2c2ad55864598
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-10-26 15:23:46 +02:00
Stephen Kelly 49555e3ac9 Add a CMake macro to test module includes
The variations of includes which should work are tested. For example,
in the case of testing the QtCore module and QObject include, the
following includes are generated and compiled:

      #include <QObject>
      #include <QtCore/QObject>
      #include <QtCore>
      #include <QtCore/QtCore>

As the private include directories are not available to the compiler,
this also tests that private headers are not included from public ones.

Change-Id: Id03d0fe290c9691e0f7515015892991d1701ab72
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-10-26 15:23:30 +02:00
Jerome Pasion e52f178b0d Doc: Removed the HTML template from the .qdocconf files
-qt-module-defaults.qdocconf already contains the HTML template.

Change-Id: I5757741166f0f688ce0e8a4e77ed45fd4d72f1c7
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-10-26 15:00:04 +02:00
Andy Shaw 356f3c89b8 Fix syncing of visibility and enabled for menus on Cocoa
Fixed menu handling on Cocoa so if a menu is enabled/disabled or made
visible or not then it will keep this in sync with the appropriate
native menu entry.

Change-Id: If269185fcf065fb1b2f60d6ef8c27c107eb4509f
Reviewed-by: Pasi Matilainen <pasi.matilainen@digia.com>
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2012-10-26 14:53:09 +02:00
Martin Smith 9024570d79 qdoc: Fixed All Classes list
In Qt5, each class has a URL, so the test for an
empty URL fails in findAllClasses(). The test is
no longer necessary and is removed.

Task number: QTBUG-27695

Change-Id: Id3e7b17c9d68fc59340f88d1300f2a422ad2a18c
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-26 14:50:13 +02:00
Sergey Borovkov 8c22c9be3e Remove unnecessary call to png_set_sBit when writing png files
According to libpng documentation - PNG files reduce possible bit depths
to 1, 2, 4, 8, and 16. If data is of another bit depth, it's possible to
write an sBIT chunk into the file so that decoders can recover the
original data if desired. Since we hardcode depth to 8 there is no need
to call png_set_sBit

Change-Id: I8e3941675019b920051775128ff4cf2bf1ca7c4a
Reviewed-by: aavit <eirik.aavitsland@digia.com>
2012-10-26 14:20:21 +02:00
Tor Arne Vestbø 6e5818f2bb Merge remote-tracking branch 'gerrit/master' into newdocs
Change-Id: I10cf9f915c602c8e5a0e7d7c9e17b7bc5ca00640
2012-10-26 12:28:53 +02:00
Yuchen Deng 3ab4afb743 Angle: Fix shadow build
Change-Id: I4ce4741ba1aa4009bd4984b4fad5a1b407d2cce5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-26 12:27:47 +02:00
Peter Hartmann b9551c1b47 Blackberry bearer plugin: Only Report working interfaces as active
Some interfaces might be connected but not working (e.g. no IP address,
no gateway etc.)

In practice, this prevents the USB interface (among others) from
being reported as active and thus the QNetworkConfigurationManager
as being reported as online.
We only want Wifi and 3G etc. connections to be reported as online
when they are up.

Change-Id: I59fbe53bed8392d363a0191d589737f2304c853f
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Andrey Leonov <aleonov@rim.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-10-26 12:25:08 +02:00
Rafael Roquetto c89dc4fdd2 QNX: Query dynamic buffer count at runtime
While unlikely, there are cases in which QQnxWindow::renderBuffer() is
called before the window buffers have been created. Without this check, the
program will abort on QQnxBuffer constructor, since the value that will be
passed to it will be of an invalid buffer.

Change-Id: I9ad5926dca856570032dcf10b6975e8f3364c284
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-10-26 12:24:56 +02:00
Oswald Buddenhagen 938dbe1d93 remove last traces of qpluginbase.pri
Change-Id: Idafdab98016cd20f0605a46bf9cb8938da41a99e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-10-26 12:20:48 +02:00
Zeno Albisser 9214b39beb Add glxContextForContext function to QXcbNativeInterface.
This change enables receiving the native GLXContext object that is used
by a QOpenGLContext in case of GLX.
This clearly is non-public api that is only meant to be used as a
last resort for cases where it is really necessary to get hold of
a native context object.

Change-Id: I7f1f974f18063ed334b8034a0c0192c875c10cec
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-26 12:09:28 +02:00
Friedemann Kleint d0aa81ee10 Fix a crash in QFileDialog when selecting an invalid name filter.
When nameDetailsVisible is set to false and an invalid/empty
string is passed to selectNameFilter(), the regexp used to
strip the filter off the suffixes returns empty and a crash
occurs.

Change-Id: I926ea49514ff25a103977d8121fca1cf83d647f5
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-10-26 11:51:56 +02:00
Miikka Heikkinen 8ac2ea94d3 Fix enter/leave event generation between native widgets when grabbing.
Removed enter/leave event generation when moving between between
related windows in QWidgetWindow (i.e. native widgets) while some
widget was explicitly grabbing the mouse input. This makes enter/leave
event generation identical to non-native widgets.

Task-number: QTBUG-27551
Change-Id: I4996007bd7922e073a2957ad267a6373e8f3fecc
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-26 11:18:12 +02:00
Cyril Oblikov 0f14ea3f3a New-style Windows cursors when dragging object from outside
New-style drag&drop cursors are used now on Windows when user drags
object to application from outside (e.g. image from Explorer). This is
achieved by using IDropTargetHelper.

Change-Id: I67e1db73cf433e235fce891eef0093cd4e605904
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-26 11:00:04 +02:00
Kevin Funk 0e39a0efd4 Make compile on WCE after c3b9398
Change-Id: I594893eb80ecade903e592c41c7117b08bc946a5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-26 10:59:44 +02:00
Jens Bache-Wiig c6151b75b0 Remove Windows as a dependency of mac style
There is not need to have this dependency any more
since mac is overriding anything we depend on in Windows
style anyway.

Change-Id: I8fe0e0cc949265170947b492e04e08fdd4cf5027
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2012-10-25 19:26:18 +02:00
Jocelyn Turcotte 4b1e476da0 Happy Eyeballs: Make sure that we commit the address type for SSL connections
_q_connected checks if pendingEncrypt is false before committing the
address type. This could be used to delay the commit but nothing is done
later in _q_encrypted, so the commit is avoided completely.

This causes SSL connections on a network without IPV6 support to hang
if the domain name record contains both IPV4 and IPV6 addresses.

As SSL is handled a few layers above IP, there should be no reason to
avoid/delay committing the address type if the TCP connection was
established surccessfully. Thus this patch is removing the check completely.

Change-Id: If56a3365f9f51712b4aae3f7902711711ace86fd
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-10-25 16:23:49 +02:00
Jens Bache-Wiig 79a389c346 Remove widget dependencies on Vista style animations
This patch will make it possible to get animations on
desktop components without using the widget pointer.

Change-Id: I2d2eca111dab0d96f276ff3627505c0652c4b4e5
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2012-10-25 16:09:34 +02:00
Konstantin Ritt 38630bc35a QTextEngine: Support SMP code points when case changing
Semi-related to QTBUG-17337

Change-Id: I6b42c0f7e588bbeab27bf410fcdfa1a6f80e4ac2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-10-25 16:01:03 +02:00
Konstantin Ritt f42283669f Remove stale QT_MODULE() usage cases
As of Qt5, this macro is defined to be empty; simply get rid of these leftovers.

Change-Id: I167ccb4c9e92ec9b5e4faeb02bf9c5ef5d982b50
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-25 16:00:52 +02:00
Stephen Kelly dee57bc910 Core/kernel: Make some signals private.
There are more opportunities in QtCore and the rest of Qt to make signals
private instead of public. This is a test-dart to see if there is any
reason not to do this.

It would be nice to make QObject::destroyed private, but as it has a
default argument it would be source incompatible to anyone connecting
to the SIGNAL(destroyed()) instead of SIGNAL(destroyed(QObject*)).

Currently the function-pointer-based connect syntax does not accept
a functor (or lambda) with a different number of arguments than the
signal. Olivier says a fix for that might come in 5.1, but for now
the qfiledialog2 test is changed to not use that anymore.

Also, the function pointer for a private signal can not be assigned to
a local variable, so the qmetamethod test is changed to not do so
anymore.

Change-Id: Iaf776b822f9ba364f2c184df0c6b23811da56e44
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-10-25 15:56:14 +02:00
Martin Smith aca24f1146 qdoc: Adding the -log-progress option
qdoc now sends progress log messages to stderr
only if -log-progress appears on the command line.
The progress messages are not printed to stderr
if -log-progress is not used. i.e., -log-progress
is off by default.

Task number: QTBUG-27707

Change-Id: Id605d943506ab38639730bf16473b156d061dc53
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-10-25 14:19:53 +02:00
Gabriel de Dietrich 611c0081ff Mac: Non-editable QComboBoxes shouldn't get focus by default
On Mac, only line edits and list views always get tab focus. It's only
when we enable full keyboard access that other controls can get tab
focus. When it's not editable, a combobox looks like a button, and it
behaves as such in this respect.

Change-Id: Ia31b0ad01b48a47c1b81180364681d8614863106
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-25 14:10:04 +02:00
J-P Nurmi 50e7a5b723 QStyleAnimation: writable duration & delay properties
These will be needed by upcoming QFadeStyleAnimation and QBlendStyleAnimation.

Change-Id: Ibc5092d5dbd834cb9b16353d3e83b95b04d9484b
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2012-10-25 14:10:04 +02:00
J-P Nurmi d58161e749 QMacStyle: make default button animations independent of QWidget
Change-Id: I63c078050288e3151a9c6aad5d4ae28a58afd84f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2012-10-25 14:10:04 +02:00
Sérgio Martins 6e908f09df Don't crash if there's no m_image yet.
Reproducible with:
    QBackingStore store( &window );
    store.beginPaint(QRect(0,0,500,500));

All other methods already have null pointer checks.

Change-Id: Ie278a263760900b58cf4a2ef286deb7f35d50cd0
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-25 14:10:04 +02:00
Stephen Kelly 92c739cf50 Implement viewOptions logic in QTableViewPrivate.
This is similar to the patch 05aa8c6c12
which was applied to QListView.

Task-number: QTBUG-26548
Change-Id: I38ff07230673a93a32b01a7f1951d0378d94185b
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-10-25 14:10:04 +02:00
Miikka Heikkinen c4109fe103 Fix crash when handling WM_PAINT during COM operations
Synchronous expose corrupts painter state if it is done during existing
paint operation, which can happen e.g. when requesting some value from
dumpcpp generated wrapper inside a slot.

Fixed by implementing support for setting asynchronous expose and
doing expose according to the setting in handleWmPaint().

Task-number: QTBUG-27209
Change-Id: I89b5aa823fda947d26b1a4757f129e7c31ea408b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-25 14:10:04 +02:00
aavit 52ccbd8911 Fix: don't override the new non-cosmetic default pen in qwidget
As QWidget initializes any painter created in paintevent handler to
have the pen color of the palette's foreground, setting it to 0 width,
i.e. cosmetic, it negated the effect of the recent change to default
1-width non-cosmetic, ref. I04d910e9700baf7f13a8aac07a3633014bb9283e

This caused scaled painting with default pen on QImage and QWidget
to yield different results.

Change-Id: I930b64bf7c0a8c84b9ea3edb49adc813370fed0e
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-25 14:10:04 +02:00
Eskil Abrahamsen Blomfeldt de58eb64bc Revert hacks in text rendering code path
There are a lot of hacks here and there in Qt trying to align the
text in a correct way which caused regressions to appear once
the default coordinate system changed. We need to remove these
hacks to get a more consistent and maintainable base. This also
fixes the regression introduced by changing the aliased coordinate
system.

Task-number: QTBUG-27667

Change-Id: I620db2ca23b7ff6c912f3a51e86e7e36bbef81f0
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-25 14:10:04 +02:00
Jocelyn Turcotte ed19c0875e QSslSocket: Allow disconnections within the connected() signal
When doing happy eyeballs style network state lookup, we might have to
close an SSL socket from its connected signal. This can cause the warning:
QSslSocket::startClientEncryption: cannot start handshake when not connected

The signal should be emitted after we called startClientEncryption to
avoid this warning. In that case it will initialize the encryption
and ramp it down right after.

Change-Id: I0c8c79cad7f91f0088b87c5e4ee8aafbc688411c
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-10-25 14:10:04 +02:00
Martin Smith 34d2a7e6b6 qdoc: Don't load index in -prepare phase
qdoc was loading index files during the -prepare
phase, which it shouldn't do. The index files it
was loading were from modules other than the one
qdoc was running on. They had not been deleted
because qdoc only clears the output directory of
the module it is running on.

Also added a static function to the Location class
to print information messages on standard error.
This is useful to see what qdoc is doing and when
it is doing it because these log messages are
interleaved in the qdoc error messages. More of
these log messages will be added as needed.

Also removed some unneeded qDebug() stuff in
the code that processes the dependencies from
the qdocconf file.

Task number: QTBUG-27707

Change-Id: I1eec8d6ec89ff040969c2a1f62f21f551f347e05
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-10-25 13:04:31 +02:00
Jason Barron a26c97859a Fix incorrect library path in libEGL.pro.
Should not use the QT_INSTALL* variables here since it won't
work if we configure with a prefix.

Change-Id: I03ac170cb11262c38928f2a0d95e6f243d6d665b
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-25 12:20:26 +02:00
Tor Arne Vestbø 600f2397b8 Add config option to build documentation as a two-step process
The new 'prepare_docs' CONFIG option triggers the documentation rules in
default_post to generate two extra targets: prepare_docs and generate_docs.
The prepare_docs stage runs qdoc with the -prepare option, which means qdoc
will only generate index files, and the generate_docs stage will call
qdoc with -generate, which reads the index files and generates the final
output. The regular docs target will then run the prepare_docs target
for all submodules before running the generate_docs target.

This ensures that when generating the final output, qdoc has all the
index files for all the other modules available, to be able to resolve
cross-references between the various Qt modules.

This patch needs a follow-up in qt5.git to add CONFIG+=prepare_docs, so
that the root Qt5 build will be able to hook into this new behavior.

Change-Id: I654d7f0d4d5a41d9be208e6d3a8923bf0194f9ad
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-25 12:19:17 +02:00
Rohan McGovern 33214af378 Fixed crash on destruction of animating QDockWidget in a QMainWindow
It doesn't make sense to hold an unguarded pointer to a
QPropertyAnimation while assigning ownership of that animation to the
animated widget.

Destruction of the widget while the animation is in progress causes
the animation pointer to become dangling; then the widget is removed
from the containing QMainWindowLayout, which attempts to abort the
animation, dereferencing the invalid pointer.

The crash can be reproduced sometimes with
tst_QDockWidget::taskQTBUG_2940_resizeAfterUndocking (which is in
Qt4 only).

Change-Id: I758bf7193b2ea39cd4d8e87197d8ff957d3368eb
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2012-10-25 12:18:15 +02:00
Miikka Heikkinen 82cb34b05f Fix widget borders when using global stylesheetstyle
Recent fixes to stylesheetstyle caused not calling fixupBorder()
when globalStyleSheetStyle is used.

Task-number: QTBUG-27651
Change-Id: I73263c951e2db7d574e81da3f60a1b79f3852716
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2012-10-25 10:20:27 +02:00
Sergio Martins 935f223440 Add DnD support for QNX.
We only need DnD within the same application for now, so returning
a QSimpleDrag is enough.

Change-Id: I842d48f0252f8103fa8632dd3d149ae431658adb
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-10-25 10:08:08 +02:00
Miikka Heikkinen 9fc7fcb4c9 Add ContextMenu event to QWindowSystemInterface
Context menu key wasn't working, as QPA had no handling for it.
Added ContextMenu event to QWindowSystemInterface and proper handling
to QGuiApplication and QWidgetWindow.

Also provide Windows implementation.

Task-number: QTBUG-27648
Change-Id: I7ce71ec4b5cdcc7be758e67f9faf6d863f7b19be
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-25 10:08:04 +02:00
Sean Harmer 8e002f1c0e Update QDataStream format docs for gui/math3d classes
Change-Id: I158d1bc5414f273320f0561000e69c3e06f6ac5a
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-25 09:36:12 +02:00
Jan Arve Saether 294dbc7bfd Use \annotatedlist for list of examples instead of "manual links"
Change-Id: Id945fd35f5eb6a6d11156d4a1356f99cc49405e2
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-24 09:41:42 +02:00
Jason Barron e0c0e83fd5 Add ANGLE as a 3rdparty library to Qt.
ANGLE is a component that implements the OpenGL ES 2.0 API on
top of DirectX 9. See the following for more info:

http://code.google.com/p/angleproject/

ANGLE is now the default configuration on Windows. If you
want to use desktop OpenGL, you should build Qt with the
following configure options:

    -opengl desktop

To configure Qt to use another OpenGL ES 2 implementation,
you should use:

    -opengl es2 -no-angle

Task-number: QTBUG-24207

Change-Id: Iefcbeaa37ed920f431729749ab8333b248fe5134
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-24 02:29:15 +02:00
Tobias Hunger 84d09214bc Quieten warning about uninitialized use of d pointer
We had this issue in Qt 4 before: Clang considers the use of d uninitialized
in the initializer list for d. This might or might not be legal, the clang
devs are divided on that topic. Let's just use a more common form and ignore
the issue language lawyers.

Change-Id: I3324255963a6d0f4a9057fe0d1d9ae868d3efef7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-24 02:29:13 +02:00
Mitch Curtis b016597db8 Return invalid datetime when calling addMSecs with invalid QDateTime.
This is in line with what QTime::addMSecs and QDate::addDays do, for
example.

Change-Id: I902112486727f74f669a97bde6c42028e0838f8d
Reviewed-by: Jon Severinsson <jon@severinsson.net>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2012-10-24 01:38:58 +02:00
Mitch Curtis 8310533975 Improve QTime test coverage.
Change-Id: If47de3dc047ac4f8a4a1498cf225e03bbbf4110e
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Jon Severinsson <jon@severinsson.net>
2012-10-24 01:38:56 +02:00
Mitch Curtis 6a7a08b4a8 Improve QDate test coverage.
Some statements could not be tested, such as default cases of switches
where all possible cases are already handled and some statements where
the system locale is used.

I also removed some statements that would never be reached and hence
will never be able to be covered by tests.

Change-Id: I8ea3071f66d942d986e65708732af6751d36b5e3
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2012-10-24 01:38:54 +02:00
Mitch Curtis 7cbdac1362 Clarify assert on use of const char* as TestData type in tests.
Currently all C-style strings used as data types in QTest::addColumn
will assert at runtime with, e.g.: "expected data of type
'const char*', got 'QString' for element 0 of data with tab 'blah'".
This patch makes it clear that C-style strings are disallowed.

Change-Id: Iadbb8f10e16607de95c7adb43d9ff3310aac6738
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2012-10-24 01:38:51 +02:00
Mitch Curtis 811bf4da67 Output leading zeroes for yyyy date formats in QLocale::toString().
Converting the date 1 January 0001 to a string in the format
"dd MMMM yyyy" currently results in the string "01 January 1", but it
should be "01 January 0001".

Task-number: QTBUG-27287
Change-Id: Ia025da7343d1c36aaee34c47c6db551a6e89595f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-24 01:38:49 +02:00
Friedemann Kleint d1ad991bee Fix valgrind warning in QTriangulatingStroker.
Initialize all member variables including m_invScale, which
was uninitialized.

Change-Id: Id581b1db9411b2f945281e17b7a0407c746761f8
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-24 01:38:39 +02:00
Martin Smith 1c370b2215 qdoc: Clear outputdir in -prepare phase only
qdoc now clears the outputdir in the -prepare
phase but not in the -generate phase. It also
does not print error and warning messages in
the -prepare phase. It does print fatal errors
in the -prepare phase, of course, and the QML
parser prints syntax errors in the -prepare
phase, but all the qdoc errors and warnings
are only printed in the -generate phase.

Task number: QTBUG-27688

Change-Id: I9973a473260b4f79428f6b8e12a5ac35f3be15b4
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-10-23 15:45:45 +02:00
J-P Nurmi 4835a87fe3 Add QStyleAnimation::updateTarget()
For example a paused "default button" animation might want to update
the target to get "non-default button" looks meanwhile the animation
is paused.

Change-Id: Ibb854a40f38a8971e7233b1f34a83056e6a9d827
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-23 12:51:41 +02:00
Friedemann Kleint 0a6691027d Fix warning about missing return value in XCB native interface.
Change-Id: If311211076c05ed8d0fb62a9ff1129b93a813850
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-23 12:28:55 +02:00
Friedemann Kleint 202ac1cbe7 QProcess: Include program in destructor warning.
Change-Id: Ib6870d2b161197fdeab7fe5140ac4757c79f478e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-10-23 12:28:23 +02:00
J-P Nurmi 7abf623443 QStyleAnimation: fix threaded rendering
Change-Id: I00875adf2e4b157a3f8b0b99e5280b1275635026
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-23 11:41:47 +02:00
Thomas McGuire 2e21332476 Blackberry: Fix applicationFilePath() for unpackaged executables
Not all executables originate from a BAR package, for example unit
tests.
Make those use the fallback code for finding the application file path.

Change-Id: I5603f329bbe74e37d319ddd190f72bc6f64e1a5c
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-10-23 11:31:17 +02:00
Giuseppe D'Angelo bbda968a0a Fix QRegExpValidator::validate docs about the pos parameter
The code sets it to input.length() iff the regexp doesn't
match the string, while the docs say it's *always* set.

Therefore, make the docs match what the code does and
add a simple test to enforce it.

We're not changing the code to match the docs because

1) it's better to stay conservative (we don't want
to break existing behaviour);

2) this behaviour mimics what the int/double validators do
(they don't move pos at all).

Change-Id: I958074558de6b0fc5944101c6535fc7e00442ae9
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-22 22:42:26 +02:00
Stephen Kelly 6fe8a3d5a1 CMake: Make qt5_use_modules a macro, not a function.
Because qt5_use_modules is a function that does a find package which
finds imported targets, things like this:

 qt5_use_modules(foo Sql)
 if (TARGET Qt5::Sql)
    message("Qt5Sql_FOUND: ${Qt5Sql_FOUND}")
 endif()

will show Qt5Sql as being not found, even though the target is in scope.

Fix that by making it a macro instead.

Change-Id: If314bd5b4d3f769c6c7df5ff2c924eabd16dcc0e
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-10-22 22:42:22 +02:00
Mitch Curtis 4dbf60d672 Fix mistakes in QNetworkAccessManager docs.
Change-Id: I2c797affec9472815003b1a032196c81088e1df6
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-22 22:42:17 +02:00
Julien Brianceau d8c8057c03 qpa: Fix drawPixmap rendering using CompositionMode_Source in DirectFB
Change-Id: I646bc7054e1aa17dca4f54ddd3d2668c173773d4
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@gmail.com>
2012-10-22 22:37:40 +02:00
Jan Arve Saether ebaed02ae6 Remove softkey API, it was only implemented for Symbian.
It is only removed from the documentation for now (I think this should
go in the beta 2).
That should liberate us to be able to change the API if needed for
other platforms that might need a soft keys API.

Once this goes in, the plan is to do the actual cleanup.

Change-Id: I9a7a3eb45597cd013fe3c4bd479ad08a25ef0b9b
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-22 22:27:53 +02:00
Jens Bache-Wiig 087e4bc517 Remove Cleanlooks and Plastique
We have a new style Fusion that will replace these styles.
They will be moved to a separate
module rather than included in platforms that do not need them.

Change-Id: I51ebbcad5406e99130e5b12e62ba624d1489088c
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2012-10-22 19:36:43 +02:00
Jens Bache-Wiig a0e5d6c1c0 Fix clipping and font problems with groupbox in Fusion style
The groupbox did not take custom fonts into account when calculating
the height of its titlebar. This resulted in clipping issues on
Windows.

Task-number: QTBUG-27655

Change-Id: I7252bc94d2bbb0731b9dbc1caa6cdd2074fdd7ab
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-22 19:36:43 +02:00
Samuel Rødal b213d5bfa3 Make QPen default to 1-width non-cosmetic.
Use the Qt4CompatiblePainting render hint when painting with QPainter to
treat default constructed QPens as cosmetic still.

The NonCosmeticDefaultPen render hint gets documented as obsolete, since
it was in any case not respected by the raster nor OpenGL paint engine.

Change-Id: I04d910e9700baf7f13a8aac07a3633014bb9283e
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-22 19:36:43 +02:00
Jens Bache-Wiig 11566de014 Move some icon code from WindowsStyle to CommonStyle
Fusion style only depends on CommonStyle and it seems the autotest
for tst_QFileSystemModel:iconProvider assumes an icon will be
returned from standardPixmap. Since we dont want the icons
to depend on style in this case we should move all this to commonstyle.

Change-Id: I3a26367e5c0aefe2a39838f0c2cadc4f7afad89d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-22 19:36:43 +02:00
Marc Mutz 33d9b9f326 Delete QWhatsThis() and QToolTip()
These classes are not supposed to be instantiated.

QToolTip() already was declared, but not implemented.
This patch just adds Q_DECL_EQ_DELETE for better
diagnostics on C++11.

QWhatsThis() was implemented, but appears to be unused.
Since it was private to begin with, successfully compiling
QtWidgets is a sufficient test.

Change-Id: I698ece8f0eebbcdac7be98456dd42197b758a825
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-10-22 19:36:43 +02:00
Marc Mutz 500ed6b628 QDateTimeEdit: don't throw off auto-indention
Reformulate #ifdef'ery involving {}s so as not to throw
off auto-indention of code editors due to unbalanced {}s.

Change-Id: I0f9858c78d0b6d923de75ca45c7d65ce3fa53e50
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-10-22 19:36:43 +02:00
Stephen Kelly e0ba8fdbce Trim trailing whitespace.
Change-Id: Iee6bb66831f53399e5937eab5704af835979f5c3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-22 19:36:43 +02:00
Stephen Kelly efc475a996 Fix integer overflow in QSpinBox.
Change-Id: Ic204d42fbdffc44576f7e76132bc53621e836299
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-22 19:36:43 +02:00
Stephen Kelly d18eb260d7 Use the layout change hint to speed up QItemSelectionModel.
The testcase in the bug report takes 370035 ms to sort the rows with
Qt 4, and 5646 ms in Qt 5 (when using the extra hints to layout*Changed).

That's an improvement of more than 98%.

Task-number: QTBUG-17732
Change-Id: If78f972d80c501e0cb39078228086c4f4ac8a65b
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-22 19:36:43 +02:00
Jason Barron 0693082c95 Pass the correct handle to the Windows EGL context constructor.
We should pass the shareHandle here instead of the handle for the
context since that's what it expects.

Change-Id: If851758817057ecc3c3646cba2354becf5a8a839
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-22 17:41:47 +02:00
Sze Howe Koh 8e62d9acfd Doc: Fix small capitalization error for the Qt SQL module header.
The header file is named QtSql, not QtSQL.

Change-Id: Ia3634c80d73f04fd27256f392cfed2068eeb9bc5
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-10-22 08:53:32 +02:00
Frederik Gladhorn fb2d2c4f72 Emit cursorPositionChanged in private slot.
Since the private slot is already there and used, it might as well
emit the signal and save us one connection.

Change-Id: I899df74c20f8c2b7875a0f9d0a04465c5dc48bde
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-22 08:42:16 +02:00
Frederik Gladhorn a2b7b42ca4 Bring back accessibility for plain text edit.
This ports 282951bc6c7ddb607fb7ebf61eb8de9acf3da77f
aka Change-Id: If0269a49b9fcd1b3e9fcfd32fac912560df28f21
to Qt 5.

Change-Id: I46f1d4947d90688b598993f76330e2e10aeca950
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-22 08:41:57 +02:00
Konstantin Ritt a89eae8cb4 Fix crash due to memory access violation
The font engine has been re-used without increasing it's reference counter

Task-number: QTBUG-27596
Change-Id: Icd4c3ca131446255ad4a27da8aa9a6c69177212e
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
2012-10-22 03:35:39 +02:00
Thiago Macieira 8e82a8e11f Doc: refer to QUrlQuery in QUrl's main doc body
As opposed to the deprecated methods.

Task-number: QTBUG-25628
Change-Id: Ic1b50b1ac1b974cdd2dd9f0151d567227784e547
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-10-19 20:28:08 +02:00
Sze Howe Koh d7e8b57d0a Remove the QThread::terminated() signal
The signal is removed from the API; all references to it are removed
from documentation; the unit test that checks for its emission is
modified to listen for QThread::finished() instead.

The QThreadPrivate::terminated flag is also removed, as it served no
purpose other than to trigger the emission of QThread::terminated()

As discussed at http://lists.qt-project.org/pipermail/development/2012-October/007216.html
the signal is not guaranteed to be emitted after every termination,
rendering it useless.

Change-Id: I7b0c45d7889da0d33875545331606f2208ee56fc
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-10-19 20:25:16 +02:00
Samuel Rødal 39eaff6773 Remove DRI2/OpenGL code paths from xcb plugin.
These were used to test QtWayland, but there are other options available
for that now. The DRI2 code hasn't been maintained and doesn't even
compile at the moment, so let's just remove it to de-clutter the source.

Change-Id: I7db0f4db82348497b9f4d6c2dcf2e13f3ab14a76
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-19 20:24:11 +02:00
Samuel Rødal 9b2e4cd5a8 Small xcb startup performance optimization.
Prefetch all the extensions, to avoid having to do blocking calls later.

Change-Id: I1527dbf03d76372ec88bc0d5d9f7af18a4cc2a26
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2012-10-19 20:24:03 +02:00
Samuel Rødal cdc2161b6f Made xcb plugin work when the GLX extension is not present.
Change-Id: I9285d7524586ff404206c088019ece33335137d9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-19 18:11:06 +02:00
Samuel Rødal 7d7f09650c Fixed GCC 3.4 build with sse2 enabled.
With minimal effort we can keep the GCC 3.4 build working.

Task-number: QTBUG-19803
Change-Id: I31611a27b97d5ac426ea857d8f1b656dc6f5377a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-19 18:10:46 +02:00
Konstantin Ritt 9690548113 QFont: Don't invalidate engine unless request has been changed
This makes QFont do a "light" detach when the font attributes data has been changed.
The new test clearly shows that the engine is now shared between
two font instances after changing the kerning attribute.

Change-Id: I59db822f459f02d111686dba7101b98e361fada9
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-19 18:04:36 +02:00
Andreas Hartmetz bdc115d969 detach() safely in QVector::erase(), and update callers to not detach.
remove() can use non-detaching iterators internally before calling
erase(), which hasn't been exploited so far, so that the detach() in
erase() never actually detached. When using erase() from outside,
you can't do it legally without calling begin() or end() that detach()
before erase() is called.
Now remove() doesn't detach anymore, and detaching in erase() works.
With new tests that fail after changing only the erase() callers
and pass again after fixing erase().

Change-Id: I47c0a9e362dce8628ec566f5437d951755de96c8
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-10-19 18:04:11 +02:00
Gabriel de Dietrich c4ff5c53ef Mac: Adapt scrollbar fadeout animation for QStyleAnimation
Change-Id: I39f1089e8d6ba1bb412d33aa4ebc0971aba52681
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-19 17:53:26 +02:00
Jan Arve Saether 2b6edec5c2 Doc: Added landing-, examples- and C++ class list-page to qtwidgets
It seems this is the pattern to follow:
landing page:    qtwidgets-index.html
examples page:   qtwidgets-examples.html
class list page: qtwidgets-module.html

Change-Id: I3e5459fe650178e0398cb43181b594c0f12a170e
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-19 17:42:14 +02:00
Gatis Paeglis 4c41cb48d0 Modularize drag and drop documentation
- Move dnd docs and examples out of QtDoc module to gui library in QtBase
- Remove info related to Motif dnd since Qt5 doesn't implement it

Change-Id: Id7eb4eb422f4294a36dd92709ce3007903371f03
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-19 17:35:51 +02:00
J-P Nurmi 59009cfd0c QStyleSheetStyle: kill more dependencies to QWidget
Change-Id: I5e58ec68c5d20fd7b201c83743f9d284e7c4dc52
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-19 15:19:03 +02:00
Thomas McGuire 391d2e37f3 QNX: Use extra information in dirent to avoid stat() calls
This improves iterating over /usr/bin with QDirIterator by more
than half, from 36 to 13 milliseconds.

Change-Id: Ib3a9271c3a6f81c1ea3c21d012c875c7e9bad2ad
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-10-19 13:02:31 +02:00
Jerome Pasion b206fba8b1 Doc: Adding Event System documentation.
Previously in qtdoc repository.

Change-Id: I9f5cc876f2b49e86520097c0d8efe7e21eabc04e
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-10-19 13:02:17 +02:00
Oswald Buddenhagen 1e68ec7e67 remove explicit load(qt_build_config)s from the libraries
.qmake.conf (and previously .qmake.cache) already does that for us.

Change-Id: I06cc01fa45921d7bd66dda7a0f88729faeff37bd
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-10-19 13:02:17 +02:00
Miikka Heikkinen bdc0eaae6b Fix excess enter/leave event generation for native widgets
Native widgets have a native window each, so QPA plugin sends enter and
leave events for associated QWindow whenever mouse cursor moves from
one widget to another. QWidgetWindow had no context to interpret these
events as moves from one widget to another, since they were sent
separately. This resulted in leaves and enters for each widget in
parent chain, when only the bottom child should have gotten them.

Fixed by peeking into window system message queue when handling leave
in QWidgetWindow and retrieving the entered window from queued enter
event.

Also provided a convenience function that QPA plugin can use to
ensure both leave and enter events are in the event queue when
moving from one QWindow to another.

Task-number: QTBUG-27550
Change-Id: I74fec0ac90f6848495c2392c5f7e41624ad8aea2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-19 13:02:17 +02:00
Tor Arne Vestbø 55a36aed79 Merge remote-tracking branch 'gerrit/master' into newdocs
Change-Id: If7f46d56cf0b0b79f7fc8955a01964121b900d07
2012-10-19 09:54:12 +02:00
Konstantin Ritt dbb2581af5 Remove Qt3 compat leftovers
Change-Id: I91c3d26125168998d6279bddb0671cfb68eac2f4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-19 09:41:36 +02:00
J-P Nurmi 734324c37c QStyleSheetStyle: QObject-based style & render rules
The goal is to cut as many QWidget dependencies as possible and make
stylesheets eventually work for the desktop components.

Change-Id: Ib4aa47af07379fc39fd6df1961e113d03df6df35
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-10-19 07:50:29 +02:00
Thiago Macieira 320c4e31e1 Make QContiguousCache with zero capacity not crash
These containers don't make sense and will just result in no action
being taken (all items added will simply be discarded), but it
shouldn't crash due to a division by zero.

Update the documentation to explain the fact.

Task-number: QTBUG-27339
Change-Id: Ib9acf5c0a9a826e6853e7beaf5e56511fde98dc6
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Ian Walters <ian@walters.id.au>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-19 07:50:29 +02:00
Bernd Weimer c4b2d77f40 Fix for slowness of touch move events
In the event dispatcher native events will be processed in a tight loop
to drain the queue. IO events and timers will be postponed.

Change-Id: Ic2c06ed182027289eb5e7042fbae99efbd01ea27
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2012-10-19 07:50:29 +02:00
Michele Caini efe607e8aa Review of documentation.
Documentation has been updated to reflect changes in Qt5.

Change-Id: I378858cf61f4bf62375c30c3903818d754dadcf0
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-10-19 07:50:29 +02:00
Thiago Macieira b8fe5e1bbc Make sure functions returning iterators have an iterator as parameter
The IA-64 C++ ABI does not encode the return type for non-template
functions (QVector is the template, not the function), which means that
these two functions have the same signature:

  Node *QVector<Node>::begin()
  typename class QTypedArrayData<Node>::iterator QVector<Node>::begin()
  [both are _ZN7QVectorI4NodeE5beginEv]

When linking compilation units compiled with different
QT_STRICT_ITERATORS settings, only one of the two out-of-line copies
will survive. Depending on the ABI, we may have a problem: the ABI can
say that a function returning a structure takes an implicit first
parameter, which a function returning a regular pointer doesn't.

Task-number: QTBUG-27277
Change-Id: I57a59e5a7c46f55faabfe85c073dca89d2a7bbf3
Reviewed-by: Jan Kundrát <jkt@flaska.net>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-19 05:35:39 +02:00
Frederik Gladhorn 9fa2e5a14d Accessibility: itemviews check for valid model.
The problem is that isValid() should return true as
soon as we have a view widget.
That sadly means we need to verify that the model is still
valid whenever accessing it.

Change-Id: I9237528abf2f5c75a73382525103307e9ca15f05
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-19 02:44:40 +02:00
Jason Barron a61788d139 Change the default major version of QGLFormat to 2.
This is being changed because:
- The OpenGL paint engine in Qt only supports GL2
- QML2 only supports GL2
- QSurfaceFormat has a default value of 2

Applications that want to use GL1 on a QGLWidget will have to
explicitly request this format using QGLFormat::setVersion.

Task-number: QTBUG-27589

Change-Id: Ieb283ef7d6e15a29ec28ce7e4363dbf477decaa7
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-10-19 02:43:05 +02:00
Thiago Macieira 0510fc149e Make QtDBus work again with D-Bus 1.0 and 1.1
The dbus_get_version function was introduced in 1.2, so we'd need to
detect pre-1.2 by the absence of the function. But if we're going to
detect the presence or absence of any function, we might as well do it
on dbus_connection_can_send_type, which is the function we wanted anyway.

Change-Id: I6e17a3a8f1382c6a489490084f6e3f61aa5a1947
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-10-19 02:43:05 +02:00
Samuel Rødal 7b8e10ddd0 Fixed inconsistent QPainter fill rules for aliased painting.
Qt 5 is the time to get rid of all the old inconsistencies in the raster
paint engine caused by trying to preserve the old X11 based
coordinate system where (0, 0) is in the center of the top-left pixel
instead of the upper left corner of said pixel. However, this was only
adhered for line drawing and path / rect filling, and not for image or
pixmap drawing and not at all when doing antialiased painting. By
defining the antialiased coordinate system as being the right one and
letting the aliased fill rules follow from that we finally end up with
some consistent behavior that doesn't lead to surprises and workarounds
in application code.

It is still possible for applications to get the old behavior by
setting the QPainter::Qt4CompatiblePainting render hint. This should
make porting easier for the few cases where an application relies on the
aliased fill rules we used to have in Qt 4.

Task-number: QTBUG-27500
Change-Id: If86b95e77d838ec83033d64af86632b9a73c74a9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-19 02:43:05 +02:00
Stephen Kelly ae3ad0ad21 Handle the case where persistent indexes have gone invalid.
Don't add invalid ranges to the result. They will be removed
whenever d->ranges is processed for public consumption
anyway. For example, QItemSelectionModel::selection() calls
merge() with another selection. The merge() method removes
invalid ranges already. But the invalid ranges don't need
to be there in the first place, so this patch removes them.

A longer-term goal is to maintain d->ranges as an always-sorted list.

This method can be called with a vector containing invalid
QPersistentModelIndexes when those persistent indexes are made invalid
in between layoutAboutToBeChanged and layoutChanged. It's a normal
thing to happen and a case that should be handled deliberately.

Change-Id: I741ed9208d8a75644975c9e8d61f0d6d78e20576
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-19 00:44:54 +02:00
Stephen Kelly d84f449bcd Make sure uints remain uints when editing in itemviews.
Task-number: QTBUG-22974
Change-Id: I07428862c4dffc629f868f3010f663eb655922d0
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-19 00:44:54 +02:00
José Millán Soto 8bed283f13 Correct accessibility index handling in QListView
QListView::currentChanged and QListView::selectionChanged changed to
use 0-based indexes instead of 1-based indexes.

Change-Id: Ie618970c9a37ec76156dbfab2e86685c3c8f374c
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-10-19 00:44:54 +02:00
José Millán Soto 687e31df80 Handle separators in menus in AT-SPI (Linux accessibility)
Change-Id: Id9c109d53bbb8ded04bbe98a622d44e13d572340
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-10-19 00:44:54 +02:00
Frederik Gladhorn 0783b1670d Doc fix in return value of QDate::setYMD
Change-Id: Ie107e451a7b2a084fb6131939f212acd412a9df6
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-19 00:44:54 +02:00
Frederik Gladhorn 519dce78f1 Clean up instantiation of mapping of AT-SPI roles.
Change-Id: If31b33f1b259f896408a66b0574d640b0ad57019
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-19 00:44:54 +02:00
Frederik Gladhorn 730a5a994f Accessibility: make sure right objects are cached on linux
The linux test would actually fail because the qobjects created
could end up having the same address (create-delete-create...).
After an object is deleted, it's not instantly removed from the
cache of valid objects.
Instead it would stay in the list with it's smart pointer becoming zero.

This patch adds the missing null pointer check so we are always up to date.

Change-Id: Ia7be14741d4798c2b8e75cb7127298c73cf206ef
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-19 00:44:54 +02:00
Teemu Katajisto 3ebee851b2 Cocoa: fix memory leak
Release the created CGImageRef.

Change-Id: If3b36b636ae1302b8a63bbae7285a6461b993f62
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-19 00:44:54 +02:00
Teemu Katajisto 0a7e6c5856 Cocoa: fix coretext memory leaks
Change-Id: Id85dbf8a2ea8994d9fca07d3f10b43f62ec305a0
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-19 00:44:54 +02:00
Thiago Macieira c67a5df8d8 Rename the syncqt -qtdir to -mkspecsdir
It's actually looking for the mkspecs (so it can read qconfig.pri to
get the Qt version), so give it exactly what it wants.

Change-Id: I2957b2d93a8837b8492d313209d45ff3ec01704c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-10-19 00:44:54 +02:00
Kevin Krammer 4d693b6cdf QNX: Change base font sizes from pixels to points
Previously recommended fonts sizes in pixels do not work very well
on the new high resolution devices.

Current UX documentation recommends certain point sizes for certain
roles. Those work well on both type of devices.

Change-Id: Ia4faa4cf2d753cab9b10f91d01dfef1450683272
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-10-18 22:24:16 +02:00
Richard Moe Gustavsen 0221d769c7 Cocoa: fix frameStrutMouseEvents
It turns out that the calculation of mouse pos over the frame
strut (title bar) was wrong. When outside the content view, the
nsevent coordinates are negative, so to get this correct, we
need to calculate the height of the window above the content view
and use this information to get the mouse pos in positive
coordinates with origin window top left.

This bug was especially apperent with QDockWidget, as it became
almost impossible to dock a window under such circumstances.

Change-Id: I2faf6aab5e2aa0b4e217ea087ceec8c1b1e978bb
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-18 21:50:27 +02:00
Jens Bache-Wiig f45afd7155 Introduce new style Fusion
This is a new non-native style for Qt.
It is intended as a replacement for the now aging
Plastique and Cleanlooks styles.

Change-Id: I30c0518a69e4e3b8b2b05ee7d84c3a5a1f307578
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2012-10-18 21:46:21 +02:00
Tero Ahola 8b6de46771 Modified vertical alignments of simple widgets on OSX
Adding QCheckBox, QComboBox, QLineEdit etc. into an HBox layout or grid
layout makes the layout look like a snake's trail. Fixed the positioning
of these widgets to make the layouts visually more appealing.

Updated qmacstyle auto-test accordingly.

Task-number: QTBUG-13635
Ammended-by: Gabriel de Dietrich
Change-Id: I89461f9aad68ea8488070ed06257b9b8e7f493c5
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2012-10-18 21:45:46 +02:00
Andy Shaw d060620e6c Use the right properties when checking the frame's margins
Changed it to check the Frame*Margin property instead of the
Block*Margin property as this was incorrect for a QTextFrameFormat.

Task-number: QTBUG-22173
Change-Id: I2c3066165fb592ed034874b1180593822859f933
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-18 20:56:05 +02:00
Jens Bache-Wiig a2e4b7a92f Remove dependency on QWindowsStyle in QGtkStyle
Now that we no longer re-use the animation code in gtk,
it is time to remove this strange dependency.

Change-Id: Ib672a9b110dfba08d79b8654e572994007675957
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2012-10-18 17:22:49 +02:00
Gabriel de Dietrich 92e4ec7a14 Bring back Mac dependent code in QBoxLayout, QGridLayout
We also made an accessibility auto-test more stable, so that it would
not be influenced by this patch.

Task-number: QTCREATORBUG-7966
Change-Id: I6ce4e2361c8847aee5dd1cf5664c29cd2d83e38d
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-18 15:19:48 +02:00
Giuseppe D'Angelo e75be9f30e Add new error strings to QRegularExpression
They are introduced in PCRE 8.31.

Change-Id: Id0447b381d5e23996d4e87ae0368b07a8bc1c318
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-10-18 15:17:22 +02:00
Friedemann Kleint 23c19acc59 Windows QPA plugin: Parse arguments from list passed to factory.
Using dynamic properties on the native interface is deprecated.

Change-Id: Ia3411780dad15af61d4805c0d9fabf00dba92301
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
2012-10-18 15:13:11 +02:00
Jan Arve Saether 8660a3bce1 Make sure we copy *all known events* properly in order to not assert.
This caused the following assertion in tst_QAccessibility::listTest():
ASSERT: "m_type != QAccessible::TableModelChanged" in file
qaccessible.h, line 455

Change-Id: If1f1e80521f346019bdbd59aac58e30c870d6e4e
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-10-18 12:24:13 +02:00
Rohan McGovern bfbeaffda8 Fix compile with -no-widgets
Remove more unnecessary references to QtWidgets in accessibility
implementation.

Disable accessibility tests (which rely on QtWidgets) when QtWidgets is
not available.

Change-Id: I57315537779d31af1245d42d1b4c49174016da54
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-10-18 12:24:11 +02:00
Christian Strømme 6039179373 Fix for memory leak in ResultStore
In ResultStoreBase::addResults() it possible that the ResultItem we
create is invalid (filter-mode enabled). Since an invalid ResultItem
won't have any result data, we need to make sure that we don't allocate
any data for it.

Task-number: QTBUG-27224
Change-Id: Ic99b191db0e9dd4e29b64911f87d90a8148bb7a5
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-18 00:58:11 +02:00
Gabriel de Dietrich 8003fd6d5b Mac: Fix QLineEdit shadow
The cursor is still rendered 1px too low, but probably needs to be
fixed in QTextLayout.

Change-Id: Ie56c7140898b941c8d896f503ce1934d0d681a4d
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-18 00:14:59 +02:00
Jens Bache-Wiig 9410b307af Improve branch indicators in common style
The branch indicators in common style was painted based on motif
style, effectively making it useless.

Since most styles inherit from Windows style, I
moved that into common style. It was already duplicating
most of the code used in commonstyle.

Change-Id: I1a383d90254bb97aebc038fa058ec0f225cf9dab
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2012-10-18 00:14:48 +02:00
Jonathan Liu 12d25f1a42 Fix compilation with MinGW-w64
Change-Id: I0c9e6adc54ccce34e0f81af048f2a51a4ac051b4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-17 21:21:09 +02:00
Friedemann Kleint 4b7dd71aa0 Windows: Multisampling is disabled by default.
The previous code assumed that -1 indicated some sort of "auto",
but this is not the case according to documentation.

Task-number: QTBUG-27600
Change-Id: Id17ce32f94ded61a63a33d0c04ec5312f53c7923
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-17 21:21:03 +02:00
Friedemann Kleint 743d963078 Windows: QT_LIGHTHOUSE_WINDOWS_VERBOSE -> QT_QPA_VERBOSE.
Change-Id: Ieffa1f483cddd220b158ccd570af151420c8e3c3
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
2012-10-17 21:20:57 +02:00
Thiago Macieira a0280e5cac Add qlibraryinfo.h to global.pri's HEADERS list
The file was already present but wasn't mentioned.

Change-Id: Icac4fd5276b071ed2173e72aed51abb4c0b5b50a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-10-17 20:53:16 +02:00
J-P Nurmi 9d86458d8c Fix potential crash in QStyleAnimation::updateCurrentTime()
A parentless/targetless QStyleAnimation calls updateCurrentTime() from
QAbstractAnimation constructor. Avoid the potential crash even if it's
not a valid use case for QStyleAnimation.

Change-Id: I9cd263d105c8ea4b5cbabac9a7680991745ccd95
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-17 20:47:16 +02:00
J-P Nurmi a98b943557 Styles: revise indeterminate progress bar animations
Remove dependencies to QProgressBar where possible. This makes
it possible to animate for example QQuickItem based progress
bars (read: the desktop components).

Change-Id: If208506702365895576238c24191b8d70b90841c
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-17 20:47:08 +02:00
Teemu Katajisto 037d1e18e3 Cocoa: remove current contentView when clearing window
Otherwise they might be still events sent to view with no
proper QWindow. Also, add dealloc QNSView for clean up.

Task-number: QTBUG-26580
Task-number: QTBUG-27456
Change-Id: Icdbe5c39490b72ec82795c2d71e5671cea81921e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-17 12:55:49 +02:00
J-P Nurmi 932bf57ea2 QGraphicsObject: handle QEvent::StyleAnimationUpdate
Change-Id: I8545d6f26e2c2398e750b0b85ba87892a2e376ae
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-17 12:55:49 +02:00
Frederik Gladhorn d686ad12e8 Accessibility doesn't need QApp from QWidgets.
Change-Id: I440179bfa95d6aa73c8b69b09431e4dc9fae5436
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-17 12:55:49 +02:00
Richard Moe Gustavsen d6588d2051 QPlatformWindow: change API for QPlatformWindow::setWindowState
The current implementation requests the platform window to set
the window state if it can, and return the actual window state
back.

The problem with this approach is that the platform window is created
as late as possible, so a call to QWindow::setWindowState would in
many (most?) cases never be forwarded to the platform window (instead,
the platform window is responsible to check the current window state
upon creation). As such, the window state might be left unsynched with
the platform window.

This patch suggests removing the return value from
QPlatformWindow::setWindowState. This will at least be consistent, so
that setting/getting state 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/actual
window state.

Change-Id: Ie43f56169656854a765ce88b47a808f8f3d51bb4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-17 09:39:01 +02:00
Thiago Macieira 74227e073d Remove visibility attribute from function body in QtDBus
Those were using an inconsistent macro compared to the function
declaration in qdbusthreaddebug_p.h.

Change-Id: I3e77ba83ceedc99cb1f957fdfe318e34ab9c9628
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-10-17 04:19:13 +02:00
Gatis Paeglis f2d8b94346 Add QDrag class to 'draganddrop' group
Change-Id: I0cb96f57486dbda7cb9ca19556515e1b2b4f6c3e
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-17 04:19:10 +02:00
Gabriel de Dietrich f8b6d104b9 Bring back MacSizeChange event
This ensures WA_MacNormalSize & Co. work (almost) properly.

Task-number: QTCREATORBUG-7966
Change-Id: Ib03b5c0f163409e2bc387f6cf9b56c72c43caec7
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-17 04:19:09 +02:00
Marc Mutz 8c838f29d4 QFileInfoGatherer: remove m_resolveSymlinks for non-Q_OS_WIN
For some reason, m_resolveSymlinks was never set to true for
non-Windows systems. The constructor set it to false and the
setter was only implemented for Windows.

So remove the member and code that is only executed if it
is set to true, except on Windows.

Change-Id: I386e980688a603475a413e2ef3628d0754778c5c
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-17 04:19:06 +02:00
Mitch Curtis 9f83e499b5 Clarify ownership of scene in QGraphicsView::setScene() docs.
Change-Id: I550a02bce0633884ee1ffe2321c6462a34194f89
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-16 17:31:31 +02:00
Marc Mutz cd168110e0 QWindowsKeyMapper: use a more efficient data structure for 'keyLayout'
Instead of allocating small chunks (40 bytes) on the heap, use a contiguous
array to hold them. This always occupies 10240 bytes of memory instead of
1024 (32 bits) or 2048 (64 bits) for the pointer array (plus heap memory
which depends on the number of items allocated), but is more cache-friendly
and uses less memory when the array isn't sparse.

To emulate the nullptr, a new bool has been added (doesn't change
sizeof(KeyboardLayoutItem)).

Also replace a few more magic numbers by symbolic constants.

Change-Id: I7160f600faddd63deea265c89dc6fd857c7b557f
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2012-10-16 17:31:31 +02:00
Marc Mutz cab891dc50 QWindowsKeyMapper: remove dead code
As an array of automatic storage duration, 'keyLayout' can never be nullptr,
so remove the respective check.

Change-Id: I2fb2db8311de55b41a1f9aef7c35341949e38e5a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2012-10-16 17:31:31 +02:00
Marc Mutz fb21212f1e QWindowsKeyMapper: replace one magic constant with a symbolic one
Replace occurrences of a literal 9 that mean 'number of modifier key
combinations' with the new symbolic constant NumMods.

Change-Id: I1e78a1a3c00b81095450ec0557e30751da44c39a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2012-10-16 17:31:31 +02:00
Mark Brand a5e7c2802a QComboBox: mention insert policy in context of editable property
This makes it a little bit easier for the reader to discover what
editable combo boxes are about.

Change-Id: I60ce571f01e32d4cacb4718b42a8e12884bd1c13
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-16 17:31:31 +02:00
Joerg Bornemann 77308b4678 implement QCocoaWindow::setWindowIcon
Code taken from Qt 4.8.

Task-number: QTBUG-27175

Change-Id: I0f7a1add3ea63761c956e43d591cd1b26f25760e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-16 17:31:31 +02:00
Frederik Gladhorn 08748f147b Add parameter documentation.
Change-Id: I8ce85bbb286c3cb844ef600daa5e99432ee55b74
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-16 15:29:15 +02:00
Jens Bache-Wiig 3a685dcd5e Fix incorrectly scaled constants on Mac
This fixes several scaled constants on mac that are inherited from
commonstyle. (such as toolbutton arrows) It is probably easiest
to see when running Windows style on mac.
The problem was that the code assumed a default dpi of 96 would be
used on all platforms.

Change-Id: I83789589009b268dcb1d96629c3ec9e8f968a891
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2012-10-16 15:29:15 +02:00
Niels Weber 67ff460778 Document needed packages for XCB on Fedora.
Change-Id: I415416e82d342b232607fe7087350a9dad615f7a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-10-16 15:29:15 +02:00
J-P Nurmi 05c2113350 Add QObject* QStyleOption::styleObject
The object is used, amongst other things, as a target for
sending style animation updates.

Change-Id: Ic210e7ae2111bc08b70331a3a2030a494919a06d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-16 15:29:15 +02:00
Miikka Heikkinen af13c79b30 Implement setWindowIcon() for Windows.
Platform implementation for QWindow::setWindowIcon() was missing from
Windows platform plugin.

Task-number: QTBUG-27175
Change-Id: I6807d1ded057b7788a9f2fa5b143e212a666029b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-16 15:29:15 +02:00
Andy Shaw dc0927f2b8 Check if there is an old item before removing it
If something had changed with the menu item before it had actually been
originally added to the native menu then this would crash when trying
to remove a null item from the native menu.  This prevents that from
happening.

Change-Id: I8d78b5504759225364d5fd051a23c8d6dbd7d1eb
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-16 15:29:15 +02:00
Morten Johan Sorvig f144d538fd Cocoa: Set platform window geometry correctly.
Handle the non-toplevel child window case, where
QWindow has a parent NSView instead of a parent
NSWindow. QWindow geometry is  then equivalent to 
the frame geometry

Task-number: QTBUG-26972

Change-Id: Ie7cedb3ec1a564ce55b72e8269d4853962e073ce
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2012-10-16 15:29:15 +02:00
Teemu Katajisto 4135951ae8 Cocoa: use defaultPixmap() if pixmap is not set for drag
Task-number: QTBUG-26971

Change-Id: I6aed56a6b292c5aeebf38278d2a1fa982346c909
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-16 15:29:15 +02:00
Kai Koehne 8fdef974b7 Logging: Mark deprecated API with QT_DEPRECATED
Still use it in qtestlib though because using qInstallMessageHandler
here would break all tests (still) using qInstallMsgHandler - Qt always
uses the new message handler if there's one, ignoring any message handler
installed through deprecated API.

Change-Id: I6fefefb315a2421425d2b7787e367fd348a33d83
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-10-16 15:29:15 +02:00
Frederik Gladhorn c40333ef50 Remove unneded forward declaration.
Change-Id: I19157bde9a7b5ac3eb54830841baea08c8af8670
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-16 15:29:15 +02:00
Frederik Gladhorn 1dc970b0c4 Fix function names in warning messages.
Change-Id: I14abc176ea670799496e10bee296b4e84fdc7181
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-16 15:29:15 +02:00
Miikka Heikkinen 74230f126b Fix setting custom cursor for widgets and windows before showing them
If custom cursor was set before the window was created, it didn't
actually get set, and in some cases even caused a crash.
Fixed by making sure the cursor is correct when showing widget/window.

Task-number: QTBUG-27535
Change-Id: I3bc946a9c406c96af5b86869a3a54893f8980aba
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-16 15:29:15 +02:00
Gabriel de Dietrich c3b939818a QPA: Introducing QPlatformTheme standardPixmap(), fileIconPixmap()
The basic idea is that the platform theme is now responsible for
providing the pixmaps for the given standard name, or any file or
directory. Then, the QStyle implementation should query the platform
theme for the pixmaps, and build the icons accordingly using
ThemeHint::IconPixmapSizes. Same thing for QFileIconProvider. This
also opens future support for getting platform dependent pixmaps in
QtQuick components.

Also includes the implementation for the Cocoa (QCocoaTheme) and
Windows (QWindowsTheme) platform plugins.

Task-number: QTBUG-27450
Change-Id: I4e8406585d970a9af481be10f6643cf0abbc38a3
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-16 15:29:15 +02:00
Jens Bache-Wiig 3928bd0606 Add HasFrame feature to QStyleOptionTab
This makes it possible for styles like Fusion to draw tabbars different
when they have a frame.

Change-Id: I1bb21198c0c3caf44c757f6f39310bf2509054bf
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2012-10-16 15:29:15 +02:00
J-P Nurmi 7501d55ae0 Introduce (private) QStyleAnimation
QStyleAnimation handles style animations in a generic fashion by
sending StyleAnimationUpdate events back to the animation target
instead of calling QWidget::update() directly. This decouples style
animations from widgets and makes it possible to run style animations
for QQuickItems (ie. the desktop components).

The next step is to add "QObject* QStyleOption::target" and use that
everywhere instead of the widget pointer passed to various QStyle
methods.

Change-Id: Ib963c54872805fc3f0123ff922f82c9962a68b90
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-16 15:29:15 +02:00
Frederik Gladhorn e0ad6e5f7d Add documentation for ucs4 overloads.
Change-Id: Ibacd8f260950db195a17cffe8396e8460f227eb9
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-10-16 13:34:49 +02:00
Friedemann Kleint c6cc55c9fe Windows: Document WinAPI usage for the various compilers.
Change-Id: I139c6546cb84a1fa93920a501cd15eb11fdadbb8
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
2012-10-16 11:03:26 +02:00
Michele Caini b3e2c69cc2 Review of documentation.
Documentation has been updated, changes apply to Qt5 as well as Qt4.

Change-Id: I692869971bafffabbb9c323dc031f6d984c1adb9
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-10-16 10:48:22 +02:00
Tor Arne Vestbø 8fc4f99e46 Merge remote-tracking branch 'gerrit/master' into newdocs
Change-Id: If2168c519daf45390af04af9ef9722770453a493
2012-10-16 10:46:48 +02:00
Tor Arne Vestbø d3921cce47 doc: Add a bunch of missing depends
Change-Id: I32c3730f8181d73a7c8e36ef382c74b8da754269
2012-10-16 10:43:30 +02:00
Stephen Kelly f696205b37 Use the mkspec name Qt was configured with instead of default symlink
The default symlink is not available on Windows, so the qplatformdefs.h
header is not available there. Instead we can bypass the symlink and
use the actual mkspec name directly.

Change-Id: I1d7e05f35c1ff56befab5bed307cb1755ade8377
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-10-16 08:41:48 +02:00
Shawn Rutledge 3dad01ed58 QScreen's physicalSize can change. Ensure siblings are updated.
I have found the following scenarios when the physical size can
appear to change even though you can't actually stretch your monitor:
1) VNC allows setting the resolution.  Physical size will then be a
fraction of the physical size of the monitor on which you display the
VNC window.
2) When you rotate your display, the width and height are reversed.
3) MacOS X simulates a change in physical size when you change the
mode to one whose aspect ratio does not match your monitor, and also
when you use simulated HiDPI mode on a non-HiDPI monitor.  While this
info is basically wrong, since we are now querying the OS for it, we
might as well make sure it is propagated all the way through to the
QScreen object's properties.

Also, make sure that when geometry changes on one screen, all the
siblings are informed of the change in virtual geometry.  Also
simplified the signals (don't need separate ones to inform of
changes which are fundamentally related to each other and always
change together).

Change-Id: I6a98a1c203e24e8fbeef6e90999671e56dc0c655
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-10-16 08:41:48 +02:00
Shawn Rutledge 02549ed219 Windows QScreen: handle change in working area when the taskbar moves
Change-Id: Ic496419d89b9cca7653e77ef22978597abcb4e30
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-16 08:41:48 +02:00
Konstantin Ritt 4171cb7a35 Get rid of unused member
Change-Id: Ic6d207cacf02f2e6837f9f35020be7728ec60706
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-10-16 02:47:52 +02:00
Konstantin Ritt 46ed9dbaa0 QTextBlock: Handle surrogates in textDirection()
just like QString does.

Change-Id: I002827d9ec93fb19ef2c0198b5fcd4dae15c5c34
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-10-16 02:47:51 +02:00
Konstantin Ritt 34823524ae QFont: Don't detach unless value has really changed
Change-Id: I496b0102853d04652322bf8751e5824aaa0725b7
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-16 02:47:49 +02:00
Jason Barron c967c9ec7f Ensure QOPENGLF_APIENTRY and QGLF_APIENTRY are set correctly.
gl2ext.h only defines GL_APIENTRY and not APIENTRY so we should use
this macro if it is available. Without it, code that uses
QOPENGLF_APIENTRY and QGLF_APIENTRY might experience compile errors
due to the differing signatures.

Task-number: QTBUG-27313
Change-Id: Id79d934825928d9913138edc6e8f1b00edc89a8d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-16 02:47:46 +02:00
J-P Nurmi 6891d8a4b6 qfeatures.txt: add LOCALSERVER (requires TEMPORARYFILE)
Change-Id: I5b03fee3ceceade1fc0f4e3162eac339b1d147f3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-10-15 22:44:29 +02:00
Titta Heikkala bdcece7d46 Revert a change to printer orientation
Reverting change: Ia6bc9ae14d79a646e61bfc97652f9f5af90738b3
The previous change does not set the printer correctly. It looks
based on the tests that the correct printer is set, but in reality
the default printer is used (even though printerName() is returning
the printer set).

Updated taskQTBUG4497_reusePrinterOnDifferentFiles() test case
so that it generates PDF instead of PS. Testing the binary output
can't be guaranteed to work in this case.

Change-Id: Iee111f2c2dec84f86344a38816c21e191f5373ea
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2012-10-15 22:01:47 +02:00
Christoph Schleifenbaum 2097b9193f Cocoa: Speed up fading out scroll bars.
This patch replaces QDateTime usage with msecs since epoch to calculate
scroll bars opacity. This eliminates lots of QDateTime::msecsTo calls.

Change-Id: Ic0c26806660c192c5fc6de0dafd86b4200e3cb4c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-15 21:59:24 +02:00
Friedemann Kleint a186d2f2ed QDockWidget: Enable framestrut events when undocked by doubleclick.
Task-number: QTBUG-26296

Change-Id: I2821a99add238d2a2cb5b6788d689a48e050e74a
Reviewed-by: Markku Tapio Heikkilä <markku.heikkila@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-15 21:55:34 +02:00
Zeno Albisser 00d78dac2f Add cglContextForContext to QCocoaNativeInterface.
This change enables receiving the native CGLContextObj that is used
by a QOpenGLContext. This clearly is non-public api that is only meant to
be used as a last resort for cases where it is really necessary to
get hold of a native context object.

Change-Id: Id00efc88a73d7df04a68c022f19d9d1c4f6d386b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-10-15 21:51:41 +02:00
Frederik Gladhorn 83ffc56a72 Make QFileDialogs more accessible.
Update the file dialog's ui file.
Add accessible name and description to the list views.
Fix the tabbing order to be more logical.

Change-Id: Ib71214e1f2aef4f9c9bfa747ba5a8c452b18fa22
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-15 21:34:24 +02:00
Miikka Heikkinen 698d5a2b9f Improve Qt::WA_UnderMouse accuracy
Qt::WA_UnderMouse is set/cleared when widgets get enter/leave events.
When there is a popup active, Qt::WA_UnderMouse should always report
false, but this was not happening, because existing state was not
cleared when popup was opened.

Dispatch a leave event for last mouse receiver when a popup is
opened to update the Qt::WA_UnderMouse state. This is roughly
equivalent to what happens on Qt4.

Task-number: QTBUG-27478
Change-Id: I7739e75727213e748ab2f42f1027d32325d89fb0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-10-15 21:11:57 +02:00
José Millán Soto 13e106fdf6 Use QLatin1String in AtSpiAdaptor::applicationInterface
Using QLatin1String in string constants which were not using it.

Change-Id: I3aa4b7104cf3d1765874e0ee9a6fd23aadd8d671
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-10-15 17:02:24 +02:00
Mitch Curtis ef1a4392c6 Fix spelling mistake in QNetworkDiskCache detailed description.
Task-number: QTBUG-27291
Change-Id: I620d258a08d670fa27d60575e32f1767525f3ed9
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-10-15 16:55:39 +02:00
Simon Hausmann c07408e220 Adapt to WebKit Widgets module changes
QtWebKit is being split up into QtWebKit and QtWebKitWidgets. QWebView
and QGraphicsWebView live in the QtWebKitWidgets module and consequently
the class list here in UIC needs to be adapted.

Change-Id: I245dba49d4fb23ca197f78de4a429b8ba9f78c3f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2012-10-15 16:10:23 +02:00
Mark Brand 7a34e88edc QtSql: Correct documented default precision policy.
Follow-up to commit c9f77564df14f91276e9ca693a9b3f339dab9334
Task-number: QTBUG-27482

Change-Id: I17c12ee14d4609bccbe67bba2581f13d72c069ae
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-10-15 12:19:45 +02:00
Konstantin Ritt 3e030a9652 QRawFont: improve performance and safety of glyphIndexesForString()
As of 98c1eb1750, partially initialized
QGlyphLayout is ok for stringToCMap() if GlyphIndicesOnly flag is set,
thus we can use the glyphIndexes buffer directly and avoid copying.
Also add some checks to guarantee we're not falling into an undefined behavior
for the empty text or NULL buffer.

Change-Id: I662953703e4c65edbebabbe4b753972417d963f3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-10-15 10:18:31 +02:00
Olivier Goffart 3356a331f6 QThread signals documentation improvement
Be more explicit on from which thread the signals are emitted, and
mention that it is possible to connect finished with deleteLater

Change-Id: Ib72be94a81be383774f08d71915fa609843030e0
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-10-15 10:18:31 +02:00
Mark Brand f8cfb4bebd correct spelling in QtSql documentation
Change-Id: I69e4178bbe967a70b1141122639883b5cbacd924
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Bill King <bill.king@nokia.com>
2012-10-15 10:18:31 +02:00
Mark Brand 8d56ed85bd QComboBox::currentText: correct documentation
The documentation previously neglected the fact that the current text
can be provided by the embedded QLineEdit if the combo box is editable
even if there is no selected item.

Change-Id: If40868c1633af7ce81b437d29e1da3fd4fefafb0
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Adam Light <aclight@gmail.com>
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-10-15 10:18:31 +02:00
J-P Nurmi de23077207 QKeySequence: remove duplicate QDataStream operators
The operators are implemented in qkeysequence.cpp

Change-Id: Id3078abe944673dd2076cc642e4474caa1472dcc
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
2012-10-15 10:18:31 +02:00
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
Martin Smith 5a1e30df86 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>
2012-10-12 15:57:46 +02:00
Martin Smith 206f100a0d 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: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-10-12 15:57:34 +02:00
Tor Arne Vestbø 6234dadf09 doc: Fix a few doc errors for QtSQL
The examples include path already contains 'sql', so we can't prefix the
includes with 'sql' as well. Changing the include path to also include
the parent examples directory is not an option, as qdoc will then try to
generate output for example single example.

Change-Id: Ifae07af86e60e6105a0625f29fbd6bc8f73b2550
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-10-12 15:06:30 +02:00
Tor Arne Vestbø 9f657424aa doc: add missing dep from qtcore to qtgui
Change-Id: Ie7cf8236b376376a320e2de5ca65d2cd7da91c2f
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-10-12 15:05:48 +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
Marcel Krems b5b8fdb915 documentation fixes
Change-Id: If165933df41e518f5ba6065792676260fd2492b6
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2012-09-27 02:33:09 +02:00
Stephen Kelly 87f25de7c3 Fix typo in variable name.
Change-Id: I3bd59982605d242c95278bfeb71a6071ec222d08
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-09-27 02:29:09 +02:00
Thiago Macieira 90e207e4c7 Fix spelling mistake
Task-number: QTBUG-27355

Change-Id: I77ecc01e2a3ea1cac94e7c99c688cfd7cab5319b
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-09-27 02:28:39 +02:00
Stephen Kelly c5c007b813 Rename a variable it -> childIt.
There is another iterator called it at the top of this function.

Change-Id: I8addf47d66f098c5d811eb54674525eddb4d4a1f
Reviewed-by: David Faure <faure@kde.org>
2012-09-27 02:27:47 +02:00
Marc Mutz d85dd245f9 qtypetraits.h: add is_signed/is_unsigned/not_/not_c predicates
is_signed/is_unsigned check whether the type argument is signed
or unsigned, resp., and will be used in QFlags to select the
correct underlying integer type.

not_ is used in the implementation of is_signed

not_c is for completeness (version of not_ that takes a bool
instead of an integral_constant).

Change-Id: I77cc445e8c6cf3181336505c9c13478fba3e7890
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-27 02:25:25 +02:00
Marc Mutz a19fd0f926 QFlags: fail for 64-bit enums
An int is not enough to hold all values of a 64-bit enum, so
don't allow to compile QFlags for such enums.

Change-Id: Ia291c4a5e2160dfd6d5a35e61a7f71ab571b9d9a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-27 02:25:15 +02:00
Simon Hausmann ce1f994e9b Fix QScreen::orientation() not always being updated after changing the update orientation mask
The back-end might report screen orientation changes at any point and we
record it in screen.d->orientation. However QScreen::orientation()
returns the orientation filtered according to the mask.

Changing the mask sends a notification to the back-end, which might send
another update as a result of a possible subscription to system services
(accelerometer). However on platforms where no subscription is required, where
the platform plugin ignores the mask and always sends the latest orientation,
we should "simulate" the update by updating the filtered orientation according
to the new mask. The function is cheap to call as it won't emit any signals
unless the orientation actually changes.

This patch also adds missing flush() calls after handleScreenOrientationChange
calls in the tests to ensure that the (synthetic) window system events are
actually delivered to QScreen/QGuiApplication.

Change-Id: Iebdd050f947e658ff5bc388629aa4cb31ab497fe
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
2012-09-26 19:55:00 +02:00
Simon Hausmann 9362474805 Fix initial window orientation with Qt on MeeGo 1.2 Harmattan
The window orientation changes are handled through a generic QPA plugin and
sends an initial window orientation change event on startup for the initial
orientation and subsequent updates when the device orientation changes.

Unfortunately the plugin was never loaded after the introduction of the new
plugin loading mechanism, because the factory key ("MeeGoIntegration") was
not provided to the plugin registry.

Change-Id: Ib7324561993abfbac1dccb0839aab0a8e870d231
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
2012-09-26 19:54:34 +02:00
Simon Hausmann c4e736cf9d Fix events being processed on application start
Commit ef2efafcc6 introduced a call to
QWindowSystemInterface::sendWindowSystemEvents() in
QGuiApplicationPrivate::init(), which in its implementation ends up calling
sendPostedEvents() before flushing and processing any pending (internal) window
system events.

This patch changes the call in init() to use
QWindowSystemInterface::flushWindowSystemEvents() instead, which is more gentle
in that regard.

The provided unit test verifies that no posted events are processed during the
execution of the QGuiApplication constructor while at the same time verifying
what the original changed tried to do: Allow a generic plugin to provide window
system specific defaults that are implemented using the event queue of
QWindowSystemInterface.

Task-number: QTBUG-26886

Change-Id: I129a907c00d947df60fe1a02efc67857580fce24
Reviewed-by: David Faure <faure@kde.org>
2012-09-26 19:54:19 +02:00
Sean Harmer aad58ac87e XCB: Correctly report the created OpenGL context version and profile
This commit fixes the xcb qpa plugin such that it now correctly reports
the version and profile of the created OpenGL context in the
QOpenGLSurfaceFormat. To do this we have to create a temporary X window
so that we can make our new context current.

We also handle the buggy nVidia drivers which incorrectly report 0 for
the GL_CONTEXT_PROFILE_MASK query.

The reduced format is also copied back from qglx_findVisualInfo.

Change-Id: I6f34fe1c6130aebbb6b40c36df4acc216069d2b1
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-09-26 19:21:15 +02:00
Sean Harmer 61d853797b OpenGL: Fix QGLFormat::openGLVersionFlags() on OS X
OS X is limited to OpenGL 3.2 and we have to explicitly request a Core
profile context to get the full set of available versions as OS X does
not implement the Compatibility profile.

Change-Id: I8c2a6dc272416cbaf8fee44adbc4471417bf4510
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-09-26 19:20:58 +02:00
Stephen Kelly ebf0ee34e7 Don't call parent() so often when processing a range.
Task-number: QTBUG-17732
Change-Id: Iefe5801f5941136f77001c532870e22f7fdd2c69
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-26 19:09:14 +02:00
Marc Mutz 9b439161ac QScrollBar: clean up wheelEvent() implementation
This code was moved from the general event() handler.
Remove comments and casting that were necessary there.

Task-number: QTBUG-27308
Reported-by: chenjiexin
Task-number: QTBUG-21534
Reported-by: Martin Koller
Change-Id: I14ef4c6363002032895f6840a7c68c1f5f665384
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-09-26 19:07:07 +02:00
Marc Mutz aec5b76b51 [QTBUG-27308][QTBUG-21534] Don't mouse-wheel-scroll QScrollBar when disabled
This fixes a regression introduced in Qt 4 commit
e855b199319c932f2e9500235775f961bc32e41a.

The problem was that by handling the wheel event in event()
instead of wheelEvent(), we lack the guard clause in QWidget
that doesn't even call the handler if the widget is disabled,
and the code didn't handle this itself.

Fix by reimplementing wheelEvent() instead, which we can now
do because we can break BC.

This commit just moves the code. Another commit will clean
up the implementation of wheelEvent().

Task-number: QTBUG-27308
Reported-by: chenjiexin
Task-number: QTBUG-21534
Reported-by: Martin Koller
Change-Id: Ibe6b89a81fe889f839c205b859a1492b39a4ddc3
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-09-26 19:06:47 +02:00
Martin Smith 4b21631f59 qdoc: retrying More refactoring of qdoc data structures
This commit is the second phase of a significant
overhaul of qdoc. Two new classes, QDocIndexFiles,
and QDocTagFiles, are added to encapsulate the
creation and use of the qdoc index files, and the
creation of the qdoc tag file.

Change-Id: I94651b10628e535ea7b26bd8256037cd819ccea7
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-09-26 10:12:04 +02:00
Samuel Rødal d8cebcdf67 Reintroduce mention of QWidget in coordinate system docs.
Change-Id: Ied67ec82ee66eea7d3255105cf0f635f1d7dd9e8
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-09-26 10:08:59 +02:00
Teemu Katajisto 906c0168c5 QtPrintSupport: use PPD defaults in CUPS plugin
Initialize CUPS plugin with default values from the PPD file. Implement
paper size handling when using CUPS paper sizes to make paper sizes to
map properly when used through QPrinter interface.

Change-Id: I84d20aa4b1c7250fca754aecde419467f57ef16b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-09-26 10:08:59 +02:00
J-P Nurmi 27cd20e576 qtest.h: add missing QT_NO_DATESTRING guards
Change-Id: I04d8ec2e9d41399cffc610f943fc06e043831ceb
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
2012-09-26 10:08:59 +02:00
Giuseppe D'Angelo 8b032fe423 Make QSignalTransition take a pointer-to-const QObject
The obvious idea is that a connect() happens behind the scenes.
As QObject::connect takes a pointer-to-const, QSignalTransition should
do that as well.

TODO: the API becomes asymmetric in that it takes
a "const QObject *" but returns a "QObject *". Reasoning is needed.

Change-Id: I18d0436e7036eee851fd36d5b8ccda4a4757938f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-09-26 10:08:59 +02:00
Kai Koehne f052ee467d Fix MinGW/gcc warning about NOMINMAX being redefined
Commit 5230d62fe added a #define NOMINMAX, which conflicts with a
NOMINMAX definition in the MinGW headers. Just use the same definition
as in MinGW to fix the gcc warning.

Change-Id: Ib21dd323ebbdca5d143e394c7631303e0c72541a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-26 10:08:59 +02:00
Kai Koehne 694e1b6381 Core: Silence gcc warnings about unitinialized members in qarraydata.cpp
It's perfectly correct to leave members uninitialised, since they are zero initialized.

Change-Id: I0d0c737cf35793a2633d44ce194af7f489903c03
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2012-09-26 10:08:59 +02:00
Miikka Heikkinen 1eabc2417b Fix restore/minimize/close buttons for maximized MDI subwidows
The style code to display the restore/minimize/close buttons in menubar
for maximized MDI subwidows was removed in Qt5 as it was incorrectly
ifdeffed with just QT_NO_WORKSPACE where QT_NO_MDIAREA should
also have been used. Brought back the removed code with proper
ifdeffing.

Task-number: QTBUG-27235
Change-Id: I89607dd54eec00329e576c72b0e8b997f37cdb29
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-09-26 10:08:59 +02:00
Simon Hausmann 6ad59cbb0f Remove Windows CE time conversion compatibility functions
These files were used by WebKit for Windows CE, but they are not needed
anymore since https://bugs.webkit.org/show_bug.cgi?id=93446

Change-Id: Ic6808bf177ff18c668a5a281687a5b7842786ef0
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Kevin Funk <kevin.funk@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-09-26 07:11:01 +02:00
Jonas M. Gastal 4920090da0 If accept fails, stop accepting new connections and emit error signal.
Task-number: QTBUG-24778
Change-Id: I6c5b685b3f861a0fafc1475c41bb35cede17d712
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-26 04:03:51 +02:00
Marc Mutz 5fe1574725 [docs] QApplication: fix keyboardInputDirection() docs
There were two documentation blocks: the first had the wrong class name,
the second was duplicate.

Change-Id: I241b3e6567376a46a6270837cce4aa380a6c8c49
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-09-26 04:03:41 +02:00
Marc Mutz 94694424ca [docs] QInputDialog: document deprecated member getInteger()
Change-Id: I2ac24acbecd67db74f9474a7a2a1ee94b03282d4
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-09-26 04:03:41 +02:00
Shawn Rutledge 9cec2def90 xcb: better error handling if no randr or screen resources query fails
Marc Mutz already reported problems with ssh -X fowarding.  Now all
such errors are treated the same: if we can't get screen output
attributes, just assume there is only one.

Change-Id: I96802fc90072c623de3370ed2898893daf58198a
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-09-26 04:03:41 +02:00
Marc Mutz 1e39e8f53b [docs] QFlags: fix a whitespace error
Change-Id: I316ceb3d630d6697466a46fa14bdbd8379079875
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-26 04:03:41 +02:00
Marc Mutz 0842d32441 QFileSystemModel: fix permission mangling
The old code masked out write flags before returning permissions
from permissions() or data(FilePermissions) in order to force
QFileDialog to disable the rename and delete actions. This was to
fix Task 143519, but introduced QTBUG-20503.

Instead, revert to the pre-143519-bugfix code and do the necessary
check in QFileDialog directly.

Also add a testcase for 143519.

Reported-by: Gilles Pascual
Task-number: QTBUG-20503
Task-number: 143519

Change-Id: I140109341c0ed40722e3aac4327c2a740fb014c2
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2012-09-26 04:03:41 +02:00
Mitch Curtis 6b6fefad48 Remove duplicate words and punctuation from documentation.
Change-Id: I5550c62d412510bc2c5acceb2cae7d2f2ef6a8d3
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-09-26 04:03:20 +02:00
Konstantin Ritt a798b956b9 QCharAttributes: add wordStart/wordEnd flags
A simple heuristic is used to detect the word beginning and ending by
looking at the word break property value of surrounding characters.
This behaves better than the white-spaces based implementation used before
and makes it possible to tailor the default algorithm for complex scripts.

BIG FAT WARNING: The QCharAttributes buffer now has to have a length
                 of string length + 1 for the flags at end of text.

Task-Id: QTBUG-6498

Change-Id: I5589b191ffde6a50d2af0c14a00430d3852c67b4
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-09-26 03:09:57 +02:00
Joerg Bornemann d47ee52e34 fix incorrect uses of qmake in documentation
Assigning backslashes to qmake variables yields a warning
these days. Use forward slashes as they get automatically converted.

Task-number: QTBUG-27325
Change-Id: I804fa641064ce183e9794026ad1dbc91725d334d
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-09-25 20:04:00 +02:00
Marc Mutz 07c44f7bd3 QFileInfoGatherer: general cleanups
- fix typo in comment
- make translateDriveName file-static
- use QList::reserve()
- explicit ctor
- annotate functions called by owning thread/run()
- iconProvider() and resolveSymlinks() shouldn't be slots
- private instead of protected
- run() marked Q_DECL_OVERRIDE
- annotate which members are protected by 'mutex'

Change-Id: Ic176a030b0597c98f48185efd17260fd62532460
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-25 00:08:16 +02:00
João Abecasis 0c2b7b1020 Fix default-constructed QFileSystemEntry
Member variables for lastSeparator, first and lastDotInFileName are now
initialized to -1 (non-existing), where the previous value of zero would
mean a separator/dot at that position and resulted in path() returning
'/', instead of '.'.

Tests were expanded for better coverage of empty state and
default-constructed instances.

Change-Id: Ie27547886b52224d38b5be0b4f920c9927fd440f
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-09-25 00:08:16 +02:00
Lars Knoll ba2c485c55 Ignore the QT_NAMESPACE for moc runs
Moc should not see a defined QT_NAMESPACE, to
keep the names of all symbols consistent with
an un-namespaced Qt.

Change-Id: Ia72afabaa0820b02a0863148510122ce942a5082
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-25 00:08:16 +02:00
Lars Knoll 789f929907 Moc: Correctly expand macros with arguments
Moc now supports full expansion of macros with arguments
with the exception of some keywords such as Q_OBJECT
and others that are used internally

Change-Id: I283d47152f75de81ec68a3df1f0f2273f11c5149
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-25 00:08:16 +02:00
Lars Knoll 99194d1db6 Moc: Make # and ## valid tokens in cpp parsing mode
This is required so preprocessing macros with arguments
can work correctly.

Change-Id: Ia30ede6a3579be13800bf1255d313748e2d696f9
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-25 00:08:16 +02:00
Lars Knoll 38f1b4eeae Correctly parse function macros
Parse function macros and add it's list of arguments
to the Macro definition.

Change-Id: Id22f5cf4a1c098f7b4f5b72f002900cd40d03e0f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-25 00:08:16 +02:00
Lars Knoll 34a3b63dc7 Correctly expand macros without arguments in moc
This helps e.g. cases where a namespace is defined
through a macro and moc doesn't see it at all.

Expanding macros with arguments is significantly more
work, and should happen in a separate commit.

Change-Id: Ic8d0443d06fab2ed343115d8c43022f2c67ec3cd
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-25 00:08:16 +02:00
J-P Nurmi 0077b1e3a0 qdbusmetatype_p.h: add missing QT_NO_DBUS guards
Change-Id: Idb459fe6300f710b959247cd9c1997a4d5774b2d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-24 21:28:40 +02:00
Mark Brand 7b95df2da0 QSqlTableMode::selectRow(): lack of WHERE clause is an error
Since we only want one row, never ever run a SELECT without a WHERE
clause.

Change-Id: I40a78935f5573111faa3922eae97e6d5961be5f2
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-09-24 21:27:51 +02:00
Mark Brand 3c2733e45f QSqlTableModel::selectRow(): reduce scope of QSqlQuery
It's good to clean up the query before emitting signals about the
updated row. It's possible that connected slots will call selectRow()
again for other rows.

Change-Id: I482fe2dd58218f53567ce8725ee591ce2eeda348
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-09-24 21:27:51 +02:00
Mark Brand 7389c09637 QSqlTableModel::selectRow(): fix failure on uncached rows
This method was originally intended for refreshing rows after
submitting changes. It should also work for refreshing rows
that are unchanged (i.e., not cached), but did not because
constructing the primary values depended on the cache. As a
consequence, the WHERE clause for the query was not created.

Fixed by deriving primary values for uncached rows from the
query record. Note that the cache is still authoritative for rows
it holds. This is important because the prmary values there may
differ from the original query record due to changes to columns
of the primary key.

Includes new test.

Change-Id: I41cca2cbf26019d4b495ffa6d876e2b55ec57803
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-09-24 21:27:51 +02:00
Konstantin Tokarev cb2d87e8b8 Fixed crash in moc on big endian platforms.
Change-Id: Icaa38eb4b404e5f52248fdeaf9180a5d70d0f5f2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-09-24 21:27:51 +02:00
Konstantin Tokarev 855018ac55 Fixed QJsonDocument::fromBinaryData on big endian platforms.
Change-Id: I1786b6222867c8780f6768e5220e7ddff952b28e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-09-24 21:27:51 +02:00
Konstantin Tokarev 609d2eebe8 Fixed ifdef condition in QJson resulting in big endian breakage.
Change-Id: I3d36d75ff95ad2fe2fcbbe262f9782f0709d7041
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-09-24 21:27:51 +02:00
Samuel Rødal 1dadede8ed Fixed instances of "to to" in qtbase.
Really it should just be "to".

Change-Id: I7d0fff334bac3f0ac78adb8131e3bf3df1f1b242
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-09-24 21:27:51 +02:00
Thiago Macieira 5d9a57432e Move the fetch and store pixel functions to qdrawhelper.cpp
These functions have begun showing in the tst_symbols unit test as
"symbol does not start with q". Since they're never called directly,
they're never inlined. Since they were inline, the compiler was probably
deciding to not export them.

Something changed and it could be anything (new compiler version, new
options, etc.). So mark them static.

Change-Id: I838dfc94edd7f09c202743bff0daf9d20c10c3a6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-09-24 21:27:51 +02:00
Thiago Macieira cb7d64170d Centralise handling & ignoring of SIGPIPE in qcore_unix_p.h
We had two instances of this function in the Qt source code, one clearly
a copy of the other, so both had the same thread-safety issue. Instead,
let's have one copy and have both write_nosignal() and sendto() call
them.

Q_NO_POSIX_SIGNALS is also gone. It was only used with Symbian.

Change-Id: I0f1354a8e9df8e6b10a02f86a940e3c6d1222087
Reviewed-by: Peter Hartmann <phartmann@rim.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-09-24 21:27:51 +02:00
Mark Brand eb42be700a fix build failure for MinGW using "system" freetype
The configure script correctly detects freetype and sets
"system-freetype" in QT_CONFIG. However, the project file did not
consider this possibility.

Change-Id: I9ce90e7cd032a12ed7d06d3858b16c5a8d90c073
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-09-24 21:27:51 +02:00
Andreas Holzammer 03f4930eca Try to auto-detect the font rendering for WinCE
Native font rendering is broken for QML applications, use free type
rendering for those scenarios. Use native rendering for all other
applications.

Use a workaround to find out if we are running a QML application on the
target.

Related to QTBUG-24205.

Change-Id: I653ea579098db1e58af8176cb2c3f943be0b9602
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-09-24 18:02:13 +02:00
Marc Mutz d16efdfc0e QModelIndex: add constexpr
The functions dealing with the void* internalPointer() can't be
constexpr on GCC 4.6 and Clang 3.2-trunk, even though GCC 4.8-trunk
accepts it, because of the casts required.

Change-Id: Id04105312da3d0c7632f7df06a34bc5a71120b32
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-09-24 18:01:45 +02:00
Marc Mutz 3291e0a77c QModelIndex: store quintptr instead of void*
Rationale:
1. Comparing pointers that don't point the same array is undefined behaviour, IIRC,
   and op== and op< did that.
2. The functions that cast to/from the storage type can't be constexpr. It makes
   more sense to have the quintptr functions be constexpr (they have a fighting
   chance to actually get passed something constant) than it is to have the void*
   functions constexpr. Thus, the storage type should be quintptr.

Also prepare op< to be constexpr-compatible.

Change-Id: I4b2d4a0ec8ca80d619d272bf07c57887cbd11c2f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-09-24 18:01:37 +02:00
Miikka Heikkinen fd6a870136 Fix hover handling in QTreeView
Cached hoverBranch could get invalid if branches were collapsed or
expanded programmatically, leading to a crash in some situations.

Fixed the logic for updating hovered over branch indicators and
also now update hoverBranch when drawing so that it is guaranteed to be
up to date there - this fixes issues like hover indicator not updating
when the view is programmatically scrolled.

Task-number: QTBUG-27158
Change-Id: I5bd1ad76aee512ad78df33959a84ead16886a47c
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-09-24 18:01:10 +02:00
Stephen Kelly 05aa8c6c12 Implement viewOptions() logic in QListViewPrivate.
The private method is called in several places in QListViewPrivate,
but before this patch, the implementation in QAbstractItemView was
 called. This meant that the options were not set properly,
resulting, for example, in icons in icon mode being laid out in
list mode (on the left and small).

This is a regression resulting from
8eab9cbce2 and
3578e05b29. Other views are not
affected in a similar way.

Change-Id: I753cb99410e367266753eaf2fa43361b9212ab96
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-09-24 18:01:07 +02:00
Stephen Kelly 3e9f279290 Specify the --build-config when invoking ctest.
Otherwise we get strange build errors by attempting to build an
project in debug mode against a release-mode Qt:

http://testresults.qt-project.org/ci/QtBase_master_Integration/build_03955/win32-msvc2010_Windows_7/log.txt.gz

(grep for MSVCRTD)

The CMAKE_BUILD_TYPE variable is always specified by the ctest_testcase
driver as either Debug or Release.

Change-Id: Ia5af7f0c31550b92679a3190e07b4e5c4ea638c6
Reviewed-by: Brad King <brad.king@kitware.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-09-24 18:01:05 +02:00
Stephen Kelly f03ef8d8f4 Pass the unmodified directory/project name to build-project.
The result of replacements for special characters should not be
used here. CTest needs the replacements for the test names, but
requires the argument to the project() command to match the
argument to ctest --build-project.

Task-number: QTBUG-27087
Change-Id: I4ff7a7e00ddb65ab0c0f2305901e1d03f46e07d1
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-09-24 18:01:02 +02:00
Stephen Kelly f5bdefca0b Don't append _build to the directory name of tests expected to fail.
The name passed to the project() command must be the same as the argument
to ctest --build-project.

Initially I had appended _build to disambiguate the generated project
from the project under test, but that is not needed anyway as the
project under test is self-contained, so it's ok.

Task-number: QTBUG-27087
Change-Id: I648d57271529d4e8d308ff60b81419ade29b2e44
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-09-24 18:00:56 +02:00
Jing Bai 37e3168abc wrap QLibrary related code with QT_NO_LIBRARY
To fix a compile error when QT_NO_LIBRARY is defined.

Change-Id: Ie72b60b8204641fa05f4cdbf66e908cb3526217e
Reviewed-by: Jing Bai <jing.bai@digia.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-09-24 17:06:48 +02:00
Sean Harmer 57b4a504ff OpenGL: Remove API for stubbed Geometry shader support in gui/opengl
There is a pending patch to reinstate this for Qt 5.1 (the patch
introduces new API top QOpenGLContext). I will fold the revert of this
patch into:

https://codereview.qt-project.org/#change,31231

Note that QGLShaderProgram still supports Geometry shaders so source
compatibility with Qt 4.8 is maintained.

Change-Id: I53faedd4e4a2a6c2a9765afdc1bee6df5ae2f711
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-09-24 16:59:58 +02:00
Jędrzej Nowacki c06106f28d Fix potential breakage in QString.
Negation operator ("!") have precedence over bitwise and ("&").

Change-Id: I39e2d99da6eaa4477bbe35a1259f745e05c9841a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-24 16:53:13 +02:00
Sergio Ahumada 09c90346aa Update "About Qt" dialog from Nokia to Digia
Task-number: QTBUG-25205
Change-Id: I9294f8e36523f242b3d05d521f6a24274ba1b0a0
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
2012-09-24 08:22:20 +02:00
Shawn Rutledge 1a31561178 xcb: dynamic QScreens; primary first; corrected logical DPI
A new QScreen is created when an output is activated (monitor or
projector is added, for example), and destroyed when the output is
turned off.  Ensures that screens and siblings are always in
the right order: primary comes first.
Logical DPI is derived from virtual geom / virtual size,
which will be different than output geom / physical size
if X was started with --dpi override.  This is a good thing:
when X gets wrong EDID info for physical size and you need to
override it to get reasonable font sizes, Qt will heed the
logical DPI for font sizing.

Change-Id: I5e3de34013c1b6b21067243de56f3f1eb72787fa
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-09-24 00:26:07 +02:00
Marc Mutz 06c89ae026 Use QStringList::join(QChar) overload where applicable [tools]
This is an automated change performing the following replacements:
                    join\("(.)"\) -> join('\1')
  join\(QLatin1String\("(.)"\)\)  -> join(QLatin1Char('\1'))
  join\(QStringLiteral\("(.)"\)\) -> join(QLatin1Char('\1'))

Change-Id: Ia087beb886bbaec1a0976cd924440d8904044879
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-23 23:30:33 +02:00
Marc Mutz c00bd8d677 Use QStringList::join(QChar) overload where applicable [QtCore]
This is an automated change performing the following replacements:
                    join\("(.)"\) -> join('\1')
  join\(QLatin1String\("(.)"\)\)  -> join(QLatin1Char('\1'))
  join\(QStringLiteral\("(.)"\)\) -> join(QLatin1Char('\1'))

Change-Id: I81c378ef6aeeada5e116f1394cc9fc67f901ffd6
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-23 23:30:18 +02:00
Marc Mutz e44f1dabe4 QTestLib: clean up qCompare specialisation/overload mix
qCompare() was both overloaded and specialised, but always as a template.
This lead to the QIcon specialisation actually invoking
   qCompare(QFlags<void*>, ...)
when specifically asking for qCompare<void*>() (detected by adding
underlying-type detection to QFlags).

Fix by preferring overloading and not specialising anything.

Change-Id: Ie001ebb9dfb0847c6c33a3f45177a61579fd61ee
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-23 23:29:42 +02:00
Friedemann Kleint f6155aec30 Redirect keyboard/mouse grab to the widget parent window.
Use the native parent's window if the widget in question does not
have one. This should be in line with Qt 4.8 using effectiveWinId().

Remove redundant code in grabMouse(QCursor).

Change-Id: Id6ab192e739221fe89f865f4d2f7a6d4671a190b
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-22 20:46:30 +02:00
Marc Mutz e0b1eac3ff QStringList: adapt documentation to cover new join(QChar) overload
Change-Id: Ia73501e1e8a562cfab750d1796fb597cd89eab74
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-22 20:46:13 +02:00
Marc Mutz 2480ebb50b QFileInfoGatherer: remove useless locks
The m_iconProvider and m_resolveSymlinks members are only ever
accessed from getInfo(), which is not called from run(). So the
mutex-lockers aren't needed in the setters.

Change-Id: I3257c95366528c5c66352d20a09e8a43b811f3ba
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-22 20:45:39 +02:00
Marc Mutz 15953e9503 QModelIndex: clean up integer size confusion in the API
QAIM::createIndex() took either int or quint32, but QMI::internalId()
returned qint64.

In the new interface, createIndex() takes, and internalId() provides,
integers of type quintptr.

This matches the storage size of the void* in the model index and
avoids truncation.

Remove the
  createIndex(int, int, quint32) and
  \obsolete createIndex(int,int,int)
overloads.

This makes a literal 0 in the third parameter ambiguous now.
The solutions have been noted in changes-5.0.0.

Change-Id: I0a0ecd8430eaf695129a4d09d14d4e30745485c4
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-09-22 20:45:12 +02:00
Iikka Eklund be15856f61 Change copyrights from Nokia to Digia
Change copyrights and license headers from Nokia to Digia

Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
2012-09-22 19:20:11 +02:00
Marc Mutz a2d1cb87a0 QFlags: don't provide a constructor from void**
Use a pointer-to-member instead of void** for Zero, the type that is
used to accept only a literal 0, but not other ints, as QFlags ctor
arguments.

This was developed while trying to find the cause for a build failure
in the qCompare<QIcon> specialisation after adding underlying-enum
detection to QFlags, and it didn't help, but I think it's a saver
alternative to void**, in particular since the ctor in question is
implicit.

Change-Id: I71c67b0b50e9404e4e42836d09d62663296f58af
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-22 19:19:54 +02:00
Marc Mutz 7121bcca2d QDBusMetaTypeId: replace a volatile bool with an atomic int
Since there is no non-atomic data that is protected by 'initialized'
anymore, the read from, and the store to, 'initialized' may now have
relaxed memory ordering.

Change-Id: I58004e782d9fd93122efb31fa5b30ee160646d99
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-22 19:19:41 +02:00
Marc Mutz 373a7277db QDBusMetaTypeId: don't cache the result of qMetaTypeId<>() in static ints
There's not much point in caching the result of qMetaTypeId<>,
because it's already internally memoised.

In addition, the code that initialised the static int caches wasn't
protected against concurrent access under the assumption that the
operations performed were thread-safe.

That is true for most of them, but not for the stores to the static ints,
which race against each other:

   // Thread A               // Thread B
   r1 = initialized /*=false*/
                             r1 = initialized /*=false*/
   r2 = qMetaTypeId<...>();
                             r2 = qMetaTypeId<...>();
   message = r2;             message = r2; // race, ditto for all other ints

To fix, turn the ints into inline functions that just call the respective
qMetaTypeId<>() function.

Change-Id: I5aa80c624872c3867232abc26ffdcde70cd54022
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-22 19:19:37 +02:00
José Millán Soto f799e57151 Correct QSpiAccessibleBridge::setRootObject definition
QSpiAccessibleBridge::setRootObject was defined to require a
QAccessibleInterface* as parameter instead of QObject*, as a result of
that, QSpiAccessibleBridge::setRootObject did not reimplement
QPlatformAccessibility::setRootObject and the adaptor was not initialized.

After this change, applications should work with screen readers.

Change-Id: Iee3d39f8e0959c1d75b1e682847d266a723c141b
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-09-22 19:03:16 +02:00
J-P Nurmi b72aa1cad3 QGtkStyle: remove an unnecessary sanity check for theme name
QGtkStyle was unable to detect the current GTK+ theme.

Change-Id: Ifd816e044bb8294f4ee2e3598ff53eb7cbce6064
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-09-22 00:47:40 +02:00
Konstantin Ritt ceb9a8232c A step out from Harfbuzz (reduce dependency)
Introduce QCharAttributes and use it instead of HB_CharAttributes everywhere in Qt
(in Harfbuzz, the HB_CharAttributes is only used in the text segmentation algorithm
which has been moved from HB to Qt (well, most of it)).
Rename some members to better reflect their meaning,
remember to keep HB_CharAttributes in sync with QCharAttributes.
Also replace HB_ScriptItem with a (temporary) QUnicodeTools::ScriptItem struct
that will be replaced with a more efficient/friendly solution a bit later.

The soft hyphen and the mandatory break detection has been factored out
of the default text breaking algorithm to a higher level in order to refactor
the QCharAttributes bitfields and to optimize the implementation for the common case.

Change-Id: Ieb365623ae954430f1c8b2dfcd65c82973143eec
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-09-22 00:47:40 +02:00
Konstantin Ritt ed5fe1b95e Fix build under MinGW after 1e3269c086
Change-Id: I3c8c28ba1016af6351afa5118893133d373cb4e6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-09-22 00:47:40 +02:00
Samuel Rødal ed8dec360c Fixed multiple modal windows from all blocking each other.
A modal window in front in the modal window list should never be blocked
by a modal window further back in the list. This was taken care of in
QGuiApplicationPrivate::isWindowBlocked(), we just need to make sure it
gets called when a new modal window gets shown so that its blocked
status is up to date.

Task-number: QTBUG-27206
Change-Id: I590f1715e66067edb178081352636f34fe54a885
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
2012-09-21 22:04:00 +02:00
Sean Harmer 945d17b6e9 OpenGL: Add runtime check for OS X version and improve logic
Apple recommend adding NSOpenGLProfileVersion3_2Core when asking for
a 3.2 Core profile context and NSOpenGLProfileVersionLegacy in all other
cases.

Also added a missing runtime check for OS X 10.7 or newer. Fixes a
potential crash if Qt was built on 10.7/8 but executed on 10.6.

Change-Id: I4c09d2dbbe8df25a3553cc01b468dabab0f8eaa4
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-09-21 21:44:43 +02:00
Frederik Gladhorn 1dc517abc6 Documentation fixes.
Change-Id: I2e234ec4307bbe39359cdfa8b13e86661dad43b6
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2012-09-21 19:59:55 +02:00
Frederik Gladhorn eed5be6fcd Fix network doc links.
Change-Id: I319644da80d91c5cf6d247410f022fbfd062a1f3
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Peter Hartmann <phartmann@rim.com>
2012-09-21 19:59:46 +02:00
Frederik Gladhorn cf79da9933 Fix doc errors.
Change-Id: I9974d870c081620217582fcb6f8b146d208a471c
Reviewed-by: Peter Hartmann <phartmann@rim.com>
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
2012-09-21 19:59:34 +02:00
Frederik Gladhorn d1f74b8ddf Move examples to proper location.
Change-Id: Ib808f5d99cb8217f8786411b531fa5bc7fa5250a
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-09-21 19:59:16 +02:00
Frederik Gladhorn d16c565ca6 Move opengl/wid/net example docs to proper folders.
Change-Id: I846439a9cf7ad965ed27a00f98dbc4ff97abe73b
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2012-09-21 19:59:06 +02:00
Mitch Curtis 53373bdd9f Clarify valueChanged() signals' docs in QSpinBox and QDoubleSpinBox.
Explicitly mention that two signals are emitted and that the QString
overload does include prefix() and suffix().

Task-number: QTBUG-26190
Change-Id: I90435779dcb2e4aa494c4b1b6e73e7f69d7998a4
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Geir Vattekar <geir.vattekar@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-09-21 02:44:22 +02:00
Mitch Curtis 95cdcba91a Document that date/time formats without separators are unsupported.
The code is not handling formats like "HHmm ss" correctly, so it needs
to be documented until such support is provided.

Task-number: QTBUG-26067 QTBUG-26596
Change-Id: Ia456d8020e3e0aa9422e6e6987ac984f308facf9
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-21 02:44:22 +02:00
Jens Bache-Wiig fe966e5f48 Fix regression in QAbstractScrollArea
The style hint SH_ScrollView_FrameOnlyAroundContents was currently
being ignored by QAbstractScrollArea. This looks like an accidental
regression following 10c6f015f4.

This code path does not execute on mac so it should have no impact
on that patch.

Change-Id: I78ca0a6b87dfdd7d426acbb3ef49480390211af2
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-09-21 02:44:22 +02:00
Olivier Goffart e92313bf7e Add comments to document the internals of QMutex
Change-Id: Ieb5632017e5e8e09a11dc6b929efa19b4f350086
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-21 02:44:22 +02:00
Stephen Kelly f4a8383a9a Replace QStyleOptionViewItemV? with QStyleOptionViewItem
The former are a typedef for the latter in Qt 5. This only touches
internal implementation, as the API was migrated long ago.

Change-Id: Ided73021ebecc00508e6325c3d988b6c6ad336cd
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-09-21 02:44:22 +02:00
Oswald Buddenhagen 5ad378859a move syncqt call to qt_module_headers.prf
for one, the syncqt invocation is qt module magic and thus simply does
not belong into the generic default_pre file.
second, this way the forwarding header generation is now linked to the
rest of the build magic for a particular module, which is way less
confusing for the unsuspecting developer.

Change-Id: Idc8e420d3faf173d7fff4a41e6e1c59af15c3023
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-09-21 02:44:22 +02:00
Samuel Rødal b6acec1e5d Fixed outline / fill inconsistencies in raster paint engine.
We did coordinate rounding of the fill in the raster paint engine to
match how drawLine_midpoint_i rendered lines. With the new cosmetic
stroker in 4.8 this rounding is not needed anymore.

Task-number: QTBUG-26013
Change-Id: Ibe86fa809276c8e7988d393a67e772d57b9a4799
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-09-20 23:08:55 +02:00
Samuel Rødal 72aaba336c Fixed inconsistent rounding of square cap pens.
A horizontal line should round up at the same time as a vertical line
with square cap, when rendering at subpixel coordinates. Thus, the
special casing in the cosmetic stroker of offsetting by half a pixel
should be for flat caps instead of for square caps.

Task-number: QTBUG-26013
Change-Id: Ic09249337f814c7de95a17976ec9e651561a744b
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-09-20 23:08:44 +02:00
Laszlo Agocs 562d6ff90f Do not refer to non-existant member in QSurfaceFormat docs
Sample buffers should be enabled automatically under the hood
when samples is > 0 and therefore the getter and setter are
gone.

Change-Id: I9cd6438e89060f901598a6aacacb99362fac4718
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-09-20 07:04:11 +02:00
Laszlo Agocs aac24582c6 Cocoa GL context: do not crash when closing windows
Running hellowindow and closing its windows one by one would result
in crashes without the additional checks for the presence of the
underlying native window.

Change-Id: Id32bdfda9a77936380b2e9a95fb56ceb52028d9d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-09-20 07:02:00 +02:00
Andy Shaw 7432bb6bfb Load Mac specific resources when used in a static build
When Qt was built statically then the Mac specific resources were not
being loaded which meant some style specific images were not used.

Task-number: QTBUG-25391
Change-Id: If311148df19a87b6c8104553b662e3bf157f5717
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2012-09-20 07:01:42 +02:00
Sergio Ahumada c0bfb3d9b7 printsupport: Include own headers first
cpp files should include their own headers first (but below config.h)

Change-Id: I32a2c76a39d03f543c3eb8393b5e3015276f0622
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
Reviewed-by: Sergey Hambardzumyan <sergey.hambardzumyan@digia.com>
2012-09-19 22:27:11 +02:00
Sergio Ahumada 57efe2f626 dbus: Include own headers first
cpp files should include their own headers first (but below config.h)

Change-Id: I4115604aee3211118e2ecf604067f3559dbb9f4c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-19 22:27:11 +02:00
Stephen Kelly 509ab6375e Remove casting of QStyleOptionViewItems to set data.
The correct values are already set inside setOptions, because the
multiple versions of QStyleOptionViewItem were squashed in Qt 5.

Change-Id: If0faf4b35bbf476e00905905376868814b8b095a
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-19 19:54:44 +02:00
Rafael Roquetto 89d9f8fe94 Rotate non maximized windows
There are two types of rotation to be considered:
1. Rotation of native widgets
The corresponding window should be rotated and resized proportionally to the
new screen geometry.

2. Rotation of toplevel windows.
The window will be only rotated. It will be only moved or resized if it
becomes clipped, in order to be fitted on the screen properly.

Change-Id: Ice92427ac07a9bea284e68917ff3e0f436722bc0
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-09-19 19:54:44 +02:00
Oswald Buddenhagen 2794b99bc6 make src/tools/ compile without CamelCase headers
so the build works with syncqt -minimal

Change-Id: Ief5e8eb9a504dd6c84cff76cc3e5257450386a0f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-19 19:54:44 +02:00
Oswald Buddenhagen eff0349102 don't require a fake qconfig.h for the configure bootstrap
Change-Id: I3d1224ad19b9e5278e35cf7c5142a29ccb589140
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-09-19 19:54:44 +02:00
Oswald Buddenhagen 33e0d5c939 remove mentions of borland from project files
Change-Id: I3049b24ae287bee50aca1de06664a2309df69edf
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-09-19 19:54:44 +02:00
Frederik Gladhorn cae8951e30 Fix typo in docs.
Change-Id: Icfafa00062b442903579dd7993c75fffb60187f9
Reviewed-by: Peter Hartmann <phartmann@rim.com>
2012-09-19 19:54:44 +02:00
Tilman Sauerbeck eb5b23748b Make QStatusBar text available via accessibility.
UNTESTED cause the build fails for me (unrelated to this patch).

Change-Id: Ie6836596b6fbaf93baa21d7008509774f1379f5c
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2012-09-19 19:54:44 +02:00
Samuel Rødal 727c55c094 Fixed potential use of uninitialized variable in qgl.cpp
If glGetBooleanv fails this variable is left uninitialized.

Task-number: QTBUG-26952
Change-Id: Idb42833f2907bb66fd87c5cdb39753fca04e7438
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-09-19 19:54:44 +02:00
Thiago Macieira d626bea2c7 Split the qt_message_output function in two
This way, I can ensure that the noreturn qFatal function calls a
noreturn function as its last action.

Change-Id: I6db7aa2539af430414645f386d7fce87cdb97186
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2012-09-19 19:54:44 +02:00
Marc Mutz a67ab0decd QFileInfoGatherer: remove unused members userId/groupId
None of the code references these, so remove.

Change-Id: Ie48d30b49c644f093df9f42c8d087751c4e980ba
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-19 19:54:44 +02:00
Marc Mutz 6d9d2c4fa8 QFileInfoGatherer: fix race conditions pt.1: abort
Fix a race on the 'abort' variable. While there was a mutex lock around
the code that sets the variable in ~QFileInfoGatherer, there was no
protection in getFileInfos(), where it is read:

   // T:this->thread()  // T:*this
                        // in getFileInfos(), after last mutex.unlock()
   mutex.lock();
   abort = true;        while (!abort...
   // ...               // ...

Fix by making 'abort' an atomic. This means that we can drop the mutex
locker in the destructor, too. We still mostly access 'abort' under
protection of the mutex, because we need to protect other variables that
just happen to be accessed together with 'abort', but we avoid the mutex
lock/unlock on each iteration of the while loop in getFileInfos().

Also cleaned up the logic in run():

- by using the canonical form of condition.wait() (in a loop that
  checks the condition), we can ensure that !path.isEmpty() and avoid
  having to use the updateFiles boolean.
- by checking for abort.load() after we return from
  condition.wait(), we minimise the waiting time for thread
  exit.
- by using different local names, we avoid having to this->qualify members.

Also changed one condition.wakeOne() to wakeAll() for consistency
with fetchExtendedInformation().

Change-Id: If35f338fe774546616ec287c1c37e2c32ed05f1a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-19 19:54:44 +02:00
Marc Mutz ed116aa3b3 QVarLengthArray: provide STL-compatible member function names
This allows, among other things, to use QVarLengthArray as the target of
a std::back_insert_iterator.

Change-Id: I507f612a23da854bf865780aa0a7e6312f4a896b
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-19 19:54:44 +02:00
Sean Harmer 77fc6d30f1 OpenGL: Make use of the requested version and profile in QGLWidget
When instatiating a QGLWidget in Qt5 at present it ignores the version
and profile information in the QGLFormat meaning that we always end up
with an OpenGL 2.x profile rather than what we asked for. This commit
properly takes the version and profile into account.

Change-Id: I097f10e397c23f5d97c5fcd8d5354667da286896
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-09-19 16:16:38 +02:00
Sean Harmer c45005a778 OpenGL: Add flags and logic for newer versions of OpenGL in QGLFormat
Change-Id: Iad57286c36c7fd205f06abc40cca5f568d572e81
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-09-19 16:16:20 +02:00
Sean Harmer 7aaf293b35 OpenGL: Request latest GL version when using QGLTemporaryContext
This is necessary so that QGLFormat::openGLVersionFlags() returns the
complete set of versions. Without this patch the temporary context
ends up obtaining an OpenGL 2.x context as the QPA plugins now prefer
to use the ARB {wgl,glx}CreateContextAttribsARB function which creates
contexts of the specified version (2.0 for a default QSurfaceFormat).

Change-Id: I2c3e02c9d7b77d4ee0484f9e8786f41675f8a439
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-09-19 16:16:13 +02:00
Giuseppe D'Angelo d95d5bfd07 Make QTimer::singleShot take a pointer-to-const QObject
The obvious idea is that a connect() happens behind the scenes.
As QObject::connect takes a pointer-to-const, singleShot should
do that as well.

Change-Id: I36433c723441294b2088b23f0c37724ab43d9503
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-19 16:13:39 +02:00
Giuseppe D'Angelo 8e3e34defd Remove qUpperBound usages from qtbase
Replace them with std::upper_bound; this allows for deprecation of
qUpperBound.

Change-Id: Idef01d2228b9a70eee3d52931d7aedb5bb6ba902
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-09-19 16:12:33 +02:00
Giuseppe D'Angelo 1e37d854f7 Remove qLowerBound usages from qtbase
Replace them with std::lower_bound; this allows for deprecation of
qLowerBound.

Change-Id: I536e7338eb85ea6c7c1a5bf23121292767927e0b
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-09-19 16:12:30 +02:00
Sergio Ahumada 838e87b825 sql: Include own headers first
cpp files should include their own headers first (but below config.h)

Change-Id: I225bc0f09988167ae7f938f7f21a77d05a3d191b
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-09-19 15:42:29 +02:00
Gabriel de Dietrich b1893f7c49 Introducing NoDropShadowWindowHint window flag
Added suppport on QCocoaWindow.

Also we deprecate WA_MacNoShadow since it isn't used anywhere, and updated
the 'windowflags' example app.

Change-Id: Id0b453ba15a23b768b0615838597bca139f507ad
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2012-09-18 17:39:50 +02:00
Kai Koehne fdc64a445d Core: Fix gcc warning about signed/unsigned integer comparison
Fix warning: 'comparison between signed and unsigned integer expressions'

Change-Id: I5ce2857115137f9a06eddc74fda55ae49e37d345
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-18 17:39:50 +02:00
Kai Koehne 10e0e8afda Network: Fix mingw-gcc warning
Fix warning: missing braces around initializer for 'BYTE [6] {aka unsigned char [6]}'

Change-Id: Ic247ff0721955c4562ed027fad7cb3786809a840
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-09-18 17:39:50 +02:00
Kai Koehne 6368b2a751 Network: Fix gcc warning about qDebug format
Fix gcc warnings: 'unknown conversion type character 'l' in format' , and
'too many arguments for format'.

Change-Id: Ic7547a5bd5ba0d4c9f115004f250a0f7d3b378cb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-18 17:39:50 +02:00
Jonathan Liu 4efd73bc3a QElapsedTimer: Fix typo in restart() documentation
Change-Id: Iac5df9edbe16ec841f783bc5266091a6e34e9cab
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-18 17:39:50 +02:00
Miikka Heikkinen ede4f5e23b Fix mapping to/from global coordinates for child/embedded windows.
QWidget's mapToGlobal() and mapFromGlobal() functions assumed that
if the widget reports it's a window or if it has no parent widget, it
must be a top level window whose coordinates are in global coordinates.
This is not true for child QWindows or embedded native windows
(QAxWidgets).

Changed the logic for mapping coordinates to use equivalent methods
from QWindow if widget has a window handle, and changed QWindow's
methods to map coordinates using native methods if window is embedded.

Also fixed newly failing accessibility autotest. The geometry related
failures there popped up because now the position of the rect returned
by accessible interface is actually correct while widget geometry still
reports position 0,0 before widget has shown up.

Task-number: QTBUG-26436
Change-Id: I658fafd0ce01eb1604ba255efeeba3073ca0189f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-09-18 14:52:38 +02:00
Shawn Rutledge beab941e1f X11 (xcb) support for QScreen-per-output and runtime changes
QScreen has notifiers for its properties, but they were not being
emitted when one changes the resolution or arrangement of individual
outputs, e.g. via xrandr.  Also there should be one QScreen per
"output", e.g. laptop LCD + external monitor means 2 QScreens
which will be siblings, rather than just 1 QScreen to represent
the whole desktop.

Change-Id: Ia61bbc5e6a3506f813ab11f87c03d14cf7f4ce85
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2012-09-18 14:12:27 +02:00
Richard Moore 5ea896fbc6 Disable SSL compression by default.
Disable SSL compression by default since this appears to be the a likely
cause of the currently hyped CRIME attack.

Change-Id: I515fcc46f5199acf938e9e880a4345f2d405b2a3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Peter Hartmann <phartmann@rim.com>
2012-09-18 14:12:17 +02:00
Thiago Macieira 3f970c20f9 Fix thread-safety of qt_ignore_sigpipe
The testAndSet operation would mean another thread could see the value
of 1 and proceed to write(2)/sendto(2) before SIGPIPE had been ignored.
If the pipe or socket were already closed by then, a SIGPIPE would be
delivered to the application with its default action: terminate.

Change-Id: I62dc8f5fa14c1dd453d13e4053c642bd78fbc468
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: Peter Hartmann <phartmann@rim.com>
2012-09-18 14:11:53 +02:00
Samuel Rødal 70f3c78218 Prevent buffer overflow in QXcbWindow.
Thanks to Janne Kulmala for noticing this and informing about the fix.

Task-number: QTBUG-27123
Change-Id: Idd3cfd74fb7be277b6d805446aea5784b8fdf2f6
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-18 03:34:08 +02:00
Jan-Arve Saether a95ce12b91 Make qdoc read multiline macros in files with CRLF endings
This caused qdoc for instance to not being able to parse qglobal.h
correctly. (On windows, it stopped to parse anything meaningful after
the line with this macro:)

  #define Q_INIT_RESOURCE_EXTERN(name) \
      extern int QT_MANGLE_NAMESPACE(qInitResources_ ## name) ();

It worked on linux just because on linux a line continuation 'token' is
the sequence "\\\n" (on windows it is "\\\r\n")

So for files with CRLF line endings, it treated *only* the first line
as a macro, potentially causing the subsequent lines to affect the
state of the tokenizer.

Change-Id: If7c80ee7eb317f2d324ace7ff540ced7c31185dc
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-09-18 03:34:08 +02:00
Thiago Macieira 4bc048be25 Let qVersion() be extern "C" if this is not a namespace build
This allows one to even dlopen() QtCore and call qVersion, to figure
out which version it is. A bit crazy, but someone might want to do it.

Change-Id: I932460515d07bed3f0e41c8ab2b46fc268ca73ff
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-18 00:59:08 +02:00
Tomasz Duda 60f4fc8b70 HTTP header may be damaged - fix, unit test
"HTTP/1.1 100 CONTINUE\r\n"
If the header from a server is splitted between two packets
the first packet contains "HTTP/1.1 100" and the second one
contains " CONTINUE\r\n", one space (0x20) is skipped. After
processing the line looks in this way "HTTP/1.1 100CONTINUE".
QHttpNetworkReplyPrivate::readStatus(QAbstractSocket *socket)
is called twice, if a http header is splitted as above.
The function always removes whitespace from the beginning of a packet,
even if it is the second part of a http header.

QHttpNetworkReply returns QNetworkReply::RemoteHostClosedError
due to damaged http header during processing.

Improvement of unit test.

Task-number: QTBUG-27161

Change-Id: Ifc2949f62473209b4032185effbf5078b4130cda
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-09-18 00:59:08 +02:00
John Layt 54b899f448 SIC: QtPrintSupport - Remove QAbstractPageSetupDialog
QAbstractPageSetupDialog is a completely unnecessary base class that
is not really abstract and is used nowhere else.  This changes merges
its methods into the QPageSetupDialog main class.

While technically SIC no-one else uses this so no apps should be
affected.

Change-Id: I59b1739f1c453c34c25d1664d5d042e7918db316
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-17 22:08:16 +02:00
J-P Nurmi 9495309622 Exclude QIcuCodec when QT_NO_TEXTCODEC is defined
Change-Id: Iec0178c427abcc1c79e4fe6ef449d399ac8ca363
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-16 11:02:43 +02:00
Sergio Ahumada 1e3269c086 network: Fix missing or improper include guard in headers
Use an include guard in headers to ensure the header is not included
more than once. Make the header guard match its file name.

Also, cpp files should include their own headers first (but below config.h)

Change-Id: Iecf5da23c0f8e6d457f67657b88ef7557bde9669
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-15 23:54:45 +02:00
Sergio Ahumada 4eab96732e concurrent: Fix missing or improper include guard in headers
Use an include guard in headers to ensure the header is not included
more than once. Make the header guard match its file name.

Also, cpp files should include their own headers first (but below config.h)

Change-Id: I902c8936382f5c1a8e0de7dbf49e5423f9b72bbe
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-15 23:54:29 +02:00
Sergio Ahumada 9bedada232 gui/opengl: Fix missing or improper include guard in headers
Use an include guard in headers to ensure the header is not included
more than once. Make the header guard match its file name.

Change-Id: I29b41e9d33e4ea17165f44c49de0a963574dd809
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-09-15 23:54:23 +02:00
Laszlo Papp 83b1ed1ea8 Make maemo scope syntax in project files more generic
It is necessary to use the n9 device file for now in scratchbox or/and on the
community open build service because the maemo platform mkspecs file assumes
that a cross-toolchain is used all the time. If no platform file is used, then
for instance certain plugins may not be built in general. There is currently an
ongoing issue with the meego plugin for context management in the Harmattan
components project. That is currently not built due to this issue, so no
orientation works in those applications.

The nice solution would be to make the maemo platform file work with cross and
native toolchains as well, but that requires a decent amount of investigation
and work. Thereby, the scope is extended this way for now.

Change-Id: I172c7d152bdbb2db279526d9fd1ca5648d0cd0a9
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
2012-09-14 19:07:15 +02:00
Kai Koehne 823e119fa8 QErrorMessage: Use qInstallMessageHandler instead of qInstallMsgHandler
qInstallMsgHandler got deprecated in Qt 5. Use qInstallMessageHandler instead.

Change-Id: Ie1156ca11eb6be555c681007ddc230978211d029
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-09-14 15:23:15 +02:00
Martin Smith 14f7eb86ca qdoc: Refactoring of qdoc data structures
This commit is the beginning of a significant
overhaul of qdoc. A new class, QDocDatabase, is
added, which will eventually encapsulate all the
data structures used by qdoc. In this commit, the
Tree class is made private and only accessible
from QDocDatabase. Several maps structures are
also moved into QDocDatabase from other classes.

Much dead code and unused parameters were removed.
Further simplification will follow.

Change-Id: I237411c50f3ced0d2fc8d3b0fbfdf4e55880f8e9
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-09-14 15:23:15 +02:00
Sergio Ahumada 0a37bcf245 Mark (non-public API's) ctor's as explicit
Make C++ class constructors that can be used with only one
required argument 'explicit' to minimize wrong use of the class.

Change-Id: I12ad5b6eb1794108c6b7464a2573e84068733b03
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-14 15:23:15 +02:00
Joerg Bornemann 26b6cce44b remove usage of QT_MAKEDLL in favor of the new QT_STATIC macro
Change-Id: I411cab0d92a8cad6b4f3676afe5cee050c4b789b
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-09-14 15:23:15 +02:00
Miikka Heikkinen 1438ad5d30 Fix repaint issue when resizing a window in Windows
QWindowsWindow::handleWmPaint() cached the device context it got from
BeginPaint call and used that for the window when the backing store
blitted itself to the window. The problem with this device context is
that the clipping region is set to only encompass the newly exposed
areas, which means any changes caused by the resize on the previously
exposed area were not repainted.

Fixed by removing the DC caching. The benefit was minimal anyway.

Change-Id: I8bd3c4031432ce6b52434c80bfe65d35d9feae49
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-09-14 12:39:30 +02:00
Jerome Pasion 77cd2f6797 QDoc manual: ordered command list
Some commands were not listed in alphabetical order.

Change-Id: I299abe145ca0f9d63c9ceefb801f5c53548e7938
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-09-14 11:51:23 +02:00
Samuel Rødal d086c2abaf Documented QtOpenGL classes that have better replacements as obsolete.
These have new replacements in QtGui since Qt 5.0.

Change-Id: I20e8fdd4e9c14d8c626eda3072217af1858bf492
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-09-14 11:46:39 +02:00
Julien Brianceau 6a15a784f4 qpa: avoid useless resize in DirectFB platform
Check current size before resizing QDirectFbBackingStore through
its resize() method to avoid useless deallocation/reallocation.

Change-Id: Idc32eb20d3d3cac988fa9dd2feb80910303f5763
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-09-14 11:40:59 +02:00
Pekka Vuorela 9a8881fd59 Remove deprecated QInputMethod::visible()
Replaced with isVisible()

Change-Id: Id47683954e89c53e73fc5171977609de7f1b4245
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-14 11:18:07 +02:00
Simon Hausmann d580eb2390 Fix compilation on Harmattan
The GLES2 libraries on Harmattan do not provide a typedef for GLChar.  Work
around it here by adding it. The Kkronos headers specify GLChar as a typedef to
char, so if an implementation already provides it, then this doesn't do any
harm.

Change-Id: I0848b72b81fcc602dc8d9eecefdacb5436163040
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-14 11:15:01 +02:00
Thiago Macieira 6fd1895b91 Move QRecursiveMutexPrivate to qmutex.cpp and mark inline
Disassembly of the optimised code shows that the compiler was already
inlining the bodies of one or both functions (since they're in the same
.cpp, it's allowed to do that).

However, since there was no "inline" marker, the compiler was also
emitting an out-of-line copy, which wasn't used by anyone, as the class
is not exported.

So add the marker. To make sure that they don't get used by accident
elsewhere, the class is moved to the .cpp file too.

Change-Id: Iead578ec9c7d8dd6b4e6bb582ce5b829cdec5992
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-14 03:45:50 +02:00
Thiago Macieira bd5b4de839 Remove QBasicAtomic::tryLock with a timer
The non-futex implementation does not support timed locks in
QBasicMutex. That is only supported in QMutex (due to the
destructor).

Change-Id: I46d33a66a36e05c8a4344823537178e80a6ddd76
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-14 03:45:50 +02:00
Thiago Macieira 0cc97411d5 #include the qmutex_xxx.cpp at the end of qmutex.cpp
This produces slightly better inlining results.

Change-Id: Ie86471577f888cb2d9c9989306ec69ce0a296108
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-14 03:45:50 +02:00
Thiago Macieira 70ff7d097b Use storeRelease to unlock a mutex instead of fetchAndStoreRelease
We're not checking the result anyway, so use a simpler operation.

Change-Id: I8c2db35be86660b29d81dd97ce3e269de55a37df
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-14 03:45:50 +02:00
Thiago Macieira f587e8f4fd Avoid calling QElapsedTimer::nsecsElapsed before the first futex sleep
The first time we're going to sleep, the timeout should be exactly the
value that was passed by the user. We don't need to calculate the time
elapsed between start() and a few lines below.

Change-Id: I99c363b6f0ecfd07ad787b79b75e61771733c2b3
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-14 03:45:50 +02:00
Thiago Macieira d8eb52fc45 Split the timed mutex lock from the non-timed lock functions
Non-timed mutex locks are by far more common, so let's try not to
penalise the locking of those with code that won't get used that
often.

Change-Id: I37f56d6429836467fdec2e588c0fb22d914b5d75
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-14 03:45:50 +02:00
Thiago Macieira fc174a3728 Simplify the futex lock loop: no need for nested while
Once we enter the inner loop, we never exit it except to return from
the lockInternal() function, so the rest is never executed again.

As a consequence of this, we won't try to fastTryLock() twice per
mutex. Therefore, for a non-recursive mutex, if lockInternal() is
entered, we'll definitely need to use futexes.

Change-Id: Ice617ed27449c1fbdc112a159a86cd0660125e13
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-14 03:45:50 +02:00
Thiago Macieira 30bea611df Make QBasicMutex be exclusively non-recursive
Dispatch to the recursive mutex functions from QMutex::lock, tryLock
and unlock.

This has the benefit that those using QBasicMutex will not go through
the testing for recursive mutexes. It simplifies a little the code for
those users.

For the users of QMutex, the code required to perform a lock does not
appear to change.

Change-Id: I0ca9965e012b283c30f1fab8e9f6d9b3288c2247
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-14 03:45:50 +02:00
Thiago Macieira 870bd84a4e Don't recheck about timeout == 0 during mutex locking
If the timeout wasn't zero, it can only become zero if we return from
futex() with a non-timeout reason but subsequently expires while we're
recalculating something.

A side effect is that we try-lock a non-recursive mutex exactly
once. Before this change, we'd fastTryLock() twice even with
timeout == 0.

Change-Id: I0af09fc2a84669a683a843fcf1513203b075dfb7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-14 03:45:50 +02:00
Thiago Macieira 3acaa648f0 Hoist the recursive mutex check out of the inner loop
A non-recursive mutex doesn't suddenly become recursive, so we don't
need to check it multiple times.

Change-Id: Id040254b6142d320a7bd3111491082ad09968404
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-14 03:45:50 +02:00
J-P Nurmi c40af42658 QtDBus: added missing QT_NO_DBUS guards
Change-Id: If3bbba7765a4949e5a7aefca063dc56c21c06687
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-14 01:02:17 +02:00
Jan Arne Petersen a386194f99 Fix QDBusServer with more than one connection
Create a new QDBusConnectionPrivate for every new connection in
qDBusNewConnection instead of creating a single QDBusConnectionPrivate
in the QDBusServer constructor which gets assigned the latest connected
DBusConnection in qDBusNewConnection (and loses track on all previous
DBusConnections).

Also extend tst_QDBusConnection::registerObjectPeer() test with multiple
connections to the server.

Task-Number: 24921
Change-Id: I4341e8d48d464f3fe0a314a6ab14f848545d65a0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-14 01:02:06 +02:00
Thiago Macieira 019bb22ff1 Add qdbusconnectionmanager_p.h to the HEADER list.
Change-Id: Iacba510beb0ee72182931e97044eaa5b46df30af
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2012-09-14 01:01:52 +02:00
Thiago Macieira f0fb53dec3 throw() is C++, so don't use it in C mode
Q_DECL_NOTHROW is used by qVersion(), which can be extern "C".

Change-Id: If71f3bc3a0df3e8321237e5ac9f3bea82380c1e4
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-09-14 01:01:08 +02:00
Markku Heikkila d1d4647b74 Fixed: QFileInfo::lastModified() returning wrong value.
Fixed so that empty QDateTime is returned for non existing file.
Fixed also created() and lastRead() to return empty QDateTime for
non existing file.

QFileSystemEngine::fillMetaData() returned true for non existing
files. This was also corrected.

Task-number: QTBUG-25811

Change-Id: I523eb99e4405b4b813b2950f85cc646239181d07
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Christian Stromme <christian.stromme@nokia.com>
2012-09-13 19:33:08 +02:00
Venugopal Shivashankar a42f1f9a50 Doc: Marked the QUrlInfo class documentation as \internal
Change-Id: Ib84c9ffc181edf17850d5334c95c035428d31b6c
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-13 19:33:08 +02:00
Mitch Curtis 906f62c545 Fix QAbstractItemModel documentation errors.
Added a dependency on the qtwidgets module to qtcore.qdocconf so that
it has access to widgets examples. Also added examples/widgets to
exampledirs.

Change-Id: I7a69f51d51b65bd534950f0df5b348d6ef61a5d9
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-09-13 19:33:08 +02:00
Mitch Curtis a3729b82c8 Fix QPrinter documentation errors.
Removed documentation for non-existent functions and added
external-resources.qdoc.

Change-Id: I5159540d8304dd6e2e452be11404d40fc599a2a7
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-09-13 19:33:08 +02:00
Mitch Curtis a10e0e82ff Fix qtestlib-manual.qdoc errors.
Corrected paths to tutorials and added qt-webpages.qdoc for missing
links.

Change-Id: I1c318f2f80804b73941acfcb5a53df456108f018
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-09-13 19:33:08 +02:00
Mitch Curtis 3e3799727c Remove documentation for non-existent QToolButton functions.
Change-Id: If453b181c53bc0b80ec9ba7745d24399520bbc4b
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-09-13 19:33:08 +02:00
Mitch Curtis 8641a76d34 Remove documentation for non-existent QToolBox functions.
Change-Id: I185e70f2e5183b02ce2c487991ac98aafc990bfb
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-09-13 19:33:08 +02:00
Christian Kandeler 741b1f49bd Docs: Add "\since" info for QEventLoopLocker.
Change-Id: Ie749b6f2539be5bd08d7a6a00eb4e8655cec1227
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-09-13 19:33:08 +02:00
Mitch Curtis 8e95ede2a5 Remove documentation for non-existent QTextEdit functions.
Change-Id: I92b67e676c78c641bfefc636efada22254e0bca3
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-09-13 19:33:08 +02:00
Mitch Curtis 10b0146026 Fix QByteArray documentation errors.
Add missing external resource link. Provide constructor documentation.

Change-Id: I6d28a19da5c409dd0e0b48e0f693837b63de38f0
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-09-13 16:58:43 +02:00
Kai Koehne 36282127b8 Fix compilation for win32-g++ and C++11
gcc defines __STRICT_ANSI__ implicitly for -std=c++0x. The MinGW headers
however omit the declaration of common functions like putenv then.

Instead of working around this MinGW particularity on a case by case basis, rather
just use gnu++0x for QtCore.

Change-Id: Iefe4e7f77014a4f1d501b149e34f7049deb52fb9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-13 16:47:33 +02:00
Kai Koehne 0abae2aa2b Network: Fix gcc warning about conversion from string to wchar *
Fix gcc 4.7 warning:
'deprecated conversion from string constant to 'SEC_WCHAR*'

Change-Id: I5df44ffdc0d505789f99b58d68e02b7535ce761b
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-09-13 16:46:35 +02:00
Kai Koehne baf8a2fbf7 Kernel: Fix gcc warning in qsharedmemory_win.cpp
Fix gcc 4.7 'arning: converting 'false' to pointer type 'HANDLE {aka void*}' [-Wconversion-null]'

Change-Id: I28d890d5fd4975517a9329d68c9ef73f6fadf36c
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-09-13 16:46:31 +02:00
Kai Koehne 6fd01fc964 Kernel: Fix gcc warning about narrowing conversion
Fix gcc 4.7.1 warning: 'narrowing conversion of 'value' from 'int' to
'uint {aka unsigned int}' inside { } is ill-formed in C++11 '

Change-Id: I64ee1a35ecd60cc6a5d7d024c5f903078b3d4f60
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-09-13 16:46:19 +02:00
Kai Koehne edfdaba696 Threads: Fix mingw-gcc warning about 'cast to pointer from integer of different size'
Use reinterpret_cast to convert from DWORD to pointer.

Change-Id: I17a12940850aeb0bc27080725a18eb93fee72ff7
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-09-13 16:46:11 +02:00
Jędrzej Nowacki bb22f7cb84 Improve QMetaType docs.
Change-Id: I4ad4188d1bb984b83ffe4bb4ff098158e888d183
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Mitch Curtis <mitch.curtis@nokia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-09-13 16:40:08 +02:00
Stephen Kelly d7a15fbfd9 Fix crash when invalidating a QSortFilterProxyModel
Task-number: QTBUG-27122

Change-Id: Ibca46b88442f4f92422d9b3182e4bbf25716a07f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-13 16:20:11 +02:00
Mitch Curtis 0d6f1ef588 Remove documentation for non-existent QLineEdit functions.
Several functions in qlineedit.cpp are documented but don't exist. QDoc
was complaining... e.g.: "Cannot find 'repaintArea(...)' in '\fn' void
QLineEdit::repaintArea(int a, int b)".

Change-Id: I56ca0dbc8e7b4da5f23ad2ca8d8280cdf91c2dc2
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-09-12 16:10:55 +02:00
Eskil Abrahamsen Blomfeldt e640ebacb9 Fix regression in QTextDocument::toHtml() with font pixel size
Introduced by 2e0003eda4. We were
missing a attributesEmitted=true which caused the output from
toHtml() to sometimes be invalid when using pixel sizes to
specify the font size.

Task-number: QTBUG-25778
Change-Id: Ied61fcaef425a590d71c0b52292ac676cb88ba52
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Jiang Jiang <gzjjgod@gmail.com>
2012-09-12 16:05:12 +02:00
Harald Fernengel ee1e37cc64 Fix build with QT_NO_EXCEPTIONS
qTerminate is declared within a #ifndef QT_NO_EXCEPTIONS block, so the
implementation must use the same #ifdef

Change-Id: I5d2d58a55fce5084c0538d18a9dd3998b12ed703
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Arvid Picciani <aep@exys.org>
2012-09-12 15:24:17 +02:00
Julien Brianceau 4ae829c1db qpa: extend drawPixmap capabilities
Extend drawPixmap capabilities for qpa through new ExtendedPixmapCapability
QBlittable flag and add related implementation in DirectFB platform.

Change-Id: If5436e16bfb37bf081bf864cad73a5e97394df8c
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-09-12 10:25:19 +02:00
Richard Moe Gustavsen 287255c03a CocoaPlugin: add missing auto release pools
Add auto release pools to the entry functions of the plugin
that leads to mem leaks. By adding them as early as possible
in the callstack, we avoid creating to many pools

Change-Id: I715e06bd8d3280c6877340fc724eb1afbf804ae1
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com>
2012-09-12 10:14:10 +02:00
aavit 98e1170086 Doc: Fix misc. doc errors and document undocumented functions
Change-Id: I0c1e0a36ee37d5a8f3741f0405f63f9b26967f32
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
2012-09-12 10:14:10 +02:00
João Abecasis 975ebdc4ab Don't manipulate immutable data
QArrayData can point to data it does not own (cf. fromRawData()), which
shouldn't be modified. Not even upon destruction, as this data can live
in Read-Only memory or be otherwise shared outside the QArrayData realm.

Change-Id: I8bdf3050a17802fb003b77d5f543fe31769a7710
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Andreas Hartmetz <ahartmetz@gmail.com>
2012-09-11 23:54:57 +02:00
Rafael Roquetto f3707a5a0c QFileSystemEngine: fix realpath() buffer size
realpath() returns at most PATH_MAX _plus_ the terminator.

Change-Id: I4c2e3e166a5f476863ad8c6999800e6468535dbe
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-09-11 17:40:37 +02:00
Rafael Roquetto 6e8e1da0a8 QNX: fix call to realpath() on QFileSystemEngine
QNX6, as opposed to later QNX versions, does not define the behavior of
realpath() when the second parameter is NULL. We leave it then for the
compiler to decide which implementation to call, by relying on the _POSIX_VERSION_
macro, which in QNX6 happens to evaluate to < 200801L.

Change-Id: I3a6d3859858f56b69f0d391384c2703083a01257
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-09-11 17:40:30 +02:00
Oswald Buddenhagen 074a5ce50e don't require (dummy) qconfig.h for qmake build
Change-Id: I22a2c9aa1366ff858b3bb646617543968c810136
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-09-11 17:25:23 +02:00
Oswald Buddenhagen 8df98b43be compile without CamelCase headers
for faster bootstrapping without a full syncqt run

Change-Id: I648f0a8fb09be021590c46e8e5e15667a316c817
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-09-11 17:23:23 +02:00
Nico Vertriest 1b1ff66123 Several modifications in phrasing.
Corrections of syntactic and spelling errors.

Change-Id: I9d880b4d3f33ace53815d734f99d0b0396497158
Reviewed-by: Martin Smith <martin.smith@nokia.com>
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-09-11 12:09:47 +02:00
Geir Vattekar 99d3eecce2 Doc: Remove references to the deprecated QGraphicsItemAnimation
Task-number: QTBUG-23711
Change-Id: I1c1ce049016d0bea03d43631493ed8d248162eee
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Jason Barron <jason.barron@nokia.com>
2012-09-11 12:09:47 +02:00
Friedemann Kleint f957370206 Close popups when switching applications on Windows.
Bring back code from 4.8 (Note that ALT-TAB is not received
as key event).

Task-number: QTBUG-27146
Change-Id: I6dd2e9c88fdc4c89d26dfaa8ab47deb2be451f25
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-09-11 12:09:47 +02:00
Julien Brianceau aab15782e2 qpa: add non-opaque fill support
Add non-opaque fill support for qpa through new QBlittable flag
"AlphaFillRectCapability" and add related implementation in DirectFB
qpa platform.

Change-Id: I863a270e24c96c432489099a34dc1f3a2be52280
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-09-11 12:09:47 +02:00
Teemu Katajisto 5d1d313ca7 QtPrintSupport: set QPrinter margins also to QPagedPaintDevice
QPagedPaintDevice::setMargins() is virtual method and reimplemented in
QPrinter but super class margins were not set in reimplemented method.

This fixes problem where QTextDocument::print() checked the margins
using QPagedPaintDevice::margins() and overrided the margins set
in QPrinter::setMargins().

Change-Id: I3bdcc33b8f6b5a9cbcb04a21484fdd1612dd7d58
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-09-11 12:09:47 +02:00
Samuel Rødal ce0c3c49b1 Added link to the OpenGL window example from the QOpenGLContext docs.
Change-Id: I650c61422485dfcb2fcc661a839294aa98b18e80
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-09-11 12:09:47 +02:00
Samuel Rødal af33765b57 Add links to raster and opengl window examples in the QWindow docs.
Change-Id: I4d4ddffd6b8aa682b516b55ed2c5e71585d83bcf
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-09-11 12:09:47 +02:00
Samuel Rødal 8fe1d9fb13 Improved the QBackingStore documentation.
Added links to the example and added some explanation of when
QBackingStore might be useful.

Change-Id: Iee19c4fdfc5c27ac9b559c9df428d83d302f3928
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-09-11 12:09:47 +02:00
Frederik Gladhorn e92c1976a6 Fix example includes for qdoc.
Change-Id: Ifa6a99db27ce51529489bf077a839a3107b524d2
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-09-11 12:09:47 +02:00
Frederik Gladhorn b5c0e0122c Remove unused file.
Change-Id: I402f1d3216129d693a4b0d33e015fd047c7d2298
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-09-11 12:09:47 +02:00
Frederik Gladhorn 3b813accc6 Output absolute paths in qdoc messages.
Change-Id: I4499bb0464cca3703026e317e940612091bf55a2
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-09-11 12:09:47 +02:00
Frederik Gladhorn a74f83bbc1 Fix qdoc tag.
Change-Id: I683ee205945f4b3febff6ba9ec9e419a017f24b6
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-09-11 12:09:47 +02:00
Frederik Gladhorn 999ac7da4c Move gui example doc example images.
Change-Id: I01e0c3d51bcb01c66a3f6c7b2ba95f0c9999f4cb
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-09-11 12:09:47 +02:00
Frederik Gladhorn 33a07646ce Do not include /examples in qdocconfs.
Change-Id: I84a925a8be4964fae667f5a2500157283a8057d2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-09-11 12:09:47 +02:00
Frederik Gladhorn ee4903282a Add TableModelChange event for accessibility.
Change-Id: I4ff892c076b516cee0f6605705854ee8828d4363
Reviewed-by: José Millán Soto <fid@gpul.org>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-09-11 12:09:47 +02:00
Pekka Vuorela e06999bd62 Remove deprecated inputItem and inputWindow from QInputMethod
Interfaces introduced and deprecated during Qt5 development.

Change-Id: I804a02df8c4a03ed6558f4a86375f97d09513d5c
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-11 09:35:28 +02:00
Casper van Donderen c3523bdde7 Doc: Centralize more common settings in 1 global qdocconf.
All qdocconf settings that should be used by all Qt modules are now in
qt-module-defaults.qdocconf.

Change-Id: I2a0315a55db3fcbb0160c4392d2da98611043d83
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-11 09:35:28 +02:00
Eskil Abrahamsen Blomfeldt 014ae2ad04 Avoid duplicate setPen() in PDF when reusing QPrinter
The simplePen property was not reset when reusing the QPrinter,
thus we would output two identical setPen() commands in the PDF
making the autotest that compares the results fail.

Task-number: QTBUG-27171
Change-Id: I601042ec59e45ef72a56f230f6112a91a259b4a5
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-11 09:35:28 +02:00
Sérgio Martins 260da7a832 Fix QT_NO_SYSTEMTRAYICON build.
The ifndef was added to the header but was missing in
the implementation file.

Change-Id: I25111b34b9c087465306ef81c23d6667257b5e71
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-09-11 09:35:28 +02:00
Friedemann Kleint 0f53c2c4e8 Streamline forwarding of blocked events.
Do not send to layouts, invoke modalWidget() only once.

Task-number: QTBUG-27039
Change-Id: I96db02c8da544d0961c8ab25505926ac6f699342
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: hjk <qthjk@ovi.com>
2012-09-11 07:00:31 +02:00
Stephen Kelly f5dccc899a Specify the project name when adding a test.
On Windows, with the devenv makecommand, this seems to be necessary.
With msbuild it is not needed, nor with nmake, but it is no harm anyway.

This is also what CMake does in its unit tests.

Change-Id: I45f867e699c28a43ee607b47db108021fc7fef8b
Reviewed-by: Brad King <brad.king@kitware.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Marcus D. Hanwell <marcus.hanwell@kitware.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-09-10 22:44:32 +02:00
Sérgio Martins ed6ee1b2ee Fix build with QT_NO_WHEELEVENT.
Change-Id: I80c64183677a5f518e2c637f4c1ff4004e3010c0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-10 14:09:45 +02:00
Jan-Arve Saether 6753865709 DON'T parse the header files of gui
This should not be encouraged, and it currently breaks cross-module
linking for qdoc.
With this in place, we can actually generated cross-references
downwards (e.g. from corelib to gui), although in a bit hackish way
at the moment.

Change-Id: I32919e04535464438e3bb83e41f9a40b752c71c6
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-09-10 14:09:45 +02:00
Thomas McGuire ad5d64226a Fix QFileSystemEngine::canonicalName() returning corrupt data
In case of an error when calling realpath(), the return value buffer
was uninitalized, but still used.
Now the error value is checked to prevent this. Additionally, this fixes
a memory leak in the error case.

In addition, use the modern version of realpath() on QNX, since it is
available there.

Change-Id: I0ac83454679619f379df9c482c958789ab31866a
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
2012-09-10 14:09:45 +02:00
Janne Anttila e9c9e8bfa9 Initial bearer plugin for WinCE and WEC7.
In WinCE and WEC7 the IOCTL_NDISUIO_QUERY_OID_VALUE DeviceIoControl
calls need to be used instead of OCTL_NDIS_QUERY_GLOBAL_STATS which
is not supported in WinCE / WEC7.

Task-number: QTBUG-24525

Change-Id: Ic091b5c38db95ffc657968b232ae0965ae6a4e81
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-09-10 14:09:45 +02:00
Thiago Macieira 318b1a1d94 Remove misleading documentation about QAbstractSocket::bytesWritten
The signal has nothing to do with any action on the remote side. It is
emitted when the class has written the bytes to the operating system.
More likely than not, the bytes have not been even sent yet, much less
read by the other side.

Change-Id: Ia04d37ffc8c0788173d3d29f49c5759bcdef6afa
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-09-10 14:09:45 +02:00
Richard Moe Gustavsen 7fd0c52da7 CocoaPlugin: remove autoreleasepool warnings on 10.6
All examples running on 10.6 complained about missing autoreleasepools. This
patch adds them in where they were missing.

Change-Id: I18a1ddf486efdd1ece82d82d111b46e2ef064ff1
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com>
2012-09-10 14:09:45 +02:00
Friedemann Kleint 1ea00124f7 Windows: Implement automatic mouse capture in QPA.
Qt expects the mouse to be captured on any button press
until release.

Remove flags to store capture, use WinAPI GetCapture() instead.
Remove setMouseGrabEnabled_sys(), streamline code.

Replacement for the reverted change
6b5bbc531b for QTBUG-25977.

Task-number: QTBUG-27132
Task-number: QTBUG-27039
Task-number: QTBUG-25977
Task-number: QTBUG-26962
Change-Id: If86428eabfadcafd16da10f134a419f833185272
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-09-10 14:09:45 +02:00
Eskil Abrahamsen Blomfeldt b625ff4c7b Fix printing with OS X platform plugin
Since we do not pass in the destination dpi to CoreText when making
the font, we need to pass in a point size which is scaled to include
the dpi change. The default dpi for the screen is 72, thus the
scale factor is destinationDpi/72. Since pixelSize = pointSize / 72 * dpi,
the pixelSize is actually the scaled point size for the destination
dpi, thus we pass in that instead.

Note that this only works because the default screen dpi on Mac is 72.
You can look at the CoreText font database in Qt 4.8 to verify that the
same trick is used there.

When 96 dpi is explicitly set (specifically for autotests), we need to
fall back to the old behavior, since the OSX platform plugin will then
use 72 for some fonts and 96 for others making it impossible to detect
the DPI in a consistent way. The correct fix would be to pass in the
dpi to the function, but until that fix can be made, we just use the
old code to keep the autotests passing.

Task-number: QTBUG-25555
Change-Id: Id20a273549c3abf3db56ef1c48553c0958c48d61
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-09-10 14:09:45 +02:00
David Gil 7f8ca0fc4c [Qt5 Docs] Fix typos and style of qtimer.cpp and qdatetimeedit.cpp
Fix some typos. Fix some sentences to make them clearer to understand.
Fix some Qt4-widget-centric info.

Change-Id: I77f23ce8cb9a6752a0f8dd214c9ff550d620cd21
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-09-10 14:09:45 +02:00
David Gil 6989858d87 [Qt5 Docs] Fix typos and style of qdatetime.cpp
Fix some typos. Fix some sentences to make them clearer to understand.
After searching for Qt4-specific info, nothing found.

Eskil Abrahamsen Blomfeldt

Change-Id: I5c53d353d52c094c46d560bc4ff57b93def7550f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Reviewed-by: Mitch Curtis <mitch.curtis@nokia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-09-10 14:09:45 +02:00
Arvid Picciani 9094aa187f android: we have mkdtemp.
they just forgot to declare it.
see: bionic ad1ff2fb268034074488f0b4b30b5311008b8617

Change-Id: Ide0c0edaa1b5fd17e58ffce1e3d49e320d80e57a
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Arvid Picciani <aep@exys.org>
2012-09-10 11:25:01 +02:00
Thomas McGuire 8a4530c954 QNX: Compile. Adapting to change in QString API.
Use fromLatin1() instead of fromAscii().

Change-Id: Ib3bd15a78b595d77c66fbc6d8ae50710a9e9de42
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-09-10 11:22:21 +02:00
Eskil Abrahamsen Blomfeldt a949d4ef8f Fix rounding error when drawing scaled text on OS X
This especially affected the print preview dialog, where certain
characters would be grossly mispositioned.

Task-number: QTBUG-27131
Change-Id: I385474a6f609a8f4291988206c7e63a0747673dd
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-09-10 11:00:39 +02:00
Friedemann Kleint a02d1ac962 Do not call requestActivateWindow() on popups.
Showing a compo dropdown would cause the parent to
become deactivated (Windows). Introduced by:

8368557b9c for
QTBUG-25852 , QTBUG-23699 .

Task-number: QTBUG-27145
Change-Id: I7b89697a2c55d58cc0ab184b61a0cff8bf2275ec
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-09-10 09:39:07 +02:00
Richard Moore c1d7d0f0b2 Rename QPaintDevice::init() to initPainter()
The old name was too generic and was likely to cause warnings in user
code.

Change-Id: I7126d8fe89a394cd8388af5a030961af7b69c741
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-10 00:27:33 +02:00
Marc Mutz ecf7f0d954 Use QStringList::join(QChar) overload where applicable [QtDBus]
This is an automated change performing the following replacements:
                    join\("(.)"\) -> join('\1')
  join\(QLatin1String\("(.)"\)\)  -> join(QLatin1Char('\1'))
  join\(QStringLiteral\("(.)"\)\) -> join(QLatin1Char('\1'))

Change-Id: I807b0e88ac71a0cb367fb4170cca8f2cb0ad43f3
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2012-09-10 00:27:13 +02:00
Thiago Macieira 56cb4bc01f Move the non-C++ parts of qglobal.h outside of __cplusplus
This allows some more goodies to be available in C mode.

Change-Id: I5c8a19b6150081a20aae8d3d9d8d7cb30d750536
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-10 00:26:32 +02:00
Thiago Macieira f53a879b95 Move the constructor and destruction function macros to the C++ part
These macros expand to C++ code, so there's no point in having them
defined in the non-C++ part of qglobal.h.

Change-Id: Ic5763196391798e362d33466114969818e7e6793
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-10 00:26:27 +02:00
Lars Knoll 8fca1e70e7 Use the same hash for 8 bit strings as in QByteArray
Moc still used a different and quite a bit more complicated
algorithm to hash 8bit strings then QByteArray.

Change-Id: I86efb08d5ab7de1863fc168dcfc73399e72e1331
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-09 21:05:55 +02:00
Sean Harmer 6998c4b2ad QNX: Add some optional debug output to event dispatcher
Change-Id: I4353619f2dc889f50a139dd5e224a79b780fb316
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-09-09 18:32:08 +02:00
Sean Harmer 6e92535dea Remove temporary constructor used to make qreal->float change
The constructor being removed was needed to allow the CI to work until
commit e88f56afc2c889eede8c719b9ce7b621f49a96f9 in qtdeclarative was
merged.

This completes the move from qreal->float in QtGui/math3d.

Change-Id: I2afd108bd9398a1e6925b2885a90dbbad4d25669
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-09 18:31:58 +02:00
Sergio Ahumada 67cb9e24e5 Removing duplicate includes
Do not include a header more than once

Change-Id: Ia2e5d66e72988ad833cf5177a3f8aa988bf510e9
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-09 18:30:43 +02:00
Sergio Ahumada 4d3a53305f test: QFtp tests require `private_tests' set
Also fixing some includes and re-enabling the test

Change-Id: I4a061e106c2e55db39b8000729737a93e3d7714a
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-09-09 08:51:05 +02:00
Sergio Ahumada 15eeb0e7dc Fix missing or improper include guard in headers
Use an include guard in headers to ensure the header is not included
more than once. Make the header guard match its file name.

Change-Id: Icf7d7d4bed91443b3b21ef5d4219dbd260dffef3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-09 08:50:48 +02:00
Sergio Ahumada 7d482d8ef2 qdoc: Renaming include guard in qmlmarkupvisitor.h header
This header guard is duplicated with qmlvisitor.h

Change-Id: I11787dd8af2834e446eabd219f93b74c0b52428d
Reviewed-by: Martin Smith <martin.smith@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-08 20:30:02 +02:00
Sergio Ahumada 584acd48e0 printsupport: Fix missing or improper include guard in headers
Use an include guard in headers to ensure the header is not included
more than once. Make the header guard match its file name.

Change-Id: Iefc02181fe235ede51c567fb54997531e5cd08a3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-08 20:29:23 +02:00
Thiago Macieira 1616001d72 Add support for the Intel Composer XE 2013.
ICC 13.0 adds some new C++11 features that we can now support.

Change-Id: Ia870a3bb0172ff124983725300e8f9bf2e325ec6
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-08 17:24:18 +02:00
Thiago Macieira bc420e87e6 Make the default Qt API be Qt 5.0's
This means user applications will default to Qt 5.0's API. Higher
versions or Qt 4 compatibility are opt-in.

Also set the default for Qt's own build to be 5.0 on all platforms
except Windows. On Windows, we need to set it to 4.9.

Task-number: QTBUG-25053
Change-Id: I603e0fda4785e64e1413cd82153a89e48005aa40
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-08 14:57:59 +02:00
Oswald Buddenhagen 7ed5f3b867 don't use QT_{BEGIN,END}_INCLUDE_NAMESPACE needlessly
these macros behave counter-intuitively, so don't use them unless the code
structure really suggests their use.

Change-Id: I58213b39f8a98e4368901217fac14ca49c28b8cf
Reviewed-by: hjk <qthjk@ovi.com>
2012-09-08 13:36:24 +02:00
Sergio Ahumada ce8e6abe7f Check for C++ operators that should be 'const'
Make sure all C++ class comparison operators are const.

Change-Id: Ib4a66f2afe6c62f437dae1ecde94287d3db8442d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: David Faure <faure@kde.org>
2012-09-08 09:08:27 +02:00
Jeremy Lainé afb0260f50 Fix QTest::qExec crash with no command line arguments
The documentation for QTest::qExec states that command line arguments
are optional and gives the following example:

 MyTestObject test1;
 QTest::qExec(&test1);

However, running this example leads to crash as argv[0] is accessed
without testing argc. This change fixes this bug.

Change-Id: I2ec016e02869d21b24bc11f1851a760036640191
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2012-09-08 01:44:26 +02:00
Marc Mutz 194e0bd7e4 QDBusIntegrator: fix unprotected QDBusPendingCallPrivate::waitingForFinished call
There probably is a happens-before relation to all the writes of the bool elsewhere,
but the comment in QDBusPendingCallPrivate says waitingForFinsihed is one of the
variables protected by the mutex, so don't make every reader of the code re-establish
the safety (if indeed, it is safe) oneself again, but just wrap the access in a
mutex lock.

To be able to compile the mutex locking out of release builds, wrap the access
in a function. Make the function static _inline_ so compilers won't complain
about it being unused in release builds.

Change-Id: I914ce91e64e776450c697a3243b35716390a218c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-08 01:44:13 +02:00
Jędrzej Nowacki 02176c538e Fix warning about not enough actual parameters for macro.
QT_METATYPE_INTERFACE_INIT_EMPTY_DATASTREAM_IMPL ignores arguments
anyway so it is not a problem to give a void type.

Change-Id: I66109cc9ae43b48d5cacbd11bebe135a71e10ed7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-08 01:43:44 +02:00
Marc Mutz 939338c273 QVariant: prevent QVariant(QMetaType::Type) from compiling
Reported-by: Stephen Chu <stephen@ju-ju.com>

Change-Id: I298973174ff10f4462f04f3358c974c04dfd3383
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Stephen Chu <stephen@ju-ju.com>
2012-09-07 18:41:22 +02:00
Marc Mutz 1f8d570d5f Use QStringList::join(QChar) overload where applicable [QtNetwork]
This is an automated change performing the following replacements:
                    join\("(.)"\) -> join('\1')
  join\(QLatin1String\("(.)"\)\)  -> join(QLatin1Char('\1'))
  join\(QStringLiteral\("(.)"\)\) -> join(QLatin1Char('\1'))

Change-Id: I5b75877ba192fa1357e67fee70dff7c0475991e8
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-09-07 18:41:22 +02:00
Marc Mutz 781b642671 Use QStringList::join(QChar) overload where applicable [QtWidgets]
This is an automated change performing the following replacements:
                    join\("(.)"\) -> join('\1')
  join\(QLatin1String\("(.)"\)\)  -> join(QLatin1Char('\1'))
  join\(QStringLiteral\("(.)"\)\) -> join(QLatin1Char('\1'))

Change-Id: Ia30048e0c40967dc86a4e4ad26ac02ab67519096
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-07 18:41:22 +02:00
Marc Mutz e002bdee39 Use QStringList::join(QChar) overload where applicable [QtGui]
This is an automated change performing the following replacements:
                    join\("(.)"\) -> join('\1')
  join\(QLatin1String\("(.)"\)\)  -> join(QLatin1Char('\1'))
  join\(QStringLiteral\("(.)"\)\) -> join(QLatin1Char('\1'))

Change-Id: Id8d43c1b1ca9cd3aa0b4eedca6709b6287a9bc98
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-09-07 18:41:22 +02:00
Sean Harmer 834e9823fc QNX: Enable support for hardware buttons in QPA plugin
Change-Id: I3de18c3fdcfdacddc375b70800b34b6a8d16ac41
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
2012-09-07 18:41:22 +02:00
Jorgen Lind e54f6ed87b Enable autodetecting of EGL event for desktop GL
And only use the QT_CONFIG,egl syntax in eglconvenience

Change-Id: I81c0602334714f4b27a7e90e7b5859c989e6bd63
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
2012-09-07 18:41:22 +02:00
Eskil Abrahamsen Blomfeldt 942180e8da doc: Clean up QAbstractItemModel documentation
Mention QML as an alternative to widgets in the documentation,
and fix a typo

Change-Id: Ia6aaef9ec73d5112ff45c22b0bf57f1f9c7d31a3
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-09-07 18:41:22 +02:00
Thiago Macieira 19fc1de9fc Use setenv in qputenv if possible, since it won't leak
putenv(3) is evil: SUSv2 requires that the pointer passed to it be added
to the environment and that modifying the contents of that pointer later
will also cause the environment to change. That means we needed to
strdup before calling it and that memory was never freed.

This shows up all the time in valgrind's leak check.

Instead, let's use the 4.3BSD & POSIX.1-2001 setenv(3) function, which
does copy. That means there are either no leaks or, if there are,
they're not our fault.

Change-Id: I4576f91cc718b6b3cae790c4f2854c4976dded37
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-09-07 18:41:22 +02:00
Kai Koehne ecbaa69d71 Logging: Fix mingw32-gcc compiler warning about unused variable
Change-Id: I985c2096e604a3cb14eb3a41c4f12aa28f0ea681
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-07 18:41:22 +02:00
Lars Knoll 3a48320fd6 Fix performance regression when appending one vector to another
When appending a QVector to an existing vector the code would
unconditionally realloc the vector instead of first checking
whether we can do without. This gives a quadratic behaviour when
repeatedly appending a vector to another.

Change-Id: I2cd81253e6a8aec0bc4402e6fbda262435080966
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-07 18:41:22 +02:00
Julien Brianceau 5b1bc864a9 QtNetwork: bypass proxy for local connections
According to Qt doc, "Network proxy is not used if the address used in
connectToHost(), bind() or listen() is equivalent to
QHostAddress::LocalHost or QHostAddress::LocalHostIPv6. This is not the
case in current implementation.

Change-Id: I6b8a40c1e8bd8aad9504d8f939b87eda6e93337c
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-09-07 15:44:31 +02:00
Thiago Macieira 89a962c3a0 QWeakPointer use for tracking QObjects is deprecated.
Use QPointer.

Change-Id: Ife3cbec620ec83a9148d274d15e44016a3f5d7d0
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-09-07 15:42:16 +02:00
Jerome Pasion 8c4ac07258 Added API Reference Style Guidelines
-added C++ and QML language guidelines as part of QDoc Guide
    -included snippets
-fixed links in the HTML template of the QDoc Guide
-compiles when the main QDoc manual is compiled

Change-Id: Iadd799712eef80e905d092396cb7a1e25a863b43
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-09-07 15:39:31 +02:00
Marc Mutz 2d2b12edb4 QtGlobal: mark qVersion() and qSharedBuild() as nothrow
Change-Id: Id9dcf71363754cf6aae94012b22d144455e213eb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-07 15:39:31 +02:00
Mitch Curtis 1b0e279d5b Document how opacity affects QGraphicsScene item queries.
Currently, QGraphicsScene::items() and related functions only return
items that are visible. The definition of visible effectively means
any item for whom isVisible() returns false or opacity() returns 0.0.
However, this is not documented anywhere.

Also fixed some typos/grammatical errors.

Change-Id: Ia6d1f7d63024dc9412438fe97748d7a69ee8225b
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-09-07 15:39:31 +02:00
Giuseppe D'Angelo 4bf55f979f Fix QRegularExpression* docs
A couple of runaway backslashes resulted in illegal code in the
examples.

Change-Id: Ib00d4e1d792e44bb73dafdd84c3a1843dcb34e27
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-09-07 15:39:31 +02:00
Frederik Gladhorn 946317711f Mark plugin class docs as internal.
Change-Id: I2eb0a6ce4108774377df1296de4152715b65de6e
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-09-07 15:39:31 +02:00
Jan-Arve Saether 2e8763ca44 Fix a bug in qdoc where to look for index files.
This was only a problem if the qdocconf file was in the same
directory as the current directory (QDir::relativeFilePath()
returns an empty string in that case), so if the documentation was
generated with the makefile rules, this problem did not reveal itself.

Change-Id: I9c8956fdb46c4f307df7ab297dc94e8d3ef93fb4
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-09-07 15:39:31 +02:00
Sean Harmer 51d40d7e9b Make gui/math3d classes use float rather than qreal
This corrects the mismatch between using floats for internal storage
and qreal in the API of QVector*D which leads to lots of implicit
casts between double and float.

This change also stops users from being surprised by the loss of
precision when using these classes on desktop platforms and removes
the need for the private constructors taking a dummy int as the final
argument.

The QMatrix4x4 and QQuaternion classes have been changed to use float
for their internal storage since these are meant to be used in
conjunction with the QVector*D classes. This is to prevent unexpected
loss of precision and to improve performance.

The on-disk format has also been changed from double to float thereby
reducing the storage required when streaming vectors and matrices. This
is potentially a large saving when working with complex 3D meshes etc.

This also has a significant performance improvement when passing
matrices to QOpenGLShaderProgram (and QGLShaderProgram) as we no
longer have to iterate and convert the data to floats. This is
an operation that could easily be needed many times per frame.

This change also opens the door for further optimisations of these
classes to be implemented by using SIMD intrinsics.

This needs to be applied in conjunction with

https://codereview.qt-project.org/#change,33548

Task-number: QTBUG-21035
Task-number: QTBUG-20661
Change-Id: I9321b06040ffb93ae1cbd72fd2013267ac901b2e
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-07 13:27:38 +02:00
Sergio Martins 56414e2498 Fix compilation error of qcursor_qpa.cpp with QT_NO_CURSOR.
ChangeId Ia69f37343f95772e934eab1cd806bd54cbdbbe51 added two new
methods to QCursor but didn't update the fake cursor.

Qt5's build still fails with QT_NO_CURSOR somewhere in
QT_METATYPE_INTERFACE_INIT(Type), but that's another story.

Change-Id: Ib0c706faf78e547d93a1128085e440fe5d1a5e9b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-09-07 12:55:47 +02:00
Arvid Picciani a85cffd521 linuxfb: use linux/kd.h instead of the glibc dummy
Change-Id: I0f2e35dd82b3353f5ab5e79ba2fc654dd3b4afed
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-09-07 12:49:25 +02:00
Oliver Wolff d6d8ccd2d8 Fixed behaviour of mouse clicks for menu bars on Windows
As the behaviour described in the style hint seems to
be default and working, it can be removed.

Change-Id: Ia8d47cf187597ae48b9e42c3f98ef3d4c390db34
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-09-07 12:10:05 +02:00
Olivier Goffart e28a957035 Fix crash when QTextLayout::setAdditionalFormats is called with ranges with negative length
That can be reproduced in Qt Creator when deleting code.

Task-number: QTBUG-27140
Change-Id: Ida7177612653f10e5d866bf9a422c71c632f4eb3
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
2012-09-07 12:03:53 +02:00
Friedemann Kleint 75cd2dec71 Revert "Implement automatic mouse grabbing on mouse button press."
This reverts commit 6b5bbc531b.

Autograbbing mouse shouldn't be done in crossplatform code, as
X11 does this automatically. Windows needs platform specific
solution.

Task-number: QTBUG-26962
Task-number: QTBUG-27039
Task-number: QTBUG-23699

Change-Id: I911df92c4a34deb50b729f50681497046657948b
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-09-07 12:01:38 +02:00
Jan-Arve Saether 1abf0ca5e3 Move enums that was part of the Qt namespace to qnamespace.h
This caused some headache wrt documentation, since in order to
generate the proper documentation for the qt namespace
qdoc also needed to parse the headers of gui, which breaks
cross-module linking. (This is because qdoc will actually
generate two almost identical nodes in the code tree; one
from the header files from gui and another from the index file
of gui).

The best fix would maybe be to make it part of
QAbstractTextDocumentLayout, but that will break source compat.

Change-Id: I34e94d05fa4bec3034778d1f1cc0e53d0625e1ab
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-09-07 06:26:57 +02:00
Sergio Ahumada b77b5cc5be Revert "Use true and false in preference to TRUE and FALSE"
Even though I really think the change was the right thing to do, it seems
like Windows people don't like this change because of some Windows Data Types
specific rules.

This reverts parts of the commit 56d5c909af.

Change-Id: I2c67d9b1bab36fc63937ef386aef56d2a4472a04
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-09-07 06:25:23 +02:00
Friedemann Kleint 23951b38d4 Fix g++ compiler warnings.
Unused variables, unsigned comparison DWORD >= 0 is always
true, format string.

Change-Id: I9f0a20392e262b2542fb23ea4f513e4c4e354b68
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-09-07 06:23:00 +02:00
Mitch Curtis 9039031479 Fix QDateEdit displaying day as a number for short and long day formats
When 2 (February) is entered as the month for (e.g.) 31/Jan/2000 (which
is following the format: "dd/MMM/yyyy"), the day is corrected to 29 but
displayed as its numerical value instead of its short (or long) name.

Task-number: QTBUG-27036 QTBUG-19091
Change-Id: I558ee13b224707d22b26c2ec2c045f96118bd5a1
Reviewed-by: Mitch Curtis <mitch.curtis@nokia.com>
Reviewed-by: aavit <qt_aavit@ovi.com>
2012-09-05 21:06:51 +02:00
Mitch Curtis 2b562b7564 Fix 3 digit day being displayed by QDateEdit.
When a QDateEdit has its display format set to "yyyy/MM/dd", its day
set to 31 and its month set to 2, it will display 291 as the day until
the cursor is moved or the focus changed. This is because
QDateTimeParser::parse calls sectionSize() for the day section, which
will sometimes return an incorrect size. There are also other display
formats affected by this bug (e.g. long day names).

For example, (in the context of sectionSize()) when text is
"2000/01/31" and displayText() is "2000/2/31", there is a difference
between displayText() and text - text is the previous value and
displayText() is the new value. The size difference is always due to
leading zeroes.

This patch makes QDateTimeParser keep track of the quantity of zeroes
added to each section and then factors this value into the result of
sectionSize() if there is a size difference between text and
displayText().

Task-number: QTBUG-26847
Change-Id: I3823cc41167ec920f742cb6a20d39fc5f433c915
Reviewed-by: Mitch Curtis <mitch.curtis@nokia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Reviewed-by: aavit <qt_aavit@ovi.com>
2012-09-05 21:06:39 +02:00
aavit aba8de1bee Doc: Missing documentation added and doc errors fixed.
Change-Id: I573bf9622e38b54f2cb8c32fd402d477a1deb5c2
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
2012-09-05 21:06:05 +02:00
Jorgen Lind 49112c891b Don't use string comparison to figure out how to use the clipboard
Change-Id: I36738b3808ebed0d108882ebdc74ee7dd1899bfd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-09-05 06:36:32 +02:00
Jorgen Lind 0eb3d74386 Move assignment of mousePressed variable in QWidgetTextControl
Or else we never hit the path where middle button click pasts selection
on X11. This is also how it worked in Qt 4.

Change-Id: Ia090c465db0e5e8cb249f5d752e0bb86951e2eb0
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-05 06:36:13 +02:00
Sergio Ahumada 56d5c909af Use true and false in preference to TRUE and FALSE
The TRUE and FALSE macros are obsolete and should be replaced with
true and false (all lower case) respectively.

Change-Id: Iee352e8173500683e6319be0abbf5bacf29016e0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-05 03:03:05 +02:00
Milian Wolff 0102f34f1e Optimize QTextLayout/QTextEngine usage outside of QTextDocument.
When QTextLayout is used in a QTextDocument, many code paths use
special caches and thus greatly outperform the raw QTextLayout version
that operates directly on a QString.

This patch brings some of these optimizations also to the raw version.
We now also use a QFormatCollection in such cases and enable the
functionality of QTextEngine::indexAdditionalFormats() and
QTextEngine::resolveAdditionalFormats(). Thanks to that, we can greatly
speed up QTextEngine::format(), which now uses an amort O(1) hash table
lookup instead of a O(N) linear search.

The added benchmark shows a gain in the order of one magnitude:

./tst_bench_QText formattedLayout:long-many

before applying the patch:
378.19 msecs per iteration (total: 37,820, iterations: 100)
after applying the patch:
25.80 msecs per iteration (total: 2,580, iterations: 100)

Note: This change is source-incompatible for applications using the private
QTextEngine API.

Task-number: QTBUG-8389
Change-Id: Ifcf7a8902a394428979ea06a6d955f886ee739c7
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-05 03:02:59 +02:00
Jonathan Liu 3fe5715b9a Fix Windows platform plugin narrowing conversion compile errors
Implicit conversions from int to BYTE (unsigned char) result in
compile errors when compiling with the GCC -std=c++0x option.

Change-Id: Iaf8190426207bf15ab4b337300510596d70659ed
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-09-05 03:02:23 +02:00
Robin Burchell 90e4a5b5f0 Remove custom sort implementation in QTriangulator in favour of std::sort.
qSort has terrible performance, especially on mostly-sorted input, which is
presumably why a custom implementation was created. However, std::sort has much
better performance than qSort in many cases.

Benchmarking shows that std::sort beats out the custom sort by a very narrow
margin (21-22ms for qSort, 14-15ms for sort, 14ms for std::sort) in a simple
benchmark of sorting.

Change-Id: If7e57fdfaf98e741d1621969461537c82f9169fe
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-09-04 20:47:20 +02:00
Mitch Curtis e525df612c Correct the QFileDialog's delete warning message.
"Are sure you want to delete '%1'?" should be:
"Are you sure you want to delete '%1'?"

Title of the message box should be Delete, not Open.

Task-number: QTBUG-26851
Change-Id: I40933c5e1b231d3d2e3274b4d669267d26ba8cfc
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-09-04 20:47:20 +02:00
Mitch Curtis 917b4bec21 Clarify QDateTime::secsTo and QDateTime::msecsTo documentation.
Changed:
"Returns 0 if either time is invalid."
to:
"Returns 0 if either datetime is invalid."

Change-Id: I52d291459f215c1bb7fc78e70eaac90b2498158b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-09-04 18:29:10 +02:00
Oswald Buddenhagen f8f78a4f6f fix QT_{BEGIN,END}_INCLUDE_NAMESPACE mixup
Change-Id: Id25b6aa56681b5bb5989472a96128789c0c4e73a
Reviewed-by: hjk <qthjk@ovi.com>
2012-09-04 10:30:33 +02:00
Jonathan Liu e5ebcbc634 QWizard/Win: Fix vista helper cache state invalidation
If the cached state is not dirty and the instanceCount is zero, when the
instanceCount is incremented the cached state will not be correct. To
fix this, reset the cached state to dirty if the instanceCount is
incremented from zero.

Change-Id: Ic49eef7f83b1289a939f998817b1b2b5f5a2a45f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-09-04 08:20:48 +02:00
Robin Burchell 8486a510d5 graphicsview: use std::sort instead of qSort
In almost all cases, std::sort is wildly faster than qSort - but especially in
the case where the input data is already sorted. in some stress tests which ran
through the index with a lot of items, this commit provides huge speedup (684ms
down to 10ms for painting 15001 empty items on the provided benchmark), for me.

Task-number: QTBUG-11022
Change-Id: I5551f8e320c33ba13d464bf22047a665c81f3b74
Reviewed-by: Peter Kümmel <syntheticpp@gmx.net>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2012-09-04 02:03:23 +02:00
aavit ce2a8bdc13 Doc: fix yet more errors reported by qdoc
Change-Id: I67ac081ce95235912784bbbc347dd8f80fdebbde
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
2012-09-04 02:03:23 +02:00
Stephen Kelly 5a1fa8860c Generate includes for Qt containers used as auto-metatypes.
Otherwise the containers might be forward declared in the moc file,
and when the moc file is compiled in a standalone translation unit,
the full definition of it would not be available. This results in
odd compile errors, so instead generate the includes if required.

Change-Id: Ie01c5a5d45314daad0b00dec03b3e1e18cdbae64
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-03 20:05:04 +02:00
Gabriel de Dietrich fac7c8570b Cleaner support for window flags in QCocoaWindow
Window flags were not properly forwarded to the platform window
instance. Particularly in the use cases found in QtQuick desktop
components.

Change-Id: Ibeadfee7de95ba497e9c0f765acee77c84884466
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com>
2012-09-03 19:35:35 +02:00
Marc Mutz cb8424b381 Use QStringList::join(QChar) overload where applicable [QtSql]
This is an automated change performing the following replacements:
                    join\("(.)"\) -> join('\1')
  join\(QLatin1String\("(.)"\)\)  -> join(QLatin1Char('\1'))
  join\(QStringLiteral\("(.)"\)\) -> join(QLatin1Char('\1'))

Change-Id: Ie395d82d17710683968d006d22de313ef49dc6e5
Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-09-03 19:35:25 +02:00
Mitch Curtis 1b4ab3764b Clarify QDateTime documentation re timeSpec conversion.
Clarify the documentation for setTimeSpec, toTimeSpec, toUTC and
toLocalTime, to be clear on which ones return the same point in time,
and which one simply changes the timezone.

Change-Id: Ic47dd8876ea733f1df0f64eca5bdf00d04f8d0d4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-03 15:58:08 +02:00
Shawn Rutledge c9819493d3 Need #include <string.h> to use memcpy
Caused a compile failure in qtmultimedia.

Change-Id: I73652d93848c2005c0132d24bb0d269e7b450396
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2012-09-03 15:58:08 +02:00
Jan-Arve Saether be71325421 Fix docs of qAbs to have the correct function signature.
Change-Id: I984032dc58387ae8f28318beeb053af28ccc8885
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-09-03 13:41:55 +02:00
Jing Bai 3981961035 fix a mismatch of using QT_NO_NETWORKPROXY
To fix a compile error when QT_NO_NETWORKPROXY is defined.

Change-Id: If0433387cff2e6574fe24721a0ce2bfc41b0eb47
Reviewed-by: Markus Goetz <markus@woboq.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-09-03 13:41:55 +02:00
Jing Bai ae2686717e QStandardPaths should still work without desktop service
To fix a compile problem when QT_NO_DESKTOPSERVICES is defined.
We should enable QStandardPaths on Mac even without desktop service,
since it doesn't rely on desktop service and it is used in other files.

Change-Id: I29267ebfe81b79c598043f8287fd2bb419573570
Reviewed-by: David Faure <faure@kde.org>
2012-09-03 13:41:55 +02:00
Marc Mutz d7e29682b5 QDBusPendingCallPrivate: save 8 bytes on 64-bit archs
Moved waitingForFinished out from between two large-type variables to
save eight bytes per QDBusPendingCallPrivate on 64bit platforms.

Many a mickle makes a muckle.

Change-Id: I5612ad8bb907c6770be0245e667bdb2add30d38b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-03 13:41:55 +02:00
Marc Mutz 9d4d0708ec QDBusPendingCall: remove unneeded volatile qualification
The variable waitingForFinished is only ever read under mutex protection, so
a volatile qualification isn't necessary.

Change-Id: I17ce3fbfb090c8ae5e43dd2a93e4f48810dbbff3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-03 13:41:55 +02:00
Marc Mutz 20d7763b19 QDBusPendingCall: add a missing QWaitCondition::wakeAll() call
In QDBusConnectionPrivate::waitForFinished(), threads that see
pcall->waitingForFinished == true go to sleep on
pcall->waitForFinishedCondition, but there was no call to
waitForFinishedCondition.wakeAll() anywhere in the code, so add it.

Change-Id: I8d068dc0cc4f20786eb40fd7e2bb9840d8b70c7f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-03 13:41:55 +02:00
Marc Mutz 68e04c3ac1 QStringList::join: add an overload taking a single QChar
This overload avoids the needless heap allocation that the traditional
overload incurs due to the implicit QChar -> QString conversion
involved there.

In order to share the implementation between the two overloads,
QStringList_join now takes the separator as a (Char*,int) tuple
instead of as a QString.

Change-Id: I92961f13a3f19099de2a6e2df9f4789a12fc83a0
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-03 13:41:55 +02:00
Thiago Macieira a2f705029c Remove the package macros from qglobal.h
It's the wrong place to have these.

Change-Id: I3b716317ba02ea2baf0f7053c8b16128e4c88e17
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-03 13:41:55 +02:00
Stephen Kelly dcf4d152b5 Change SChar to metatype id 40.
This fills the gap left by QWidgetStar, making the sequence
between FirstCoreType and LastCoreType contiguous, which some
benchmarks assume to be true anyway.

Change-Id: I2d5d202b6246a9065fdf77f325a4a04279dbe4b7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-09-03 11:05:49 +02:00
Frederik Gladhorn 812bad17df fix docs
Change-Id: Id57b7932afb89fe9d3f4f6e6c3b558265475d77b
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-09-03 11:05:49 +02:00
Frederik Gladhorn fa1738bddf doc: fix example link
Change-Id: Ie0235281c3a4d5e5dadc6e5823bbf722b7ca411f
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-09-03 11:05:49 +02:00
Jason Barron 931c329153 Fix doc errors in QScreen.
- Ensure all args are documented
- Remove signals from \sa tag
- Ensure return values are documented

Change-Id: I1db111d082ee47f046598695bc3fa53d67798333
Reviewed-by: aavit <qt_aavit@ovi.com>
2012-09-03 11:05:49 +02:00
Jonathan Liu 952ea029f4 QWizard/Win: Fix incorrect cached state after all wizards destroyed
If a QWizard is shown when Aero is enabled, the current visual style is
cached in a static member of QVistaHelper. The cached state is updated
by QVistaHelper when it receives WM_THEMECHANGED or
WM_DWMCOMPOSITIONCHANGED events from Windows.

If all QWizard instances are destroyed, there are no instances of
QVistaHelper to receive these notifications and update the cache. If
Aero is now disabled, the cached current visual style in QVistaHelper
isn't updated. If a wizard is now created and shown, a large black
rectangle is shown in the titlebar.

A static instance count is added so that when no wizards are running,
the cached state is not used.

Task-number: QTBUG-27004
Change-Id: Iefe4c8552388280219c9726418ed7476b8ebb15a
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-09-03 11:05:49 +02:00
Jonathan Liu 6960fb2f6e Fix MinGW-w64 GCC 4.6.3 compilation
Several IShellLibrary constants and the COMDLG_FILTERSPEC struct are
already defined in newer versions of the MinGW-w64 headers.

Change-Id: I614b35c835123484aeeb4e61e0bae24261584da0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-09-03 11:05:49 +02:00
Sergio Ahumada 8cba00ebf5 Private slots should be named starting with _q_
This is to reduce the risk of collisions with signals/slots in user classes

 q_updateFocusObject(QObject *object) => _q_updateFocusObject(QObject *object)
 q_checkFocusObject(QObject *object)  => _q_checkFocusObject(QObject *object)
 q_connectFocusObject()               => _q_connectFocusObject()
 emitActivated(QPlatformSystemTrayIcon::ActivationReason) => _q_emitActivated(QPlatformSystemTrayIcon::ActivationReason)

Change-Id: I148913f1e24a80fe5cacfd737d1b455b805cfced
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-09-03 11:05:49 +02:00
Julien a36efc37a1 qpa: incorrect rendering when stretching and clipping
When using QBlittable with SourceOverScaledPixmapCapability, rendering
through clipAndDrawPixmap is incorrect when stretching: source pixmap
rectangle has to be corrected using scaling factor.

Change-Id: I7026987f5c47094a4578c0da4ccb67a0241d64bd
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
Reviewed-by: Julien BRIANCEAU <jbrianceau@nds.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-09-03 08:37:50 +02:00
Volker Krause 8c1cb66712 Fix moc generating invalid code for slots with reference types as argument.
We can't have T& declared/registered as a metatype (wont compile), but
using it as type for a slot argument is possible. With the recent
introduction of metatype auto-registration we have to make sure that moc
doesn't attempt to auto-register those. Simple types are handled correctly
already, this fixes containers and smart pointers.

Change-Id: Id96857c57d6ebf158a67e9d527c89dc195473b1b
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-09-02 23:41:42 +02:00
hjk 9d4814e18b Introduce hook for text cursor changes in QTextEdit and QPlainTextEdit
Currently it is hard for Q{Plain}TextEdit subclasses to keep track
of changes of the text cursor by direct calls to setTextCursor from
arbitrary code. By redirecting the setTextCursor to a virtual
function subclasses get the chance to intercept such calls.

Change-Id: Id92d9c86928b97285b0f5b7b39790442dfac3e50
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-02 10:09:28 +02:00
Jiang Jiang e0ce39ea67 checkForCodecs is not used when QT_LOCALE_IS_UTF8 is defined
Change-Id: I3d82863cbd123dbf73eb8f5721ef9294e6365de6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-09-02 10:09:17 +02:00
Frederik Gladhorn 5f5e9b0e04 Find qdoc indexes in relative paths.
Change-Id: Ie717e85bfc3d49173d1ae4caf2a01ad6e9b8b625
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-09-01 11:25:43 +02:00
Frederik Gladhorn 4d78b86731 Use QString() instead of "".
Change-Id: I42c55344663808b8362e2c9185273a00fc1c70b0
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-09-01 11:24:57 +02:00
Frederik Gladhorn 3ef3c662fe Don't reference widgets/widgets in example doc.
Change-Id: Ie1fe516f75ca8c1b2233dc6bb2b887b55593e730
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-09-01 11:24:50 +02:00
Casper van Donderen eede34aa6b Doc: Fix docbuild when not using -developer-build.
https://codereview.qt-project.org/#change,33974 only works in the case
of a developer build. Not in a normal prefix build.

Change-Id: I3a3e5029cefaa9f83c5deb71665f0efa9d812819
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-09-01 11:23:56 +02:00
Frederik Gladhorn 7b5f5b2d9f Fix address book example.
Change-Id: I2e0cb03bb7e9585edf44d4464af17848069337ee
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-09-01 11:22:41 +02:00
Frederik Gladhorn 450912611f Fix graphicsview docs.
Change-Id: I9438e64dbbc859fc60eb41a1bc664af35b762894
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-09-01 11:22:29 +02:00
Samuel Rødal 65f5909df2 Moved gui example documentation to the proper location.
Gui example documentation should be in examples/gui/doc/

Change-Id: I3cd196a2bb5d76b6e275f336b29a2ad1811159dd
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-09-01 11:21:46 +02:00
Kim Motoyoshi Kalland 3d04e4965e Doc: Fix some documentation issues.
Change-Id: I21bba7b8a1808cf214cae1b7d3b6b5e41e36e3ba
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-08-31 21:23:38 +02:00
Kim Motoyoshi Kalland 70bc7f8b32 Doc: Add documentation for deprecated function.
Change-Id: If1e76e4ac7f1da5f0362a7774b3341a4fedb31b0
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-08-31 21:23:38 +02:00
Kim Motoyoshi Kalland 49c8a28563 Doc: Fix wording in \brief section.
Change-Id: I60748a681cce6bd61805376b2a2cd38d2020e68e
Reviewed-by: aavit <qt_aavit@ovi.com>
2012-08-31 21:23:38 +02:00
Kim Motoyoshi Kalland 7ac1b21d05 Doc: Remove documentation for removed function.
Change-Id: I3d2b4078f7c442b636e4848048c41f9f8223c98b
Reviewed-by: aavit <qt_aavit@ovi.com>
2012-08-31 21:23:38 +02:00
Kim Motoyoshi Kalland 49d11e2eb1 Moved snippets from widgets to gui so that they are found by qdoc.
Change-Id: I3245366c26dfffc6c2eb062e9710460c32e4b8d8
Reviewed-by: aavit <qt_aavit@ovi.com>
2012-08-31 21:23:38 +02:00
Jing Bai 32cfff864e add macro wrap for QXmlStream related code
To fix a compile error when QXmlStream is removed by defining macro,
but it is still used in some files.

Change-Id: I776c799732212b7401767440448248fc7b5dc480
Reviewed-by: David Faure <faure@kde.org>
2012-08-31 21:23:38 +02:00
Casper van Donderen 0f409aca96 QDoc: Write SHA1 of .qhp to file.
QDoc should generate a SHA1 hash of the .qhp file to be able to use that
file as a search index. The idea is that we can use the hash as an
identifier to check if the search index was updated.

Change-Id: Ifd19571bcebf7d735ef452dca6c046a14fedc0e2
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-08-31 21:23:38 +02:00
J-P Nurmi 50e3da79bf QXxxStyle: override standardIcon() & layoutSpacing()
QStyle::standardIconImplementation() & layoutSpacingImplementation()
are removed, and standardIcon() & layoutSpacing() made pure virtual.

Change-Id: Ibf43323d0cf6c3b6cec4547afe8e826e120f74ba
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-08-31 18:56:35 +02:00
J-P Nurmi dd299a568b QStyle: make standardIcon() & layoutSpacing() virtual
Removes standardIconImplementation() and layoutSpacingImplementation()
that were added in Qt 4 as a workaround for binary compatibility reasons.

Change-Id: I45292dc6802310d6cda4f443bb7484b061af0138
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-31 18:56:35 +02:00
Stephen Kelly 449d1f620a Don't set empty CMAKE_TOOLCHAIN_FILE or CMAKE_BUILD_TYPE
The CMake Visual Studio 10 generator generates an include() for
the empty CMAKE_TOOLCHAIN_FILE, causing the errors in the bug.

There may be other remaining errors to cause the Windows CMake build
to fail with that generator, but this patch is an improvement
anyway - there is no point in setting empty strings as values for
those variables.

Task-number: QTBUG-27087
Change-Id: I68cce9e3dce07835db5f42777ac02d440f90f967
Reviewed-by: Brad King <brad.king@kitware.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-31 16:51:27 +02:00
aavit b2ae34d9b5 Doc: More fixes of qdoc-reported doc errors
Change-Id: I2dd815c471e56d2c239a63e7c7ad3496af2a585b
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
2012-08-31 16:50:23 +02:00
aavit f9bf5a8855 Doc: Fixes for several doc errors
Change-Id: I5be9c8e9ff9c17fae0fbbe468f34439411aca06b
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
2012-08-31 16:49:54 +02:00
Jeremy Lainé 28881c0c91 Make QGraphicsView respect scrollbar policies
When calculating the maximum height / width which a QGraphicsView can display,
make sure we only take the scrollbars' dimensions into account if their policy
is set to Qt::ScrollBarAsNeeded:

- if the policy is set to Qt::ScrollBarAlwaysOff, the scrollbar will not be
  displayed at all

- if the policy is set to Qt::ScrollBarAlwaysOn, the scrollbar's dimensions
have already been substracted from the available space by
QAbstractScrollArea::maximumViewportSize()

Task-number: QTBUG-14711
Change-Id: If5d24b41dbe7b089abca2bf61ccbd370d4de79a1
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-08-31 16:29:43 +02:00
Lukas Geyer 9fcf8dc2e8 Force QT_NO_ICONV on win32:!win32-msvc*
This behaviour was changed in Ide9800f6 to suppress
macro redefinition warnings for MSVC, but MinGW
has iconv support and therefore configure does not
set QT_NO_ICONV, which prevents compilation on win32-g++
as QIconvCodec does not support Windows.

Change-Id: Ic3c4ccceb3eaf9542c95b0c27847ca5ab51849b7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
2012-08-31 16:10:25 +02:00
Jason Barron ce4ed8315e Use the right getter for the QScreen::primaryOrientation property.
Change-Id: I408e4941163cd676133b2e41613162f52b685076
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-08-31 16:10:25 +02:00
Friedemann Kleint 1e34d3525f Fix updating of drag icons.
Try to find a target widget that accepts drops; ignore the event
if none can be found. Split the handleDrag*() functions
to reduce indentation.

Add an autotest.

Task-number: QTBUG-22987
Change-Id: I516ac5f0c002caaf83c52ac16f821246e565230f
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-31 16:10:25 +02:00
Thiago Macieira 9aa67cf0c4 Fix the name of the arguments of qAtan2 to match std::atan2
There is no change in functionality, just swapping of the names x and y.
The std::atan2 function uses (y, x) in that order, so we should too.

Task-number: QTBUG-27090
Change-Id: I7d4597a6c6909f574c517033f5d49fe17b7a7ead
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-31 16:10:25 +02:00
Sergio Ahumada 2994cd41ca Add missing QT_{BEGIN,END}_NAMESPACE
Fix src/network/kernel/qnetworkfunctions_wince.h

Change-Id: Ia59c1e67f9409abb97fce3fcaa3840e0d77c0978
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-31 01:16:56 +02:00
Sergio Ahumada ef32abb086 Header contains `signals' - use `Q_SIGNALS' instead!
Change-Id: I5ee1bfd0ce9c98d64b50cc727d414037fafb91c5
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-08-31 01:16:56 +02:00
Mitch Curtis c2907968ed Document the purpose of QDateTimeParser::cachedDay.
It's useful to know what this member variable is used for, since there
is very little documentation for QDateTimeParser, which makes
maintenance yucky.

Change-Id: I9ecf5aa5ef0b5d778ceb858c323e3bab1ebaa7dc
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-08-31 01:16:56 +02:00
Casper van Donderen 2e7f06c9bc Doc: Simplify qtbase qdocconfs.
We should be using the global qdocconf for the common variables. This
change also allows you to just specify -installdir without using a
templatedir.

Change-Id: I207d279d9b5199212e896fc5ccab5c212b1896c6
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-08-31 01:16:56 +02:00
aavit 244e3e2aa0 Doc: Fix various errors
Change-Id: I07503dd379779148b674ab0f806f6eeac5d7d4b7
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
2012-08-30 21:43:36 +02:00
aavit dc5359a312 Fix QScreen::grabWindow() on Windows
Finish up 94ac17c2cc

Task-number: QTBUG-26963

Change-Id: I13f52f0a6cf460d525b53338738aecd4b3cf313c
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-30 21:36:26 +02:00
Jonathan Liu 2b69431d3c Fix MinGW-w64 TDM64-GCC 4.6.1 compilation
This fixes a regression introduced by
f58390e0f4 because __MINGW64_VERSION_MAJOR
is the same in older releases of shobjidl.h that do not declare the
IFileDialogEvents interface.

Task-number: QTBUG-24699
Change-Id: I000a5b9baf52363dfdedff2fb29bbe7ab24df5ca
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-30 21:35:34 +02:00
Friedemann Kleint 711689fef9 MSVC/OpenGL: Fix warnings about macro redefinition..
Introduced by fc41ee4c92 .

Change-Id: I4c924b0b0a38401ab02c3cc4edb7d78dbd9ef356
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-30 13:51:22 +02:00
aavit 634c39c1a9 Doc: Fix misc. documentation errors
Change-Id: I9481ed452922ed5ecd159a8f60d7fbcb3683cec1
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
2012-08-30 13:51:22 +02:00
James Turner 9597e0d2a2 Avoid a warning from the QNX QPA plugin.
The HDMI display on the Playbook is listed, but (normally) unattached, 
and hence generates an error if we attempt to register for events. This 
patch avoids the warning; a future change will actually watch for screens
being attached / detached and update the QPlatformScreens and event
registration correctly.

Change-Id: I5a9cc773648d50f657fe1b3611fd42495ca7e836
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2012-08-30 13:51:22 +02:00
Mark Brand a3963d8bbc QSqlQueryModel: suppress insert and remove signals while resetting
There is no need to emit signals for inserting and removing rows
and columns while resetting the model. Suppress these signals in
such a way that subclasses can benefit without worrying about it.

Change-Id: I04447c87173be54a7323b97608cdd40ae245b80b
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-30 13:51:22 +02:00
Mark Brand c194b7f345 QSqlQueryModel: fix nested beginResetModel/endResetModel
Follow-up to 83c9ebbd66.

Consider the case where calls to the reset methods on the same object
are nested as in the following sequence:

  1. beginResetModel()
  2. beginResetModel()
  3. endResetModel()
  4. endResetModel()

In such cases, only the outermost calls, i.e., 1) and 4), should emit
signals.

After 83c9ebbd66, 1) and 3) emitted the
signals, which is wrong. This is corrected by keeping track of the
nesting level.

Such sequences can come about when a base class calls the begin/end
methods between the calls made by the subclass.
QSqlTableModel::select() is an example of this.

Test included.

Change-Id: Ia62b45cb1abaab00a32bb8357de4a958bcff83e5
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-30 13:51:22 +02:00
Mark Brand 98c663acd9 docs: remove \reimp from non-virtual methods
It seems we need \internal in this case.

Change-Id: I3f290bb0d22f9f3b5d04d27b13a7ef8961b2dd6c
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-30 13:51:22 +02:00
Friedemann Kleint 861786bb50 Fix static plugins for classes in namespaces.
Breakage introduced by 819d0203e6 .

Extend QT_MOC_EXPORT to take the unqualified class name
as well for the function names.

Change-Id: I736097b564caa37c522d723780663d03341f9032
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Lukas Geyer <lgeyer@gmx.at>
2012-08-30 13:51:22 +02:00
Titta Heikkala 1cebd906af Ensure that printer orientation is preserved
After setting the printer name the initialization is no longer done for
a printer with a name. Instead doReinit() method is called to preserve
the orientation (set with setOrientation() method before calling
setPrinterName()). Before the orientation was changed back to default
when setPrinterName() method was called ignoring the orientation set.

Updated also the autotest because the case:
taskQTBUG4497_reusePrinterOnDifferentFiles() is no longer expected to
fail on Windows.

Task-number: QTBUG-26008
Change-Id: Ia6bc9ae14d79a646e61bfc97652f9f5af90738b3
Reviewed-by: Andy Shaw
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-30 08:54:59 +02:00
Kai Koehne f7de5b0923 Logging: Remove mutex for OutputDebugString
OutputDebugString seems indeed to be thread safe, at least according
to http://www.unixwiz.net/techtips/outputdebugstring.html . I also didn't
manage to run into any deadlocks on Windows 7 ...

The comment + code was already there (in qcoreapplication_win.cpp) in
the first git commit that imported Qt.

Change-Id: I442e22575558958ef21ab8c6b4cc8b03aee906b2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-30 06:22:45 +02:00
Fabian Bumberger b4075c8ea3 Fixes possible memory leak in QContiguousCache
When inserting an item on a position that is already occupied, the destructor of the old item was never invoked.

Change-Id: I01dc4ec9f2da5027284eba94e1a9ad36b062a50d
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-30 02:29:00 +02:00
Marc Mutz c2f10f915f QVarLengthArray: C++11-ify insert/erase signatures
In C++11, container insert and erase operations take const_iterators
instead of iterators. This is a bug fix compared to C++98, where the
mere lookup step of a lookup-or-insert operation had to be done using
(mutable) iterators, which is particularly worrisome for Qt containers
that are implicitly shared, because of the unneeded detach in the positive
case.

QVarLengthArray is not implicitly shared, but for consistency, the signatures
should be changed here, too. The reason this commit contains only the change
to QVarLengthArray is that this is by far the easiest container. The
implictly shared containers are harder, because detaching invalidates other
iterators (more than the sister STL container would).

Change-Id: Ib3d98360bfe376b782b9d1283c5fa3555e8a719e
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-30 02:28:51 +02:00
Marc Mutz 6276427438 QString::append: add (const QChar*, int len) overload
Both insert and replace have this overload, so one reason to add it
to append(), too, is consistency. But I can also make good use of
this overload in the the new QStringList::join(QChar) overload, so
it's actually useful in its own right.

Change-Id: Iccd48f9cb84831399e4db7e3e78eba25c0ced30d
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-30 02:28:30 +02:00
Richard Moore 7f324c4979 Document how to remove a QGraphicsEffect.
You can remove an effect by setting 0, but this wasn't documented.

Change-Id: I2d86875d8554cb26b4d88b8ce04b4daa9792c5d5
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-29 23:02:05 +02:00
Thierry Bastian 1e97dbaf6c Fixed the QTreeView expansion/collpasing when animated
If you had a QTreeView with expandable items, if you tried to expand and while
the animation was still running you'd try to collpase the node,
the display would be completely broken: the items below that items would
not be visible any more except for a fraction of a second when expanding
or collapsing it again.
The problem is in the fact that when starting an animation the QTreeView
stores the state before animating. And it does that even if an animation
is already running. So the stateBeforeAnimation becomes AnimatingState and
when the animation finishes, AnimatingState is the state that is restored
breaking the painting.
Unit test is included.

Change-Id: I015212c1ed8962e6df705655099a5660f195caf3
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-29 20:40:17 +02:00
Samuel Rødal c1e5f600ab Made QImage::fill(uint pixel) for RGB888 accept QRgb values.
Previously QImage::fill() for Format_RGB888 expected a BGR value
instead of the RGB order defined by QRgb, making it counter intuitive to
use related to the 32-bit formats.

Fixed the QPixelLayout data for RGB888 and changed the byte order of
quint24 based on what the optimized image conversion routines expect.

Change-Id: I72926debbc6f5b5cb10b8aa0b2a2a916a04db946
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
2012-08-29 16:53:00 +02:00
Samuel Rødal f3b45ffa61 Added OpenGL example and documentation.
Change-Id: I2d9d4e52caf0a39fef9648d8a9e83a0c1328f650
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-08-29 16:53:00 +02:00
Andy Shaw 49c251e054 Ensure child items are updated even if the parent item has no content
When a parent item had its visiblity toggled, then the child item would
not update if the parent item had ItemHasNoContents and
ItemClipsChildrenToShape set. This is a common use case in declarative as
the root item has ItemHasNoContents set.

Task-number: QTBUG-26846

Change-Id: Id6592ebc4ba2caa4331a4a71f7247e40993131b6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-29 16:53:00 +02:00
Jason Barron 48955161b4 Document obsolete functions in QImage to silence qdoc errors.
Change-Id: I78f3335e5c088641c56d5e682425c7e4b26b7d3e
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-08-29 16:53:00 +02:00
Jason Barron a39e78710d Fix mistake in docs. Return type should be QSurfaceFormat
Change-Id: I4f4bf2542bb89b28ee84773507d4a121b134e730
Reviewed-by: Shawn Rutledge <shawn.rutledge@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-08-29 16:53:00 +02:00
Brendan Long 860f95946b Add support for explicit TLS 1.1 and 1.2
Add SslProtocol enums TlsV1_1 and TlsV1_2 and use the appropriate OpenSSL
methods when they're selected (TLSv1_1_client_method, TLSv1_2_client_method,
TLSv1_1_server_method and TLSv1_2_server_method). This allows us to
explicitly use TLS 1.1 or 1.2.

Task-number: QTBUG-26866
Change-Id: I159da548546fa746c20e9e96bc0e5b785e4e761b
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-08-29 14:22:54 +02:00
Thomas McGuire a135d87a0f Blackberry: Fix QFileSystemEngine::tempPath()
Apparently it depends on the user and/or firmware version on whether
TMPDIR or TEMP is set, so try both.
Additionally, fall back to /tmp if neither is set, as that seems to be
present on all devices.

Change-Id: Ia49499729df525276e145d2e35e94559eac45c98
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-08-29 14:18:48 +02:00
Marc Mutz 7e21ba6845 SSL: remove unneeded volatile qualifications
These two variables are only ever accessed under mutex protection,
and don't otherwise look like they could be changed by the hardware,
so remove the volatile qualifier.

Change-Id: I714451bb3e80778b971a901d53fe13e1b01dd84f
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-29 14:16:45 +02:00
Marc Mutz e8963749a7 QNativeWifiEnginePlugin: replace a volatile bool with an atomic int
Since there is non-atomic data that is protected by 'triedResolve',
the (outer) read from triedResolve needs to have acquire, and the
store needs to have release semantics. The release implied by the
mutex unlock is not good enough because it only synchronises-with
the locking of the same mutex, which not all threads execute.

Change-Id: I90b62c4c0213472ecf2b95a1674a1c6c79dc3786
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-08-29 14:15:58 +02:00
Marc Mutz b2edd830b1 QDnsLookupRunnable: replace a volatile bool with an atomic int
Since there is non-atomic data that is protected by 'triedResolve',
the (outer) read from triedResolve needs to have acquire, and the
store needs to have release semantics. The release implied by the
mutex unlock is not good enough because it only synchronises-with
the locking of the same mutex, which not all threads execute.

Change-Id: If46b3ea6ccfdd66ca41ce44d4f45bef2c2c30f72
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-08-29 14:14:46 +02:00
Marc Mutz 462a266edf QHostInfo: replace a volatile bool with an atomic int
A volatile bool read/store is documented on MSVC to have acquire/release
semantics, respectively, but that doesn't need to be true for MinGW, so
use explicit memory ordering.

Apply the same fix to the Unix implementation, too.

Change-Id: Ica466cec50beed830aafa4e3384d82f02e1a47e8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-08-29 14:14:17 +02:00
Frederik Gladhorn e0d3874525 Exclude the examples/widgets/doc dir for all but widgets.
There are too many references to the QWidget lib documentation
in there. On the other hand this keeps snippets working.

Change-Id: I7dd63b7fba1758accea2663f7b427940a8857e32
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-08-29 14:12:06 +02:00
Frederik Gladhorn 3d13156025 Let qdoc respect excludedirs for examples.
Change-Id: I01063b38122aea3615801ff013c8c4a1589327fc
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-08-29 14:12:00 +02:00
João Abecasis b856c2f8b4 Don't do path conversions on isEmpty()
Change-Id: I4b5eefe74c6f741d1d0870d502798a5e3d0e7a2a
Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-08-29 14:11:59 +02:00
João Abecasis 1cd85c541f Use QString for user-visible strings
dirPath is kept as the "user visible" path string and is used to
construct paths during directory iteration. In QFileSystemEntry (and in
Qt, more generally) these are represented with QString.

While on Windows QFileSystemEntry::NativePath and QString are one and
the same, dirPath does not represent a native path. So, basically, don't
do that.

Change-Id: I987477cb41b37018634ac43aeda004d254181dc5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-08-29 14:11:11 +02:00
Jon Trulson 5b9edbf037 Revert "Fix transformation in eglfs backingstore"
This reverts commit 12491f35bb.

This change is not needed on eglfs.  It causes widget based apps to be
rendered with Y inverted.

Change-Id: Idb23fa22c438442b81882b64bf84d6aa0662d27b
Reviewed-by: Laszlo Agocs <lagocs83@gmail.com>
2012-08-29 14:09:13 +02:00
Jing Bai 6210b2018a wrap the implementation with NO_SETTINGS macro
To fix a compile issue where the header is wrapped but the
implementation is not.

Change-Id: I9d4e30a251e9f5de71710eb6bf784fb2eb396698
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-29 14:07:39 +02:00
Mark Brand 4692432b61 documentation: grammar nitpick
Change-Id: Ibf16731f04f2c53adeff1b8b1fcc6f1555e3613d
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Bill King <bill.king@nokia.com>
2012-08-29 14:04:09 +02:00
Christoph Schleifenbaum e1f617128c Drawing fix for overlay scrollbars on Mac.
A wrong check lead to a scrollbar with value 0 never been draw. This is
the fix for it. Instead is has to be checked for a length of 0.

Change-Id: I0c4e2f7e0014074e3c22554bcbea0ebfc3122952
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-08-29 12:48:10 +02:00
Thiago Macieira c0a43591dc qplatformclipboard.h does not need qplatformdefs.h, so remove
It's not using anything from the qplatformdefs.h header in the public
API (and it shouldn't, since qplatformdefs.h can change) nor in inline
functions, so there's no need to include it here.

Include qglobal.h, which includes qconfig.h, which is where the
QT_NO_CLIPBOARD define will be, if anywhere.

Change-Id: I913db9aface297e75f91b6346c0dc48439d7d1f6
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-08-29 12:37:41 +02:00
Lukas Geyer 819d0203e6 Use qualified name for QT_MOC_EXPORT_PLUGIN()
Using non-qualified name for QT_MOC_EXPORT_PLUGIN() breaks template
instatiation for QPointer<T>::operator=(T*) in qt_plugin_instance()
when the class is embedded a namespace with the same name.

namespace Test {

class Test : public QObject
{
    Q_OBJECT
    Q_PLUGIN_METADATA(IID "Test")

public:
    Test(QObject *parent = 0) : QObject(parent) {}
};

} // namespace Test

In function 'QObject* qt_plugin_instance()':
 error: expected type-specifier before 'Test'
 error: no match for 'operator=' in
        '_instance = (int*)operator new(4u)'
 note: candidates are:
 In file included from qtbase\include\QtCore/qpointer.h:1:0,
                  from qtbase\include\QtCore/QtCore:68,
                  from test.cpp:1:
  qtbase/src/corelib/kernel/qpointer.h:87:25:
   note: QPointer<T>& QPointer<T>::operator=(T*) [with T = QObject]
  qtbase/src/corelib/kernel/qpointer.h:87:25:
   note:   no known conversion for argument 1
           from 'int*' to 'QObject*'
  qtbase/src/corelib/kernel/qpointer.h:79:7:
   note: QPointer<QObject>&
         QPointer<QObject>::operator=(const QPointer<QObject>&)
  qtbase/src/corelib/kernel/qpointer.h:79:7:
   note:   no known conversion for argument 1
           from 'int*' to 'const QPointer<QObject>&'
 error: expected ';' before 'Test'

Change-Id: Idd3e57ab1c888352ad2a8e8f6efca75d858089df
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-29 07:57:01 +02:00
Konstantin Ritt 9f561f8a41 Harfbuzz: fix build with NO_OPENTYPE macro defined
Remove `DEFINES += QT_NO_OPENTYPE` since there are no QT_NO_OPENTYPE guards
and I'm not sure defining NO_OPENTYPE won't break some things.

Change-Id: I7b36d3f200408aee99db73c56baa9b4a21cb54f9
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-29 07:56:50 +02:00
Lukas Geyer f61d02deea Plugin metadata is now updated in setFileName(), not load().
Plugin metadata has been updated in load(), with the
side-effect of metadata not beeing available until
plugin has been loaded - and which the new metadata
system tries to prevent in the first place. The
metadata is now updated (and avaiable) as soon as
a valid filename is set.

Change-Id: Ia5aedc67d8115e71c2ecbcbcadf786ba1c2893d8
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-29 07:56:40 +02:00
Denis Dzyubenko 32efe589a3 Removed extra detach calls from QJsonArray::takeAt
Change-Id: I5711ec6b03e3979eca61f62004a7c6f0eaae79e0
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-29 07:56:01 +02:00
James Turner d2864ffcc0 Fix missing cleanup of native Cocoa menus.
QCocoaMenu was missing a destructor to release various native resources,
and this causes issues with pop-up menus when the Qt peers are recycled on successive shows of the same menu.

Task-number: QTBUG-27022
Change-Id: I3cdf979804358ce10fe8a87c9e2c90419c6e0b48
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-28 23:34:25 +02:00
Frederik Gladhorn 823da2d308 Fix warning when compliling with -Wconversion.
Change-Id: I90bf9f9a1860cabb67bc92599e7ccce94496d134
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-28 23:34:25 +02:00
Frederik Gladhorn 21c2e780b1 Fix doc errors.
Change-Id: I38d01d3b5d2b9b15edd389ea17142bd75f00e135
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-08-28 23:34:25 +02:00
Frederik Gladhorn 64dd7a6bfe doc: fix links
Change-Id: Ifb6363e35c5317b6b1d9fd5e53079b30753f0666
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-08-28 23:34:25 +02:00
Frederik Gladhorn b51efc3297 Fix qdoc link.
Change-Id: I65e58351737b5628ac8c5dfe36a14b898076d690
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-08-28 23:34:25 +02:00
Giuseppe D'Angelo 20993adffd QSharedPointer: make QT_SHAREDPOINTER_TRACK_POINTERS work with QObjects
If setQObjectShared crashes because a QObject is tracked by two
different QSharedPointers, we lose the debug feature offered by #defining
QT_SHAREDPOINTER_TRACK_POINTERS, as the check done by this define
happens after the setQObjectShared call.

Therefore, move setQObjectShared after the internalSafetyCheckAdd call.

This is actually a noop change in 5.0, as setQObjectShared does nothing.
However it prevents a bug in case the Qt 4 behaviour is brought back
in some later version.

Change-Id: I71340d0f878828354537762d01c46d441efc918c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-28 21:18:17 +02:00
Stephen Kelly f92f5f3ff0 Forward the CMAKE_TOOLCHAIN_FILE to tests.
A Toolchain file must be supplied to cmake to cross compile. Forward
that to tests so that they can be built too.

Change-Id: Ie15190ff1d1f554ce436b7cb4d37a177a7e17e56
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-08-28 21:17:20 +02:00
Frederik Gladhorn e7dfdb1211 Find example images for widget docs.
Change-Id: I958031b3ececa953c73d7792900f271f4a19803e
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-28 21:07:56 +02:00
Frederik Gladhorn 6321b5847a doc: remove links to Qt Designer
Designer is in the tools repo, we cannot link there.
Mentioning the name should be good enough.

Change-Id: I55193aa31e60ae266a8890f706c332a63ed3610d
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-28 21:07:51 +02:00
Frederik Gladhorn a92c254c45 Add graphicsview documentation overview.
This was removed from the docs repo and not re-added in qtbase.
(change id for removal: Id1a65f07f4687465499fc5666bb1ad710914fabd)

Change-Id: Ifb403757884114c00e64d713f65af5178dcb5d4b
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-08-28 21:07:46 +02:00
Frederik Gladhorn 76420e2123 Fix qdoc errors in PrinterInfo.
Document parameter and associate comment with function by removing newline.

Change-Id: Ib4bb07c325144ef3501aea81d9e49e09b007387d
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
2012-08-28 21:07:40 +02:00
Stephen Kelly a912b14c75 Add automatic metatype registration for invokable methods.
This works similarly to the automatic registration for Q_PROPERTY types,
but in this case it mostly affects the need for users to
call qRegisterMetaType<T>() before using queued connections
with methods using non-built-in metatypes, or before using invokeMethod
manually.

Change-Id: Ib17d0606b77b0130624b6a88b57c36d26e97d12d
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
2012-08-28 18:30:39 +02:00
Stephen Kelly 62c2061a50 Add automatic metatype registration for Q_PROPERTY types.
In Qt 4, the user needs to call qRegisterMetaType if the property
could otherwise be read before the type is registered with the metatype
system. This patch makes that unnecessary and automatic by registering
it when the first read indicates that it is not yet registered instead
or when QMetaProperty::userType is called before it is registered.

The types which are automatically registered exclude the built-in
types, which do not need to be registered, and include metatypes which
are automatically declared, such as pointers to QObject derived types
and containers of existing metatypes.

Change-Id: I0a06d8efdcb64121618e2378366d0142fa0771f5
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
2012-08-28 18:30:32 +02:00
Mitch Curtis f29896840c Handle invalid dates properly for QDataStream versions < 5.
In Qt 5, when streaming an invalid QDate using a QDataStream version
earlier than Qt_5_0, QDate.jd is written and read as 0, which is an
invalid julian day for Qt versions earlier than 5.0. For Qt 5.0
however, 0 is a valid julian day, so when comparing a deserialised
invalid date (read using a QDataStream version < Qt_5_0) against a
default-constructed invalid date, they won't compare equal when they
should.

Task-number: QTBUG-26989

Change-Id: Ia76df493471f3b068c7d7187be20e3178eff2cc7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-28 18:23:06 +02:00
Stephen Kelly 81b275b1dc Deprecate qWaitForWindowShown QWidget* overload since 5.0.
It is already documented as deprecated in 5.0, so marking it as deprecated
since 6.0 is silly.

Change-Id: If72cc81bdad18c907022c48b9aa8e7d87eb88e59
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-27 23:25:30 +02:00
Peter Kümmel 9a5ade8abe cmake: define QT_NO_DEBUG in client release builds
Change-Id: Ife224bf908c5e9bc1e62a830a3750de88a082eb7
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-27 23:23:51 +02:00
Stephen Kelly 6c27c74ace Add some error checking to the qt5_use_modules function.
Change-Id: I8fa2f10edbee1080646324c0689b23eda44aa75d
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-27 23:23:23 +02:00
Stephen Kelly 6263e9078a Fix plugin docs regarding location of json files.
The commit 2ef52ca124 introduced
an error regarding where the json file must reside.

Change-Id: I296c93abebb3e9f8c9e7e29a4a433201064969f0
Reviewed-by: Peter Kümmel <syntheticpp@gmx.net>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-27 23:22:25 +02:00
Marc Mutz 37a660c594 qcompilerdetection.h: set Q_DECL_OVERRIDE/Q_DECL_FINAL for 2005 <= MSVC <= 2010
This enables Q_DECL_FINAL and Q_DECL_OVERRIDE backed by VC's
non-standard extensions from VC 2005 on. VC 2012 will support
the standard-compliant version, so use that there.

Change-Id: I96874fe3d36fcaa283d2d1f53d5eb6825e55f259
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-27 10:59:09 +02:00
Eskil Abrahamsen Blomfeldt 4712d88c0e Make letter spacing APIs in QTextFormat more consistent
Change d060b6f04f introduced some
new properties to QTextFormat which were unfinished and did not
match the documentation in the same change. I've updated the API
and docs to use the regular QFont enum for letter spacing type
instead of introducing bools (which inhibits expansions later)
or mutually exclusive properties in the text format.

Change-Id: Ife44993b6746c413e421fdaf92ebaaab6ba95977
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-27 10:58:03 +02:00
Frederik Gladhorn d3dfe55fd4 doc: clean up model view overview links
Change-Id: I4aaf0cb254ffa4c7369e51b35af0226c98ec293c
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-08-27 10:36:38 +02:00
Jani Honkonen 547a1bea49 Fix limitting shortcuts to keypad only
The Qt::KeypadModifier modifier is internally masked away from all
shortcuts. So it is not possible to set a keypad only shortcut.
Changed the implementation so that first a full keysequence match is
searched. Then if no match is found the same sequence is tried
without the keypad modifer.

Added a autotest for this also to cover the basic use cases relating
to this.

Task-number: QTBUG-20191

Change-Id: Ibe7740c705fd0ab1eece4809b9a0b48882172933
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-27 10:27:30 +02:00
Peter Kümmel 2ef52ca124 Update Q_PLUGIN_METADATA docu.
Change-Id: I7e451a15de392552609ef549118600684429e0ea
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-26 22:12:03 +02:00
Marc Mutz 3de60970e5 QMetaTypeId: optimize qt_metatype_id() in special cases
Same change as for Q_DECLARE_METATYPE, but in the container and
smart pointer specialisations of it.

Change-Id: If9390ccc43eb3b07122f5ea5b8094139b5e1ded0
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-26 16:54:27 +02:00
Marc Mutz 56603a8d83 QMetaTypeId: optimize qt_metatype_id()
The old code resulted in one memory fetch for the test plus another one
for the return value (at the assembler level). The new code reuses the
already-loaded value:

-       movl    _ZZN11QMetaTypeIdI12QDBusMessageE14qt_metatype_idEvE11metatype_id(%rip), %edx
-       testl   %edx, %edx
-       je      .L158
        movl    _ZZN11QMetaTypeIdI12QDBusMessageE14qt_metatype_idEvE11metatype_id(%rip), %eax
-       ret
+       testl   %eax, %eax
+       je      .L160
+       rep; ret

It also saves one load in the not-yet-initialised case:

-.L158:
+.L160:
        leaq    .LC7(%rip), %rdi
        subq    , %rsp
        .cfi_def_cfa_offset 16
        movq    himBH1, %rsi
        call    _Z17qRegisterMetaTypeI12QDBusMessageEiPKcPT_
        movl    %eax, _ZZN11QMetaTypeIdI12QDBusMessageE14qt_metatype_idEvE11metatype_id(%rip)
-       movl    _ZZN11QMetaTypeIdI12QDBusMessageE14qt_metatype_idEvE11metatype_id(%rip), %eax
        addq    , %rsp
        .cfi_def_cfa_offset 8
        ret

Change-Id: I769950449822f2b1587680e05518be0a4f3120a2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-26 16:54:23 +02:00
Marc Mutz e6c50609c8 QSlotObjectBase: make 'impl' and 'ref' private
This allows to fold the deref() and the destroy() operations into one,
destroyIfLastRef().

The member variables were renamed since there's now a member function
of the same name (ref()).

Change-Id: Ib94416d9e658065bbf5d3711ecafaf0eb063af17
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-26 14:34:13 +02:00
Marc Mutz 2d78e24191 QSlotObjectBase: make Operation enum protected
We don't want people to go and call through the function pointer
directly.

Change-Id: I386645239974f008d513eaa62593c1141b294b60
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-26 14:34:06 +02:00
Marc Mutz 4570d0ac24 QSlotObjectBase: remove misleading comment
These constructors might not benefit from being constexpr (as the objects are
only created on the heap), so don't suggest so. There's no disadvantage of them
begin constexpr, but their constexpr'ability depends on whether QAtomic has
a constexpr constructor, and the added complexity of finding that out isn't
worth it.

Change-Id: I089a29dcb98ba935c339dce09d71f283522a9afd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-26 14:34:01 +02:00
Marc Mutz 80694dd614 moc: parse classes that use Q_DECL_FINAL|final|sealed
This only works with the C++11 contextual keyword
directly, the MSVC equivalent 'sealed', or the Qt
define for it.

While this isn't a problem for syncqt, being an
internal tool, moc should eventually be able to parse
user code using local C++11-final-wrapping macros.
For this, I guess moc would have to be taught to
expand macros in code and not just test #if clauses,
potentially driven by something like
  #pragma qt-moc expand-this
  #define MY_FINAL_CLASS final
but that's something for someone more intimately
familiar with moc's source than I am.

Change-Id: Id6aec961a881e8d5a9b76a7fc8e1c02c71913f64
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-26 14:29:52 +02:00
Marc Mutz c09eeff2ab QtGlobal: document Q_DECL_FINAL and Q_DECL_OVERRIDE
Change-Id: I9b292ae3319c30ad878aade4416fb88155465a54
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-26 14:29:50 +02:00
Marc Mutz f45080e142 QtGlobal: remove Q_DECL_FINAL_CLASS
Now that qvariant_p.h's HasIsNullMethod check is fixed
so that it doesn't require Q_COMPILER_DECLTYPE anymore
to be able to deal with final classes, there's no point
in distinguishing Q_DECL_FINAL and Q_DECL_FINAL_CLASS
anymore, so remove the latter.

Change-Id: I31de5b63e7d2e44171a13e928997c946d93e05c9
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-26 14:29:50 +02:00
Marc Mutz 7e0fa2fc75 QVariant: make the HasIsNullMethod check work across all compilers (maybe)
Currently, we have a C++11 version that requires Q_COMPILER_DECLTYPE
support, and can deal with final classes, and a C++98 version that
doesn't require any C++11 features, but fails on final classes.

What we're missing is a version that works for MSVC v8 and v9
(2005 and 2008), which sport the 'sealed' non-standard keywords
but lack decltype support. So far, we tried to solve the problem
by making class-level final special (Q_DECL_FINAL_CLASS), not
defining that macro for these two compilers, even though we did
define Q_DECL_FINAL, the method-level keyword.

This new formulation, taken from
  http://stackoverflow.com/a/9655327/134841
supposedly supports all compilers with a minor #ifdef for
MSVC which doesn't like applying sizeof() the way we do.

However, testing has shown this to blow up on OSX.

So we use the less intrusive approach: add this variant as
a third version, only used by VC 2005 and 2008.

Change-Id: If1945f8a6e9ed36cb68212fa781d5e29eb2a082d
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-26 14:29:49 +02:00
Marc Mutz 9090e0d9c6 qcompilerdetection.h: add MSVC 2012 features
These are taken from the table at
  http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx

Change-Id: Ifd2f88ca5d92092a6a025bef3da36fde0a802a66
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-26 14:29:48 +02:00
Marc Mutz bf186ceebb qcompilerdetection.h: stream-line MSVC feature detection
Reformat the MSVC feature detection to be similar to other compilers, ie.

1. Inside the C++11 features section instead of where the compilers
   are detected
2. In one block for the compiler, with sub-blocks for the version.

However, it's now not 100% compatible with the previous version,
since Q_CC_INTEL is now explicitly excluded while before it was
implicitly included in the MSVC case. I have no idea whether
that matters, since Q_CC_INTEL is handled for itself further up
already.

Change-Id: Id9e8da0a5394ad5643bcb29493f14bc6e8264c13
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-26 14:29:48 +02:00
Thiago Macieira 3717802653 Small optimisation to recursive mutexes
A recursive mutex operates on top of a non-recursive mutex. Therefore,
we can bypass the test for recursive.

The end result is simply that the compiler can inline the locking and
unlocking a little better inside the lock() and unlock() functions

Change-Id: Ic06d1344ccd411c22cbdef74536f3a4d368d75d7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-26 13:57:58 +02:00
Michael Brasser 8e7b86de2c blockSignals should block QML signal emission.
Change-Id: Ief35f3ca326173a87240e3cb558e47f721bd04b7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-26 11:08:42 +02:00
David Faure ac2b452616 QUrl: port thread-safety autotest from Qt4.
This detected the same missing detach()s in QUrl::resolve.
Everything else works, no need for a mutex in Qt5's QUrl.

Change-Id: I0da51b7b0c6b810d314a26d4b638383cd17de12b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-26 11:08:42 +02:00
Marc Mutz 2b69159fd8 QFileSystemModel: remove incorrect #ifndef
No other call to fileInfoGatherer.getInfo(info) is #ifndef'ed on
QT_NO_FILESYSTEMWATCHER, so this one shouldn't be, either.

Change-Id: If145226c13d77460d6169a9ed3028647b0f565b5
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Reviewed-by: Majid Khan <mkhan3189@gmail.com>
2012-08-26 09:07:37 +02:00
Marc Mutz feeaa1302c HarfBuzz: fix unused parameter / variable warnings
Change-Id: I362c80081ac4e4d0b9126385bab5a77826810926
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-08-25 23:21:55 +02:00
Markku Heikkila 70758cbf15 Fix infinite recursion while dragging toolbar of QMainWindow.
Prevent recursion in QMainWindowLayout::endSeparatorMove().

Manually cherry-picked from Qt 4.8 change
90b71dc0ff4ec9bb150a0de9933d6eb06d995a34

Task-number: QTBUG-21378

Change-Id: I901ebfd96be0bdc6ab03dd8c3335d2622db843db
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-25 19:04:56 +02:00
Shawn Rutledge dfe7bdbe9c explain specifically how to make a transparent window
Change-Id: I136d8d9709d4fae914f12919e513641a6e76e3f0
Task-number: QTBUG-20768
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-08-25 19:04:56 +02:00
Christoph Schleifenbaum 77e57387ac OSX: Drag and Drop QMimeData.
When dragging and dropping within the same application, the QDropEvent
should contain exactly the same instance of QMimeData as it was set to
QDrag.

This solves the problem in
https://bugreports.qt-project.org/browse/QTBUG-26953

Change-Id: I3bc4da845ff4293c509343c1c8c62fc331416ec0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-25 19:04:56 +02:00
Eskil Abrahamsen Blomfeldt c008420eb5 doc: Fix doc warnings for qtextlayout.cpp
\Auml for a with umlaut doesn't seem to work with qdoc anymore,
so replace this with the unicode value instead. Also, add
reference to arguments in glyphRuns() function.

Change-Id: I31861b384b822d1fbdcafbeeac07ea68a0e5fd07
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-25 19:04:56 +02:00
Eskil Abrahamsen Blomfeldt 1349299f45 doc: Fix several text-related qdoc warnings
Also adds a new snippet which is just copy-pasted from the
old documentation, because the snippet-file previously referenced
seems to have disappeared.

Change-Id: I0180715544321e076acda769cbdcbf19d50a971b
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-25 19:04:56 +02:00
Thiago Macieira ab9fde6c0c Split the futexFlags() function in two: a hot and a cold path
We could mark the cold path with __attribute__((cold)) (since GCC 4.3),
but quick tests locally indicate that the compiler is smart enough to
determine that by itself.

It will inline the hot path in _q_futex, which in turn is inlined in the
lockInternal and unlockInternal functions, whereas the cold path is kept
outside.

Change-Id: I8ae7d851d4f050498bfb491ba87d3e25453a14f8
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-08-25 10:35:34 +02:00
Thiago Macieira c28204066c Mark mutex locking and unlocking functions with noexcept
Unlocking a mutex can never throw an exception. That doesn't make
sense and our code should make sure it can't happen. Right now,
provided that the system-level functions don't throw, we don't either.

Locking a mutex cannot throw on Linux because we use futexes
directly. A non-recursive mutex is just a futex, whereas a recursive
mutex uses a mutex (a futex) to manage a lock count.

However, on other platforms, due to the freelist, there can be memory
allocation, which means it might throw std::bad_alloc. Not because of
the freelist itself (that uses malloc and will just crash if malloc
fails) but because of Q_GLOBAL_STATIC. In 5.1, the global static will
be noexcept provided the type's constructor is so too (it is, in this
case).

Change-Id: I4c562383f48de1be7827b9afb512d73eaf0792d5
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-25 10:35:26 +02:00
Thiago Macieira 98437f0e2e Add a way for QtDBus to force a call to dbus_shutdown
This will ask the D-Bus library to free its caches. It's useful for
running valgrind on a D-Bus based application, so we can detect real
leaks.

We can't run this by default because there could be other users of
libdbus-1. Calling the shutdown function would make them stop working.

Change-Id: I9854b82afcdbc4955d6f0a1a1b49a673186242c8
Reviewed-by: Lorn Potter <lorn.potter@nokia.com>
2012-08-25 10:34:39 +02:00
Thiago Macieira 292350f70d Print some debugging from QDBusConnection when disconnecting
Change-Id: I6e19cd8b16513faad6435d1713eab56675d07289
Reviewed-by: Lorn Potter <lorn.potter@nokia.com>
2012-08-25 10:34:11 +02:00
J-P Nurmi 1dbdf0c580 Do not build qpa/gui dependant plugins in no-gui mode
Change-Id: I725e9127e640c0dd3cbd7f1488b16dcf4eb06377
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-25 10:30:02 +02:00
J-P Nurmi 30707eb0b6 src.pro: remove redundant & incorrect platformsupport dependency
it's already added conditionally below

Change-Id: I4df89b2822a3e6e46d8254c08fd69d0c98e680b7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-25 10:29:53 +02:00
Thiago Macieira caa22ff8ad Use nanosleep instead of pthread_cond_timedwait for thread sleeping
There's a comment saying nanosleep's availability is questionable, but
the information of what systems don't have that is now lost in
time. It's quite likely that they were older, Unix systems we no
longer support anyway.

nanosleep comes from POSIX.1b-1993, which is merged into POSIX.1-2001,
so chances are that it's supported almost everywhere where Qt runs
(except for Windows anyway).

Change-Id: I4fd18f8715c43a42429000f3b3d2c3b7343f94b4
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2012-08-25 05:41:14 +02:00
Frederik Gladhorn 88c7c35b21 Improve docs.
Change-Id: I073398e4da14a1c6489c951200f022a346f4d2fa
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-25 01:54:27 +02:00
Thiago Macieira 75cb66c04e Don't define QT_NO_ICONV on Windows: that comes from qconfig.h
Both the configure script and configure.exe add QT_NO_ICONV to qconfig.h
in case they can't find iconv. Since Windows doesn't use iconv anyway,
we don't need to set QT_NO_ICONV here.

MSVC likes to print a warning that a macro is redefined. That gets quite
spammy...

Change-Id: Ide9800f6f848bc0c2d8bdbcb41875a709d3e249c
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-25 01:54:27 +02:00
Thiago Macieira c0c5b47a47 Add qiterator.h to tools.pri
Change-Id: I2c8182adbf513231bcef5dc2de60217753a54b76
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2012-08-25 01:54:27 +02:00
Marc Mutz 5254ac1f31 QDBusMetaType: #if -> #ifdef QT_BOOTSTRAPPED
The rest of the code uses #ifdef/#ifndef, so do so here, too.

Change-Id: I4811755f9a1c2a1cab371e3bea78d3c5f9af086e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-25 01:54:27 +02:00
Marc Mutz 210f762f7d qdbus_loadLibDBus: remove unneeded volatile qualification
The variable is only ever accessed under mutex protection, and
doesn't otherwise look like it could be changed by the hardware,
so remove the volatile qualifier.

Change-Id: I3bb00ed6f8017d662bbf73425a70d52116cc9297
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-25 01:54:27 +02:00
Frederik Gladhorn 85299793ba Fix doc: qglcolormap is not the opengl module
Change-Id: I134aeafbabc62e36da20e0a6df667b6c1aa0c477
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-08-24 21:32:03 +02:00
Kent Hansen 3b65c716e5 fbbackingstore: Don't overload inherited virtual function
The QPlatformBackingStore::endPaint function does not take any
parameters.

Change-Id: If15d7824d65a52c38332c6676c12a954469a58ab
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-08-24 20:29:17 +02:00
Olivier Goffart b1e082ec9f Fix performence problem while shaping a lines with many scripts
Fix quadradic behaviour regression introduced in commit
2e6b8b4734

Task-number: QTBUG-22275
Change-Id: I343452c6b1cd0e571770e5dadd3cd6fd3167c96d
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-23 23:31:10 +02:00
Olivier Goffart c13011829f Speed up QTextEngine::setBoundary
Before, setBoundary was O(N), now it is O(log N) assuming the boundaries
are added in order. (splitItem might still be linear because of the call
to QVector::insert)

This speeds up a lot QTextEngine::addRequiredBoundaries when there is a
lot of addFormats. (For example if there is a very long line with syntax
highlighting)

Task-number: QTBUG-8389
Change-Id: I10c9fca72343f46db24b1d4f519f7747188d4009
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-23 23:31:10 +02:00
Olivier Goffart 4f6efe1641 Speed up QTextEngine::resolveAdditionalFormats
Don't call the linear QTextEngine::format in the loop.
Instead, keep track of the current formats by indexing their start and end position.

Task-number: QTBUG-8389
Change-Id: I89c18b804111edfab6254442cbee33da39d1a273
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-23 23:31:10 +02:00
Eskil Abrahamsen Blomfeldt 7dfe25e2cd doc: Fix some qdoc warnings
QDoc doesn't supported nested tags, and there doesn't seem to be
any way to trick it into thinking you've mentioned the argument
(\omit didn't work), so actually rephrasing is the only way to
kill the warning. Also add a const modifier to a signature to
make it match the declaration.

Change-Id: Ie02a488c42565205e827602959111c53e2d05a83
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-23 21:26:20 +02:00
Thiago Macieira 3705b93c43 Compile without the deprecated filterEvent function
Use the filterNativeEvent function, which also takes the name of the
event.

Change-Id: Ifa3dd6285a2a526b5c3de5a86a74ead706534759
Reviewed-by: David Faure <faure@kde.org>
2012-08-23 18:05:31 +02:00
Marc Mutz c879cf0dcf xcb: fix unused static warning
The variable ptrXcursorLibraryLoadCursor is only used in code
wrapped in XCB_USE_XLIB.

Change-Id: If0b4997ac6e80a3709263d9793d1ca0dfd5907f3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-08-23 18:05:31 +02:00
Marc Mutz 75bf40ae13 linuxfb: remove unused function
debug() isn't even referenced in commented-out code, and GCC warns
about it being unused, so remove.

Change-Id: I2830b7932e18cdd3643925973995bea7fea9f277
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-08-23 18:05:31 +02:00
Marc Mutz 55819341a9 QSystemTrayIcon: fix narrowing warning
GCC complained:

  warning: narrowing conversion of
  ‘((QSystemTrayIconSys*)this)->QSystemTrayIconSys::<anonymous>.QWidget::winId()’
  from ‘WId {aka long long unsigned int}’ to ‘long int’ inside { } [-Wnarrowing]

Change-Id: I63908c884b51db203ee0ed659a152af77c295292
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-08-23 18:05:31 +02:00
Marc Mutz 8967e731a6 QNetworkDiskCache: avoid a 31-bit truncation
Network operations whose content size exceed 2G are not unheard of, and
they probably shouldn't be cached, so use the correct toX() function, one
that doesn't truncate the value in the header.

Change-Id: Ie4e68a3120c85952dd2cc9feb73c5844e20b9aa3
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-08-23 18:05:31 +02:00
Eskil Abrahamsen Blomfeldt 2f9f16a01c doc: Remove documentation for removed function
Function was removed in 1582407fc7,
but the documentation was left behind.

Change-Id: Ib59197221e3be0e13db958ab3efdcc95b7c52452
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-23 15:54:30 +02:00
Marc Mutz d16b02bd17 QtNetwork: declare some classes as shared
Change-Id: Ib3eaba59836529ad0cf8e4353b54dd0cd31fd1ad
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-08-23 15:54:02 +02:00
Stephen Kelly 022e3a358d Extract the QMetaMethodPrivate::ownMethodIndex method.
Change-Id: Ic96e3582ff4332ac489f7c51ed40eb1b1a0ac42d
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
2012-08-23 15:54:02 +02:00
Samuel Rødal 62565321a6 Fixed missing window decorations on compiz.
Task-number: QTBUG-26954
Change-Id: I6981338d4bbc9cf1440c9d67e9d034e0553dfeae
Reviewed-by: Jason Barron <jason.barron@nokia.com>
2012-08-23 15:54:02 +02:00
Stephen Kelly 96d5c28a11 Make QAbstractItemModel::sibling virtual.
This would allow implementations to create an optimized way to create
sibling indexes.

A typical pattern of QAIM implementation is to use the same internalPointer
for each row of a subtable of a model (such that the internalPointer is
related to the common parent of each set of rows) and differentiate on the
row value in the QModelIndex. Alternatively, it is also common to have the
internalPointer correspond directly to the row value for the QModelIndex.

In both cases it is possible for the implementation to optimally create a
sibling QModelIndex in the same column as a known row. Provide a virtual
method for them to do so.

Change-Id: I3b076abcd5f6087a4cb108fbc6dceeef15529987
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-23 15:54:02 +02:00
Lars Knoll 25c57e3188 Make sure we don't get duplicated doc pages.
\group generates a page with the same name
as the \page comand afterwards.

Change-Id: Iaca6da21485532c8c3b13982bd06a06f3dbc0375
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-23 13:22:23 +02:00
Thiago Macieira 7b39a06fab Doc: Add \inmodule QtCore to all QtCore class doc bodies
Change-Id: I19100755c97cc155c76a859e19940e9f9222d34e
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-23 13:22:23 +02:00
Thiago Macieira acc4c28ef7 Doc: Add \inmodule QtDBus to all QtDBus class doc bodies
Change-Id: I0aa273c355314effd563cfeda74ce7bacbef3db8
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-23 13:22:23 +02:00
Andy Nichols fc924ae47e Doc: Fix snippet and example referencing widget examples
Widget examples were moved into a widgets subfolder, but
qdoc references were not updated.

Change-Id: Id2a4573e723745b9827c664c852807d6116f8f6d
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-23 11:20:37 +02:00
Pekka Vuorela 2292bf0669 Remove remaining bits of deprecated QInputPanel
Introduced during Qt5 development and renamed to QInputMethod.

Change-Id: If6744648dc98b779e65c449ae32626db574181df
Reviewed-by: Joona Petrell <joona.petrell@gmail.com>
2012-08-23 11:20:37 +02:00
Kai Koehne e177a35dfe ICU: Fix crash in codecForMib(2107)
availableMibs() unconditionally adds 2107 to the list of mibs. The patch
ensures that codecForMib() also knows about this special TSCII codec.

(Note that the autotest only really checks this code path if only this
test case is run. The other tests already fill the internal codec cache
otherwise).

Change-Id: Id987d7cecd5f5700cca75e9b85b37011f8e5c622
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-23 11:20:37 +02:00
Stephen Kelly e9bc07c4f2 Remove qWaitForWindowShown(QWindow*) overload.
The QWindow* overload was introduced for Qt 5.0, but is unused already.

Change-Id: Ic07f19eac87bc93a589017407668760fceb2f632
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-08-23 08:32:17 +02:00
Shawn Rutledge 41ca2b4453 A few more random documentation fixes
@p replaced by \a, \QD replaced by {Qt Designer}, couple of enums etc.

Change-Id: I315510690bf52e42db519292b4122fa24c73bbc9
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-08-23 02:55:17 +02:00
Harald Fernengel 57e750e620 De-inline QVariant(float)
All QVariant constructors are not inline, so change QVariant(float) as
well. This allows for refactoring of QVariant during lifetime of Qt 5
without breaking QVariant(float) case.

Change-Id: Icd1fc331a1ef8a2872be811aa7d1160406038f06
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-08-23 02:55:17 +02:00
Frederik Gladhorn d7e1426e1e Move Qt::CursorMoveStyle docs to the right file.
Change-Id: I26cc7336b33495a2649285cfeddeadec62e94d83
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-08-23 02:55:17 +02:00
Marc Mutz 6d56a21621 Logging: make qEmergencyOut() not allocate from the heap
Commit 6e6b74c0 introduced heap allocation in the form of
QString::fromLatin1().utf16() into qEmergencyOut(), a function
that's called in OOM situations and in cases where another
exception is still in flight.

Luckily, QString::fromLatin1().utf16() is just a funny way of
copying an array of chars into an array of wchar_ts, so we do
that manually now and use a static wchar_t buffer. While at it,
also throw text elision into the mix.

This commit also fixes the message passed to _CrtDbgReportW().
What should be displayed is the emergency_buf, not the format
string.

Also remove a similar allocation in qt_message_output().

Change-Id: I2c44a298fc0927bb992de4977a7e4a7b47b16b26
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-23 02:55:17 +02:00
Thiago Macieira a3e563c091 Simple optimisation in toLocal8Bit(): call codecForLocale once only
The function is only slow the first time we call it, but there's no
reason we can't do this simple optimisation anyway.

Change-Id: Icacbbeb340838b32f5278b76d1860ad22dc9f7b7
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-23 00:19:25 +02:00
Laszlo Agocs 12491f35bb Fix transformation in eglfs backingstore
While not visible with forced-fullscreen windows, the formula
used to set up positioning on the Y axis is wrong. (with the GL
coordinate system Y goes 1..-1 when moving top-to-bottom)

Taken from kms' version of the backingstore which had the formulas
corrected.

Change-Id: I460a4eec925e47b08453af4e093d719567af22ea
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-08-22 22:08:54 +02:00
Friedemann Kleint 38bd71e04d Remove deprecation from enumerations in QtGui.
Referencing them in a (deprecated) function declaration causes
a deprecation warning to be emitted each time the header is
included, which causes a massive amount of warnings for qevent.h.

It should be sufficient to deprecate them in the documentation
and to deprecate function using them.

Change-Id: I531b7c893e73428703cfb302615bff382abce54f
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-22 22:05:55 +02:00
Stephen Kelly 9f821f384b Optimize QAbstractItemModel::sibling a bit.
QModelIndex::sibling has a simliar optimization.

Change-Id: Ic0717d480ba0d46a4c0c88064bc9eda4c4ffe6f6
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-22 18:40:17 +02:00
Stephen Kelly 1839151992 Make keyboard search work in the current column, not only the first.
Task-number: QTBUG-26540
Change-Id: I1c365aeb013f5ddedd0589aa4c4844be759a3882
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-22 18:40:17 +02:00
Stephen Kelly 0c955b4976 Fix indexAbove and indexBelow to return indexes in the correct column.
They used to always return indexes in column 0.

Change-Id: I2cf4239e0a975b37548de00a1deb916fcd88b4c7
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-22 18:40:17 +02:00
Jens Bache-Wiig 3591c6ceda Clean up borders in cleanlooks
This aligns the dockwidget appearance in cleanlooks with
that we use for Gtk style. It should look a lot cleaner this
way as most of the borders were redundant.

Change-Id: Idf20a105f583ca8cdbba0bcb6f22b298d53cc40d
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
2012-08-22 18:40:17 +02:00
Geir Vattekar 05a3420381 Doc: Fix snippet bug in State Machine overview.
Task-number: QTBUG-24719
Change-Id: Ia0c802f275eaf009e42ffef4cc538f3b3d7561d0
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-22 09:08:02 +02:00
Samuel Rødal 015a5e0dca Fixed non-GL applications crashing when GLX/EGL initialization fails on xcb.
Change-Id: I5a08d6067272575aa56074aaebe308c3d49299bb
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-22 09:08:02 +02:00
Jeremy Katz a0c017d83f remove a '.' at the end of \sa that confuses qdoc
Change-Id: I74532ba206a7e869328541599d5f184f18c224f1
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-22 09:08:02 +02:00
Sergio Ahumada 75901712f0 Doc: Really minor typo fix
Task-number: QTBUG-26891
Change-Id: I9b726d8766337fbb001afcb9ecbc45f51b6e363f
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-22 09:08:02 +02:00
Berthold Krevert 8fb8011e6a Make Qt compile with -DQDND_DEBUG and fix debug messages
Change-Id: Idf34880179e27cdd48ea3365108d2c7bca07e596
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-22 09:08:02 +02:00
Morten Johan Sorvig 6c1670d8c2 Add hint for touch -> mouse event synthesizing
Commit 7808ec79 changes QApplication to synthesize
mouse events from (unhandled) touch events.

On Mac OS X this creates a conflict for two-finger
scroll swipes, which generates both touch events and
mouse wheel events: scrolling in QTextEdit will also
select the text.

Add a SynthesizeMouseFromTouchEvents platform style
hint that enables the event synthesising. Set to true
by default and false in Cocoa.

Change-Id: I1ffa5a141476aa38b81ce92a87eff676c7ec2276
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-08-22 07:01:17 +02:00
Mitch Curtis 09dd19df5c Do not consider sign in qIsNull.
The current implementation of qIsNull only returns true if the value is
positive zero. This behaviour is not useful for use cases like
QPointF::isNull, where QPointF(-0, -0).isNull() will return false.
There doesn't seem to be a reason why the function exhibits this
behaviour (-0.0 is not accounted for in the unit tests), and for the
case of QSizeF::scale it causes a bug: qIsNull is used to check for
division by 0.0 before it proceeds, which fails in the case of -0.0.

Task-number: QTBUG-7303
Change-Id: I767e5280bd26614e8e78ae62b274eb9bc4ade385
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-08-22 04:04:57 +02:00
Jens Bache-Wiig 7f469ef4cc Remove icons from buttons with Cleanlooks
The icon buttons in cleanlooks were modeled after an early version of
the Gtk 2.0 Clearlooks theme. At the time, GNOME was using
icons on all buttons. For the past couple of years, GNOME has dropped
icons on buttons by default and as this is the common behavior on
other platforms as well, I think it is time to remove them.

The button size hack was also removed due to previously emulating
a GNOME behavior. The end result at the moment is only that it makes
the button height inconsistent with other widgets.

Change-Id: I22fe8c0b3a799a807cfff74a81cebf50e8ec33d3
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-08-21 22:25:31 +02:00
Martin Smith 5f4d793d81 doc: Replaced FakeNode with DocNode
The name FakeNode was a bad choice. It was used
to represent something that wasn't derived from
a C++ declaration in a .h file. Any generic page
or QML item or any special kind of qdoc construct
was stored in a FakeNode. The name was unfortunate
because the constructs stored in FakeNodes were
just as real as C++ constructs.

So FakeNode has been renamed to DocNode, which
just refers to a documentation node. The node
type Fake has been replaced with node type
Document.

Change-Id: Ida9de8288b7b8915bf9273fd890ca84aaf05e182
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-21 16:15:21 +02:00
Jason Barron 6276acb59a Fix docs for QRawFont.
Use correct function name for 'swap' and replace QGlyphs -> QGlyphRun.

Change-Id: I4997a59ef643c688e8084a2013208fb760a2784a
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-08-21 16:13:38 +02:00
Friedemann Kleint 82860b133c Propagate initial size constraints to QWidgetWindow.
Size constraints set on a widget before the creation of
the QWidgetWindow were lost (for example, Qt Creator's
preference page).

Task-number: QTBUG-26745
Change-Id: I7c2f5aed9c8817795603e5ad3c24418d66627bab
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: hjk <qthjk@ovi.com>
2012-08-21 16:13:38 +02:00
Thiago Macieira 8133af2503 Try to work around GCC 4.6's noexcept bugs, again
Commit 7315296e9c blacklisted GCC 4.6.0
and 4.6.1 on the grounds that the bug regarding noexcept was fixed in
4.6.2. However, we have evidence of the issue remaining in 4.6.3, so it
looks like it was not the issue that the GCC team fixed.

For that reason, declare noexcept support in GCC 4.6 fatally broken and
enable it only for 4.7. It has been working fine for a month for me on
4.7.1.

Change-Id: Ic5a542235867f20657db12e0e809b83522dc7d23
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-08-21 13:41:01 +02:00
Jiang Jiang bc7cf82dc1 Replace deprecated ATS calls with CTFontManager calls in 10.8
Change-Id: I81c0361059319575e55621123d40b7c6f3c6b699
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-08-21 13:41:01 +02:00
Jiang Jiang a59906e0f3 Fix a bunch of Mac/clang specific warnings
Change-Id: I0ecc67d58fb7e727a88a5f546eeca01ff7554502
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-08-21 13:41:01 +02:00
Mitch Curtis 46bef9f29f Fix typo in QAbstractNetworkCache documentation.
"used be" => "used by"

Change-Id: Ibde738facab357d21604779f8b2145d32815ed66
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-08-21 13:41:01 +02:00
Shawn Rutledge ed4389b055 Minor documentation fixes in item views.
Change-Id: I986662ba48840e0195f0cfd4264e4d5d8b186c51
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-08-21 13:41:01 +02:00
Shawn Rutledge ef98762dc6 Whitespace fixes
Change-Id: Ibfb48076ad62804344db6e9e97ac90fdcf82dc04
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-08-21 11:05:20 +02:00
Martin Smith 083e4c7e51 doc: Fixed qdoc errors
These classes will not be public until Qt 5.1.
This change marks a few things internal, so they
don't cause qdoc errors in Qt 5.0. It also adds
a few qdoc comments for future use in Qt 5.1.

Change-Id: If90692b97653223d8a986f2ae1fff49c20cd444b
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-08-21 11:05:20 +02:00
Shawn Rutledge 5a07e87fd2 Reuse the same QAbstractTableModel implementation for 4 snippets
They were really the same anyway.  This makes the source distro a bit
more compact and eliminates some qdoc errors of the form
../doc/snippets/reading-selections/model.cpp:51: Overrides a previous doc
../doc/snippets/itemselection/model.cpp:51: (The previous doc is here)

Change-Id: I7956f457422e9078c32de65cd421685f589c8a6c
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@nokia.com>
2012-08-21 11:05:20 +02:00
Mitch Curtis 3a7b6a74a8 Disregard milliseconds in QTime::secsTo().
"The documentation states that "secsTo() does not take into account any
milliseconds", however, this is not the case. Given times 12:30:01.500
and 12:30:02.400 secsTo returns 0. If milliseconds are not taken into
account, I would expect this to return 1 (i.e. interprets the times as
12:30:01 and 12:30:02 thus truncating the milliseconds)."

Note that tests were also written for QDateTime::secsTo(), as it uses
QTime::secsTo internally. This addresses Javier's issue in the
comments of QTBUG-9304.

Task-number: QTBUG-9304
Change-Id: I9efe0c8f710db859c1d086d67ba3e5b349a56c4e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-21 11:05:20 +02:00
Mitch Curtis 718a2251be Serialise QDateTime as UTC and timeSpec() instead of private spec.
QDateTime currently serialises its private Spec enum. If a user was to
deserialise the individual components of a QDateTime separately, the
resulting timeSpec may be invalid when cast to the Qt::TimeSpec enum.

E.g.:

QDateTime dateTime(QDate(2012, 8, 14), QTime(8, 0, 0), Qt::UTC);
// ... serialise
// ... deserialise date, time, spec separately.
// spec == 2, the value of QDateTimePrivate::UTC.
// spec != UTC, will be set to LocalUnknown.
QDateTime deserialised(date, time, spec);

This patch serialises QDateTime objects in UTC and the value of
timeSpec() as opposed to QDateTimePrivate's spec. This changes the
serialisation behaviour of QDateTime for version 13 of QDataStream.

Task-number: QTBUG-4057
Change-Id: If650e7960dca7b6ab44b8233410a6369c41df73a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-21 11:05:20 +02:00
Andreas Holzammer 17c89d157a make it possible to pass configure zlib lib name
Change-Id: I82fde11436261dab51393b35dfbf2a753df58ec9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-21 11:05:20 +02:00
Martin Smith 194b62fb38 doc: Added \relates command to some function qdoc comments
When a documented function is global, it must be related
to a namespace or class, or its documentation won't be
included anywhere.

When a documented function is a class member, the function
signature in the \fn command must include the class name
qualifier, e.g. QImage::isValid(), not just isValid()

Change-Id: I53e2230fa9468f94d51aec8cc76781d7ab755a13
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-21 11:05:20 +02:00
Thiago Macieira adc4a8e42b Add AVX support for the JPEG handler
Apparently I had forgotten about this previously. Use the AVX conversion
function if the compiler could generate AVX code.

Note: the functions need to be declared outside of the function block
so namespace scoping works properly with MSVC. For functions declared
inside, it expects them to be in the global namespace.

Change-Id: I7b7248dbfce3cc7c580dee920407c205049cb746
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-08-21 11:05:20 +02:00
Jan-Arve Saether 6e8c719e3b Remove reference to 'How to Learn Qt' from qtwidgets module.
Change-Id: Ib6bce643332d34450e64e191ca7beeec3bf12c9c
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-08-21 11:05:20 +02:00
Titta Heikkala 929e934969 Remove warning about non existing paint device engine
The QWindowsVistaStyle::drawPrimitive() method was trying to draw the
pixmap for an item in an item view even if the section width was zero
or less then zero. This resulted "QPainter::begin: Paint device
returned engine == 0, type: 2" error.
It's now checked that the width and the height of the section is
greater than zero before creating the painter.

Task-number: QTBUG-26047
Change-Id: I36dd2792fd505be773951e5ac36b0e3362ec2292
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-21 08:58:40 +02:00
Shawn Rutledge 97150f169f QWindow documentation fixes; make pos, size and geometry properties
Change-Id: I745bbe5d0baa68fc7ee49d6fe76d3678f3212b3d
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@nokia.com>
2012-08-21 06:51:00 +02:00
Shawn Rutledge c0b3f90de4 Fixed qdoc complaints for qsurface and qsurfaceformat.
Also QTBUG-25231

Change-Id: I54e1f2d4ca9a52590b28e4d5ea04a8ae4a48d318
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-08-21 06:50:26 +02:00
Shawn Rutledge 24b24cc8ac QTouchDevice documentation
Change-Id: I33c39522c92ef1abd5572b757122f6467702b1e6
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@nokia.com>
2012-08-21 06:49:06 +02:00
Jeremy Katz e1d06080f8 fix some QTest documentation
* Use \b instead of \bold
* widnow -> window typo
* QTest::touchEvent's second parameter is QTouchDevice *, not
  QTouchEvent::DeviceType, and autoCommit defaults to true
* QSignalSpy::wait() isn't const

Change-Id: I75a91c1cd98b1c582cd654b2b72ad61e5c0e31d2
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-08-21 06:48:46 +02:00
Thiago Macieira f8704a3e95 Cocoa: use filterNativeEvent instead of the deprecated filterEvent
Change-Id: I76259d1a0d978fb2f7fb60cd0d05990365691b7e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-08-20 22:48:53 +02:00
Thiago Macieira ce9b010ec6 Fix decoding of QByteArray in the deprecated "encoded" setters in QUrl
The asymmetry is intentional: the getters can use toLatin1() because the
called functions, with a QUrl::FullyEncoded parameter, return ASCII
only. This gives a small performance improvement over the need to run
the UTF-8 encoder.

However, the data passed to setters could contain non-ASCII binary data,
in addition to the percent-encoded data. We can't use fromUtf8 because
it's binary and we can't use toPercentEncoded because it already encoded.

Change-Id: I5ecdb49be5af51ac86fd9764eb3a6aa96385f512
Reviewed-by: David Faure <faure@kde.org>
2012-08-20 21:59:32 +02:00
Thiago Macieira 60818231d8 tst_qurlinternal: use qurl_p.h instead of declaring the functions
Just in case someone (like me) changes the function signatures or adds
new functions.

Change-Id: I1025fea012d95ffe89acaf799aa58fd2b0babc80
Reviewed-by: David Faure <faure@kde.org>
2012-08-20 21:59:28 +02:00
Thiago Macieira 373845dfd8 Add Q_DECL_NOTHROW to some qHash functions
The hashing functions for QDateTime and QHostAddress did not get the
noexcept keyword because they might allocate memory. QDateTime doesn't
do it now, but it could in the future. QHostAddress does allocate
memory today.

Change-Id: Ia5f80942944bfc2b8c405306c467bfd88ef0e48c
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-20 21:59:21 +02:00
J-P Nurmi 6bb0f2ae46 QStyle docs: fix the location of two paintsystem related images
The following images were misplaced into gui with the other painsystem
related images:
- ../styles/qstyle.cpp:80: Missing image: paintsystem-stylepainter.png
- ../styles/qstyle.cpp:80: Missing image: paintsystem-icon.png

Change-Id: I5a46db04d00b779a6028cda89e436feda75efef7
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-08-20 21:11:35 +02:00
J-P Nurmi 01216abf92 Moved a bunch of widget images from qtdoc to qtwidgets
Change-Id: Id76e95f7bf7ccbe1716ef4172d36f337780e19f7
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-08-20 21:11:27 +02:00
J-P Nurmi 58d3156e13 QFontComboBox: fix qdoc warning
Remove link to self:
qfontcombobox.cpp:413: Can't create link to 'currentFontChanged()'

Change-Id: I6eba45ba1d68c6a2c9201fda8c04b47fc711b562
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-08-20 21:11:16 +02:00
J-P Nurmi ea77f41e5a QTextEdit docs: fix qdoc warnings
qdoc insists picking Q_PROPERTY(T document) instead of the individually
documented getter and setter

Change-Id: I6f4981db205c5726d70cef4d85b7dfffe2b1fe31
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-08-20 21:10:54 +02:00
Stephen Kelly eb0e960e74 Fix the doc errors in itemmodels and itemviews.
Other errors remain, but they appear to be due to missing links
to QtCore documentation (a generic error not specific to itemviews).

Change-Id: I7b83380c3754c26d3d42be9ef0c0721ce3127562
Reviewed-by: Shawn Rutledge <shawn.rutledge@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-20 21:10:02 +02:00
Stephen Kelly fe0a6e57a0 Remove QProxyModel from qtbase.
A copy is placed in uihelpers for anyone who might be using it.

Change-Id: I175f7bc5dcbf25a910d28bfd8985579866392938
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-20 21:10:01 +02:00
Thiago Macieira 7315296e9c Disable C++11 noexcept support in GCC 4.6.0 and 4.6.1
See report: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50309

Change-Id: I5ab3ab1dea42b03ea22dbfbe5f7039c537dabd33
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-08-20 16:58:49 +02:00
Marc Mutz 31788fc981 QAtomic: make ctors constexpr, if possible
This requires using the same chain of conditions that QBasicAtomic*
uses in order to provide constructors, so we're using the newly-added
macro QT_BASIC_ATOMIC_HAS_CONSTRUCTORS to check.

Even though QAtomic<> is a template, we can't just use Q_DECL_CONSTEXPR
since the body of the constructors needs to change, too.

Change-Id: I462a80ed175040f7709c30d07d34036c6c5507d8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-20 16:58:36 +02:00
Marc Mutz 21072c85b6 QBasicAtomic: add QT_BASIC_ATOMIC_HAS_CONSTRUCTORS macro
This macro is defined when the QBasicAtomic* types have constructors.
It will be used to simplify maintenance of QBasicAtomic subclasses,
as well as classes that aggregate Q(Basic)Atomics and wish to be
literal types if possible.

Change-Id: I7ab181c58a13ec2195449bbae5b3476b9017a8f2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-20 16:58:32 +02:00
Janne Anttila 3ef95347fe Fix processor detection for MSVC ARM compiler (WEC7).
Visual Studio compiler defines _M_ARM preprocessor variable when
compiling for ARM and the value of preprocessor variable indicates the
supported instruction set.

For more information see:
http://msdn.microsoft.com/en-us/library/gg155713.aspx

Change-Id: I54137257b83f64fdf03bf7df9995e08d16dff4df
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-20 16:58:23 +02:00
Thiago Macieira eda5d42ab9 Add missing #include <qmetatype.h>
There's a Q_DECLARE_METATYPE at the end of this file.

Change-Id: Ib63aa4397ccba8740d46cf1ee7af712f75d05765
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-08-20 16:58:01 +02:00
Shawn Rutledge 42d712b4ab Misc documentation fixes triggered by qdoc errors/warnings
Change-Id: I6ca3b138114fe957a09e8ec2f22273865635fc8b
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-08-20 16:57:48 +02:00
Yuchen Deng e6de6c153e Fix C++11 mode compilation with MinGW-w64 4.7.1
Change-Id: I8b840ece7341877fb6f5d6a85d8714517034e319
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-20 16:57:36 +02:00
Jan-Arve Saether 377171ca0c Remove references to "How to Learn Qt", since that is in qtdoc repo.
Don't use \n in qdoc comments.

Change-Id: I875e37f6a13ab0b7f66da985a2cf157017934bbd
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-08-20 16:48:29 +02:00
Jens Bache-Wiig 85b4accd82 Fix multiple enumeration warnings when generating docs
Most of these caused by cleaning up enums and not removing
omitted values. Also removed some leftovers from qt3support.

Change-Id: I75efcc9fadc6a430492bab36e86d7b345d3a6a17
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
2012-08-20 16:42:58 +02:00
Gabriel de Dietrich 3a888a7182 Remove dialogs doc related warnings
Change-Id: I79a771d18913237d894ca1a5aeaa07586106c645
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
2012-08-20 16:42:06 +02:00
Robin Burchell b9ef4a9c30 Speed up sorting of dir entries when sorted by date
QDateTime will attempt to convert unknown types of date to UTC time, which isn't
exactly a fast process. As we don't care about local timezones in the process of
sorting (as this is purely for ordering, not display to the end user), we can
force the dates to use UTC time, avoiding the unnecessary local timezone lookup.

This also adds a benchmark covering this case.

Benchmark results, Qt 5:
 - before: 11, 489ms
 - after: 273ms

Qt 4.8:
 - before: 20, 848ms
 - after: 278ms

Change-Id: I87fa6260e820b5b172d3306ff395dafe767c33ff
Reported-by: Thomas Perl <m@thp.io>
Reviewed-by: Alberto Mardegan <mardy@users.sourceforge.net>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-20 16:02:03 +02:00
Geir Vattekar f3fea329fd Doc: Work on QVariant's equality operator.
Task-number: QTBUG-26018
Change-Id: I6627456d166bc0a036cadeee7bd51aa8e576a818
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-08-20 15:56:58 +02:00
Thomas Hartmann a03e815b6c Enable QComboBox animation on Windows and fixing related bugs
QWidget:grab() has a default parameter (invalid rect).
QRect() is the null rect and widget->grab(QRect())
returns an empty pixmap.

QWidget:grab() has to be free of side effects and should not
affect any dirty flags.

Change-Id: I8ff558343c366769cd6c587e77f862668e8054f2
Task-number: QTBUG-25436
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-08-20 15:52:51 +02:00
Jan-Arve Saether dd121752e9 Replace \QD with the literal 'Qt Designer' to avoid warnings.
Change-Id: Ia28ab42531217df75b626638b1953c393d2e445e
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-08-20 15:52:15 +02:00
Andreas Holzammer f2fabf77f9 Fix freetype font rendering for Windows CE
Windows CE does not have support for GetGlyphOutline.
So addGlyphToPath will not work. QML uses it for their
distance field rendering. One option to bypass this issue
is to use freetype as rendering backend.

Change-Id: I965254344945cbdad771a5d505fb61c1cc2087df
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-20 12:25:03 +02:00
Gabriel de Dietrich 806dda08d6 Moving .qdoc files under examples/widgets/doc
Updated those .qdoc files to refer to the new relative examples
emplacement. Images and snippets to be moved later.

Also grouped all widgets related examples under widgets.

Change-Id: Ib29696e2d8948524537f53e8dda88f9ee26a597f
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
2012-08-20 12:20:55 +02:00
Aaron McCarthy 9f942014e3 Fix documented QMetaType::UserType value.
QMetaType::UserType was changed from 256 to 1024, this was not reflected
in the code parsed by qdoc.

Change-Id: I0a02e8b020d495fbf2508d84b690adae1b677125
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-08-20 12:02:45 +02:00
Sean Harmer fc41ee4c92 OpenGL: Use official glext.h and gl2ext.h headers
The Khronos group makes the glext.h (Desktop OpenGL) and gl2ext.h
(OpenGL ES2) headers officially available nowadays. Most (all?)
Linux systems ship this by default. On Windows platforms the
glext.h file needs to be downloaded from

http://www.opengl.org/registry/api/glext.h

and placed alongside the system OpenGL header.

Making use of the official header reduces the maintenance
overhead for OpenGL support in Qt by removing the need to copy
and paste definitions into the Qt sources.

As the Khronos-provided headers are standardised and backwards and
forwards compatible we can utilise these for all platforms rather
than just for Windows. This means that all definitions required
by Qt will be present even if the system ships out-dated
equivalents.

Mac OS X needs special handling in that we should always use the
system-provided headers there. This is because Apple controls the
OpenGL driver and the headers that go along with it. As such there
is no possibility that the driver exposes additional functionality
compared with the system-provided OpenGL headers. Apple has also
decided to make different decisions about some OpenGL typedefs
compared to other implementations. For example, Apple typdefs
GLhandleARB to void* whereas other platforms use unsigned int.

The alternative, which is to use the system provided glext.h (or
gl2ext.h) header means that Qt code would need to check for the
availability of such definitions wherever it is not guaranteed
to be provided by core OpenGL/ES just to compile.

The proposed approach means that Qt can compile regardless of
the system's OpenGL extension support. We just need to be
rigourous in runtime checking of support for extensions but
that is already a requirement (and is missing in a few places,
see TODO's added in this commit).

The official Khronos headers are added to Qt as

qopenglext.h - Desktop OpenGL
qopengles2ext.h - OpenGL ES2

They need to be public but not part of QtGui module include, hence
the headers have been modified by adding

 #if 0
 #pragma qt_no_master_include
 #endif

to them.

This has been tested on:

Gentoo Linux with GCC 4.6.3
Windows 7 with MSVC 2010
Mac OSX 10.8 with Apple clang 4.0 (based on LLVM 3.1svn)
QNX with qcc (based on GCC 4.4)

A small change is needed to QtDeclarative when building for OpenGL
ES 2 after applying this commit. See
https://codereview.qt-project.org/#change,31794

Change-Id: I4b3d2b1680baf4c78be9a87b4d8de076d23e8f82
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-20 11:58:16 +02:00
Stephen Kelly 799ceebad8 Take account of hidden items in QListView when using scrollTo.
Task-number: QTBUG-21804
Change-Id: I475166f3f60b1278089baa255ace4e18baeb568e
Reviewed-by: Jani Honkonen <jani.honkonen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-20 11:24:55 +02:00
Jiang Jiang 79f660d374 Replace deprecated ColorSync Manager use with updated CG API
ColorSync Manager is deprecated in 10.6 and new CG API for
copying color space is available since 10.5.

Change-Id: I730431dcd28ca0ff6cec5d1eeff99fff9f3d0a29
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-08-20 11:10:49 +02:00
Miikka Heikkinen 333f641622 Fix in-process QAxServers inside modal windows.
The main window of in-process QAxServers doesn't have QWindow parent,
but it does have native parent that is part of the native window tree
of the application. The lack of Qt parent makes embedded controls look
like toplevel windows, which causes problems e.g. with modality.

Introduced new optional method QPlatformWindow::isEmbedded() to
detect if a window is an embedded window and utilized it in proper
places during modality handling.

Task-number: QTBUG-26871
Change-Id: Iac9a51dae06b8fc15410de7838857e203e4275b8
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-08-20 10:48:09 +02:00
Andy Shaw 9ea9ec1cbb Ensure that all the children get the new stylesheet set on a parent
When a stylesheet was set on a parent widget then in some cases it would
not get applied to all the child widgets.  This was because the order of
the children list may have been modified while it was being set on
children.  By making a copy of the list we prevent this from being a
problem.

Task-number: QTBUG-26321

Change-Id: Iea6bf72c69a0c39746f7ef5e7893dda5a93ed7e5
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-20 10:28:51 +02:00
Janne Anttila 85bd95cc31 Fix drag curor visibility on Windows.
QDrag has an API to set both pixmap (QDrag::setPixmap) and drag cursor
(QDrag::setDragCursor): http://qt-project.org/doc/qt-5.0/qdrag.html.

We cannot return from createCursors if there is no pixmap, but we need
to go through also dragCursor and use those if one is set.

Change-Id: If2b2139ad193a4ab5b25c65400c595dc7c33de2c
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-20 10:26:28 +02:00
Lars Knoll 1b54d1e4d5 Use QThread instead of QPushButton as an example in the docs
This keeps links local and inside the module.

Change-Id: I5e267197c6356a2c4e231c1941ed4be33b96a16e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-20 10:23:34 +02:00
Lars Knoll 8a16954661 Fix more qdoc errors
Change-Id: Ieed340068327f37ea0f549d24ea49235994118f4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-20 10:23:27 +02:00
Lars Knoll b534af3680 Fix qdoc errors in qcoreevent.
Change-Id: Ic6cb963a7df643819dfdd93c7300d054e11cd0d4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-20 10:22:46 +02:00
Lars Knoll 1b5d6f1646 Fix qdoc errors in the QAbstractEventDispatcher documentation.
Change-Id: I7de48286f05b14c831f1290e009a25630504a76e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-20 10:22:42 +02:00
Lars Knoll 72e2fc6bb6 Fix some qdoc errors in the QJson* classes
Change-Id: If475655445afdba307508c5a3863c4bc8d87ebe6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-20 10:22:38 +02:00
Lars Knoll 0e59c75e7c Fix snippet bug in State Machine Overview
Cherry-pick of b0facd481a2fc119d87c85481d97357d814a5fd2
from the qtdoc repository.

Task-number: QTBUG-25314
Change-Id: I2166db46399ea6da8cadf02a7f65738c0c252142
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-20 10:22:34 +02:00
Lars Knoll b4adefd572 Fix a couple of qdoc errors.
Change-Id: I0770fc61e265face4fa061be9e110814effee181
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-20 10:22:25 +02:00
Stephen Kelly 2fe35bf9a0 Refactor the automatic metatype templates into preprocessor lists.
This will allow re-use in moc.

Change-Id: I99c5f8f0756fccf0fb2bb845c29255c14d4d703e
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-08-20 10:11:03 +02:00
Jani Honkonen d2bba5e553 Fix a QListViewItem width when spacing is set
The listitem width was calculated incorrectly because spacing was
not considered. This fixes the second part of the reported bug where
spacing is set. Added some tests to catch the issue relating to the
reported bug.

Also added a test to check spacing in general.

Task-number: QTBUG-21804
Change-Id: Icc6326bce914264d882a60a9fc0ebe7d2a08dbf6
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-19 08:52:09 +02:00
Jani Honkonen d4385e48b8 Fix QListWidget scrolling with keys when there are hidden items
If the selected item is scrolled with keyboard keys the selected item
will go outside the visible area. The scrolling did not take hidden
items into account when calculating the amount to be scrolled.

Task-number: QTBUG-21804
Change-Id: I63da0248cec43be464898f9dc8167e739f00ccd0
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-19 08:51:57 +02:00
Geir Vattekar f20472efa7 Doc: Small addition to QAbstractTextDocumentLayout::registerHandler()
Task-number: QTBUG-23345
Change-Id: I6f768472aaef95f5dd88cf896ef3e635d223b635
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@nokia.com>
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-08-18 21:08:33 +02:00
Martin Smith 6f09e100c9 doc: Fixed qdoc errors in SSL
Fixed some bad camel case, marked some parameters with \a,
and changed a \enum to a \typedef. Removed some obasolete
text.

Change-Id: I1e69dd9f3b74129230770addc80fe1c125faf268
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-08-18 21:08:33 +02:00
Thiago Macieira c9bfd34fa0 Enable QAtomicInteger for char16_t and char32_t
Those are regular, integer types, of 16- and 32-bit width,
respectively. C++11's std::atomic supports them, so we should too.

C++11 also supports wchar_t, but since that type's size can change, I
don't feel like support for it in Qt is pressing.

Change-Id: I945b641c91a8a98be82715f878c382dee58ac98b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-18 18:35:50 +02:00
Thiago Macieira 2b00f97ab0 Add Q_DECL_CONSTEXPR to the isXXX functions in the new atomics.
This allows one to write code that depends on these values at
compile-time.

Change-Id: I7d78524ed9c70d4141360496d1d764dcbfa92e62
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-18 18:35:36 +02:00
Marc Mutz 624911e481 Fix -Wclobbered warnings
GCC warns:

  warning: argument 'x' might be clobbered by 'longjmp' or 'vfork' [-Wclobbered]

Apparently, the real fix would be annotating the functions correctly
with noreturn and returns_twice attributes, but there's also workarounds
for these, at least in the png case, so adding volatile was the easier
way out here.

Needed a cast to lose the volatile again, passing the argument to qMin().

Change-Id: Id820cf9b65752359f3b8f268172ba71bc9a76784
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-18 13:59:27 +02:00
J-P Nurmi 468c22f673 Register QTextDocument* as a meta type to fix QTextEdit::document type
Change-Id: I666845049749bfa6f88b764eefaefb0dcf05cb3f
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-18 10:58:37 +02:00
Thiago Macieira 129c9842ce Modernise, update and fix errors in the QUrl documentation
Update the documentation of the deprecated API to match the current
behaviour. Notably, the current behaviour is to check the correctness of
the percent-encoding even in the "encoded" functions. Also, the use of
QUrlQuery makes the matching work on canonical forms, so "%73earch" does
match "search".

Elsewhere, make sure we do not refer to the deprecated API in the
documentation of non-deprecated functions.

Change-Id: If3505ac3c6121177ad6ab18199e143775bef44b9
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-18 10:55:47 +02:00
Thiago Macieira bc7e940f6b Bring back the documentation on QUrl deprecated methods
The deprecated query methods were removed along with their documentation
in commit 1c2144c39f, so restore it from
before that commit.

The rest of the encoded methods were removed along with their
documentation in commit 1372d60bde.
Restore their documentation from the previous commit to that one.

All the documentation from this commit is brought back unchanged, except
for the addition of \deprecated.

Change-Id: I1851b0dc922c681e1623359b35dfd0f505d258d2
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-18 10:55:47 +02:00
Lars Knoll 1bf5865a41 Fix a couple of qdoc errors
Change-Id: I79f689e08ed4a496052529af38fca72c3d4e04cb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-18 10:55:47 +02:00
aavit 94ac17c2cc Clean up QScreen::grabWindow()
Handle 0 WId parameter as meaning "desktop window"/whole screen.
Also, re-add the default values for the grab area, both for
convenience and compatibility with QPixmap::grabWindow() in Qt4.
Update the screenshot example so it doesn't comlain about usage of
deprecated QPixmap::grabWindow().

Change-Id: I2ad229113ddb8ded0388f2ebc0e8c703c6657f1f
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-08-18 10:55:47 +02:00
Stephen Kelly 4d9d88af6f Remove QWidgetStar.
This allows us to remove the odd hacks to get the static metaobject
for the QWidget* metatype.

The QWidget* is still an automatic metatype thanks to the QObject
partial template specialization. It is registered as a metatype
at runtime automatically in qwidgetsvariant.cpp.

Change-Id: Ie01b69eadf2cbe87af1a86c3284550f60dcf9e94
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-18 10:55:47 +02:00
Lars Knoll d9b1c7aa83 Fix most qdoc errors for QMap
Change-Id: I8cac3b63cab32c655f722aca467489730c3f0a42
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-18 08:34:53 +02:00
Lars Knoll 5b24e614a4 Move the statemachine documentation into qtcore
Moved the documentation from qtdoc to here, so the
statemachine class docs can link to it.

Change-Id: I49a10cc7c418d415c64ea538376eb9bd7b031c27
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-18 08:34:53 +02:00
Lars Knoll cbaee92846 Move the animation overview doc into QtCore
Moved here from the qtdoc module.

Change-Id: Ib263848e0637204ec3b0cba973076ca79a25a953
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-18 08:34:53 +02:00
Lars Knoll b963bd4e59 Fix qdoc erros in qfile and related classes
Change-Id: I56b66e6eeb06c84e1157a701a814aebb1ddf4845
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-18 08:34:53 +02:00
Thiago Macieira 8ab5679327 Mark simple static methods in QThread as Q_DECL_NOTHROW
These methods aren't often used, but currentThreadId() gets used in the
recursive mutex code to store the identity of the thread with multiple
locks.

Change-Id: I031cf3893aa6e7fd7a53733fc1088d295bdb9079
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-18 08:34:53 +02:00
Stephen Kelly 2ef3ac72fc Emit layoutChange signals when changing QPersistentModelIndexes.
This is necessary whenever QPersistentModelIndexes are changed. Omitting
it means that views are not able to react to the change, such as QTreeView
clearing its (manually held) QModelIndex cache, and the QItemSelectionModel
clearing the item from its storage.

It is necessary to change a QSortFilterProxyModel test which assumed setItem
does not have any such effect. That test is ported to setData instead.

Task-number: QTBUG-18539
Change-Id: Id7a602f18b9773ba4d11019418de886860d26d3e
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-18 08:34:53 +02:00
J-P Nurmi 72604f8eb9 QAbstractSlider: fix qdoc warnings
Change-Id: I996d45513a0239d0ed11669ce6e238955ec8a31b
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-08-18 06:17:47 +02:00
J-P Nurmi 73d8a13c96 QSlider: fix qdoc warnings
Removed some Qt3 support leftovers and docs for qt_qsliderStyleOption()
that qdoc wasn't able to tie to anything.

Change-Id: I49bb886b639fe11e4923ef8486e0b9f8a966b10c
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-08-18 06:17:45 +02:00
J-P Nurmi 28288b531c QLCDNumber docs: cleanup Qt3 support leftovers
Change-Id: I22378c5334ac830e94060f20568e200f0ee49280
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-08-18 06:17:37 +02:00
Frederik Gladhorn a5ab0a472a Remove docs for removed functions.
Change-Id: I75ec0137c56581653ee0dd6fd84f10f0a6c3429c
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
2012-08-18 06:17:07 +02:00
Frederik Gladhorn 3cc7eab39f Reference proper example.
Change-Id: Icda7e21f7e1eee8d4a6939ce3a50d1874ecda1e6
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
2012-08-18 06:15:53 +02:00
Frederik Gladhorn 575f6f5325 Remove outdated docs.
Change-Id: I6eaffdad3b800b7d90478cb7c4044ec27e659ec9
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
2012-08-18 06:15:34 +02:00
Marc Mutz d297989ad2 QMessageLogger: mark noDebug() as nothrow
Change-Id: Ib01ad955844e8da376c687876141ad8f21776613
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-18 06:15:18 +02:00
Marc Mutz 3d3c5dc44e QMessageLogger: make member functions const
Just because we can :)

It looks a bit weird that QMessageLogger has a constexpr
constructor, but no const methods...

Change-Id: I794dd2b3326c45be17b29decb47c9cac4778d397
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-18 06:15:14 +02:00
J-P Nurmi 24bc6342ca Moved guibooks.qdoc from qtdoc to qtwidgets
Change-Id: I69e07b7a343c99ebafc7bf4587041b6f9ddbd37e
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-08-18 03:34:50 +02:00
Jan-Arve Saether 126b0ccf67 Exclude snippets
Change-Id: Ia31d7923e9a121eb7c16a1fe059dc8c9a5b61bd1
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-17 22:45:27 +02:00
Sergio Ahumada 64d22311d8 Doc: Fix spelling errors
Change-Id: Ibae8d10183f6b15a16b1499daa2df8802dbb014e
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-08-17 22:45:27 +02:00
J-P Nurmi f3caf6d8b1 QTabWidget docs: cleanup Qt3 support left overs
Change-Id: If73848b0b8dc424b3429f845aff383d088a6a367
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-08-17 19:41:48 +02:00
J-P Nurmi f0c883defa QTabBar docs: cleanup Qt3 support left overs
Change-Id: If2c9245ad454b1f34c44f1d0a0c61700cea53cf3
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-08-17 19:41:39 +02:00
J-P Nurmi e8a59c1770 QDate/TimeEdit: fix qdoc warnings
Warnings caused by c3e1ab:
../widgets/qdatetimeedit.h:208: No documentation for 'QTimeEdit::time'
../widgets/qdatetimeedit.h:220: No documentation for 'QDateEdit::date'

Both 'date' and 'time' are declared and documented in QDateTimeEdit.

Change-Id: I287b5f20568e4055e6922eb1a70aeedf220de823
Reviewed-by: Shawn Rutledge <shawn.rutledge@nokia.com>
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-08-17 19:41:28 +02:00
J-P Nurmi c199297b65 QMenuBar: fix qdoc warnings
Removed Qt3 support left overs, marked QMenuBar::platformMenuBar()
as internal, and removed the reference to
qt_mac_set_native_menubar() that was removed in 2922f8.

Change-Id: Ia6af9bd399c88fafab26789278b4c82312d6d9c7
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-08-17 19:41:09 +02:00
J-P Nurmi a7f6853923 QScrollBar: fix qdoc warnings
Removed some Qt3 support leftovers

Change-Id: Idd8e05fd96f5eb0816f79e6684293c9477d4d52f
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-08-17 19:40:38 +02:00
J-P Nurmi e7c98254d0 QFrame docs: cleanup Qt3 support leftovers
Change-Id: I8c51f0a379c03e4bdd9dbdccc6cdc98a7013c40e
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-08-17 19:32:32 +02:00
Jan-Arve Saether 526da72e99 Fix a bug in qdocs handling of excludedirs
The bug was there because the way qdoc tries to exclude the directories
given in the "excludedirs" variable:
It did a simple string comparision on the candidate path (to include)
with every string in the "excludedirs" variable.

However, this did not work for all cases, since the paths are not
canonicalized.
For instance, the problem I faced was that the following qdocconf
fragment: (config file located in doc/qtwidgets.qdocconf)
sourcedirs  += ..
excludedirs += snippets

Since qdoc would recursively parse all subfolders of sourcedirs, it
would at one point visit the snippets folder, but it would have the
relative path "../doc/snippets", which did not match with "snippets",
causing snippets to not be excluded.

In addition, it seems that qdoc tries hard not to use absolute paths
(maybe because of more human-friendly error messages). I therefore
chose to canonicalize the relative paths.

As a side-effect this also give a better output from qdoc, as
../doc/foo.qdoc:42: Missing link
will become
foo.qdoc:42: Missing link

Change-Id: If9c25fa569abd03542bd12675acd44d8f4e0282c
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-08-17 19:31:50 +02:00
Jan-Arve Saether 8160ca6dfd Clean up docs for graphicsview.
* doc/snippets/graphicsview.cpp is moved from the qtdoc repo
* doc/images/graphicsview-parentchild.png is taken from 4.8

There are still some problems with references to examples, but
Casper meant that Jerome was working on that, so I'll leave
those fixes out.

Change-Id: Ieac8e6564344851fe8e77f2b346b152e57f8485c
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-17 19:30:38 +02:00
J-P Nurmi 45982e6c57 QComboBox docs: cleanup Qt3 support leftovers
Change-Id: I59352edee99321c6119aee9c0f5e428a5371c997
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-08-17 19:29:35 +02:00
Marc Mutz 727039c8e8 QThreadPool: fix race on 'queue' in stealRunnable()
The code under mutex protection already implicitly handles the case where
queue.empty(), so just removing the pre-lock check suffices.

Change-Id: I01467aff62e61bb4efd16359dd64546ff51c6bad
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-17 16:28:01 +02:00
Marc Mutz d0ae7bef48 QThreadPool: use swap() when making a copy of allThreads
This is the C++98 version of std::move().

Change-Id: Icb73da16bb05bf07114a38e4fd48732b612e2d51
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-17 16:27:56 +02:00
Marc Mutz e2e1a08140 QThreadPool: don't loop unless needed
The resulting code is easier to understand, too.

Change-Id: I3cd84d85b3186860dd3ccd67c3771b82695e7f83
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-17 16:27:49 +02:00
Marc Mutz 6ac6bc03e8 QFutureInterface<void>: const-correct reportFinished()
The primary QFutureInterface::reportFinished() takes a const T *, so should the
void sepecialisation.

Change-Id: I4d3173f4fd4f8d27baecd407369659a42445aed7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-17 16:27:43 +02:00
Sean Harmer 47fd7128db Fix compilation of QThread on QNX
Commit 3ef51efbe7 broke compilation of
qthread_unix.cpp on QNX. This fixes it by passing in the threadId to
setCurrentThreadName().

Change-Id: I24f32d8054baedbd9a65b6a80fb1f6f37e07092d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-08-17 12:23:56 +02:00
Sean Harmer c7b6a666a8 QNX: Allow app to run when spurious 2nd screen is reported
On the PlayBook, libscreen always seems to report the presence of a 2nd
display even when none is connected. This of course leads to the failure
to query this display for its physical size.

This patch relaxes the demand for a physical size to being for the
primary screen only.

Change-Id: If30b1fd704e7a194a426a0a9f0b85557478105f7
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Frank Osterfeld <frank.osterfeld@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-08-17 12:23:43 +02:00
Kevin Funk 525ec093b4 WinCE: Fix call of GetAncestor in setParent_sys()
There is no GetAncestor under Windows CE.
Use GetParent instead.

Change-Id: I87b86961dade0d5c7c8bf6a470f777d32188dcd2
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-08-17 12:22:09 +02:00
Miikka Heikkinen 0d897a7fb6 Fix setParent_sys() to use native methods when checking for toplevel
QWindowsWindow::setParent_sys() was checking if window was toplevel
using non-native method, which caused wrong result in some cases
involving native windows. Changed the toplevel check to utilize
native method instead.

Task-number: QTBUG-26826
Change-Id: I72ca17c53c1ed7611f141cee17b2edaaa80c6c17
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-08-17 12:21:34 +02:00
Miikka Heikkinen 30f3432845 Fix GDI object leak
DeleteObject parameter must be a handle, not a pointer to a handle.

Task-number: QTBUG-26835
Change-Id: Id5de2b0b067bd9fc45c1c8ead4f7d67f0162f070
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-08-17 12:21:18 +02:00
Joerg Bornemann 609b0a9c2e remove install/removeEventFilter from QRollEffect
This class doesn't have an eventFilter method.

Change-Id: Ibd7b3b5b954dd2467c9b4dadd85d3613964d9f7c
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
2012-08-16 08:27:03 +02:00
Marc Mutz 15b5b28425 QSlotObjectBase: re-enable tail-call optimisation in impl()
Two of the three operations in impl() return void, among them the
most common one, call(). Having impl() return bool prevents tail-
call optimisations for these.

Fix by passing the bool return value for Compare as an out-parameter.

Results in a nice decrease in text size
(GCC 4.8-pre -O2 -std=c++11, stripped):

   text    data     bss     dec     hex filename
 507343   13984      48  521375   7f49f tst_qobject (old)
 505551   13984      48  519583   7ed9f tst_qobject (new)

Reported-by: Thiago Macieira <thiago.macieira@intel.com>

Change-Id: I7538c5b3f0992970c089e44f07244e6b62794a1d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-15 23:40:57 +02:00
Marc Mutz 04c286ceb6 QSlotObjectBase: combat virtual function "bloat"
In C++, the compiler creates extra functions and data for classes
with virtual functions. This can lead to "virtual function bloat":
  http://www.boost.org/doc/libs/1_47_0/doc/html/function/misc.html#id1382504

This is especially true when the number of instances is of the same
order of magnitute as the number of derived classes, such as is
common with type erasure techniques.

One such case is the QSlotObjectBase hierarchy, which this patch
tackles.

The mechanics of this optimisation are simple: re-implement the
virtual function call mechanism by hand, with function pointers.

But we go one step further and collapse the vtable into a single
pointer to a function that implements all three currently-defined
operations, swtching on an 'int which' argument. This even allows
us to extend this in a BC way, should that become necessary later,
by adding a new Operation and using the void** argument to
transport arguments, if any.

This approach was inspired by:
  Ulrich Drepper: How To Write Shared Libraries, Section 2.4.4
  http://www.akkadia.org/drepper/dsohowto.pdf

Also move the QSlotObjectBase hierarchy out of QObject so as not
to export all the derived classes.

This was pointed out in review by Thiago.

Results (Linux amd64, GCC 4.8-pre -O2 -std=c++11, stripped):

  size tst_qobject*

     text    data     bss     dec     hex filename
   523275   21192      48  544515   84f03 tst_qobject (old)
   507343   13984      48  521375   7f49f tst_qobject (new)

  relinfo.pl tst_qobject*

   (old) tst_qobject: 473 relocations, 0 relative (0%), 240 PLT entries, 240 for local syms (100%), 0 users
   (new) tst_qobject: 323 relocations, 0 relative (0%), 238 PLT entries, 238 for local syms (100%), 0 users

Change-Id: I40ad4744dde8c5c29ef62ed2d82d4b1ede178510
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-15 23:40:57 +02:00
Thiago Macieira 3ef51efbe7 Avoid an expensive call to toLocal8Bit upon thread creation
QString::toLocal8Bit() will need to call QTextCodec::codecForLocale(),
which isn't the cheapest of the functions, at least the first time it's
run. So avoid calling it when in most scenarios, the name of the QObject
isn't set, and the information is purely for debugging.

Additionally, avoid allocating memory when setting the thread name to
the class name. The class name coming from the meta object is a static
constant string and we can use it directly.

Change-Id: Ief643bad87a51487b1d41c0a2f323e80bb53e8a7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
2012-08-15 23:40:57 +02:00
Thiago Macieira 03b95247a1 Remove trailing comma in enum
Spotted by ICC:
qfreelist_p.h(127): warning #271: trailing comma is nonstandard
          BlockCount = 4,
                        ^

Change-Id: Ib64d1d19ca0514e7582a295da48cbf6705aa8c44
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
2012-08-15 23:40:57 +02:00
Thiago Macieira d244713340 Silence a false-positive warning about uninitialised variable with ICC
ICC complains like so:
harfbuzz-gpos.c(95): warning #592: variable "error" is used before its value is set
      return error;
             ^

However, line 95 is never executed because the condition on line 94 is
always false. That's why it's a false positive. The same construct
happens in the other two places.

Still, silence the warning.

Change-Id: I168d916d6837d4ac346facfd22b3e5b4e22ef7f0
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
2012-08-15 23:40:57 +02:00
Samuel Rødal 069469b468 Made eglfs work with backing store based applications again.
Make sure we pick the same config for the context and window surface,
and do not create unnecessary window surfaces for the desktop widget.

Change-Id: I3c8fb3df9ab8a658196e41dfa1705cfca625a2d7
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-08-15 21:13:18 +02:00
Frederik Gladhorn b5a24adb26 Documentation for QWidgetItem::controlTypes.
Change-Id: I673b884ac8513714d733411729a7418c19f05682
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2012-08-15 15:30:07 +02:00
Frederik Gladhorn 76cec118d0 Update docs.
Change-Id: I7bd1f1efe2d6ce3aee8cb7454f43cfef2979f525
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-08-15 15:30:05 +02:00
Frederik Gladhorn ab802b3c85 Remove docs for removed enum values.
Change-Id: I225ea48606d60894a851c1dd620983b7a65d234d
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-08-15 15:30:04 +02:00
Frederik Gladhorn e0133de62f Move docs for QSessionManager to the right file.
Change-Id: Ia3735ac14fe91de8cfbb58fc68f1a37f04d7b668
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-08-15 15:29:51 +02:00
Frederik Gladhorn 19276ac779 Remove outdated docs.
Change-Id: Ic878226c3b627b445ac45f56497a6a4ae77b2d38
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-08-15 15:29:50 +02:00
Frederik Gladhorn 45ab1cc073 Remove deprecated docs for QActionGroup.
Change-Id: If086395d3e1d151324df3cc1c59152715cb4af40
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-08-15 15:29:49 +02:00
Frederik Gladhorn dd54ba933f Add parameter docs for QAbstractEventDispatcher::filterNativeEvent.
Change-Id: If028d2560d7bb18c9dd3e0f5fa6677c42fbf7d4b
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-08-15 15:29:40 +02:00
Thiago Macieira 732fc614da Disable CPUID checking with GCC 4.2 or older
This is not the first time that GCC 4.2 on Mac has produced bad code
surrounding the CPUID instruction (see also commit 81d1f79a7f).
So declare it broken beyond repair and don't run the instruction at all.

Instead, initialise the set of features found to be exactly that which
we detected at compile-time. For that reason, we can also disable the
runtime checking of the processor (minFeatures == detected features).

At the time of this commit, only the draw helpers and one QImage
helper make use of the runtime detection. Since the detection now
switches to compile-time, QtGui will start carrying dead code for GCC
4.2 and earlier: it will never run the SSE2/SSSE3 code on 32-bit
builds. (GCC 4.2 does not support AVX, so that code won't be built)

Note: all Clang versions report that they are GCC 4.2, so we need to
exclude it from the test; ICC reports the same version as the system's
GCC.

Change-Id: I43f168a9480a2479c6444eea175782b2eadc2ab2
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-08-15 15:20:39 +02:00
Stephen Kelly da64a50792 Only emit headerDataChanged for valid proxy intervals.
Modeltest asserts before the patch, and passes afterward.

Task-number: QTBUG-26515

Change-Id: I08a89cd5c9c59613badcddbd056a3d0b8fbbca13
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-15 15:04:11 +02:00
Stephen Kelly 351904be50 Emit the highlighted signal if the model changes.
The bug is that the connection to emit that signal can be made
obsolete if the connection is made too early and the model is replaced.
In the bug report, the connection is made by calling view() early (thereby
causing the creation of a view and a QItemSelectionModel which operates on
the built-in QItemSelectionModel, and then connecting to that
QItemSelectionModel), and then when QComboBox::setModel() is called later
the built-in view creates a new QItemSelectionModel for it. The bug was
that that new QItemSelectionModel is not connected to. This patch fixes that
bug.

Task-number: QTBUG-4454
Change-Id: Ibbdb8731f16ab071008b4a19dc2cc7ae03cebc84
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-15 13:58:29 +02:00
Jeremy Katz 61fa926857 Fix QMessageLogger and associated qdoc errors
Change-Id: I4b9555c8a15a698ef5ce270288c88a0aa88e0033
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-15 11:38:37 +02:00
Lars Knoll 55912e14af Add a module page for QtConcurrent
Fix some foward references from QtCore in addition. This
will require more work.

Change-Id: Ib1bade18c2cc220a7afe25e9fca6a3f50cb1174b
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-15 11:38:37 +02:00
Lars Knoll 03dba8c596 Mark QCollator as internal.
The class is private in 5.0, we'll publish it in 5.1

Change-Id: Ia7511db0393528aafa8c8059b4eb1657c8cdcc64
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-15 11:38:37 +02:00
Lars Knoll 45ecea6a87 Fix QPointer qdoc errors
Change-Id: I54082a87f076aa511329cfb7a6ed6ecabcfb40f7
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-15 11:38:37 +02:00
Laszlo Papp 98804946f2 Make the "\internal" qdoc command stand on its own line
The qdoc manual currently claims that the command must stand on its own line.

The change follows the consistency with the rest and how the example looks like
inside the qdoc manual for this command.

Change-Id: I6b653dc95cf9d84e4adf32220dace5d313678419
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-15 11:38:37 +02:00
Jani Honkonen 121062d884 Fix undo and redo in QLineEdit when in password mode
There are some security issues with undo/redo. User should not be
able to get the erased password back in any situation. Therefore
redo must be disabled completely and undo is limited only for erasing
previously entered text.

Task-number: QTBUG-14226
Change-Id: I2b38aca84adbad1c14db76b56ad6303d56b35b4d
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-15 11:38:37 +02:00
Stephen Kelly d19589b90a Make selectAll() do nothing if the mode is NoSelection.
Task-number: QTBUG-26687

Change-Id: Iaa0197efe64c61505e22e4a63a1f5c012af0bc78
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-15 11:38:37 +02:00
Harald Fernengel 17adbb232b Speed up construction of basic QVariants
Instead of first creating an initialized Private struct, then overwrite
the member variables, we added an internal constructor that
initializes the private struct sanely.

In the new (inlined, internal) constructor, both the MSB bits in the
bitfield are 0, and since the value of internal meta-type ID is so
low that the two MSB bits should never be set, the compiler can
(hopefully) optimize away the bit-fiddling initialization of the bit-field.

Callgrind shows about 33% speed-up in e.g. QVariant::QVariant(int)

Change-Id: I706773a71c0d8dcbe119ad15411578b81892deb5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-08-15 09:17:35 +02:00
Marc Mutz 0a3a70a6cb rcc: use new qEnvironmentVariableIsEmpty()
Change-Id: I48dd9b7b8dd51e1c662273eb37ac2e1f4c1c4d15
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-14 20:21:23 +02:00
Marc Mutz a2fbe8056c QtTestLib: use new qEnvironmentVariableIsEmpty()
Except where using the contents of the variable, in which case
collapse two calls to qgetenv() for the same variable into one
that stores the result in a temporary QByteArray and continues
working with that one instead.

Change-Id: I6c09a20ae946327ccb85e4833a60a373a8a07355
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-14 20:21:19 +02:00
Marc Mutz bdd682ea4c QtGui: use new qEnvironmentVariableIsEmpty()
In particular, static bool showRasterOverlay is safer.

Change-Id: I9df6c9a9a56d2e61b13391b6889c0ac6e259e801
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-14 20:21:12 +02:00
Marc Mutz 7fa8f1efbc QtDBus: use new qEnvironmentVariableIsEmpty()
Change-Id: If983083cc7f360199716a060464344340c089236
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-14 20:21:09 +02:00
Marc Mutz 0bd21a8111 QtCore: use new qEnvironmentVariableIs{Set,Empty}()
In particular, qEmergencyOut() is now completely exception-free.

Incidentally, this patch shows that Qt isn't consistent in how it
treats empty environment variables used as flags, but that is something
for a separate commit. This patch aims to be behaviour-preserving,
except in exceptional circumstances, of course.

Change-Id: Ie106e7b430e1ab086c40c81cc1e56cd0e5400cb4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-14 20:21:06 +02:00
Thiago Macieira 11b5825fa0 Fix warning about change of sign
method_relative_ is unsigned, so we can't store a -1 in it.

qobject.cpp(434): warning #68: integer conversion resulted in a change of sign
        callFunction_(0), method_offset_(0), method_relative_(-1)
                                                              ^

Change-Id: If8bf3835590ef2c26b9ca5010d638aa84675ff62
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-14 20:20:51 +02:00
Stephen Kelly 399b591b5c Deprecate Qt::WFlags.
It seems to date from the Qt 1 days, and such abbreviations
are not current Qt style.

Change-Id: Iea7259bd7ba78b2c0863e3f6675e10826712ffd9
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-14 10:10:44 +02:00
Andreas Holzammer 0b0e28997d (QNX) Make it possible to set physical screen size
It can happen that the system is reporting a screen
width or height of zero, if the system does not know the
size instead of returning an error. You can either
set a define QQNX_PHYSICAL_SCREEN_WIDTH/QQNX_PHYSICAL_SCREEN_HEIGHT
or set it as environment variable QQNX_PHYSICAL_SCREEN_SIZE.

The preference order is:
1) Take detected size
2) Take size from env var
3) Take defined size if any define is set

Change-Id: I493a2c8988a225224587a6c323efeb9e9b7b5a54
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-08-14 10:07:14 +02:00
Jan-Arve Saether 0cba86f7a4 Group functions in QAccessibleTextInterface
Do the same in QAccessibleTextWidget

I got a bit annoyed by this, should hopefully make life easier
when forward porting QPlainTextEdit

Change-Id: Ib4b90d1892974ea39ecfcbc5cad6ed0694207b58
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-08-14 09:16:16 +02:00
Andreas Holzammer 853f78e125 Fix sockets for Windows CE
Version numbers for CE are higher then for the desktop,
so insert a check for this, as the api is not working as
for windows 7 and above.

Change-Id: I79baba9183e11c714cffd0bb43327c197043d6e0
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-08-14 03:56:55 +02:00
Mitch Curtis b92129ff56 Tidy up QEvent::Type enums.
Corrected the list's ordering and added punctuation.

Change-Id: I36a477801cd0cfd3d36db308b4263982b582106b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-14 03:56:55 +02:00
Jan-Arve Saether 2cb9ded6ec Implemented QAccessibleTextWidget
A new class called QAccessibleTextWidget was added.
This class should implement all methods of QAccessibleTextInterface and
QAccessibleEditableTextInterface which only need a QTextCursor, and it
defines two pure virtual methods, to obtain and set the text cursor, so
accessible implementations of widgets which use a text cursor can implement
these two methods.

QAccessibleTextEdit is now a subclass of QAccessibleTextWidget and most of
its methods were moved to QAccessibleTextWidget.

This is a forward port of ba5d7d608cc31fc63354fd74d85a1bad7780fc45 from
Qt 4.8, and is a prerequisite for forward-porting QPlainTextEdit

Change-Id: I6093c4fa7e0a77b84de779479c6074db006efec1
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-08-14 03:56:55 +02:00
Jeremy Katz 59117012f2 Document QFile::open() argument "handleFlags"
Change-Id: I5ef909b21ddd4782062dd4ebd0ea7bca33f3387f
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-14 03:56:55 +02:00
Frederik Gladhorn 8e1ff45e74 Add Linux Accessibility Bridge
This is a plugin that bridges the QAccessible world
to AT-SPI 2 on Linux.

Change-Id: I7af22621ee6a3cefc723b137b7f227a611cf6641
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-08-14 01:40:06 +02:00
Mark Brand 85b624a969 qsql_oci: use OCI_COMMIT_ON_SUCCESS for SELECT without transaction
Otherwise, the open statement, say in QSqlQueryModel, will prevent
other statements from running.

Task-number: QTBUG-18608
Change-Id: Icdd6817fb981678be6fb70ade21a8123e152dcf6
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
2012-08-13 23:16:38 +02:00
Thiago Macieira bbec226432 Fix declaration of qt_gettime for Q_DECL_NOTHROW
Since the #include wasn't present in the qelapsedtimer_{mac,unix}.cpp
files, we did not notice that the declaration missed the macro.

Change-Id: I3e4f23b28e127d41b12690cf306f47986be53d89
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-13 22:45:27 +02:00
Jeremy Katz 1fc8f1e49b fix some QElapsedTimer doc grammar issues
Change-Id: I9bdb0b93b101119477a560b28396f88ea8103745
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-13 22:44:58 +02:00
Stephen Kelly c58a8fa6a6 Use Qt::WindowFlags, not Qt::WFlags.
The latter seems to date from the Qt 1 days, and such abbreviations
are not current Qt style.

Change-Id: I83bc8722a309f4ece7e51881590d07b40fbe6bef
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-13 22:26:27 +02:00
Thiago Macieira 46e2c94417 Make QElapsedTimer always store nanoseconds in t2
Up until now, the value stored in t2 depended on whether we had found
a monotonic clock or not. Fix that by always storing nanoseconds: we
avoid extra calculations and accessing a global variable all the time.

The impact is contained to the actual getting of the time. And we
mitigate by using clock_gettime to get the realtime clock instead of
gettimeofday, if that's available.

Change-Id: Iceef2d050fd9472f1a66e11e7ded79fe5163a132
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-13 09:34:10 +02:00
Thiago Macieira bc6568291a Fix a ### Qt5 issue: remove limits.h from qreadwritelock.h
Change-Id: I1fc54561aabd1be693f179e668031ddb0f86a130
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-13 09:33:33 +02:00
Marc Mutz d370b365da QImage{Reader,Writer}: remove unused local typedef (GCC 4.8 warning)
GCC 4.8 warns:

  warning: typedef ‘PluginKeyMapConstIterator’ locally defined but not used [-Wunused-local-typedefs]

Change-Id: I0225708b590ac3d72ab3cb8f61e686091c187053
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-11 22:35:37 +02:00
Marc Mutz 952d06f7d6 QModelIndex: remove user-defined copy operations
They're identical to the ones the compiler will
synthesize and their presence prevents move
constructor and assignment operators from being
synthesized alongside their copy counterparts.

The destructor can go, too.

Change-Id: Ia9cc26ba1ffaa670f03642af457e632f44bd69c2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-11 22:35:06 +02:00
Frederik Gladhorn 522e892ff4 Fix order of namespace/include guards.
Change-Id: I9ed1e82c90e38a65c15bb9d05ff789270218d4b5
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-08-11 07:30:45 +02:00
Stephen Kelly c1df856d6b Make rowIntersectsSelection take account of the parent argument.
Task-number: QTBUG-22370

Change-Id: I497194793eab624b760deea93dac0df767850330
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-10 22:02:11 +02:00
Marc Mutz 4fa544c8cd QtWidgets: use new qEnvironmentVariableIs{Empty,Set}()
Incidentally, this patch shows that Qt isn't consistent in how it
treats empty environment variables used as flags, but that is something
for a separate commit. This patch aims to be behaviour-preserving.

Change-Id: I5390cda314858762b76384291373a6f0167d323a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-10 22:00:43 +02:00
Stephen Kelly 146b7a9c8b Take scroll position into account when painting drag pixmap.
Task-number: QTBUG-26793

Change-Id: Ic19cb6581cd5838d26713998e152772a5d12da4f
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-10 21:59:47 +02:00
Alexandros Dermenakis 59cd316d6c Revert "Added default argument for color profile to QImage constructors."
Reverting change after request in the developers mailing list.

This reverts commit 50a5bd5429e0c8b99be81b86d3730737cb7f8514.

Change-Id: Ic4a420d6ad0995810ed61d31edd28e7b603cca5e
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-08-10 21:58:29 +02:00
Mark Brand 816c554017 make currentText the USER property for QComboBox
QItemDelegate takes the USER property as the value to be set using
model->setData(). The text is what is expected.

follow-up to b1b87a73012342dc1619a8e907ea9954d59ca564 which in Qt 4.8.0
broke the interaction between QComboBox and QItemDelegate used by
QDataWidgetMapper and item views.

Task-number: QTBUG-26501
Change-Id: I005a0a6af5265ee22baf417957e520992d16d6e1
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-10 21:58:15 +02:00
Stephen Kelly 79a7e6f23b Require CMake 2.8.9 for the qt5_use_modules function.
The newer CMake version has the POSITION_INDEPENDENT_CODE property which is
what we need here. The CMake 2.8.8 implementation uses awkward and incomplete
string manipulation which I don't want to maintain for any amount of time
when Qt 5.0 is released.

Change-Id: If7ace9c6925ccdbf800f1863fa2368e55fa44d7f
Reviewed-by: Brad King <brad.king@kitware.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-10 21:57:47 +02:00
Jerome Pasion 06ca4e38cf Doc: Added a Qt Network landing page.
-fixed generated HTML file names
-removed qt-network group in qt/qtdoc and removed \ingroup instances

Change-Id: Ida5ded5da30e6db1978382f6742a5da8036e055e
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: Martin Smith <martin.smith@nokia.com>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
2012-08-10 17:08:34 +02:00
Thiago Macieira 2b4ce2f0ff Use an include guard for qelapsedtimer.h that matches the file name
The class used to be called QTimeStamp before.

Change-Id: I6e543f4f131a80299eb5dae78d8852b7899bab8a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-10 16:22:14 +02:00
Thiago Macieira 276f7ee4ad Use Q_LIKELY instead of doing an #ifdef for GCC
This code predated the Q_LIKELY macro. Now that we have it, use the
official macro.

Change-Id: I0e43609f8d6827f8fef7b928655a965cba579b8d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-10 16:21:59 +02:00
Mitch Curtis 478c21239a Correct QTransform::QTransform documentation re m13 initialisation.
Documentation incorrectly states that it is m13 that is set to 1,
when it is instead m33.

Task-number: QTBUG-10232
Change-Id: If3c7d3eb1c478ebef4f13b4842235445afc48049
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-08-10 11:56:26 +02:00
Morten Johan Sorvig ca23ae5c4b Handle "-psn_XXX" command line args on Mac
Finder on Mac OS X sends a command line argument of
the form -psn_0_3523420 when launching applications.
Eat the argument like we do in Qt 4.

Change-Id: I09db9dea035e62c0b816a833c9ad6fcd78f83735
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: Simo Fält <simo.falt@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-10 11:42:22 +02:00
Laszlo Agocs 8ec3a419d1 kms: Restore VT settings when crashed
This does the job of keeping the terminal keyboard working when
the application segfaults but is somewhat unsafe because ioctl()
is not async-signal safe.

Change-Id: Ie6728a4252e18c29bba8f8308e6c00d4a1eb6a8e
Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-08-10 08:03:31 +02:00
Marc Mutz fa08b143f3 QtGlobal: (new) qEnvironmentVariableIs{Set,Empty}()
These functions are a faster version of {,!}qgetenv().is{Null,Empty}(),
a common pattern in Qt code.

Their main advantage is that they don't need to allocate memory, so
they can be used in noexcept functions, or dynamic initialisation of
namespace-scope statics, because throwing in these contexts invokes
std::terminate().

Change-Id: I651c5bd72f450b5d7df76590f8791572fe992af5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-09 21:27:09 +02:00
David Faure 977441f61c Remove code duplication in QStandardPaths implementations
Using the new getter to access the "test mode" setting.

Change-Id: Id26a350cd3fab4bf2e5f58ba67bc7323f99c9cc3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-09 13:48:16 +02:00
David Faure a23da5fd6b Add bool QStandardPaths::isTestModeEnabled()
Library code might need to know this, e.g. when calling an external
process, to give it the right configuration. (For instance when
ksycoca code calls kbuildsycoca to recreate the DB at the right place).

Change-Id: I343ddefff816586f9d391973c08ff1e1ad86bf0e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-09 13:48:13 +02:00
Sean Harmer d1bb10d9b8 OpenGL: Allow querying OpenGL extensions via the QOpenGLContext
Change-Id: Ia88470554bbfd2a56738dadfcafafe42a990382d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-08-09 13:19:34 +02:00
Miikka Heikkinen 2ccd34fd20 Use native handles for parent change check in QWindowsWindow.
QWindow::setParent() sets the parent to zero instead of the desired
parent, if platform window has not yet been created for the parent.
This caused QWindowsWindow::setParent() to skip setting the parent
later, when correct window was specified, as the QWindow parent-child
relationship hadn't changed. Fixed by changing the the check to use
native handles instead.

Task-number: QTBUG-26791
Change-Id: I292a1ddf746583a7268f2d07c20166995c0dd7d6
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-08-09 13:17:39 +02:00
Shawn Rutledge 5c63820992 Need to have the XI2 import to detect XI_TouchBeginMask
Followup to I5c925ae3e191244c7ab9415e4ba2fe49b93dd2af : touch was not
actually working by default.  A major symptom was getting double-clicks
instead of clicks on buttons and such, making it quite hard to
interact with anything.  There are some problems remaining.

Change-Id: I09fa5965036bac242ccc1f4db71f6d912445ca01
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-08-09 13:17:14 +02:00
Thiago Macieira 6a8537356b Mark QElapsedTimer functions as Q_DECL_NOTHROW
All functions in QElapsedTimer are marked Q_DECL_NOTHROW. This code
is often introduced in many places to deal with timeouts and doesn't
need exception handlers. In particular, it's used in QMutex locking.

In addition, mark QDateTime::currentMSecsSinceEpoch as nothrow, as it
can't throw exceptions either and it is needed by the generic
QElapsedTimer.

Q{Date,Time}::current{Date,Time} operate on local time and run into at
least one cancellation point, which we must consider throwing. And
returning a QDateTime allocates memory.

Change-Id: Id776c5ec831fc06d7419a9ff5442d9b35cff1a22
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-09 03:26:29 +02:00
Thiago Macieira 44e638f069 Add Q_DECL_NOTHROW to QRefCount.
For the same reason as the previous commit (about the atomic classes),
mark these functions as never throwing an exception.

Change-Id: Idf46e41b226f54cb8658416efdf985ca40dd2952
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-09 03:26:27 +02:00
Thiago Macieira 6bf4e448fe Mark all atomic functions as Q_DECL_NOTHROW
Actually, only the "new" atomics are marked. The old implementation,
based on qoldbasicatomic.h is unchanged, but should still work without a
problem.

The following configurations were tested and do work:
 - x86 64-bit
 - x86 32-bit
 - generic GCC
 - generic C++11 std::atomic
 - bootstrap
 - ARMv6 and 7
 - MIPS
 - MSVC 2010 32-bit
 - MSVC 2010 64-bit

The only two configurations untested are IA-64 and ARMv5. Except for
MSVC, all configurations were tested with GCC 4.6 (MIPS and ARM) and 4.7
(x86 and generics).

Change-Id: Iecbfeacd9d20b535453e91335165e9a221e0b47e
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-09 03:26:24 +02:00
Thiago Macieira 2d9c2c0562 Add Q_DECL_NOTHROW to the atomic functions
These functions are inline (on most architectures) but they contain
inline assembly which the compiler could not understand. In any case,
if it decides not to inline them, it would need to generate exception
handlers.

Change-Id: If9d50793d715c51781e76d0a539da03a6d83e255
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-09 03:26:22 +02:00
Marc Mutz c856e37c5f Logging: mark qt_assert()/qt_assert_x()/qFatal() as nothrow
These functions are not supposed to return, not even by exception.
qt_message() _can_ throw, but we're fine with the compiler calling
std::terminate() then, since the backtrace will still include the
assertion location.

This behaviour is ensured by a new macro, QT_TERMINATE_ON_EXCEPTION,
which expands to something like
   try { expr; } catch(...) { std::terminate(); }
if the compiler doesn't support Q_DECL_NOEXCEPT (but maybe
Q_DECL_NOTHROW), and to something like just
   expr;
otherwise (including in the QT_NO_EXCEPTION case).

The real macro preserves scopes in all cases, and aims
to work even if <exception> isn't included in the TU it's used in,
so is a little bit more complex than that.

Change-Id: Ie6a2b7776e6aa77e57bd9aea6e184e5fa1cec81c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-09 03:26:17 +02:00
Thiago Macieira 7ef395224e Remove unnecessary extra indentation in the EXPORT macros
Change-Id: I54585fa7e38ea1984018c5cbff9bc4626016bace
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-09 03:26:14 +02:00
Thiago Macieira 413c8841aa Remove the Q_xxx_EXPORT macros of other modules from qglobal.h
The macros have been moved to their respective modules.

Change-Id: I653668b608cd3b79824a25b0e7b1c238330c0007
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-09 03:26:13 +02:00
Thiago Macieira 703e287283 Rename QMapData::free to destroy
The convention for QMap is that "free" methods simply free memory and
that "destroy" ones also run destructors of types affected. Since this
function calls destroySubTree, it should be more properly called
"destroy".

This also gets rid of another function called simply "free" in our
headers.

Change-Id: I3fa621c78848ede33dd5b78428c704d0423ba4e7
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-09 03:26:10 +02:00
Thiago Macieira 9e96717746 Rename QLinkedList::free to freeData for consistency
QLinkedList does use allocations in the .h, by way of operator new and
operator delete. But for consistency with other classes, don't call our
function free().

Change-Id: I9295f5945619ad4ea82fd1f7f55b34700c54e06a
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-09 03:26:08 +02:00
Thiago Macieira 9f71ff69f2 Rename QContiguousCache allocate and free functions to say "Data"
The important change is to use functions not called malloc and
free. On some old systems or under some weird circumstances, they
might be #defined to something different. More importantly, this
allows us to quickly verify whether we're using the stdlib.h functions
in our public headers.

Change-Id: I66b963ac2bc75d64028c04542e62a929e4b36b19
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-09 03:26:06 +02:00
Thiago Macieira 649cd98743 Remove use of ::free from qlist.h
The memory is allocated in qlist.cpp, so it should be freed in
qlist.cpp. Freeing it in qlist.cpp ties our hands about future
improvements to the allocator.

In addition, silence the warning by the too-smart-for-its-own-good GCC
that we're trying to free a non-heap object:

  qlist.h:763:14: warning: attempt to free a non-heap object "QListData::shared_null" [-Wfree-nonheap-object]

The warning is wrong. It should say "possibly" somewhere because GCC
failed to account for all conditions in the path to free().

Change-Id: I34a6c16bba9a2197fc83eb3c7a63ae06fb25bf15
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-09 03:26:05 +02:00
Leonard Lee 63eb5b5a79 Explained rectangle bounding in documentation.
Task-number: QTBUG-26756
Change-Id: Ifa56cbe249164e239f21c00fc31cd6ddd81705ad
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-08-08 14:13:53 +02:00
Leonard Lee 7cd8782cb6 Explained degree unit in QPainter::rotate() function.
Task-number: QTBUG-26757
Change-Id: I9a03480513819aefb78d914a7170fb4997181643
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-08-08 14:13:53 +02:00
Kent Hansen 8efcfda41f statemachine: Really fix signal transition handling in multi-threaded setup
Commit f9a17d7f0f fixed it for the case
where the sender object is in a different thread at transition setup
time. However, it still didn't work if either the sender object or the
state machine was moved to a different thread at some later time,
before the machine was started.

Therefore: Bite the sour grape and traverse all the machine's
transitions when the machine is being started, registering those
signal transitions whose sender objects are in other threads.

This will increase the machine's startup time (proportional to the
number of transitions), but at least it works in all known scenarios,
meaning we don't have to document weird restrictions regarding the
order in which the user's operations have to be done.

Task-number: QTBUG-19789
Change-Id: I5f1dd1321994e49635f52be65cf56d2678ed1253
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-08-08 14:13:53 +02:00
Oswald Buddenhagen 0885f3ee52 rename qt_module_config.prf => qt_module.prf
this is more logical, following the qt_plugin and qt_tool scheme.

Change-Id: Ib3b2abec6728cdab260e15128b1cd78e8e6f5d6a
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-08-08 12:04:49 +02:00
Mitch Curtis ebbd8e6671 Clarify how days are counted in QDateTime::daysTo documentation.
Mention that the days are counted as the amount of times midnight is
reached between the start and end date.

Task-number: QTBUG-26780
Change-Id: I22ff6c56b748ac968d6991e0be3e10905c0634bd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-08 09:43:45 +02:00
Marc Mutz f829ab5573 Q_DECL_NOTHROW: stronger and more widely available version of Q_DECL_NOEXCEPT
Commit 1adca807 defined Q_DECL_NOEXCEPT to be the same as throw() for the
Microsoft compiler. However, the two are not equivalent:

- C++11 noexcept is defined to call std::terminate() if a noexcept
  function nevertheless encounters an exception.
- MSVC throw() has essentially undefined behaviour in this situation:
  http://msdn.microsoft.com/en-us/library/wfa0edys%28v=vs.100%29
   "Due to code optimizations that might be performed by the C++
    compiler [...] if a function does throw an exception, the program
    may not execute correctly."

So define two macros:

1. Q_DECL_NOEXCEPT/Q_DECL_NOEXCEPT_EXPR always have C++11 behaviour.
   This is expected to be the more efficient implementation if the
   function can actually throw.
2. Q_DECL_NOTHROW means that the function gives the nothrow
   guarantee. It is stronger than noexcept, but not all functions
   that can be marked Q_DECL_NOEXCEPT can be marked Q_DECL_NOTHROW.
   In general Q_DECL_NOTHROW functions need to use a try/catch block
   in order to prevent exceptions from leaving the functions, unless
   you can proove that none of the operations can throw.

For the caller, both macros are equivalent: it can be relied on that
no exception leaves the function.

Change-Id: I32f822a82e06a31cb71d38db438387aee5ec3334
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-08-07 21:11:55 +02:00
Sean Harmer 46212d657e Improve the QOpenGLExtensionMatcher class
Using a QSet<QByteArray> internally means that checking for the
presence of an extension no longer uses an O(N) search.

This patch also allows users of this class to easily get a list
of the supported extensions.

Change-Id: I02194e5345573c47be0876f3ea6eb6b69a2ead81
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-08-07 18:55:43 +02:00
Andreas Holzammer 0ef4bf1c1e Add possibility to add OpenSSL, DBUS, MySQL path under Windows
Under Windows it's quite possible that OpenSSL, DBUS or MySQL is
not installed into a central place. If -I and -L is
passed at configure time, it is added to all targets,
and if that path contained a conflicting header things would go
wrong.

Change-Id: Ic3338c49aa6eaa91b3abf5341e709ef604bf7aab
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-07 18:55:43 +02:00
Marc Mutz bd7331cb33 QtGui: collapse two qgetenv() on the same variable
Store the result in a temporary QByteArray and continue
working with that one.

Change-Id: I24bc243f0f3dfb37d840faf7592b3383bd37c7e2
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-07 18:55:43 +02:00
Marc Mutz bfabd0de51 QUrl::idnWhiteList(): add QList::reserve() call
Avoids reallocation.

Change-Id: I3238574590463596a797d237b066ef60214392a7
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-07 16:43:11 +02:00
Marc Mutz 045a5e3b42 QtNoDebug: remove special member functions
These are better generated by the compiler.

Change-Id: I5afa9fd17997c220622ed0e5990c33e52700840f
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-07 16:40:07 +02:00
Stephen Kelly c5d7ea5bad Only emit the clicked() signal from views if the left button is used.
This is consistent with QAbstractButton, QCalendarWidget,
QDialogButtonBox and QGroupBox (ie, all other widgets with
a clicked signal)

Task-number: QTBUG-26105

Change-Id: Ieafe988b5c03216796b69a7cd70ac1a03fc12b0a
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-07 16:40:07 +02:00
Stephen Kelly 2ade633c0a Ensure that we return an invalid QTableWidgetItem when none is available.
Task-number: QTBUG-26195

Change-Id: Iede4f51770bd8c8eab3558137aaf7b1721f25a87
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-07 16:40:07 +02:00
Oswald Buddenhagen 6e4ed714f1 ifdef drivespec handling in relativeFilePath to windows
on unix, the code wouldn't do anything except burning cycles anyway.

Change-Id: I1c28b1a7014af93ca70a17e0bd669debad8003c2
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-08-07 16:40:07 +02:00
Laszlo Agocs 6292c51306 Properly manage window geometry in kms
If QWindow::setGeometry() is called before QWindow::create(),
QKmsWindow::setGeometry() is not called at all. This is wrong
because there is some special size restricting happening there
which must never be skipped.

Change-Id: I321632d4fdb327b0a75e6791c019b3f4c2793888
Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-08-07 16:40:07 +02:00
Martin Smith e361a3f178 qdoc: Don't always add example .qdoc files to source list
When qdoc finds a .qdoc file in an exampledirs directory,
it only adds it to the source list if it isn't already in
the source list. This may be overkill, but it's safe.

Change-Id: I2c5714c968f06e90f9b29b3a5481f80469e19ced
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-08-07 16:40:07 +02:00
Zeno Albisser 9828dace05 Only use glXCreateContext if glXCreateContextAttribsARB did not succeed.
If glXCreateContextAttribsARB does not succeed or is not available,
we should fallback to using glXCreateContext. But we should not just
create a context with glXCreateContext by default that is being thrown
away if glXCreateContextAttribsARB succeeds.
Otherwise glXMakeCurrent with context 0 might cause an unexpected
context change when dealing with multiple contexts.

Change-Id: I7627abbe2500b4006180653a1b3b074fe7aca1d3
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-08-07 16:40:07 +02:00
Thiago Macieira 41379f9580 Don't export QAtomicInt, it's all inline
Moreover, exporting it causes the horrible side-effect on Windows
(with MSVC) that the compiler will not inline the functions, but
instead will place indirect calls to the functions in QtCore DLL,
even in release mode. For such a critical piece of code, inlining
is necessary.

Change-Id: Ib31c12f6bf8dc8ece1b51824716a480559753c24
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-08-07 16:40:07 +02:00
Thiago Macieira 1dca602122 Add a T parameter to the memory barrier functions in atomics.
This is so we can insert valgrind (helgrind) annotation macros. They
require the actual address of the variable to work.

Change-Id: I988f6a46385ad58143c53ad34b6cf0f58be2cdb8
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-07 14:32:51 +02:00
Marc Mutz 49278dc5a7 QMessageLogger: mark default ctor as constexpr, too
Change-Id: I6f92f4a01e43dbe811b11b3e8d9b8a02a31463c5
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-07 11:16:15 +02:00
Stephen Kelly b84e180263 Avoid crashes when invalidating a proxy model filter.
Task-number: QTBUG-26107
Change-Id: I2df7ae6402136570c8469d3251edae6ca8290f1f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-07 11:15:55 +02:00
Stephen Kelly b37849a5f5 Do not draw garbage branches if 0px indentation is specified.
This can't realisitically be unit tested.

Task-number: QTBUG-26305

Change-Id: If7f56c44c472ff0ffbda4744b76ed2119bb64bf8
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-07 11:15:55 +02:00
Kent Hansen 9a0b7348b3 Make QSignalSpy copy QVariant parameters directly
Previously, a QVariant parameter would be wrapped inside a new
QVariant, and you would have to cast the QSignalSpy's QVariant to
a QVariant to get the actual value. This behavior was unintuitive
and undocumented.

Check if the parameter type is QVariant, and copy it directly if it
is. This makes the QSignalSpy's QVariant directly usable (no need to
"unwrap" the value in user code).

Existing tests that use QSignalSpy together with QVariant parameters
(such as tst_QPropertyAnimation::valueChanged()) and do cast the
QVariant parameter to a QVariant, continue to work after this change;
this is because qvariant_cast<QVariant>() returns its input value
(unchanged) when the type is not QMetaType::QVariant.

Task-number: QTBUG-21645
Change-Id: Ibfb171edd60c0d3f7ca1d5419e5c5f3d0380d5b3
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-08-07 11:15:55 +02:00
Marc Mutz 39c2fdd907 QWindowSystemInterface: fix mem leak and race
There was a race where QGuiApplicationPrivate::processMouseEvent accessed
QWindowSystemInterfacePrivate::windowSystemEventQueue without holding
QWindowSystemInterfacePrivate::queueMutex.

There was a memory leak where QWindowSystemInterfacePrivate::windowSystemEventQueue
would not delete events contained in it when it was destroyed.

Fix both of these by properly encapsulating the QList/QMutex pair
in a small class, WindowSystemEventList, that allows only properly protected access
to the internal QList and calls qDeleteAll() in its dtor.

Change-Id: Ifaa9968c9272096df2f7109a7a6cf1c8e5fa736c
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-08-07 08:53:42 +02:00
Stephen Kelly 4ec169a60f Use == for button flag test instead of &
QMouseEvent::button() returns Qt::MouseButton, not Qt::MouseButtons.

Change-Id: Ib5dc5b3998ed8f442c72e26d1aff62bc4ebcff71
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-07 01:01:53 +02:00
Thiago Macieira 0ec953c936 Remove extra Q_COMPILER_xxx defines from the MSVC section.
Those are defined below, after the list that describes the macros and
the papers.

Change-Id: I1f2df0e33c84eb17ebbb0147662f560defed182c
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-08-06 20:33:13 +02:00
Thiago Macieira 1adca80707 MSVC's throw() behaviour matches the C++11 noexcept, so use it
This allows code using methods marked Q_DECL_NOEXCEPT to benefit from
optimisations before MSVC supports the C++11 keyword. Even MSVC 2012
doesn't have it yet.

Using throw() in other compilers is not a good idea because they might
actually be implementing the C++ standard -- which is broken.

Change-Id: Id07ab4fe40a641583d5285d5abb536998bc419ba
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-08-06 20:31:38 +02:00
Thiago Macieira 38dc1f7597 Optimise QMutexLocker a little: don't call relock() in the constructor
QMutexLocker does not support being passed already-locked mutexes,
unless they are recursive mutexes. But in that case, it behaves as if
the mutex weren't locked in the first place.

Since that's the case, there's no point in testing the low bit to see if
it's set or not. It's never going to be.

Change-Id: Ie4b81f7e2cca16e6db36f3cb51a5377dbdfc157d
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-06 20:30:04 +02:00
Sean Harmer 96bc8835eb OpenGL: Add finer-grained functionality checks for NPOT textures
The GL_IMG_texture_npot extension only provides partial support for
npot textures in that it allows use of npot textures but it does not
support the GL_REPEAT texture mode (needed for tiling fill modes in the
QQ2 image element).

Adding this new finer-grained feature check allows QQ2 to still use npot
textures where GL_REPEAT is not needed with only the IMG extension
present.

A follow-up commit will make a check for this in qtdeclarative.

Change-Id: Iff3dbdb955fb334d9e32f3abd49e90ff0ed9836c
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-08-06 16:04:43 +02:00
Jan-Arve Saether 57265a20cb Make sure codecForLocale returns a valid codec in bootstrap mode
This was a regression caused by acbfb4d777,
causing for instance qdoc to crash.

Change-Id: Id8daa19d467c4f1729e5a5a203a388f16ec4a6de
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-06 16:04:32 +02:00
Jerome Pasion 195663260c Doc: Adding a landing page for Qt SQL.
-Simple landing page which contains a link to the SQL guide and API.
-Gave a new title to C++ API page.

Change-Id: I54eca4f6933bafa0affd5825e7fe2e1a2522dad0
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-08-06 16:04:25 +02:00
Joerg Bornemann b170668bb8 fix maximize -> fullscreen -> maximize on Windows
Using a reference changes the value of oldState within this function,
which is undesired.

Change-Id: I9fb66e488015d6b3e586ffa2f0b05a40c095e16b
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
2012-08-06 16:04:19 +02:00
Mitch Curtis 1a7e1f6f9a Add missing const qualifier to snippet in QIdentityProxyModel doc.
Task-number: QTBUG-26751
Change-Id: Icb1f25dd015bcc62ec7c4c2b26c897649f1bbabb
Reviewed-by: Michalina Ziemba <michalina.ziemba@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-08-06 16:04:11 +02:00
Stephen Kelly e3c831fc81 Fix some documentation inconsistency in QtNetwork.
Change-Id: Id3e25480d4a8529813e02dc3d19f553a9263a363
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-08-06 16:04:09 +02:00
Martin Smith 7a64f2790e qdoc: Removed "../" from paths to images
qdoc was mistakenly assuming that the output
was going into subdirectories. The base dir
variable was not being tested.

Task nr: QTBUG-26638

Change-Id: I9b331926f8954b58102f75fad3f233eaebb2bb4d
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-08-06 16:04:06 +02:00
Mitch Curtis 1db721e51a Fix typos in qdatetime.cpp.
Change-Id: I1c2e3dafcca69590cd7a18fdf65e2c9083ba91b9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-06 15:52:39 +02:00
Samuel Rødal 054645c846 Do not call markDirty() for hidden widgets.
Fixed crash when resizing a scroll area with a native viewport
(typically a QGLWidget) causes the scroll bars to get hidden, while
there are still expose events in the queue for the scroll bar widget.

Task-number: QTBUG-26746
Change-Id: Ia77c8eb32a6730670333120af3f9a772c64807f1
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-06 03:21:38 +02:00
Samuel Rødal e033d59c94 Fixed popups getting blocked by modal windows.
In the case of a file dialog with a completer, the completion list view
is a popup that is not a transient child of the file dialog. Thus it
ends up getting its blockedByModal flag set due to the file dialog
window being a modal window.

To prevent this we make sure popups don't get blocked by modal windows,
as they were special cased and processed before modal windows in Qt 4.x.

Change-Id: Id5688cfb1534541cd1678b1e53d75e34a68f9b8e
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-06 03:21:36 +02:00
Martin Smith 35215a0f5f qdoc: No longer prints namespace qualifier twice
enum values in the Qt namespace were being printed
as. e.g.: Qt::Qt::AlignLeft. This was due to the
presence of a collision node that was not handled
properly.

Task nr: QTBUG-26628

Change-Id: I54adaba72410b2838f0922f181846bb7e76b61d4
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-08-06 01:31:19 +02:00
Marc Mutz 9f006a863a Logging: mark qEmergencyOut() noexcept
This function is called in OOM situations and when other exceptions
are still in flight, so it really shouldn't throw, indeed.

Change-Id: I50cda699ffd74f3710c3bafd15af356ff410bc47
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-06 01:31:14 +02:00
Frank Osterfeld 063e3a4da8 Fix intended assignment to customSet variable.
The naming suggests that this variable should be set to true here (instead of leaving the expression result unused). Also, the variable isn't written to anywhere else.

Change-Id: I8aae904f6e4456ce0bdd053ce89c2721168dccd3
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-06 01:31:04 +02:00
hjk 702788f4ad qdatetime: micro optimization in fmtDateTime
The function showed up in the profiler when doing
heavy logging involving timestamps in Qt Creator.

Change-Id: I81c4e22981a5de91df3da6a0f1df2a08552fa71a
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-08-05 07:25:43 +02:00
Sean Harmer 20b7f028cf XCB: Correction to OpenGL version check for profile support
Change-Id: I2f2bf877b1e2e628806f22fe66180b05090f4b3e
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-08-04 02:58:02 +02:00
Thiago Macieira 5566254948 ICU: lock the mutex before calling an Unlocked function
The QIcuCodec::defaultCodecUnlocked function is not thread-safe
because it calls codecForNameUnlocked. In turn, that one accesses and
even modifies a QHash stored in the QCoreGlobalData singleton, which
is what makes it non-threadsafe.

In order to call the Unlocked function, we need to lock the mutex
first.

Change-Id: I915570110229f4c0929986aa26731244317ef6ab
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-04 00:52:18 +02:00
Thiago Macieira 4e542d958a ICU: Mark which functions are threadsafe and which ones aren't
Mark the thread-safe functions with the \threadsafe doc marker. This
includes public API, which should be thread-safe anyway.

The thread-unsafe functions are marked "\nonreentrant" already. In
addition, I renamed the functions that must be called with locked
mutexes to Unlocked, following the convention in other libraries like
libdbus-1.

Change-Id: Ibd93d1266149767f546c8e82959b73c138008469
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-04 00:52:14 +02:00
Sean Harmer 0715e1e6c2 QNX: Ensure that m_requestedBufferSize is properly initialised
This solves a new corner case resulting from the recent refactoring of
QQnxWindow::setGeometry() that occurs when using a plain OpenGL backed
window in a single threaded environment and the user code calls
QOpenGLContext::makeCurrent(this) in the QWindow subclass ctor.

Change-Id: Iaf07fbff1cb2743f5706020a8d657a82cb9f2255
Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-08-03 18:48:56 +02:00
Sergio Ahumada 408af312bc Fix order of QT_END_NAMESPACE and QT_END_HEADER macros
Change-Id: I798311bdacaac341210626489410740c130f8724
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-03 15:23:05 +02:00
Andreas Holzammer 1e9d9e2044 Fix FullScreen for Windows CE
For Windows CE the taskbar needs to be hidden
manually.

Change-Id: Ife69a2a91457ba0c162e4e1be88f87ad22c61190
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-08-03 03:02:27 +02:00
Paul Olav Tvete 3d0af143ca Revert "Move QWindowSystemInterface out of qpa."
This reverts commit 784a877d3c.

Conflicts:

	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/testlib/qtestkeyboard.h
	src/testlib/qtestmouse.h
	src/testlib/qtesttouch.h

Change-Id: Iebfed179b3eb7f30e4c95edcae5a8ad6fd50330e
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-03 00:38:09 +02:00
Lars Knoll 328550ff00 Remove the obsolete scene argument for constructors of graphics items
The argument has been obsoleted and not documented since 2007. Get rid
of it now before Qt 5.0

Task-number: QTBUG-25089
Change-Id: I91a5508a5e1606f5b5c289501295c67be4abe6a0
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-08-03 00:37:59 +02:00
Jan-Arve Saether 8632b26285 Use glFlush() if swapBehavior is single-buffered
Otherwise, use swapBuffers()

This fixes an issue where swapbuffers() did not swap the
"back buffer" to the "front buffer" if we had single-buffered swap
behavior.
This was an issue on Windows 7 with an NVIDIA graphics card that
by default was using single-buffered mode.

Change-Id: If53f54146e4633305be3ad5158565752b6516b59
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-08-02 20:41:18 +02:00
Friedemann Kleint 0e3dcf3624 Fix default font for X11.
Qt 5 X11 applications currently have differing fonts since they
no longer read ~/.config/Trolltech.conf.
Set the default font value 4.8 would return for
XRender/FontConfig in the theme classes.

Change-Id: Ie0a77e6781a47a68fd67895821ab1773c25e0470
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: hjk <qthjk@ovi.com>
2012-08-02 20:38:54 +02:00
Gatis Paeglis e247e2810c Fix mimedata updating and signal emision issues in xcb clipboard.
Clipboard should reacquire the clipboard whenever the content or metadata
(e.g the list of supported targets) changes. Patch enables us to monitor
changes to the clipboard through help of XFixes extension.

Cleanup xlib xa_* naming conventions

Task-number: QTBUG-26709
Change-Id: I9d47766ad9859b5628b0358b1c47e8af8fecef73
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-08-02 20:38:54 +02:00
Gatis Paeglis 7781e95623 Fix badAtom issues introduced by behavior changes between Xlib and xcb.
In Xlib, the 'length' variable gets updated with the the actual number
of 8-bit, 16-bit, or 32-bit items stored in the returned data, but xcb
returns the actual number of bytes read through xcb_get_property_value_length,
therefore the logic of calculating offset was broken.

Task-number: QTBUG-26709
Change-Id: I04de3b5c5631cfaf9b3c2c3d4513be73c569f61f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-08-02 20:38:54 +02:00
Martin Smith e0b3965831 qdoc: Ignore property functions of obsolete properties
Property setter and getter functions are no longer
included in the output when the property itself has
been marked \obsolete.

Task nr: QTBUG-26425

Change-Id: Iac315445d1916467b12be03989bd4513a03a2397
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-02 20:38:54 +02:00
Laszlo Papp f11934af3d Fix a typo in the qdoc manual (QChra -> QChar)
Change-Id: I331765f42f8dd46bf312223754ade3c5d156e6dc
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-02 20:38:54 +02:00
Casper van Donderen 2264e606ac QDoc: Set HTML Doctype to XHTML 1.0 Transitional.
Previously QDoc HTML output was marked as XHTML 1.0 Strict, but did not pass validation.
As XHTML 1.0 Transitional the W3C validation passes.

Change-Id: Iced8c02b2602a82b94ee394e580bfb92023a517b
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-08-02 20:38:54 +02:00
Casper van Donderen 2117580d79 QDoc: Set the default output encoding for HTML to UTF-8.
Change-Id: Ic6d8efae967514e143f224aed4c761a4c01eb434
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-08-02 20:38:54 +02:00
Casper van Donderen 17a68ee65b QDoc: Add extra tags when no HTML.endheader is specified.
The default Qt template inserts </head><body> with some arguments in the header of the HTML document.
When you don't specify the HTML.endheader qdocconf variable those tags will not be generated and the
QTextBrowser-based view in Qt Assistant will not be able to render the documentation.

Change-Id: Ieee231f300e1dc71d6b6343771d2682b3de96d73
Reviewed-by: Pierre Rossi <pierre.rossi@nokia.com>
2012-08-02 20:38:54 +02:00
Paul Olav Tvete 5ac4a1304b Make tests compile without gui-private
Add new qt_handleXXX functions that forward to the QWindowSystemInterface
functions, and use those in the testlib inline functions. Remove use of
struct QWindowSystemInterface::TouchPoint from the testlib header files
(requiring some slight increase in ugliness in the two tests that use
that struct).

Also remove the qmake hack that adds private headers to all tests

Change-Id: Iec23537e55a44802f6e9cd463f7a0f82007c5250
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-08-02 17:25:37 +02:00
Oswald Buddenhagen 4c4ba15a40 string.h is needed for memcpy()
... which is used by some template code. apparently, the glibc on my
rather recent system removed some implicit includes again.

Change-Id: I9f85362e54a42cccc1e743f2b27bcdb6a90162e3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-02 16:50:42 +02:00
Laszlo Agocs 1fd85093a4 Move QPlatformWindowPrivate into its own header
Most other qplatform* classes have the same setup and more
importantly this allows QPlatformWindow subclasses to utilize
the d-pointer.

Change-Id: I52afeaaf35bba8ef42d59ff3107f7d7bcf931e5e
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-08-02 16:37:34 +02:00
Simon A. Eugster 03bb0b0fa0 Mention setFont() in QPainter::drawText() functions
Change-Id: Id0d06d27f3aeb6a6e7e1a415da78591ae5eae91c
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-01 20:20:45 +02:00
Stephen Kelly db297113d0 Fix some typos in static assert message.
Change-Id: I1abc79d86a4b101e6f32d37a58ac3c7d8cc16237
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-01 18:12:34 +02:00
Martin Petersson b8453b6fe3 QtNetwork: Handle FD_CLOSE on Windows
We need to handle FD_CLOSE separately on Windows as this will be sent
only once. When we get FD_CLOSE we need to check if there is more data
available for reading. It there is this might indicate that there is
another FD_READ that we need to handle after the FD_CLOSE. So in this
case we will manually create another close event.

Task-number: QTBUG-19409
Task-number: QTBUG-25386
Change-Id: Ie19906bc3f64fb6a85a508a5ab12caac5d70ccdb
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-08-01 18:12:34 +02:00
Martin Smith e178b49522 qdoc: Added support for modularized example doc
qdoc now searches for .qdoc files in the directories
listed in the exampledirs variable. These files are
added to the list of sources to be parsed.

Task nr: QTBUG-26708

Change-Id: I6dfd7cd7b41e0bdf847f88b6d61ac0272902d4e1
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-01 18:12:34 +02:00
Jeremy Katz 864a843f98 fix a few qdoc command typos
Change-Id: I5eb3a6d2bb7939f001f1fcb836660dd46a47c350
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-01 15:37:46 +02:00
Jeremy Katz c3189a0a22 change \img to \image in docs
\img was a macro defined in macros.qdocconf. This collection
of macros is being phased out. Use the full command instead.

Change-Id: Ia55212f87bb46349d61359d40568e0aa33882596
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-01 15:37:46 +02:00
Jeremy Katz a68577e7e0 replace \key and \gui qdoc commands with \uicontrol
Change-Id: I0753305d4fe1ea20417f451766101da1247dfeeb
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-01 15:37:46 +02:00
Martin Smith d61c356516 qdoc: Removed useless qdoc warnings
qdoc was printing warning messages when a QML type
was not given a minor version number in its
\inqmlmodule command. The minor version number is
not used for anything, so the warning messages are
no longer printed.

Change-Id: I5586b4d860fcc8e392de3d388c3327ed0029e266
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-01 15:37:46 +02:00
Sean Harmer ee21024863 OpenGL: Fix typo in extension name
Change-Id: Ibb65b832290085bd565388982594eb889e950aaa
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-08-01 15:37:46 +02:00
Andreas Holzammer 262f53210f Fix crash in uic
Compiling Qt5 uic with Microsoft Visual Studio 2008
with SP1 will lead into a assertion in the copy
constructor of qstring.

This is apparently a compiler Bug.

Change-Id: Ia3353434d00b2e87800b937d891eabef86293751
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-01 15:37:46 +02:00
Alexandros Dermenakis edc6fce47f Added default argument for color profile to QImage constructors.
Added default argument for color profile to QImage constructor
initializing QImages from pixel maps. This is to be used in future Qt
versions where color profile support will be added.

Change-Id: I815c3db4ef52f8383b48dad844b5f188aa3a3eee
Reviewed-by: Yoann Lopes <yoann.lopes@nokia.com>
2012-08-01 15:37:46 +02:00
Sean Harmer 19d1eb06b3 QNX: Do not send geometry change events to Qt too early
We explicitly do not send geometry change events to Qt from QQnxWindow
from the constructor. This prevents us from ending up in resizeEvent()
reimplementations from the QWindow ctor.

Change-Id: I045b35aa7eb23890772fe131c3d19314252f6a5a
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-08-01 15:37:46 +02:00
Sean Harmer b23c37358d QNX: Ensure that the QQnxWindow has a valid size for EGL surfaces
If QWindow::create() gets called before resize() or setGeometry() then
the rect argument passed into QQnxWindow::setGeometry() by the ctor
is null.

This could potentially result in 0 sized buffers and EGL surface
creation being attempted. We bail out in this case and tell
user how to fix their application.

Change-Id: Ia709dba617fa266bd66b61409bdb1c980acfb1a2
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-08-01 15:37:46 +02:00
Sean Harmer 89a1a943ce QNX: Remove dependency on QtWidgets from QNX QPA plugin
Change-Id: I52027752630beee81a97644983dbccf973c0c2c2
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-08-01 15:37:46 +02:00
Kent Hansen 3a2bc9530e statemachine: Make states exit order spec-compliant
The SCXML spec states that entry order should be equivalent to
"document order" and exit order should be "reverse document order".
Since QStateMachine uses child order for the entry order, the exit
order should be reverse child order.

Change-Id: Ia7b05fdd5c9261ccf202f64f8d23f5c88b20a8c3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-08-01 15:37:46 +02:00
Thiago Macieira 0838ac541d Make sure that the parsing mode reaches QUrlPrivate::setHost
Ensure that the parsing mode is cascaded down from setAuthority and
setUrl so that the hostname parsing does not attempt to decode
percent-encoded hostnames when it shouldn't.

Take the opportunity to also remove the "Boolean Trap" from
QUrlPrivate::setHost.

Change-Id: Ia64754c4a4900182700b7af1382aea8410abc7e9
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-01 13:04:21 +02:00
Thiago Macieira e1038794b1 Make QUrl::setScheme only parse in strict mode (no decoding)
The URI RFC defines schemes as containing only a very restricted set
of characters, none of which require encoding, so don't even
try. Testing this behaviour in some web browsers indicate that they do
not accept percent-encoded schemes either.

Change-Id: I692dd20e1aac7e8a1bcb276cb5113b5802393d38
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-01 13:04:18 +02:00
Thiago Macieira f893d9ec41 Fix QUrl support for empty usernames and passwords
If the password is empty (but present), the userinfo component of the
URL should end in a colon (":"). QUrl already supported that and it
was tested (case "password-empty").

If the username is *also* empty but present, the userinfo component is
just the colon (":"). Fix support for that case by checking if we
stored the presence flag instead of checking the size of the
component.

Change-Id: Ie224493a997dbf76b2e44dd6d55fd9674ac83c1c
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-01 13:04:15 +02:00
Thiago Macieira 4d1f0ccbf3 Fix handling of encoded NULs (%00) in QUrl::fromPercentEncoding
QString::fromUtf8, without an explicit size, (currently) defaults to
stopping at the first NUL. That means we need to pass an explicit
size.

Also take the opportunity to test that QUrl::toPercentEncoding also
works with the same data.

Change-Id: I79362d67afda624b01ca07b0315b611c4aa3fdda
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: David Faure <faure@kde.org>
2012-08-01 13:04:12 +02:00
Joerg Bornemann a992a12bec don't change a widget's active state in QWindowsWindow::setWindowState
QWindow::setWindowState is not supposed to set the window active.
The method requestActivateWindow() should be used for that.

When switching from and to fullscreen mode we're always passing
SWP_NOACTIVATE to SetWindowPos to not change the activation state
of the window. This is inverse to the old behaviour, which did not
have an effect.

Change-Id: I339337935cdad76b3ef252202e92177f37543038
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-01 02:26:52 +02:00
Christian Kamm 30ec535cb6 Doc: QVarLengthArray::length is new in 5.0
Change-Id: I796e67d677309460d79a7a64a6890dfbcfbace69
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-01 02:25:42 +02:00
Michael Goddard 019b97fc4f Add a .prf file for SIMD qmake variables.
So you can get AVX/NEON etc source compiled by assigning to the
corresponding variable (e.g. AVX_SOURCES).

This was previously used in just the gui module, but other
external modules might like it too.

Change-Id: I51aa64760c469c7dc4c71e6f089c2ddef4f509c5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-08-01 02:25:26 +02:00
Laszlo Papp 1610b6df06 Use QtCore instead of QtGui for the standardpaths comments to be correct
Change-Id: I98004fed565ac9653947ec70a3197b0372abcf2b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: David Faure <faure@kde.org>
2012-08-01 00:14:41 +02:00
Harald Fernengel 8fb040b6c0 Lazy initialize library paths
For a lot of command line tools, library loading is not required, so
don't waste a lot of time computing them. According to callgrind, this
makes the QCoreApplication constructor factor 6 faster, and also removes
a lot of stat() calls and other file system access.

Change-Id: I0211f5303712fa0dcfc4168cce7025283c63c9d1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-01 00:14:41 +02:00
Kent Hansen 39df773eb5 Avoid qobject_cast
This is slightly faster, and also avoids accessing the object's meta
object that would cause any lazily created meta objects (e.g., for
QML) from being built.

This is just a port of commit a5972f8ec3
(which fixed QGuiApplication, but not QApplication).

Change-Id: I0d5080495aa4fd4486db297968c4d06bbfacf89b
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-08-01 00:14:41 +02:00
Friedemann Kleint b5ad1fcd08 Fix compilation: Move qHash(const T &t, uint seed) up.
It needs to be visible from
qHash(const QPair<T1, T2> &key, uint seed).

Change-Id: Ibb63ce6da1e655bfb841c5e580e184ef66c5b766
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-08-01 00:14:41 +02:00
Lars Knoll 47c48ea87a Fix reloading of plugins
Unloading and reloading a plugin didn't work correctly,
because we didn't reset instance to 0 on unload.

Task-number: QTBUG-26098
Change-Id: Ic3e4497f359b1ca455be949dce9cafa9d67d8039
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-01 00:14:41 +02:00
Lars Knoll 3e3790b2c7 Fix some syncqt warnings.
Change-Id: I6f432ee991f4bde217fa27d4004ef318f1d480e0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-08-01 00:14:41 +02:00
Andreas Holzammer 8f1fd5ecc8 Fix showFullScreen for QWindow
If the setWindowState is called in a early stage,
where the window is not yet shown, the fullscreen
flag is cached in the QWindow. Then in the call to
setVisible(true) the window gets generated, but the
fullscreen is not handled there. So set the state
while window is generated.

Change-Id: I0ea53ed8a2465da6a9973d84fb4579381543e89b
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-31 20:26:31 +02:00
Joerg Bornemann f6169ae4b1 fix QWidget::activateWindow for child widgets
For child widgets we must use the windowHandle of the toplevel widget.

Change-Id: If7bad8ed4bba694806a2c8b77bae3d25cc200b8b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-31 20:26:08 +02:00
Friedemann Kleint 5b49793d80 Implement synchronous WS events by flushing.
Previously synchronous window system events were
implemented by bypassing the queue and processing
the event immediately. This is not ideal since the
event order is not preserved - there might be "happened
before" events waiting in the queue.

Add QWindowSystemInterface::flushWindowSystemEvents
and change all handleSynchronous* to 1) queue the
event 2) call flushWindowSystemEvents.

flushWindowSystemEvents is almost identical to the
already existing sendWindowSystemEvents with the
exception that it does not call QApp::sendPostedEvents.
Move the common implementation to a new private function.

Task-number: QTBUG-20778

Change-Id: Ie98a83875bc0a14e335e36bed0dd9e0ed4a1dea0
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-31 20:25:36 +02:00
Sergio Ahumada 0e904279bd Adding missing QT_BEGIN_HEADER/QT_END_HEADER
Change-Id: I1144497ec8376ec41c714b7a55c05637b6feee66
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-07-31 20:05:01 +02:00
Eike Ziller 67d082223c Mac: Don't crash if language preferences can't be retrieved.
That can happen when e.g. running an application with sudo.

Task-number: QTBUG-26547
Change-Id: Ib16ef7798ebcd1c9b8d661dd2e3ce3aadc393489
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
2012-07-31 11:58:08 +02:00
Frederik Gladhorn 05815679d8 Accessibility: fix updates for models with rootIndex set.
The accessible table/list implementation would ignore
when a root index is set, resulting in trying to use row/column
for the top level index, leading to accessing invalid indexes.

(cherry picked from commit def2ee829435c705055733a0f99c0ca44a012c50)

Conflicts:

	src/plugins/accessible/widgets/itemviews.cpp

Change-Id: Ic2745ab3e262ccee2d43e0d532e165d2958f519e
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-07-31 11:53:35 +02:00
Joerg Bornemann a03b14f685 build host tools in release mode again
CONFIG does not contain build_all anymore,
thus we need to check QT_CONFIG in bootstrap.pr{i,o}.

Change-Id: Ia505fa101adc49f185908ca575d3211caed612db
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-31 11:51:55 +02:00
Peter Kümmel 952788d64b add configure options for debug/release OpenSSL
msvc cannot use the same library for debug and release builds
if openssl libraries are linked statically into the network library.

Change-Id: Ic27ede2d9531b94aff4c50c1699947ce72caf286
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-31 11:47:39 +02:00
Lars Knoll a806c6a8b2 Search the include paths for json files containing plugin info
This fixes shadow builds with autogenerated .json files as
e.g. used by Qt Creator.

Change-Id: Ibb783b05d97d996100da4b0dca859fa3f310dc83
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-31 11:13:43 +02:00
Friedemann Kleint 7b655eef48 qclass_lib_map.h: Fix include of the QDeclarativeView widget.
Task-number: QTBUG-25196

Change-Id: If25c4df29297435b159706257d9f37a9ef2f3d7a
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
2012-07-31 11:13:28 +02:00
Lars Knoll 4970fa366b Align the CP949 codec name with ICU
It's name is windows-949 according to ICU. Keep
CP949 as an alias for compatibility with Qt 4.

Change-Id: I115ba2593da6f7b47e25136c3fadb19c7f798ff0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-31 11:13:18 +02:00
Lars Knoll 9d0b1fc0bc Small doc fixes about the list of supported codecs.
Change-Id: I98b8ec9d5de9e69f1bb6187b4d820d61f7ce03e5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-31 11:13:05 +02:00
Lars Knoll 8a883d972d Do not preload any codecs anymore when using ICU
When using ICU we can now avoid pre loading any codecs
at startup. Instead QTextCodecs will always be created
lazily when first asked for.

Change-Id: Ic668f2824700896d2eca7d0de54f978404826163
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-31 11:12:58 +02:00
Lars Knoll bb3637d33c Add a factory method to QIsciiCodec and fix the names
Make the names all lower case to be in line with what ICU
reports. Add a factory method to create the codecs according
to their name.

Change-Id: Ia3dddaa7701a0645d9d8fbcb52f1f8d58f79cf98
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-31 11:12:51 +02:00
Lars Knoll b23f048cf9 Use ICU instead of iconv/windows codecs for the locale
With ICU there's no need to use the windows locale or iconv
codecs anymore as locale codecs.

Change-Id: I50c94a97ed6acbf4c6f05b2a88593a57ebfa8342
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-31 11:12:44 +02:00
Lars Knoll 34721c4d36 Make codecForLocale atomic
Change-Id: I8017b1c2aa1df8d613e83919a945fd5f320713d6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-31 11:12:35 +02:00
Lars Knoll 88d2e92b39 ICU code page conversion support
Use ICU to do code page conversion instead of the
builtin text codecs. With this QTextCodec simply
becomes a wrapper around ICU's ucnv_* methods.

We only keep our own codecs for UTF-*, ISO-8859-1,
ISO-8859-15 for performance reasons, and for TSCII
and iscii-* because they aren't supported by ICU.

Change-Id: I4fc49eba55cf772b9772c6dac606a47a44346a60
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-31 11:12:28 +02:00
Lars Knoll 865a9465f3 Rename some codecs to be in line with ICU
Change-Id: If523d2a12ef64c79e3860da1f430f128d24ff600
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-31 11:12:11 +02:00
Lars Knoll 39bdbc2cb5 Disable iconv on utf-8 based platforms
There's no need to use iconv on Mac,
iOS, Android or QNX, as all these
platforms are fully utf-8 based.

Change-Id: I2a03c8dea72ad91f6ec83da0a838de20e46babef
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-31 11:12:07 +02:00
Lars Knoll 46e3aa2908 Lazily initialize iconv in the iconv codec
Avoid dlopen'ing libiconv and initializing
it's members until the codec gets used for
the first time. This avoids some memory
and startup time overhead in case we can
use the utf8 codec instead of iconv.

It also removes a circular dependency
between codec initialization during app
startup.

Change-Id: I119c010c288dc59ab32279d8a213ae1f4347cace
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-31 11:12:00 +02:00
Lars Knoll d4510d0d31 Use utf-8 as the locale codec where it makes sense
Use utf8 as the fallback codec in case we can't determine
something else instead of latin1.
Also use utf8 for Mac, iOS, Android and QNX.

Change-Id: I15dc85d2406b1ebdfacff25f45f8b6854c52b97e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-31 11:11:54 +02:00
Lars Knoll e41129c859 Remove encoding detection according to LANG
This code is left over from the 90's, and should not
get used anymore. In all relevant cases we will use UTF-8
or iconv nowadays.

Change-Id: Ie3776f671de33f782fa77f6359bf6e105bd9c1b8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-31 11:11:48 +02:00
Lars Knoll 5af9ecafd9 Move the text codec list to qcoreglobaldata.
This removes some global statics in QTextCodec and
makes the code better to maintain in the longer term.

Remove QT_NO_THREAD defines around mutexes as this
isn't required in Qt 5 anymore.

Change-Id: I15ede75f53b16f134f4053f3188c4b47e86fcd8a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-31 11:11:43 +02:00
Martin Petersson 4d38a3b2da QtNetwork: Better detection of connection failures on Windows
If the error code from WSAConnect is WSAEWOULDBLOCK, then the
operation proceeds but the outcome is not known at that time. We then
check SO_ERROR's value to detect errors. But if that call returns 0
this could indicate that the value is still not know. In this case
we try one more time to increase the chance of getting the correct
value.

This fixed the tst_QNetworkReply::getFromUnreachableIp auto test
on Windows.

Change-Id: I25008aca062b2f823e3d93ebb0ae456d7e4a6ecc
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-07-30 10:43:50 +02:00
Marc Mutz ada38c75cc QUrl: document that setIdnWhitelist isn't thread-safe
This is a forward-port of 6b10fc91 from Qt 4.

Change-Id: I58878bf24e4f1b50ebfd0457c37eef58696f4a4c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-30 10:43:50 +02:00
Martin Smith d294ac8d68 qdoc: Added safety checks to findUnambiguousTarget()
This is a blind attempt to fix QTBUG-26615. I can't
reproduce the crash on OSX.

Task nr: QTBUG-26615

Change-Id: Ifc6b68b7f302b9cd7d02129be8ae56841a35e5de
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-07-30 10:43:50 +02:00
Jeremy Katz ff1ea44b67 fix QEventLoop qdoc errors
Change-Id: I17bb720d539a7ccf5d9a3b20853897ff052fc8a6
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-30 08:45:15 +02:00
Kevin Krammer 1772168c00 QNX: Reduce dependency on QtWidgets
Use QObject::inherits() to check if the current input focus object is
a numerical input instead of trying to cast.

Change-Id: Ie476fba3d2f9f20a1ce0328043430cb6a96a8a3d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-07-29 14:28:14 +02:00
Laszlo Agocs 05c07c7636 Send the native scancode in evdevkeyboard
Until now the native scancode was not specified which meant
when qwindow-compositor (or any other Qt-based compositor using
the standard Wayland protocol, i.e. sendKeyPress() and such) tried
to send the native scancode over to the clients, all it got was a
code of 0.

This fixes keyboard input when running qwindow-compositor on top
of kms and EvdevKeyboard.

Change-Id: I5d9a882f249634fb7584900b5f298f794befee3b
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-07-28 15:23:07 +02:00
Mitch Curtis 10cd17d0d3 Document QEvent::EnterEditFocus and QEvent::LeaveEditFocus properly.
These enums are only accessible if QT_KEYPAD_NAVIGATION is defined.

Task-number: QTBUG-15631
Change-Id: Ifa826ac8f2bf28225572e0c664f18ffa5e78c302
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-28 04:32:07 +02:00
Jeremy Katz e2f40da257 removed duplicated docs in android qsharedmemory and systemsemaphore
Qdoc sees all source and header files, rather than the subset selected
by qmake. This leads to qdoc errors when the same functions are
documented in multiple implementations.

In the cases fixed here, all documentation was duplicated, so no
information was lost.

Change-Id: Id7f8e2e617862a3778d0b05b38d8811aad456ac5
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-07-28 04:30:38 +02:00
Stephen Kelly 339dc331fd Specialize QTypeInfo for QUrlTwoFlags to mark it PRIMITIVE.
QTypeInfoMerger combines the typeinfos for the (PRIMITIVE) flag arguments.

Change-Id: I5abf00489491d099f2bf7ba25c191a771a383d78
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-07-28 04:30:19 +02:00
Stephen Kelly bb0ef1cc5b Mark the QFlag and QIncompatibleFlag as primitive.
Change-Id: I7dab4d029e7840fe4778a750a8dd7367675d7a27
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-28 04:29:48 +02:00
David Faure 8cf7cf0cb9 QDebug: Add getter/setter for auto-insert-spaces.
This is useful for inserting a string without space-handling, given that
dbg.nospace() followed by dbg.space() inserts a space.

It's also useful for QDebug operators for custom types, so that they
can disable space handling and then restore to whatever it was before
(rather than forcing it to space() mode).

Change-Id: I9d72e9ffbcbc581ed093168752c29af924405b33
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-27 22:05:26 +02:00
David Faure 54e3ce1705 QDebug: adjust documentation of space(), nospace() and maybeSpace()
Reality is that they control a "current mode" in the stream, not a
"bool that remembers if the last character was a space".

Change-Id: Ic907c34bcb458039b73ddff48021e19f0c24c78c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-27 22:04:55 +02:00
Mitch Curtis 8e49def48e Correct method name referred to in QFont's detailed description.
The detailed description of the QFont class reference contains
the wrong method name (and link) setPointSizeFloat().
This change replaces it with the correct name: setPointSizeF().

Task-number: QTBUG-15536
Change-Id: Ieb2e398b8e1d0b637a6bac16a3ec48522c5dddc1
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-07-27 18:01:25 +02:00
Martin Smith be46199c62 qdoc: Updated qdoc manual and qdoc guide
These documents now include the \qmltype and
\instantiates commands, and the \qmlclass command
is deprecated.

Task nr: QTBUG-26648

Change-Id: I62da273be51609e651e33b9088e1667e4c6c1e76
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-07-27 17:03:27 +02:00
Volker Krause ef403ba46a Fix crash in QVariant::canConvert().
When containing a QObject (or sub-class) pointer and trying to convert
to a QObject pointer canConvert() did dereference the pointer without
checking for it being null.

Change-Id: Ie274e54f2f817f2b6c5df64504f8af6359b8f38d
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-27 12:23:43 +02:00
Jeremy Katz ddaee978d1 fix QVariant qdoc error - mark const QVariant::data_ptr() internal
Change-Id: I1df93780f271ce06c3aa10c4bdcc1c2a43097b72
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-27 09:21:07 +02:00
Jeremy Katz 8e960d68a9 Fix QUrlQuery qdoc errors
Add missing documentation for toString() and operator!=
Mark data_ptr() and associated typedef internal
and some qdoc tag usage issues

Change-Id: I0ad5a2c767fb742d9a86ae259c0c11a0f5db64b4
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-27 09:20:57 +02:00
Jędrzej Nowacki 9b95ed1fe3 Introduce QTypeInfoMerger.
QTypeInfoMerger class was created to allow "inheriting" QTypeInfo
traits. The class implementation was based on the QTypeInfo<QPair<>>
specialization, therefore the specialization was refactored to
use the new class.

Change-Id: I4ff3e5eac1d55da086dad84274cce2b2c0a721be
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-27 03:27:27 +02:00
Stephen Kelly 9784dd8d06 Implement implicit constructors for built-in classes.
Change-Id: I6b0b104bc1da3252d014615c50b81830de42e722
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-07-27 03:27:23 +02:00
Mitch Curtis 17c74529e4 Describe an example usage of stretch in QSizePolicy documentation.
Martin Pejcoch suggested QSizePolicy's setVerticalStretch and
setHorizontalStretch functions be better documented. This change
gives sample usages.

Task-number: QTBUG-18373
Change-Id: I54da8605f5e9e5f405c145b78865402baf78eee7
Reviewed-by: Martin Pejcoch <martin.pejcoch@nokia.com>
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-07-27 03:27:16 +02:00
Morten Johan Sorvig d4a3b41be4 Add QCocoaAutoReleasePool to QCocoaMenu::setText
Change-Id: Ia47d79d400c6c4dcd7a49595f05ddafb5a256fad
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-07-27 03:27:10 +02:00
Jeremy Katz 4cc7b71b31 fix QMimeDatabase qdoc errors
Some of the \sa lines were missing () after function names.
Document MatchMode and the deprecated mimeTypeForNameAndData()

Change-Id: I468b9741908beb7be5723a8bb927e5418fc1c344
Reviewed-by: David Faure <faure@kde.org>
2012-07-27 03:27:07 +02:00
Marc Mutz f408dfd033 QtNetwork: unbreak QT_NO_SSL build
The Q_DECLARE_METATYPE()s were outside of #ifndef QT_NO_SSL for classes
that are defined inside.

Expand the #ifndef block.

Change-Id: I45b73a24032fb2a79fd80d91282b782daa8a8f68
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2012-07-26 23:08:04 +02:00
Jeremy Katz 51742cd332 Fix several QUrl qdoc errors
Change-Id: I2b89751ed2ec54f3b992c5fc4b39539d521c3404
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-26 20:18:47 +02:00
Andrew den Exter 281d4995ec Fix position of mouse events generated from touch events.
In touch event terminology the global position is the screenPos,
scenePos is the windowPos.

Fixes a tst_qdeclarativepincharea test failure in qtquick1.

Change-Id: Ie98fe12be8cbedc9b019913b066e7c4bce75278d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
2012-07-26 15:13:24 +02:00
Friedemann Kleint a0373d8d36 Fix MSVC 64bit warnings about truncation from size_t to int.
Change-Id: I9aea91aeb9f71817e9cc612d41351dbc98056500
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-07-26 15:13:09 +02:00
Marc Mutz e083d25395 QMetaTypeId2::IsBuiltIn: (new) template meta-function to check for built-in types
This allows to check whether QMetaTypeId2::MetaType exists, and can help
turn run-time into compile-time expressions, even without constexpr support,
or in situations where constexpr can't be used (because you can't overload
on it). This was designed for the QMetaType::registerConversion feature,
but it's much more widely applicable.

Change-Id: Iafa04add04bcb531b3f7fe3e751c7e91ee6a3bc0
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-07-26 15:01:04 +02:00
Marc Mutz f694b9c83f QFileInfo: remove synchronisation macro
Staged after all other modules have removed their
Q_DECLARE_METATYPE(QFileInfo) copies.

Change-Id: I9ac42fcc5f333dd6e8b92c8755610f88cb7267a0
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-26 14:59:40 +02:00
Lars Knoll b31501020f Fixup the plugin documentation
Move the plugin howto from qtdoc to corelib where
it belongs. Fix the snippets and remove all
remaining references to Q_EXPORT_PLUGIN

Task-number: QTBUG-26237
Change-Id: I43dce2ffa42193b7a992fa1a0f2fcb2f633037b2
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-26 14:25:49 +02:00
Martin Smith 3658eedc97 qdoc: Changed \qmlclass to \qmltype, added \instantiates
The \qmlclass qdoc command is now deprecated. Use \qmltype instead.
\qmlclass had two arguments, the QML type name and, if the QML type
was elemental, the name of the C++ class that the QML element
instantiates. The \qmltype command has only one argument, the QML type
name.

If the QML type is elemental, then the \qmltype command should be
followed by a \instantiates context command in the same qdoc
comment. e.g.:

\qmltype Item
\instantiates QDeclarativeItem

When the developer does not include the \instantiates command for an
elemental QML type, qdoc will no longer be able to detect that the C++
class name is missing, and qdoc will no longer be able to detect when
the name specified for a \qmlproperty of the elemental QML type has
the wrong name.

Task nr: QTBUG-26648

Change-Id: Ia60872a35113a6f615bfc751ce1e9db6279dfb8e
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-26 14:24:40 +02:00
Casper van Donderen 353069f974 Revert "QDoc: Allow '0' to be used as 2nd arg for \qmlclass."
This reverts commit 50dfd15dcc.
The change is not necessary anymore, since a new solution using
\instantiates in in the works, having two ways to do exactly the same
thing is not necessary.

Change-Id: I6e139d760372fc6177023c470850418b2385fccd
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-07-26 14:24:34 +02:00
Frederik Schwarzer 28ae05e2f9 Fix some typos.
Change-Id: I3c3c96fbbc19e2a69ac2f22618f15f5262718e50
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-26 14:24:22 +02:00
Marc Mutz 79b742b7e0 QtNetwork: use nullary version of qRegisterMetaType<T>("T")
Using the nullary version has the advantage that multiple calls
during a program run are much more efficient, since an inlined
atomic is used to store the result. It also ensures that
Q_DECLARE_METATYPE(T) has been used, whereas qRegisterMetaType<T>("T")
will happily register anything. So I've added the macro where it
was missing, or moved it to a central place when it existed
hidden.

In tst_qnetworkreply, this became a bit tricky, because a private
header is conditionally included, so moved the Q_DECLARE_METATYPE()
into a conditional section, too.

Change-Id: I71484523e4277f4697b7d4b2ddc3505375162727
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-25 19:32:41 +02:00
Ali Akhtarzada 7d110111da Added note to QTransform::isRotating
Rotation of 180 or 360 is treated as a scaling transform

Task-number: QTCREATORBUG-7651

Change-Id: I44077de0a4a90a87d2d9e8499c1920da1ed066c9
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-25 19:32:41 +02:00
Stephen Kelly bdab182bd0 Make the operator| for QUrl with QIncompatibleFlag constexpr.
Change-Id: I7780af7ef0d5e191e2715c40bf0ffbb6d376f1a2
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-25 17:32:21 +02:00
Stephen Kelly 358c12d928 De-inline QItemEditorCreatorBase destructor.
Virtual destructors on public exported API should not be inline.

Change-Id: I05bff0412ac97d2d8bd3cf8944f4fff2cb619f54
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-07-25 17:32:21 +02:00
Gatis Paeglis d76320abcf Remove Qt5 to-do remark
Removing Qt5 to-do remark since GraphicsView is considered done and this
change is not performance critical.

Task-number: QTBUG-25089
Change-Id: Ib6e59290a628d27d7e623d221e7100f2e11d13f9
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-07-25 17:32:21 +02:00
Marc Mutz 0e8279b7bc QObject: add a macro for conveniently setting the object name
This is a simplified port of KDTools' KDAB_SET_OBJECT_NAME.
It simply assigns the variable name as the objectName of
a QObject, uic-style. It uses a small helper function so
that it works on references as well as pointer variables.

  QLabel label;
  QLabel *pLabel = new QLabel();
  Q_SET_OBJECT_NAME(label);
  Q_SET_OBJECT_NAME(pLabel);

Change-Id: I25fec0c90f33249a3ea5d2dd622ab708019fd101
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-07-25 14:57:08 +02:00
Laszlo Agocs 06e8682cb7 Disable tty keyboard in kms
Set QT_KMS_TTYKBD=1 to prevent this and keep vt switching, ctrl-c,
input appearing on the tty, etc. working.

Change-Id: I0071685205ae9e02536dcb71f6fef6495c48f8fb
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-07-25 14:50:35 +02:00
Laszlo Agocs 8cbd591c2b Fix keyboard input in kms
The window was not made active.

Change-Id: I20c323201be71fa4deb758e4a8fc32297d6faf0c
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-07-25 14:50:26 +02:00
Laszlo Agocs 770175045a Update only dirty areas in kms backingstore
Do not upload the entire (typically fullscreen) image
all the time.

Taken from eglfs' backingstore implementation.

Change-Id: I53db5cf54577ebea715d6cbd7215b9d2154e8960
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-07-25 14:50:16 +02:00
Stephen Kelly 189a5d8af1 Create IMPORTED CMake targets for executables.
Although IMPORTED executables are not extra special, this is more future-proof
in terms of both future CMake features and future our needs - it is possible
that we would want to add a property to an executable at TARGET scope, which
would not be possible if it is just a path.

Change-Id: I649c601e004b21603c5fa97de0b7c397813ed68d
Reviewed-by: Brad King <brad.king@kitware.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-25 13:59:15 +02:00
Casper van Donderen 95191658d0 QDoc: Introduce a setting to include index nodes in QHP.
Change-Id: I5d35961241300f509b8a9d8e3cf980fabc10cfab
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-07-25 13:50:58 +02:00
Mitch Curtis 11f8ad945c Add ISO 8601 specification link to corelib's external-resources file.
Used by qtbase and qtpim, but only needs to be in qtbase.

Change-Id: I284a8b00ff8eced81057b636ead2b6107eb1fa0c
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-25 13:33:47 +02:00
Marc Mutz 5fd8dd19ea QtWidgets: use nullary version of qRegisterMetaType<T>("T")
Using qRegisterMetaType<T>() has the advantage that multiple calls
during a program run are much more efficient, since an inlined
atomic is used to store the result. It also ensures that
Q_DECLARE_METATYPE(T) has been used, whereas qRegisterMetaType<T>("T")
will happily register anything.

Had to add Q_DECLARE_METATYPE to QFileInfo, for
QList<QPair<QString,QFileInfo>> of QFileSystemModel to work with
the partial specialisations of Q_DECLARE_METATYPE for QList, QPair.

In order to synchronize this change with other modules that did
their own Q_DECLARE_METATYPE(QFileInfo), a sync macro is defined
that can be tested in other modules, and will later be removed again.

Change-Id: I3004664e07e64cd885d5a03a57ff4e4379804aec
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-25 13:33:05 +02:00
David Faure 790aca0ea1 Add QSignalSpy::wait() method.
Change-Id: I1f3b49e3dee19bf0b1d2933c6e6ad7972186e0d0
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-07-25 13:31:14 +02:00
Friedemann Kleint 4677cf3d01 Deprecate the qWaitForWindowShown(QWindow *) method.
While the qWaitForWindowShown(QWidget *) is inherited
from Qt 4.8, the qWaitForWindowShown(QWindow *) was introduced
in Qt 5. As it is identical to qWaitForWindowExposed()
and removed already, it can be deprecated in Qt 5.

Remove its usages in qtbase.

Change-Id: I28788d120ad687a49f02b2b44de6b38a2832fe5c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-07-25 07:24:49 +02:00
Martin Smith a4cd6ef25d qdoc: Fixed incorrect href attribute values in qdoc
There were two fileBase() functions, but only one
was correct. The wrong one was being called in some
cases. Now there is only one fileBase() function,
which is always called.

Task nr: QTBUG-26591

Change-Id: I2c40e2152a8c7ad1bb9db256ecf1367148f0e7f6
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-25 01:00:41 +02:00
Ali Akhtarzada 48d439833a Fix typo in QMdiArea docs
Task-number: QTBUG-26498
Change-Id: I2c7b7a67c732eb58f1ffc2a137a675ac63dc6597
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-07-25 00:59:53 +02:00
Mitch Curtis 96c5d73eca Document emission of commitDataRequest() signal in QApplication doc.
It is currently not clear that QApplication::commitData() emits
the commitDataRequest() signal. Users should know this if they plan
to override the default implementation.

Task-number: QTBUG-23117
Change-Id: I418af4b83795d53c9d86a2ac620c0f7c5bb9ada3
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-07-25 00:59:46 +02:00
Mitch Curtis b7ab608bd2 Correct reference to nonexistent Qt::QA_Window flag in documenation.
Should be Qt::Window.

Task-number: QTBUG-22725
Change-Id: I150e77dec9c93035e01cf2e6be68a54bb4b122b2
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-07-25 00:59:43 +02:00
Uli Schlachter cd398431e3 QXcbWindow::setMask(): Check for SHAPE extension
If the SHAPE extension is not available and we try to use it, the xcb connection
will shut down and go into an error state. This is bad because there would be no
error message that would give a hint on what went wrong.

Change-Id: I1a6734bd146ca179a990b6ce896813bf76007b66
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-07-25 00:59:35 +02:00
Uli Schlachter 597b99305e Reimplement QXcbWindow::setMask() with xcb
This functionality does not need libXext. The bindings for the shape extension
from libxcb-shape is enough and is available without Xlib.

Change-Id: I9f1927024c64df00ace1666998c6c6deda2ef782
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-25 00:59:32 +02:00
Mitch Curtis 958e4e6bec Fix error in sample code on the Layout Management page.
Incorrect return type in a sample class (CardLayout) function.
Although the function is never called, the return type should be int,
not QLayoutItem*.

Task-number: QTBUG-25602
Change-Id: I05ebd07a35b6db62b8c12255186f9d9487da79f6
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-07-25 00:58:20 +02:00
Mitch Curtis 044645ead6 Remove references to nonexistent QLocale::setDefaultLocale() in docs.
Should be QLocale::setDefault().

Task-number: QTBUG-23210
Change-Id: I0f5e6cc431f568c9b8c4be1411b7b47835304d0b
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-07-25 00:48:43 +02:00
Marc Mutz 15f041e6d5 QtOpenGL: use nullary version of qRegisterMetaType<T>("T")
Using the nullary version has the advantage that multiple calls
during a program run are much more efficient, since an inlined
atomic is used to store the result. For this, it requires
Q_DECLARE_METATYPE(T), so add, too.

Change-Id: Ic9a9013aa13ff9d8f917f9df033dd2197944f84a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-25 00:48:38 +02:00
Stephen Kelly f9db44ad15 Make sure that unknown types use the handler for unknown types.
This fixes an assert in the QVariant checkDataStream unit test when
it no longer links to QtGui.

Change-Id: Ib45139cf790f3ac6ee80e1c59f50d08d0b51ffa4
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-07-25 00:48:28 +02:00
Stephen Kelly dec9666dd4 Make qRegisterMetaType constexpr for built-in types.
For consistency with qMetaTypeId, and because we can.

Change-Id: I6882a16ef3c0d84539048c9f2c201c4a2b2ca7ad
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-07-25 00:48:20 +02:00
Kevin Ottens a31ac11d98 QNX: Remove mouse events synthetized from touch events
This behavior is now implemented in a finer way in QtQuick and
QtWidgets, it's not needed anymore in the platform plugin.

Change-Id: Iacdcd313253627fbba094abe4e9a9c1d23a431e1
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
2012-07-24 22:28:44 +02:00
Marc Mutz e9ecf1b420 QtDBus: use qMetaTypeId<T>() instead of qRegisterMetaType<T>("T")
Using qMetaTypeId<T> has the advantage that multiple calls during
a program run are much more efficient, since an inlined atomic
is used to store the result. It also ensures that
Q_DECLARE_METATYPE(T) has been used, whereas qRegisterMetaType<T>
(the unary version) will happily register anything.

Had to add a proper default constructor to QDBusError, as the
one doubling as the default constructor wasn't available under
QT_BOOTSTRAP, but Q_DECLARE_METATYPE requires a default ctor.

Also changed a nullary qRegisterMetaType() to qMetaTypeId() in
qDBusRegisterMetaType(). They're equivalent, since the former
just calls the latter, but apart from the miniscule optimisation
that the compiler has to instantiate one function less, the result
is also used, so using qMetaTypeId() better expresses what 'id'
is.

Change-Id: Ib9dde17923ab9ee55f9464138a625ab8cd55c482
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-24 20:11:05 +02:00
David Faure 95232af3ef QAbstractNativeEventFilter: document return value
(paragraph taken "as is" from the QObject::eventFilter documentation)

Change-Id: I1b7e92736103042d7105f1b26ba4784cbcc43dc2
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-24 12:45:02 +02:00
Stephen Kelly 94c2745074 Remove obsolete or commented use of Q_DECLARE_METATYPE.
Change-Id: I15bc845801b9f84a9252a0092fbd69f0e1b3f4ea
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-07-24 10:46:24 +02:00
Stephen Kelly 35a5f7f661 Remove obsolete TODO.
This will probably not be done in time for Qt 4.7.

Change-Id: Ie9112cee021e31849f5b43eefb8eb57537d01a2d
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-07-24 10:46:24 +02:00
Kevin Ottens 7808ec795c Propagate synthesized mouse events in parallel (lock-step) with touch
This patch implement the equivalent of
468626e99a90d6ac21cb311cde05c658ccb3b781 in qtdeclarative but for
QtWidgets.

If a widget doesn't accept a touch event, then QApplication gives it
another try by synthesizing a corresponding mouse event. This way
QtQuick and QtWidget behave in a similar way, removing the need for
platform backends to try to emulate a mouse event from a touch event
unconditionally.

Also add relevant unit tests and adjust old QApplication ones.

Change-Id: Iddbf6d756c4b52931a9d1c314b50d7a31dbcdee9
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-24 10:46:24 +02:00
Marc Mutz c76a641a27 QAbstractItemView: don't qRegisterMetaType<QModelIndex>
QModelIndex is a build-in type nowadays and doesn't
need to be registered anymore.

Also remove them from the tests.

Change-Id: I47029972651c045c880cee86fb292116a29493d5
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-24 10:46:24 +02:00
Thomas McGuire f83954c631 Provide access to (dis)connectNotify() from other objects.
This is the first step to fix (dis)connectNotify() not getting called
for QML signal handlers and bindings.

Change-Id: I5cfc126a5562a20031d3af8415c60d101603dd8d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-07-24 04:23:45 +02:00
Marc Mutz d4c241a980 QtConcurrentFilter: remove unused typedef (GCC 4.8 warning)
This one actually triggers a failure in tst_headersclean.

Change-Id: Id37184bacf910702879fa68014705ed5399cea1b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-24 00:08:28 +02:00
David Faure 42c86bba9d Remove winEventFilter, replaced with installNativeEventFilter.
No reason to keep a virtual method for Windows when all other similar methods
(macEvent and x11Event) have been removed, and when installNativeEventFilter
provides a much nicer solution (no need to derive from QApplication).

Change-Id: Ia2a7960e320fcbd04cef91f467900861dbb377c1
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-07-24 00:08:28 +02:00
Mitch Curtis d38fb0b535 Correct QDomDocument documentation re deletion of internal objects.
Task-number: QTBUG-25641
Change-Id: If1f46757d2d1e678e4b9e939da89a497da71dccf
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-23 22:02:18 +02:00
Mitch Curtis 300e15f688 Fix q_check_ptr typo in QtGlobal documentation.
Task-number: QTBUG-24093
Change-Id: Ia6b4ef49e07910ceddd826b3b7cc81ca41f33d01
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-07-23 22:02:18 +02:00
Mitch Curtis d499d04a17 Replace Q_REGISTER_METATYPE in QAbstractSocket::stateChanged doc.
Should be Q_DECLARE_METATYPE.

Task-number: QTBUG-24692
Change-Id: I9c8b8d503fba254661e8f0d72855758d5d03ada1
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
2012-07-23 22:02:18 +02:00
Mitch Curtis 2fee2412c2 Correct QLineEdit::inputMask documentation.
The documentation says:

"Unset the mask and return to normal QLineEdit operation by passing an
empty string ("") or just calling setInputMask() with no arguments."

However, the parameter for setInputMask is a const QString&, so calling
it with no arguments will result in a compile error. The documentation
should not advise calling setInputMask() without arguments.

Change-Id: Icd8e063dcd3d745bd4bf0c6851a38f63481957ae
Task-number: QTBUG-24803
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-07-23 22:02:18 +02:00
Giuseppe D'Angelo 58ec01e278 More qHash(T, uint) support
Add the seed to QPair, QUuid, QPersistentModelIndex's qHash(), and fix
qHash documentation for them and for many other datatypes.

Change-Id: I1386f3ed42ee1a832371a242ee5c82895ba92c2b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-23 19:57:07 +02:00
Lars Knoll acbfb4d777 Move the windows locale codec into it's own file
Simple cleanup, that will make it easier to refactor
the code to use ICU.

Change-Id: I7486f36d27b8c521cf970327eb94b2236338d4ec
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
2012-07-23 19:57:07 +02:00
Laszlo Agocs 7a3dd20b98 Add basic backingstore implementation to kms
This allows using the kms plugin in QWidget apps having a single
(preferably fullscreen) top-level widget.

Based on eglfs' implementation. Dirty rectangle tracking is missing,
should be added later.

There is no composition so multiple TLWs will not work nicely.

Change-Id: Ia78589d1a375925ebdcc46aa20fc1619ec14d6cc
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com>
2012-07-23 19:57:07 +02:00
Mitch Curtis c2942cb7b6 Clarify ambiguous sentence in QVariant::toBool() documentation.
Task-number: QTBUG-26482
Change-Id: Id9158ba1f7ffa5af169f808aed4559f7a0470e20
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-23 19:57:07 +02:00
Jan-Arve Saether 4d573117c4 If the GL driver is singlebuffered, reflect that in QSurfaceFormat
Change-Id: Iafed64d0a35f8d49357f147c8b7b4c0e9f4b9173
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-23 19:57:07 +02:00
Jan-Arve Saether 6fbf9506e6 If swapBehavior is TripleBuffer, set WGL_DOUBLE_BUFFER_ARB to TRUE
Previously, if the drivers' swap behaviour was single-buffered
it would fallthrough (just like DefaultSwapBehavior) and remain
single-buffered.

Change-Id: I4b93ad7a49094aa992d0b8fb3429c163bbbf655d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
2012-07-23 19:57:07 +02:00
Friedemann Kleint bcb5e564ff WindowSystemInterface::sendWindowSystemEvents(): Remove unused parameter.
No need to pass the dispatcher. Get rid of Windows logic to maintain
a stack of dispatcher associated with flags.

Change-Id: Ic2daad4b6762a46fac3274937effc188af436c9a
Reviewed-by: David Faure <faure@kde.org>
2012-07-23 19:57:07 +02:00
Sean Harmer 0026b80cd2 Improve the loading performance of QLibrary
If an absolute path is specified we try that first. Otherwise we first
try the most likely system-specific format (e.g. libfoo.so) on Unix.
This improves performance especially on systems with slow flash devices.

For example, prior to this commit loading the Xcursor library (in the
xcb plugin) results in attempts to dlopen:

"Xcursor"
"Xcursor.so.1"
"libXcursor"
"libXcursor.so.1"

With this commit this is reduced to a single attempt of:

"libXcursor.so.1"

Plugin loading uses absolute paths with QLibrary so there is no
performance penalty for plugins with this commit.

This is however a behavioural change with respect to Qt4 but one
that I believe is justified and wanted.

Change-Id: I7813afa335f9bf515e87934c2f8f97888818c69c
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-23 17:56:13 +02:00
Sean Harmer b182940340 XCB: Record the OpenGL profile in the format
Change-Id: I68f9e78e15fc798ec801feed74e0cb900ef577ae
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-07-23 17:55:40 +02:00
Sean Harmer 3e760da85a QNX: Use new native event filtering api
Change-Id: Iaf25697e6250ad29085647db4b8e50e274599227
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: David Faure <faure@kde.org>
2012-07-23 17:55:26 +02:00
Marc Mutz 401e6f2581 QPaintBuffer: use the nullary version of qRegisterMetaTypeStreamOperators()
The name is taken from the existing Q_DECLARE_METATYPE()s.
Also don't call qRegisterMetaType<>, as that is done within
qRegisterMetaTypeStreamOperators<> already.

Change-Id: Ia782868b49bc97d78e0cec29ef9f8b5709420e2a
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-23 17:48:39 +02:00
Marc Mutz e20047c6cb QStyleFactory: remove unused typedef (GCC 4.8 warning)
Change-Id: I50ef91f4df3cdf1ae039dce269e37185eece6b8d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-23 17:48:34 +02:00
Stephen Kelly 58b3dd71d8 Create CMake files conditionally on the internal_module CONFIG option.
This includes a revert of 195df6e8e0
so that the solution scales better to other Qt modules, and other
logic related to 'internal' modules.

Change-Id: Ie4c1f10d20953aeb15438273081a810ab8bc9ec9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-23 17:39:39 +02:00
James Turner 78d8c201f1 QTBUG-26296, dock widget moving
Cocoa lacked implementation of FrameStrut events, and also frameMargins on
QPlatformWindow. Fix both of these issues. Unfortunately QDockWidget also
contains a tangle of #ifdef MAC behaviour which I am unclear about. What's
included here disables some logic on Mac that seems definitely wrong -
while moving a window on Mac we now generate NonClientArea events
(as intended, I believe), but this should not cause dock-widget dragging to end.

Note the window titlebar is the only frame-strut/non-client area on Mac (as far as I can see)

Task-number: QTBUG-26296
Change-Id: Id0c6e954db64b9f9f71d16355cb92922877e5ebe
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-23 17:12:57 +02:00
Kai Koehne e6558184eb Logging: Simplify message handler logic for windows
Incorporate the functionality of qWinMessageHandler in qDefaultMessageHandler.

Change-Id: Iec5b19e187c0d2e3d8d0874280ba57f6fb21d7b4
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-21 16:24:43 +02:00
Sean Harmer fa3cc59868 Improve performance of QLibrary::load()
There is no need to create a QFileInfo object to split the path and
filename.

Change-Id: I54ebb4b62ebdd93a257bce0b337ac0012f0d5a56
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-07-21 11:26:30 +02:00
Elvis Lee 33292ab1ae release and clear next_bo when pageFlip fails
pageFlip failure makes starvation in waitForPageFlipComplete.

Change-Id: Ifbcdda2a4138753f475e4c37767058014cc4230b
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-07-21 11:17:17 +02:00
Friedemann Kleint 3ef9138efd QtPrintSupport: Replace remaining Q_WS_ conditionals by name checks.
Change-Id: Ic772e2187b3c93c5e0cdee6681289ab81e2c2f65
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-07-21 03:17:23 +02:00
Marc Mutz 55640cd3ee QFlags: complete constexpr'ifcation
Change-Id: Ie7c33bc1e3abaa9100093a84e65bee5f3b80fe0f
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-21 00:53:35 +02:00
David Faure 1603ba2365 Provide public API for native event filtering, moved up from QPA.
The previous API was hard to use (global function, no type safety,
manual chaining), and confusing (app vs dispatcher split only made
sense on Windows). Installing and removing out of order would have
the risk of setting back a dangling pointer (crash). Meanwhile QPA
added type safety, and this new API models the QObject::installEventFilter
API for ease of use. The virtual method is in a new interface,
QAbstractNativeEventFilter.

QPA was even calling the dispatcher event filter with QPA-private event
classes, which made no sense (refactoring leftover from when the code
was in the dispatcher). Now the QPA plugins trigger the qcoreapp event
filters with the actual native events directly.

Change-Id: Ie35e47c59c862383bcaf857b28d54f7c72547882
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-07-20 18:34:08 +02:00
Sergio Ahumada e2c27b3052 Doc: Fix QUrl::isLocalFile documentation
This function was introduced in 4.7 by a2f797b52c4274a62a7cf1f0939aca1429afe211
but then reverted by 98e935eed5549e479f6666680aed1711dc42111c

Task-number: QTBUG-21293
Change-Id: I6ec9c6696e5c85e44774184010eb9135ef7f3365
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-20 18:24:28 +02:00
Stephen Kelly 195df6e8e0 Don't create cmake files for QtPlatformSupport.
It is for internal use only, not third party use.

Change-Id: I7a8dbc930e794ccdad4cc5591b454a640b921bb0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-20 16:36:24 +02:00
Friedemann Kleint 8761840397 Implement waitForWindowExposed and friends for widget windows.
- Implement waitForWindowExposed() for toplevel windows.
- Implement waitForWindowShown(QWidget *) and mark as
  deprecated in line with waitForWindowShown(QWindow*).
- Use in tests.
- Simplify tests (collapse waitForExposed, setActive
  into setActiveWindow, waitForActive), remove most
  hard-coded timeouts.
- Stabilize graphicsview tests by using waitForWindowActive.

Change-Id: Ic7c061e2745b36f71a715ee4e47c0346b11a91e8
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-07-20 09:27:28 +02:00
Andreas Holzammer c081107206 Remove unneeded Windows CE dummy functions
With the change I69f4d5d504e2341555d9991c68e82beed2e8129c
IsZoomed function is no longer needed.

Change-Id: I07239f3e81509f8a966e64ee9705a04ea41cb38d
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-20 09:21:19 +02:00
Elvis Lee 6c0d267a73 Implement nativeResourceFunctionForContext for kms
Change-Id: I4e0486744f4c3eb711a9252c90b0d06c5bb3c670
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-07-20 09:13:00 +02:00
Laszlo Agocs 0a8b67b3bb Reset drm cursor position if cursor image is set before moved
Do not let the cursor appear at some random position and then jump
back to the top-left corner when first moved.

Change-Id: I0b77763bdfa86c23435d6cc07bdc13dfcc682567
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-07-20 09:13:00 +02:00
Laszlo Agocs a46072395c Hide drm cursor when exiting
Change-Id: Ib4e1895dcf3e0168eb759fbecee499d75dd45bfe
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-07-20 09:13:00 +02:00
Martin Smith fb7b18c703 qdoc: Restricted qdoc errors for \reimp command
qdoc no longer considers the \reimp command when the
parent C++ class has been marked \internal, because
the reimplimented functions aren't supposed to be in
the documentation at all, when the parent class is
internal.

Change-Id: I3d811ca737934f95e9078ce7b1e957890f6aaf38
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-20 09:13:00 +02:00
Laszlo Agocs e8e8d0e9f2 Disable threaded rendering with kms plugin
The page flip handling in QKmsScreen cannot currently cope with
contexts on multiple threads.

Change-Id: I9492095fec52fd1ad0197db00b3d6a2f58016e6d
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-07-20 02:19:10 +02:00
Lars Knoll 122fa138f3 Fixed most qdoc errors for the json classes.
Change-Id: Ibbbdd7212f6c5e25422bbaa9ccaf4822db52222a
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-07-20 02:18:18 +02:00
Andreas Holzammer 917ef57874 Don't update geometry while the style is set
Under Windows CE a resize event gets fired
when the style is set, this will produce
geometry change events inside Qt, which will
end up in changing the geometry back and forth.

Change-Id: I7f834997abc53760ccfe2ad97012bb74dc5c705c
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-07-20 02:18:13 +02:00
Stephen Kelly 784a877d3c Move QWindowSystemInterface out of qpa.
Public QtTest headers require it, so all unit tests would have to use private Qt
headers otherwise, which is not practical.

Change-Id: I5d4466ec30b6a57ebdfc34413e716e657eb51368
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-19 15:28:18 +02:00
Joerg Bornemann af8e318b35 QWidget/Win: fix restoreGeometry() from fullscreen mode
When turning off fullscreen mode and restoring the widget's geometry
we must inform the QWindow about the geometry change synchronously.
Otherwise QWidget::geometry() will return the old value.

Using the same technique for the state transition to fullscreen mode
without sending a separate resize event.

Autotest: tst_QWidget::saveRestoreGeometry
Task-number: QTBUG-26421

Change-Id: I869e36cd302d9a94e398f48949ab3cb7ee9cdf51
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-19 15:28:18 +02:00
Stephen Kelly 85d664c929 Remove Q_UNUSED for the metaObject.
The object is no longer unused.

Change-Id: Ia82539220855321f2986c5791b70be5df399baca
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-07-19 13:15:55 +02:00
Casper van Donderen 91512af3d5 QDoc: Fix make commands for QDoc manual.
Change-Id: I55c3eae43928e87a0aa470127f9877741391deee
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-07-19 12:42:26 +02:00
Jeremy Katz 27ab1b2e35 fix "No such ..." doc error for QString::toHtmlEscaped
And a minor rephrase. [...] a HTML -> an HTML

Change-Id: I49804d009737b58ca3bb43e60dac869e045b5536
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-19 12:35:22 +02:00
Jeremy Katz 0108484908 fix "No such ..." in qmargins
Is it more appropriate to rename the parameter in question
"margin", as suggested by the documentation, or have the
documentation refer to "m", as suggested by the code?

Change-Id: I5768ef044164e099ef1db77adda42171799cbf12
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-19 12:35:07 +02:00
Jeremy Katz b0ac81dbea fix "No such ..." doc error for Qt::WindowType WindowOverridesSystemGestures
Is this a typo in the documentation, or in the enum?

Change-Id: I58ba12d74694b26ec0bf76226b56337a12e0756e
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-19 12:34:36 +02:00
Jeremy Katz db773e651b fix "No such ..." error in qnamespace.qdoc
RIP Qt::ClipOperation UniteClip
See 01b72952c3 for details

Change-Id: I8cfd5f6d008374741bea4f6a85827545ddb8ae86
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-19 12:34:24 +02:00
Jeremy Katz 507859e403 fix "No such ..." doc error for QMetaType::typeName()
Change-Id: If00c728ec793a65f62d76d8301c7f6658e7af8a0
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-19 12:33:57 +02:00
Jeremy Katz 64d097598f fix "No such ..." in doc for QMetaEnum::keysToValue()
Change-Id: I4cc15031970a34ee1076933f7f13468ee17abcfd
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-19 12:33:37 +02:00
Jeremy Katz 18495a677a fix "No such ..." doc error in QBasicTimer::start()
Change-Id: I52feb5f2ebcc8821470468fc51ed3acc6df92a67
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-19 12:33:15 +02:00
Andreas Holzammer a1db174ea9 Fix window state handling
There is no need to query each time the window state
from windows, as we already know in which state it is.
We are also getting state change notifications. This fixes
issues under Windows CE.

Change-Id: I69f4d5d504e2341555d9991c68e82beed2e8129c
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-19 11:45:33 +02:00
Jeremy Katz 2d504d01dc fix "No such ..." for QMimaeDatabase::mimeTypeForFile()
Change-Id: Ife8e361524ac324ce2cfb20d952db5be042fecc1
Reviewed-by: David Faure <faure@kde.org>
2012-07-19 11:40:15 +02:00
Jeremy Katz b8e658d169 fix "No such ..." for QObject::connect(...,functor) doc
Change-Id: Idd1d871b0fde899fdd21ce5aa365e08e2c7bcf45
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-07-19 08:43:25 +02:00
Jeremy Katz 9a805df962 fix "No such ..." documentation errors in QAbstractItemModel
Change-Id: Ic1d0761c310c47f95d98988d77aff0f8e46de5fb
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-07-19 02:32:07 +02:00
Oswald Buddenhagen 2d04ea0f61 remove needless/commented INCLUDEPATHs
Change-Id: Id1d3afde424e0e17e68889d6f7b51e3056754536
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-18 19:53:37 +02:00
Marc Mutz 41e67d1ac4 qmetaobject_p.h: don't (incorrectly) fwd-declare QVarLengthArray
qmetaobject_p.h forward-declared QVarLengthArray without the default parameter
for the 'int' template argument. This violates the ODR, so just #include the
header instead. It's not like there's much point in the fwd declaration in
a private header.

Change-Id: Ie5ef1740c57da396c95f5bae1cd81ac941a8ac2d
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-18 19:53:27 +02:00
Stephen Kelly 2750832410 Make the QIncompatibleFlag constexpr.
Change-Id: If99b43b45cc667449dbe7c487b56885c6ce9b1c7
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-18 19:48:59 +02:00
Miikka Heikkinen 150284198b Fix rendering glitches when using native widgets in MDI subwindows
When mixing native and regular widgets in same QMdiArea, some
subwindows didn't properly get set native. This was because
when a native parentless widget was given a parent, it wouldn't
enforce native window on the new parent and its ancestors.
This happened because window flags were adjusted too late in
relation to createWinId() call in setParent_sys().
Fixed by moving the createWinId() call to its proper place.

Also removed some old Q_WS_* ifdeffing in QWidget::setParent() that
masked some native enforcement code.

Additionally removed few QEXPECT_FAILs from QWidget autotest now
that those cases work correctly.

Task-number: QTBUG-26424
Change-Id: Ib6f9d0531e5c7299e2c307734d49c81f1ffa9713
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-18 15:07:32 +02:00
Sergio Ahumada 006b620ef9 Widgets: Fix duplicated line in QMdiArea
Replace duplicated line MaximizeAction with RestoreAction

Task-number: QTBUG-17428
Change-Id: I5120afeed6715d28045f3eee01f26ee482f02ed1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-18 14:48:16 +02:00
Marc Mutz 94dc63cd49 QtNetwork: normalize signals/slots
This is the result of running util/normalize --modify
from Qt 4.7  with manual review.

Change-Id: I3f89d5138ea9905c42ed581991426e72c90d4069
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-07-18 14:40:38 +02:00
Friedemann Kleint fc3207dfe1 Mirror potentially themeable style hints in QPlatformTheme.
Currently, most of the QStyleHint-values are potentially
configureable by the user in certain desktop environments.

Add them to the QPlatformTheme and query the theme first.

Keep the values in QPlatformIntegration such that simple
integrations that do not implement themes are not forced
to implement them to change the values.

Change-Id: I15742a5968df0ad5d7398cceae640dc7e541da52
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-07-18 08:18:46 +02:00
Laszlo Agocs 26318a8cb2 Follow gbm api changes in kms plugin
Change-Id: I3058f4d3540b04710a853bbaa901bdbecf35b4b5
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-07-18 08:16:27 +02:00
Laszlo Agocs 7142e8bd23 Tear down properly in kms plugin when exiting
Change-Id: Idad060af4a8b4e68c2312cc2b69de39d2a58a1c4
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-07-18 08:15:52 +02:00
Laszlo Agocs 504c2cb1e1 Add config test for kms
Change-Id: I55afc65d356aaca0fe443dda100805a4df8f0ae6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-07-18 08:15:30 +02:00
Casper van Donderen 402b319633 Fix incorrect #endif comment.
Change-Id: I7cf93b928c7ee9915fe95e13f3faa036ac05f608
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-07-18 05:14:31 +02:00
Tasuku Suzuki 019c6d6628 removing QT_NO_URLINFO and using QT_NO_FTP instead
URLINFO was removed from qfeature.txt but QT_NO_URLINFO macro was not
removed. As QUrlInfo is now private and only used for FTP, the class can
be disabled when FTP is disabled.

Change-Id: Ic63b066f8ff9ad1eea0073ab75b622e5739ac5a8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-07-17 22:07:58 +02:00
Friedemann Kleint cdc436ebe6 Fix widget animations.
- Update opacity.
- Change Q_WS_WIN to Q_OS_WIN.

Task-number: QTBUG-25436
Change-Id: I76c1e4668dc2ee4f4d861da320c10aa05e57e804
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-07-17 15:56:15 +02:00
Friedemann Kleint fe4adec894 Windows: Do not return short path names for QDir::tempPath().
WinAPI GetTempPath() sometimes returns short names
for C:/Users/<user>/AppData/Local/Temp.

Change-Id: I33f991acc06e652ccd484d36a5a384eb776f8395
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-07-17 15:56:15 +02:00
Friedemann Kleint dc4cd551c6 Unix printing: Fix suggested file name for printing to file.
Change-Id: Ieefe602dc8328a2e4188f7fa341016f8e330526e
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-07-17 15:56:15 +02:00
Jeremy Katz 178f5e2ac3 Typo in QWaitCondition::wait() doc: lcokedReadWriteLock
lcokedReadWriteLock -> lockedReadWriteLock

Change-Id: I560f7445d6a0c332ee8ca8f62a8318f637567520
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-17 15:56:15 +02:00
Jeremy Katz f66beaaf07 Correct documentation for Void metatype value, define UnknownType
QMetaType::Type::Void was misdocumented as being equal to 0. The
actual value for Void is currently 43. UnknownType is 0.

Change-Id: I4e9cb3b4d21e10e1691b985a6ad635bc7a04f1b7
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-17 15:56:15 +02:00
Jeremy Katz 9b13f2b913 Add new metatypes to QMetaType::Type enum for docs
This adds QRegularExpression, QJson{Value,Object,Array,Document}, and
SChar

Change-Id: I3dbe9d197952e980f0de9eaed2605d190b8d0405
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-17 15:56:15 +02:00
Jeremy Katz a105365ff2 Remove Qt3Support enums for q{dir,filedevice,settings,variant} in docs
Change-Id: I07942447bb756561e5c502c9a0c03b6aaf8133d1
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-17 15:56:15 +02:00
Jeremy Katz 26c8f9d0ef Remove documentation of previously deleted Accessibility events
Change-Id: I7996f2f9b6d11cea130e2a56d0997e1f208e5642
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-07-17 15:56:15 +02:00
Jeremy Katz 94bbafc369 Remove documentation of Qt3Support enums in qcoreevent.cpp
Change-Id: Id8740adaa26ee44f40010373947a5be82942b0ba
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-17 15:56:15 +02:00
Sergio Martins 6441479ac5 Normalize signal/slots.
Change-Id: I0a0f497ece081a430437adc2959deb247defcde9
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-17 12:39:38 +02:00
Stéphane Cerveau 50e15401c9 Fix infinite loop due to FPU limitation
Bug detected with animatedtiles in example/animation.
In qpa mode, using some specific resolution of directfb such as
800x600 causes a bug in FillRectF where there is an infinite loop due
to scalabilty of qreal value: One is rounded and the other not.

Change-Id: I1707e53f34aeeadc0f0fc07b1dca148fbe05b5f1
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-07-17 08:19:31 +02:00
Mark Brand fbf010a266 QSqlTM: add reimplemented record() method
QSqlQueryModel::record(row) populates the record it returns with values
from virtual data(), so the values themselves can be supplied by
QSqlTableModel. However, it is also desirable to be able to interrogate
QSqlTableModel for the actual current record in its cache, including
properties such as the generated flag.

Change-Id: I733901913b7d237d5762448e953a99b5bd83fc7f
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-07-17 08:13:42 +02:00
Mark Brand 76880aa2c4 QSqlTM: use generated flag more correctly in setRecord()/insertRecord()
The generated flag should affect the generation of SQL commands rather
than how the fields of the source record are applied to the model before
submitting. This correction allows setRecord() to be used to change TRUE
generated flags to FALSE.

Clarified documentation on this point and updated change log.

Change-Id: I7ee124930822561ed8beee6c6259970b3e929c9b
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-07-17 08:13:30 +02:00
Charles Yin 87ff2c830d Don't join between 2 same points
Joining 2 points with same x,y values causes assert in QTriangulatingStroker::normalVector().

Task-number: QTBUG-26528
Change-Id: I2494d7f362e13e41a82753f4bacf97ffbc249cf9
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
2012-07-17 01:54:32 +02:00
Thiago A. Correa b8b79a0f37 Fix error when inserting to tables with datetime fields with QODBC
SQL Server 10 introduced stricter rules for TIMESTAMP validation,
making it necessary to specify the decimal digits.
Other databases might do the same as well, so this patch introduces
a check for the TIMESTAMP column size and adjusts the decimal digits
parameter as needed.

Task-number: QTBUG-2192

Change-Id: If6d798c6c928ebda75bc474e49a07fbbfbe5816c
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-07-16 23:48:10 +02:00
Kim Motoyoshi Kalland 5762da38b9 List .pbm and .pgm as supported writable image file formats.
QImageWriter can write .pbm and .pgm files, but didn't list them
among its supported image file formats.

Task-number: QTBUG-22958
Change-Id: I777c7cd9a4b56fcf313248a29a917e594a5e4477
Reviewed-by: aavit <qt_aavit@ovi.com>
2012-07-16 21:36:28 +02:00
Marc Mutz 2718f2e31f QStateMachine: mark a ctor as explicit
Commit 0b66f723f0 recently introduced a new
QStateMachine constructor, but failed to mark it as explicit. Fix.

Change-Id: I16037691ad77d528bb50b611c03063b17a71dd34
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-16 18:34:06 +02:00
Jeremy Katz aa0319ee17 undocument enums as part of Qt3Support removal
Lots of enums in the Qt namespace used to be hidden or documented
as obsolete. These have been removed entirely, as they result in
qdoc errors.

Change-Id: I67726d7358f4e71a0c8fc5181388b1cf8fd4e4bd
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-16 18:34:06 +02:00
Jeremy Katz e22c093a48 Add gui/ to qtcore.qdocconf to pick up enums in Qt namespace
Qt::HitTestAccuracy and Qt::WhiteSpaceMode are defined in gui/ but
documented as part of the Qt namespace, so qdoc needs to look there
to find the relevant enums.

Change-Id: I36ae71c44024b12664688129044994926160e5c9
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-16 18:34:06 +02:00
Stephen Kelly 1329a57783 Generate a fatal error as appropriate.
Otherwise, subdirectories under directories which are added to
a resource file generate garbage in the binary.

The easiest way to see this is

 cd tests/auto/corelib/kernel/qvariant
 mkdir stream/qt4.9/somedir
 make && ./tst_qvariant loadQt4Stream

Change-Id: I32630ecb6d515db1d135f0ffc5cf14fd8caa0a4f
Reviewed-by: hjk <qthjk@ovi.com>
2012-07-16 16:30:55 +02:00
Jeremy Katz 10848dd582 Undocument Qt::AnchorAttribute
AnchorAttribute was removed as part of the Qt3Support cleanup.

Change-Id: I58d8e471d4bc1af420ec8eaab6d34c1718b30382
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-16 16:30:55 +02:00
Joerg Bornemann 855bac6368 QWidget::showFullScreen fixed for widgets with valid size hint
Ensure the initial size is valid, since we store it as normalGeometry
below.

Task-number: QTBUG-26226
Change-Id: I3a55c389a48504699942930063089c80657687a0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2012-07-16 16:30:55 +02:00
Andreas Holzammer cfe95aa746 Fix window size issue under Windows CE
Under Windows CE the top title window bar needs
to be taken into account when creating a window,
so the Style WS_OVERLAPPED needs to be passed to
AdjustWindowRectEx, to get the right size of the
window. For the desktop the documentation says,
that you should not pass the WS_OVERLAPPED flag,
but wince does not talk about this.

Change-Id: Id8c9d28b7aa04a9920e4cb81ac11463d9717a0e7
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-16 16:30:55 +02:00
Friedemann Kleint 7a2aafcbbf Remove #ifdef Q_WS_ / include / #endif conditionals.
Change-Id: I734490ddcb5501e620370e50ef06180ab5e23393
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-07-16 16:30:55 +02:00
David Faure 199741d026 Fix applicationName() being empty in QApplication.
A virtual method was reimplemented to return an always-empty string,
probably a leftover from a refactoring.

This fix showed that tst_qwidget_window was buggy: between Qt4 and Qt5,
a "Before" became "After", which made "Before" unused, and was masking
the fact that the app name was empty by default. In addition, the
earlier Qt5 change that made the app name default to argv[0] now requires
updating this test, now that it's actually working.

Change-Id: I5360026821a9b95bedd0ff09dba3d51a22e542b7
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-07-16 16:30:55 +02:00
Jan-Arve Saether cbddca5f02 Improve qDebug() << QAccessibleEvent() to display state changes
Change-Id: I4624bcf94c1290d14ea5f5eaaa5449af10ac2186
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-07-16 16:30:55 +02:00
Sergio Ahumada 259266d546 Doc: Fix typo
Task-number: QTBUG-23657
Change-Id: I3115f45f743da5699aa13f31a0f2de013d428aba
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-16 14:22:55 +02:00
Alexandros Dermenakis 367ab7e9a9 Added a reserved data pointer in QPaintDevice.
Change-Id: If547e5525635e7c76db7a02c7c0c300c87373a18
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-07-16 14:22:55 +02:00
Sergio Ahumada 4185fc4d85 Doc: Fix typo foreigh -> foreign
Task-number: QTBUG-23260
Change-Id: I922a8b5cba5d8784305fb1779ccd352ab2ece365
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-16 14:22:55 +02:00
Shawn Rutledge 6083193549 handle XInput 2.2 multipoint touch events
Change-Id: I5c925ae3e191244c7ab9415e4ba2fe49b93dd2af
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-07-16 14:22:55 +02:00
Ivan Komissarov 2178548111 Remove QToolButton's protected constructor
As long as QToolButtonPrivate is declared in .cpp file,
this constructor is useless.

Change-Id: Ibbeaf291b88b3b203e5107e0227d68e65cbb9eee
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jeremy Katz <jeremy.katz@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-16 14:22:55 +02:00
Friedemann Kleint 117b27dc8d Fix QSplashScreen on X11.
Use code from QTestLib to wait for the Window to show up.

Change-Id: Ib674f3eb7a6c32cad1d502caefe7d4b073754e73
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-07-16 14:22:55 +02:00
Friedemann Kleint 59096732f6 Use DropShadow from QPlatformTheme everywhere in qwhatsthis.cpp.
Change-Id: Ib8281d44e2d4b51aba13417c26247d3e19b1b2f8
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-07-16 14:22:55 +02:00
Friedemann Kleint a51f37a430 Replace some Q_WS_X11 by check for platform's name.
Change-Id: I33d7ce31e01c355e0d9e05c98d6a84ea4f6d5bbd
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-07-16 14:22:55 +02:00
Jeremy Katz ab2a6bbca9 Make qwindowsysteminterface.cpp compile with QT_NO_SHORTCUT
Task-number: QTBUG-24816

Change-Id: Ia3d20775d28922ee94f965b4a7bc993915f34d6b
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@nokia.com>
Reviewed-by: Jeremy Katz <jeremy.katz@nokia.com>
2012-07-16 12:14:13 +02:00
Kim Motoyoshi Kalland c44d7eedfd Fix crash in QPixmap::fromImage() when memory is low.
Task-number: QTBUG-26451

Change-Id: I7149edb1b03d7bcd4e90f369a1ac99b25ab262b9
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-07-16 10:09:15 +02:00
Kent Hansen cd1351401f statemachine: Move RestorePolicy enum to QState class
This makes it possible to add API for setting the restore policy
per state, or even per property assignment (QTBUG-17861).

This change is fully source compatible with Qt4.

Change-Id: I53628546b070f6fc84891f86e7ad7bd8ef5ba285
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-16 10:08:28 +02:00
Kent Hansen 0b66f723f0 Add QStateMachine constructor that takes a ChildMode
Back when QStateMachine was changed to inherit QState, this
constructor was conveniently left out because setting the state
machine (root state) to be a parallel state group didn't actually
work. But as of commit d281aa6936,
it does work, so add the missing constructor.

Task-number: QTBUG-15430
Change-Id: I68c599baa0ef1bfc869195140cf5daf645e75b8b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-16 10:06:54 +02:00
Stephen Kelly c027372b80 Fix typo qith -> with.
Change-Id: Ie9eaa016c61f929be17fd1687517540c2ae1f3d2
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
2012-07-14 13:24:54 +02:00
Eskil Abrahamsen Blomfeldt 28826fe463 Avoid crash when getting bearings from fallback font engine
When accessing a fallback engine, we always need to call
ensureEngineAt() to make sure it's loaded.

Change-Id: Ib27e34137cfe8a3dd2b358aef3b3296a4ca52478
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-07-14 02:41:05 +02:00
Stephen Kelly 90657f9236 Simplify the moc code related to private signals a bit.
Change-Id: I0e9bae82c7c6d313e4161c35d0b988f633d5ae60
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-07-13 19:21:55 +02:00
Marc Mutz 02faddca53 QNX: normalize signals/slots
This is the result of running util/normalize --modify
from Qt 4.7  with manual review.

Change-Id: I9229c3c52ba785194469ad51aba0c3af0c058894
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-07-13 12:09:42 +02:00
Marc Mutz d7d9364c9c plugins/bearer: normalize signals/slots
This is the result of running util/normalize --modify
from Qt 4.7  with manual review.

Change-Id: I7c9539056a4434ed10a0255152eac1781f7833be
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-13 12:09:42 +02:00
Marc Mutz 8c148a2eec input/evdevmouse: normalize signals/slots
This is the result of running util/normalize --modify
from Qt 4.7  with manual review.

Change-Id: I4afac23e897404ac7efb5b4a89493a2c15e3c670
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-13 12:09:42 +02:00
Stephen Kelly cf5d83e56d Only create the Qt5::WinMain target if it doesn't exist yet.
Multiple calls to find_package(Qt5Core) would otherwise attempt to
create multiple targets of the same name.

Change-Id: I5639671fec66d4dd62dcce018dea5d18dcfd3dc3
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-07-13 12:09:42 +02:00
Kevin Ottens 2832aaacd4 Make sure the emulated mouse event comes last
With the recent refactoring in qtdeclarative for the handling of touch
and mouse events, QQuickCanvas automatically transforms touch events in
mouse events too.

It means that since we do something similar in the platform plugin, in
the case of QQuickCanvas the mouse event is duplicated. It it fine
except that having mouse event, touch event, mouse event in that order
is likely to mess the states of some elements. It happens to be the case
for MouseArea which will discard the second mouse event in the case of a
press, and because of that not receive the other events.

By changing the order in the plugin, we ensure getting events in the
following order: touch event, mouse event, mouse event. In the case of
MouseArea, since the press event will be accepted with nothing in
between, we'll keep receiving the other events.

Note that we can't simply remove the mouse event simulation on our side,
otherwise we'd break QWidget support.

Change-Id: If08fe0d97c6d60d0f858b228a014d94bc86dcf6f
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-07-13 12:09:42 +02:00
Kent Hansen df9e8ab9d6 statemachine: Micro-optimization for signal transition connect
It's silly to call one virtual function plus one function that
walks the inheritance chain, on every signal transition connect
and disconnect, when the method offset of the internal
QSignalEventGenerator class cannot change.

Change-Id: Ic4e83bdc6ab445ea8ca00f3d8da3031250621e2f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-13 12:09:42 +02:00
Kent Hansen 10384778d1 statemachine: Use new Qt5 api for obtaining method parameter types
This is much faster than the string-based api.

Change-Id: Id7ba76aee3346dd90412ec5c8505329360aae937
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-13 12:09:42 +02:00
Kent Hansen 95b6826ed4 statemachine: Make signal transition registration thread-safe
Since Qt's connections are thread-safe, QStateMachine's plumbing
around them should be thread-safe too.

Change-Id: I8ae91c2edc2d32ca4ed4258b71e5da22de30ed91
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-13 12:09:42 +02:00
Kent Hansen f9a17d7f0f statemachine: Fix signal transition handling in multi-threaded setup
By default, QStateMachine lazily registers signal transitions (i.e.,
connects to the signal) when the transition's source state is
entered. The connections are established in Qt::AutoConnection mode,
which means that if the sender object lives in a different thread,
the signal processing will be queued.

But if a sender object's signal is used in an out-going transition
of the target state of the queued transition, it's possible that a
second signal emission on the sender object's thread will be
"missed" by the state machine; before the machine gets around to
processing the first queued emission (and registering the
transitions of the new state), a sender object on the other thread
could have emitted a new signal.

The solution employed here is to eagerly register any signal
transition whose sender object is on a different thread; that is,
register it regardless of whether the transition's source state is
active.

Conversely, when a machine's transitions are unregistered (i.e.,
because the machine finished), signal transitions with sender
objects on other threads should be left as-is, in case the machine
will be run again.

This doesn't solve the case where the sender object is moved to a
different thread _after_ the transition has been initialized.
Theoretically, we could catch that by installing an event filter
on every sender object and handle the ThreadChange events, but
that would be very expensive, and likely useless in most cases.
So let's just say that that case isn't supported for now.

Task-number: QTBUG-19789
Change-Id: Ibc87bfbf2ed83217ac61ae9401fe4f179ef26c24
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-13 12:09:42 +02:00
Kent Hansen 058246c537 statemachine: Small refactoring of transition registration
Split the guts of registerTransitions() into a registerTransition()
function. This allows a particular transition to be registered,
instead of walking the source state's whole list of transitions
every time.

Move the logic for determining whether a transition should be
registered to the state machine, since that's also where the actual
registration takes place.

Change-Id: I0496dee9454cd77b62cf2768942a82a96b320744
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-13 12:09:42 +02:00
Girish Ramakrishnan 08345c5dac linuxfb: fix style in QFbCursor
Fix coding style, constness, m-prefix for member variables.

Change-Id: I9d75b410b398e5c3084b086b41884f2a0ddd6e5e
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-07-13 12:09:42 +02:00
Kent Hansen 22c7a1fd9b statemachine: Fix dynamic transition registration edge cases
Some of the transition constructors didn't call the maybeRegister()
function, causing the transitions to be ignored if they were created
when the state machine was running and the transition's source state
was active.

Added tests that cover all possible cases.

Change-Id: If1b593b127bd719e3be4e5a2e6949a780c4e97c3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-13 12:09:42 +02:00
Kent Hansen 58bea0b8e0 statemachine: Avoid warning when setting up signal transition
If the sender object was set, but not the signal signature, the
registration would proceed anyway, producing a strange warning like

QSignalTransition: no such signal: MyObject::

Change-Id: If0b113bdb60dd770d60b0d38d509b673e9d8c5eb
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-13 12:09:42 +02:00
Kent Hansen 0d56dac3bc statemachine: Set correct signal index when signal is non-normalized
The originalSignalIndex member was not set if the signature had to be
normalized. This caused the SignalEvent passed to onTransition() to
report a signal index of -1.

Improve the signal transition tests so they check both the event
passed to eventTest() and onTransition().

Change-Id: I5331fd1944d53310b6d11eb2fd8713b80faa53a1
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-13 12:09:42 +02:00
Marc Mutz a1590325ca doc/snippets: normalize signals/slots
There's one in corelib that has a comment
  // slower due to signature normalization at runtime
I obviously didn't change that one.

This is the result of running util/normalize --modify
from Qt 4.7 with manual review.

Change-Id: I0ffb2305800a9cb746b7f8a4eb710702d64f1b92
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-13 12:09:42 +02:00
Marc Mutz a42bc1e923 QtWidgets: normalize signals/slots
This is the result of running util/normalize --modify
from Qt 4.7  with manual review.

Change-Id: I024d48cd111ab89f3fe83d9df51b188c9ad5023c
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Debao Zhang <dbzhang800@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-13 09:55:18 +02:00
Thomas McGuire 0f49ebb4c2 QNX: Fix flushing the backing store to non-owner windows
Multiple windows can share the same backing store, which we did not
take into account. Don't ignore the window parameter in flush() to fix
that.

Change-Id: I4f98bba34d4da9134163e478cb78cab4ca0358d2
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-07-13 09:55:18 +02:00
Thomas McGuire 11dc9ca324 QNX: Extract and move adjustBufferSize() function
Change-Id: Ia1719314460b9c51d6eba04ab1c43f02be1777b6
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-07-13 09:55:18 +02:00
Thomas McGuire 095f2d5292 QNX: Apply state from QWindow when creating new QQnxWindow
Otherwise things like the window position and the parent/child relation
were wrong.

Change-Id: Ibe22a54f093f187e510f9c4258db2d80abe54a81
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-07-13 09:55:18 +02:00
Friedemann Kleint 00bafafbee Improve accessibility test helpers.
- Wait for accessibility events using qWait, allowing for
  event processing,
- Output a verbose message if the event cannot be found.

Change-Id: Iaadbd235c15dd12bb14724e1724dd04328532a96
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-07-13 09:55:18 +02:00
Gunnar Sletta c97104f31e Analog clock and raster window examples
Change-Id: I36586fbaa7da25208bbc1964d2708f094d0d5c98
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-07-13 09:55:18 +02:00
Marc Mutz d472db2412 QtGui: normalize signals/slots
This is the result of running util/normalize --modify
from Qt 4.7  with manual review.

Change-Id: I36e54222b27f1e71eb7d89cdfc595177c8d2bdb3
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-13 04:17:37 +02:00
Marc Mutz 279893cd5f meego: normalize signals/slots
This is the result of running util/normalize --modify
from Qt 4.7  with manual review.

Change-Id: I9dcff4e0982be616313e9f162203a21b447df64b
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-13 04:17:37 +02:00
Stephen Kelly f108fceb2c Make it possible to connect to QAbstract{State,Transtion} private signals.
Use the same trick as used for private signals in the models.

Change-Id: I4235788490cae0e3d554565621d145652dc5b0ca
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-07-13 01:51:47 +02:00
Stephen Kelly 536ec793b6 Make it possible to use new syntax to connect to model signals.
The private signals can not be used as function pointers, as
required by the new syntax, so we introduce a parameter which
can only be created privately.

Change-Id: I3d7bb8a163e764d685e8007cba831fb77e3c6855
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-07-13 01:51:44 +02:00
Stephen Kelly 0efa445141 Create a way to inform moc about private signals.
Moc checks for the use of the QPrivateSignal struct, which is part of
the Q_OBJECT macro and is private to each class that uses it. Moc then
generates a name of the signal which does not include the private
struct, and generates code to invoke such signals with an instance of
the private struct.

This way we can mark private signals as such and prevent them from
being emitted from subclasses or from outside of the class entirely.

The drawback to this is that it only works if the private
signal has no default arguments. However, at least in Qt, there are
no such signals.

Change-Id: Id16eadaa8d3c36a2c3b265077877f3e1d8304c84
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-07-13 01:51:42 +02:00
Martin Smith 8ca17ed943 qdoc: Clean path names before using them
The excludedirs variable doesn't work correctly when its values have
'../' in them. The solution is to use QDir::cleanPath() on each path
name before using it.

Task Nr: QTBUG-26492

Change-Id: I2db74e79cf096c1c75ab5b10877320360c016fc7
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-13 01:51:37 +02:00
Christoph Schleifenbaum 770e1d30a2 Mac: Fix crash on Mac OS 10.6 with new scrollbars.
Add missing runtime for OS X version in constructor. This ended up in a
crash when starting a version compiled on 10.7 on 10.6.

Change-Id: I25c5562ee905317554e79d83a2f5236ce9e2a145
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Tuukka Turunen <tuukka.turunen@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
2012-07-13 01:51:35 +02:00
Kent Hansen c4cef6fae9 statemachine: Fix state entry bug for parallel state groups
The SCXML spec had a bug that would cause the initial state of a
compound state within a parallel state group to be entered even if
the transition specified another (non-initial) state of the compound
state as its target. This only happened if the transition had
multiple target states.

The bug has been fixed in recent revisions of the SCXML spec. This
commit implements the fix, which is to walk the ancestors of the
transition's target states only after all the target states
themselves have been added, so that the default initial states are
correctly overridden/ignored.

Task-number: QTBUG-25958
Change-Id: Iac532047678c483a4a3996e24dacf30e00f6bbe0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-12 20:38:02 +02:00
Kent Hansen b76014b8ef statemachine: Move invariant code out of loop body
The lca variable doesn't change inside the loop. Comparing our
implementation to the algorithm in the SCXML spec reveals that this
check should indeed be done outside the loop.

Change-Id: I5e9824758fd147766e975d107a73561bd7f5a190
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-12 20:38:02 +02:00
Gunnar Sletta 5b87b6eda3 Fix compilation for some glxext.h header versions
Change-Id: I62b636d9f884c225e64a653db1a5f5da822d4af2
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-12 20:38:02 +02:00
Jan-Arve Saether f235ca4079 Enable modularization of translation files.
This is accomplished by introducing dependencies to catalogs.

This requires one API change:
QTranslator::load(const uchar *, int);
  changes to
QTranslator::load(const uchar*, int len,
                  const QString &directory = QString());

Since now, even the load from memory might need a directory if
the memory block contains a qm file with dependencies.

Change-Id: I781f333d07f53bb431d0a7b5fa1abe282dc4d338
Task-number: QTBUG-26138
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-12 18:30:35 +02:00
Eskil Abrahamsen Blomfeldt f94d0ea1dc Fix crash when column is inserted before rowspanned cell
When you're inserting a column in front of a rowspanned cell
and this cell is not the first in the rowspan, we would get
the wrong logical index of the new cell (putting it in
front of the initial cell with the rowspan). If the cell
does not span all rows, the table will get into a broken state
and trigger asserts in update(). To fix this, we search for
the first cell after the insertion point which has a logical
index higher than the cell directly before the insertion point.

Change-Id: I42e91a20d77b2ba9c5607f6cab23f51ed888cbd3
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
2012-07-12 18:29:25 +02:00
Tasuku Suzuki 38e8f6df78 remove QT_NO_SIGNALMAPPER from features
QSignalMapper is a small and extremely low-level interface.

Change-Id: I7e799673c6fe559178739fbc58385141ae3f0789
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-12 14:28:16 +02:00
Andreas Holzammer 983ebbc054 Fix wince build
Wince does not have a style so we cannot save it.
This was introduced by Change-Id: I6fca399376cd1fa9bffea0a686b56c4d5ec26605

Change-Id: I249aa8e9688e5a862b3787c531c19baea7338d5e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-12 14:23:08 +02:00
Girish Ramakrishnan f56f542294 QPA: pass cmdline arguments to QPlatformIntegrationPlugin constructor
Two observations of the current code:
1. The cmdline arguments are passed as dynamic properties of the native
   interface. This is not optimal. First, the args should be made available
   in the plugin constructor (and thus in the QPlatformIntegration constructor).
   This allows the integration to make decisions when initializing itself.
   Second, the preferred way for apps to query properties from the platform plugin
   should be through the various methods in QPlatformNativeInterface.

   With that in mind, the dynamic property approach should be obsoleted. I have left
   the code as-is for backward compat.

2. The -platform argument is parsed twice. Once in init_platform and then
   again in QPlatformIntegrationFactory. QPlatformIntegrationFactory now takes
   the name and arg list separately.

Change-Id: I6b568ed9e28feeaf036bf340417fa00bdf1b7da3
Reviewed-by: Romain Pokrzywka <romain.pokrzywka@kdab.com>
Reviewed-by: Oliver Wolff <oliver.wolff@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-07-12 14:22:58 +02:00
Friedemann Kleint 46c62433e8 Implement qWaitForWindowShown using qWaitForWindowExposed.
Deprecate qWaitForWindowShown for Qt 6 as it is just a wrapper.

Change-Id: I0f8195679679120bd402e273fed4d331dc926708
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-07-12 14:22:48 +02:00
Thomas McGuire 7ad4ea0fdc QNX: Rename copyBack() to blitPreviousToCurrent()
Change-Id: I12cff8f4533f9a257b85d2a2db6ee3ef4a0c9751
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-07-12 11:25:58 +02:00
Thomas McGuire 2b2f5895ed QNX: Factor out blitHelper() function
Change-Id: If4d671aae557065d502c3c134f50c89c621cb145
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-07-12 11:25:52 +02:00
Thomas McGuire 07de9df9ec QNX: Add comment in post() explaining how buffering works
Change-Id: Ieb87ea1bd926700277bf90c6a50ae89f1a8da1c2
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-07-12 11:25:45 +02:00
Robin Burchell f45c62023d android: fix build mistake from earlier mkspec naming
Change-Id: I48d9f097e3177f9e2f558845e531f4e438035586
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-12 08:01:51 +02:00
Thiago Macieira 0aa4fa455e Fix static plugin loading.
The QFactoryLoader::indexOf and keyMap functions expect to receive the
metadata that contains a "MetaData" entry, instead of the entry
itself.

Also, QFactoryLoader::metaData() skips static plugins with the wrong
IID, so we need to skip it too in QFactoryLoader::instance().

Change-Id: I8a453087feb88d0e8d1021054353f3600d5100a5
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-07-12 03:34:13 +02:00
Mitch Curtis 282d81e4e5 Write qHash functions for QDate, QTime and QDateTime.
These functions didn't exist - this patch implements them.

Task-number: QTBUG-23079
Change-Id: I9eb6e238531d5cda878f5f2cdd27bab30aa60669
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-12 01:46:38 +02:00
Mitch Curtis 623bfe2093 Add unary operator+ to QPoint and QPointF.
As requested by Winfried Schenke:

"QPoint should have an unary operator+ (the unary operator- exists).
Classes with arithmetic operators should provide a complete set of
operators, because some template code relies on it."

Task-number: QTBUG-22913
Change-Id: Ib0c5105975f56c15f00bb48d83c8d911f5a204ac
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-07-12 01:46:20 +02:00
Thiago Macieira 74b0206a71 Put the ICU libraries in LIBS_PRIVATE
We don't expose ICU in our public API, so there's no need for end-user
applications to be forced to link to ICU.

Change-Id: Ie7a1cef205b9859be4c6b21f486392d192cf6063
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-11 18:59:48 +02:00
Robin Burchell 7f2a64f403 eglfs: add virtual destructor to QEglFsHooks
Fixes:

qeglfshooks.h:56: error: 'class QEglFSHooks' has virtual functions and accessible non-virtual destructor

Change-Id: I5b8d96e764121c85fcc73d2231427cd123de8cd9
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 16:58:53 +02:00
Girish Ramakrishnan 683540ee5a linuxfb: Add config.test and configure support
The code is exactly the same as what is already done for DirectFB.

Change-Id: I3b84e67a3e999f692da4110f3ac9c82d98b0637c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 14:55:27 +02:00
Sergio Ahumada 59339941e0 Fix some spelling errors
Change-Id: I19d3b2e9a5180b13deb828b55195404ef20be295
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-07-11 14:52:37 +02:00
Jocelyn Turcotte 62e6608f69 Add protected virtual ensureActiveTarget() to QOpenGLPaintDevice
Make sure that QOpenGLPaintDevice supports it the same way as
QGLPaintDevice::ensureActiveTarget dit. It is made virtual since the
external code needs to manage FBOs for QOpenGLPaintEngine.

Task-number: QTBUG-25995
Change-Id: Ieed9616f6a14204aae628d7febe6a11538496b3d
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
2012-07-11 14:52:17 +02:00
Jiang Jiang fe40b8f4ad Avoid loading multiple bearer plugins of the same key
There may be duplicated debug plugins, loading both will cause
crash.

Change-Id: Icc2a3643c318844bc7f2e149a6434e95de2449b2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-11 14:52:17 +02:00
Friedemann Kleint e8aa56b74b Add stylehint to use querying RTL keyboard support.
Change-Id: Ic58ed7cb64cc7fe60b4d431e9f29e389c62265fc
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 14:52:17 +02:00
Friedemann Kleint cf2b5a7722 Clear qt_button_down widget when starting a drag.
Prevent pickMouseReceiver() from using the
widget from which the drag was started.

Task-number: QTBUG-26145
Change-Id: I65d4c295a894193e41c676fb9fd1f7113c2631b5
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 14:52:17 +02:00
Thomas McGuire a63c7a9382 Don't set the resize and move flags when activating fullscreen mode
This fixes tst_QWidget::movedAndResizedAttributes() for platforms
that don't have support for QPlatformWindow::setWindowState().

Change-Id: Id0f123d11b08a75c0c131080d509e6b23b281600
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 14:52:17 +02:00
Stephen Kelly 78203ccf80 Fix unit tests when CMAKE_PREFIX_PATH env var is not set.
Tests which are expected to not build need to get a way to find the
Qt 5 config packages. Because they use try_compile, there is no way
to pass the contents to it.

Work around that by generating a file containing the prefix which
the tests will include.

Change-Id: If43080c241539e4af5fe1c183e7da72066278b73
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-07-11 12:46:15 +02:00
Girish Ramakrishnan 27cefd85f3 linuxfb: Remove QFbWindow::setVisible
QFbWindow::setVisible doesn't call into the base class implementation
and thus suppresses the delivery of the expose event. It turns out we
don't need to track the visiblity at all since the base QPA code tracks
this already.

After this change, windows are now render on the framebuffer.

Change-Id: Ifcfc730456883eb423d79479bd0b04330b8c2d72
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 12:45:35 +02:00
Girish Ramakrishnan 95aa6935a1 linuxfb: Add m prefix to all member variables
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>

Change-Id: Id1eb31ff15713c4ce3659f71d23a18ecf42f6bd3
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 12:45:21 +02:00
Girish Ramakrishnan e32ee62c7a linuxfb: raise and lower should take QFbWindow as args
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>

Change-Id: I856ea141a39f23968169ba29be1445fa089f7f02
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 12:44:56 +02:00
Girish Ramakrishnan c2b9c0ec89 linuxfb: let the window register itself with the screen
This moves the addWindow call to the platformsupport code.

Change-Id: Icf9175ae86ad880248036362e9c5f40124744272
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 12:44:38 +02:00
Girish Ramakrishnan b47bded2f3 linuxfb: Add option to not switch to graphics mode
When in graphics mode, printf/qDebug doesn't get printed
on the console. So, it's nice to have this option for
debugging.

Change-Id: Idd552292da2526e07d9c74d2a901e0d675edb2e1
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 12:44:21 +02:00
Girish Ramakrishnan f0922c9baf linuxfb: Rework screen code
Move the screen code from integration. The design philosophy
is that QFbScreen takes care of generic framebuffer composition.
QLinuxFbScreen is just an linux framebuffer adaptation layer.

Change-Id: I8456c13826f06621037dd77fe0d0bd8873806c96
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 12:44:05 +02:00
Girish Ramakrishnan 0be4073708 linuxfb: remove mScreens from QFbWindow
A QWindow can only be in one QScreen, so it makes no sense to track
a list of screens.

Change-Id: I341a67afa90c7fbbbd95786b43d0a322fc1ddba2
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 12:43:51 +02:00
Girish Ramakrishnan 4f5a9c8791 linuxfb: create image only on resize
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>

Change-Id: I04cd75f96cf755ef0c12fad70e3bbd96fbbed9a1
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 12:43:12 +02:00
Girish Ramakrishnan c452418e9f linuxfb: don't store window in backingstore
The backing store already knows about the window.

Also, rename surface to backing store in QFbWindow.

Change-Id: I3701b3cdbdc228200da9b93b13037655dc436f53
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 12:42:52 +02:00
Marc Mutz 569ea8c365 QNX: fix linking by implementing QStandardPaths::enableTestMode()
Change-Id: Ia223ff598d816dd6420437a9a58be26da55d7c07
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: David Faure <faure@kde.org>
2012-07-11 11:33:32 +02:00
Kent Hansen d281aa6936 statemachine: Support parallel root state
QStateMachine inherits from QState, so it should be possible to set
its childMode to ParallelStates, and it should behave as expected
(the machine should emit the finished() signal when all its child
states are in final states).

Task-number: QTBUG-22931
Change-Id: Ic436351be0be69e3b01ae9984561132cd9839fa7
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-11 08:42:45 +02:00
Kent Hansen 28e9a602cb statemachine: Emit finished() signal when the initial state is final
It's legal to set a QFinalState as the initial state. The state
machine should correctly emit the finished() signal upon entering
such a state in the initial transition, and don't do any further
processing.

Change-Id: Ica8d3fadbbde604512ea1136624af54eb3b13b11
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-11 08:42:40 +02:00
Kent Hansen 0d8789ad30 statemachine: Small refactoring of initial transition code
In preparation of supporting parallel root states, which will make
the initial transition creation slightly more involved.

Change-Id: Iad996eb4db248842c1a2088430c13bd5c953c374
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-11 08:42:36 +02:00
Kent Hansen a7d6efb6e3 statemachine: Get rid of hidden start state
The hidden start state was used as a mechanism for performing the
initial transition (to the real initial state,
QStateMachine::setInitialState()), but it mutated the state machine
in a way that causes problems when the root state is a parallel
state group (see future commit).

Change-Id: I41ac4f6bcabf3bec0a412e46282a1373928105a3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-11 08:42:24 +02:00
Girish Ramakrishnan 018cd808fd linuxfb: add linuxfb.json and moc main.cpp
This makes the linuxfb plugin load

Change-Id: Idbe888b5795f8ac86f1e3cf197e42c99cca04818
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 06:06:27 +02:00
Girish Ramakrishnan 58f644dbcf linuxfb: make linuxfb compile
The plugin now compiles, it is not known to work.

Change-Id: I8dd086eb7fc41c6e197debc2601eebba3404187c
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 06:06:04 +02:00
Girish Ramakrishnan 2407f4f706 linuxfb: make platformsupport convenience compile
Rename fb_base to fbconvenience in-line with the other
convenience classes.

The code only compiles, it is not known to work.

Change-Id: If51700ddf0a11ace5129af6f00f34fd895a6a4df
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 06:05:49 +02:00
Jason McDonald bb3f2cceb3 List required xcb packages for Ubuntu 12.04.
Change-Id: Ia934a9da9986f451d90053891c80ec352b939172
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-07-11 05:48:02 +02:00
Kent Hansen 035c933eaa statemachine: Revamp property assignments implementation
In the old implementation, property assignments
(QState::assignProperty()) were "second-class citizens".
Assignments were not really integrated into the state machine
algorithm, but rather done as a separate step
(QStateMachinePrivate::applyProperties()). While that was
convenient for SCXML spec transcription purposes, it resulted
in some pretty poor semantics on the user side:

* Properties were not assigned until _after_ both the
QAbstractState::onEntry() function had been called and the
QState::entered() signal had been emitted.

* Automatic property restoration (QStateMachine::RestoreProperties)
did not play nice with nested states (and parallel states, in
particular).

The proper fix is to refactor the implementation to make
property assignments first-class in the core state machine
algorithm (QStateMachinePrivate::microstep()).

In practice, this meant splitting some steps. Instead of calling
exitStates() straight away, we now first only compute the states
to exit (without actually exiting them), and use the resulting set
to compute which properties are candidates for restoration.
Similarly, instead of calling enterStates(), we first only compute
the states to enter (without actually entering them), and use the
resulting set to compute which properties are assigned by the
entered states.

With that in place, the rest was a matter of moving the various
chunks of the old applyProperties() logic to the place where they
belong in the per-state entry/exit.

All existing autotests pass. Added several tests that verify the
desired semantics in more detail.

Task-number: QTBUG-20362
Change-Id: I7d8c7253b66cae87bb0d09aa504303218e230c65
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-11 05:17:10 +02:00
Kent Hansen 016695c7c7 statemachine: Refactor {enter,exit}States() functions
Move the computation of the sets of entered/exited states to
separate functions.

This separation is done in order to facilitate the integration
of property assignments (QState::assignProperty()) into the
core state machine algorithm.

Change-Id: I5b7084e0e37037eb64909d217856746d81bf1878
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-11 05:17:06 +02:00
Sean Harmer 026503152d XCB: Use glXCreateContextAttribsARB if available
If the GLX ARB extension ARB_create_context is available use the
function glXCreateContextAttribsARB to create a context for OpenGL 3 or
newer that honours the requested profile and version.

If a core profile is requested we also ensure that it is forwards
compatible.

Also ensure that the stored surface format reflects the requested
version.

Change-Id: Ie4f77be19bfc400440a2f8c9b3d99240eb430925
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-07-11 02:48:45 +02:00
Jan-Arve Saether 159b28d972 Remove clipboard operations from QAccessibleEditableTextInterface
Also, remove its subclass QAccessibleSimpleEditableTextInterface

Instead of having the subclass that implements this conveniently,
we move this behaviour over to the bridge. The bridge should
check if role() == EditableText is set, and then it should try to
support the IAccessibleEditableText interface (i.e.
it should accept the calls to replaceText(), deleteText() and
insertText()) and change the text with the following operations:
1. Query the text using QAccessibleTextInterface::text() or by
   using QAccessibleInterface::text(QAccessible::Value) as a fallback
2. Do the requested delete/insert/replace manipulation
3. Update the text with setText(QAccessible::Value, newText);

Change-Id: Iee5e41faf14351951e2bfca8c9eac970a113e878
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-07-11 02:47:34 +02:00
Sergio Ahumada 825cd7b9e5 Change deprecated use of qgenericplugin_qpa.h to qgenericplugin.h
In file included from kernel/qgenericpluginfactory.cpp:46:0:
  ../../include/QtGui/qgenericplugin_qpa.h:4:4: warning:
  #warning Header <QtGui/qgenericplugin_qpa.h> is deprecated.
  Please include <QtGui/qgenericplugin.h> instead. [-Wcpp]

Change-Id: I533270e23e742e6f15ad5d480afb4901fb8541b0
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-11 02:47:29 +02:00
Thomas McGuire b9bb115972 Fix showNormal() and friends for platforms with fullscreen hint
Don't call show() inside of QWidget, as that might make the window
fullscreen due to QStyleHints::showIsFullScreen().

This regression was introduced earlier when QWidget::show() gained
support for the hint. No auto test caught the problem, as the
affected platforms (EGL and QNX) are not CI-tested.

Change-Id: I647c2362ac5b53ced562f1d77848552cc122fba0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-10 22:25:01 +02:00
Jeremy Katz d3ff621a57 make gui compile with QT_NO_SHORTCUT
The metatype system expects operator<<(QDataStream &, QKeySequence &)
even when shortcuts are disabled. This provides empty definitions for
that case.

Task-number: QTBUG-24816

Change-Id: Ie29fd01d38178bdc31cc51f1f08662b30edfc1e4
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-07-10 15:38:58 +02:00
Eskil Abrahamsen Blomfeldt a620b77896 Use DirectWrite font engine for non-ttf fonts as well
DirectWrite supports different font types, not just TTF. In order
to enable e.g. CFF support, we simply remove the test for TTF
which was initially put in to be on the safe side when handling
bitmap fonts. However, using DirectWrite with bitmap fonts also
seems to work fine, so there's no reason to have the fallback.

Task-number: QTBUG-22654
Change-Id: I8572bc421ab3dd223025ea152ba9b33f7cf33a8a
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-07-10 14:23:56 +02:00
Eskil Abrahamsen Blomfeldt e316519c0e Get font's underline position in DirectWrite font engine
Fetch the correct underline position for the font along with
other metrics.

Task-number: QTBUG-22656
Change-Id: I35f6ea15ad18088033a5e7b7b83e2430c1b32a8f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-10 14:23:46 +02:00
Laszlo Papp a91e65036e Make the documentation consistent with the header and QVector* classes
Change-Id: If0c5951029beb388cf4b1b8269de7305d0556ef1
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-10 08:58:42 +02:00
Kent Hansen d219ea1ebc statemachine: Don't assign properties for transitions with no targets
If the transition has no target states, that means the current state
won't change; hence, property assignments should not be performed.
In particular, properties should not be restored to the values they
had before the state was entered.

Change-Id: I237bbb541f939c272777e70c5f26c886ec457a17
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-10 06:21:01 +02:00
Kent Hansen d2a6f8e6dd statemachine: Tiny refactoring to avoid double lookup
Change-Id: I5040ca417dc12e1e0938ba7669b3017e414d13f9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-10 06:20:55 +02:00
Kent Hansen 130830e2d3 statemachine: Add some missing QT_NO_PROPERTIES guards
... and move the applyProperties() declaration to the right place.

Change-Id: Iff4f468f2e7bc0350866b737a0db02c0f74bdd4f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-10 06:20:48 +02:00
Kent Hansen aa7180ca92 statemachine: Small refactoring of animation selection code
QStateMachinePrivate::applyProperties() is an epically long function.
Move the code for selecting animations to a separate function, in
preparation of a larger refactoring.

Change-Id: Ic5846db97dd0cb0d6ad01740f413b233d2a66975
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-10 06:20:39 +02:00
Kent Hansen 2f18e72762 statemachine: Purge restorable properties when they are restored
Previously, a registered restorable property would only be
unregistered if the property was animated (see
QStateMachinePrivate::_q_animationFinished()).
But if a property is set directly, it should also be unregistered;
otherwise, the state machine would use the previously saved (stale)
value the next time that property should be restored.

Change-Id: I5d246aa5355ddd0ba5f81b0186a9f0e4f3bbaa3f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-10 06:20:31 +02:00
Kent Hansen bc5a4d28af Set compound state's initial state to 0 if it is removed/deleted
Change-Id: I45b7c15a9b3d5a1860cb9a7da8836f9eaaa0326d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-10 06:20:23 +02:00
Kent Hansen 5db78a077b statemachine: Let QPropertyAssignment do the property write
This allows QPropertyAssignment to be smarter (caching the
property index, for example).

Change-Id: Ib6d302f46f784219b6b3f07784e5c31dd7288c6e
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-10 06:20:15 +02:00
Kent Hansen ba87568655 statemachine: Don't crash if property assignment target is deleted
Do like QPropertyAnimation and store the QObject in a QPointer.
Purge the assignments list upon state entry and property restore.

Change-Id: I54a56885a2905178ab6aa5cf292b3d25c86b7a97
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-10 06:20:07 +02:00
Laszlo Papp 482205d847 Use Q_DECL_CONSTEXPR for the QFlag's inline constructor
Change-Id: I8f9c7bf0fddb79c6c0937e415c427a0547a5cab0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-10 03:26:13 +02:00
Marc Mutz 6f86fea820 QtGui: declare some classes as shared
Change-Id: I0ebb0ca8b8edcecc939021407d1755693f97e553
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-07-10 03:26:11 +02:00
Laszlo Papp 340bd0d429 Use factor and divisor wording to be consistent with the documentation and rest
Change-Id: If05bdcba8f94f4220bae4c40dc5fc3cf44ee41a0
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-10 03:25:28 +02:00
Kent Hansen a37660ff5f statemachine: goToState() should require that the machine is running
goToState() is an internal function. Allowing both goToState() and
machine.setInitialState() to be used to set the initial state of the
machine complicates the logic of QStateMachine::start().

The existing tests for goToState() still pass.

Change-Id: Ie831b4c869848f7f4c3e6bd576cf298a9799eb22
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-10 03:25:02 +02:00
Harald Fernengel e61fc701e4 Speed up QCoreApplication construction a bit
Remove all QString conversions during QCoreApplication construction on
Linux. Saves multiple mallocs.

Change-Id: Ia8ba071a750dd6a08dcf14ef3ecc424f70a3098d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-10 03:24:59 +02:00
Alexey Chernov 2d5d6c8fbc Color transparency support in html import/export
Export of color transparency component is added for cases where color
is exported to html. New static function colorValue() is added to
prepare CSS string representation of QColor. When the color is opaque,
it falls down to QColor::name() method which was used previously,
otherwise it returns 'rgba()' CSS statement or 'transparent' keyword in
case transparency is 0.
6-digit precision is used for alpha value as it's maximum which can be
processed properly by Gecko and Webkit engines
(http://lists.w3.org/Archives/Public/www-style/2009Dec/0295.html).

Import part for rgba() statement was also added to QCssParser. It
supports rgba() color values as stated in CSS Color Module Level 3
(http://www.w3.org/TR/css3-color/#rgba-color).

Import of undocumented statement 'rgba(int,int,int,int);' was also
added to preserve regression test success and to provide compatibility
with previous code relying on this behaviour.

Test cases added to QCssParser autotest for rgba(int,int,int,float)
statement and to QTextDocument autotest for rgba(int,int,int,float)
and 'transparent' statements for certain 'color', 'background-color'
and 'bgcolor' properties.

Change-Id: Id341c4e800249820d52edef8003e50f9a74d062b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-10 03:24:56 +02:00
Eskil Abrahamsen Blomfeldt 69fb70f6b3 Support fallback fonts in DirectWrite font engine
When selecting fallback fonts for a DirectWrite font, we would
cast the font engine to QWindowsFontEngine and get unpredictable
results and crashes. This change factors out getting the LOGFONT
data from the QFontDef struct and will use this to create a new
DirectWrite engine.

Task-number: QTBUG-22658

Change-Id: I743944d9a44d8742b47b1aa3354532493362cc4a
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-07-10 03:24:53 +02:00
Marc Mutz fafc1c3dc3 QtDBus: declare some classes as shared
Change-Id: I82f8d8d02f4a5276924f579871547c0a34605424
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-10 03:24:27 +02:00
Marc Mutz 7c8d259231 Q_DECLARE_SHARED: mark the type movable
All implicitly shared classes are by definition movable,
so this patch adds Q_DECLARE_TYPEINFO(Type, Q_MOVABLE_TYPE)
to Q_DECLARE_SHARED.

Change-Id: Idf8989ae1a7ed6d1ac13fccb7eaef7395a875350
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-07-10 03:24:24 +02:00
Marc Mutz 9fb539085e QtCore: mark some classes as shared
Change-Id: I811d3eebd87c230883cc579c20f9fa4e14ff9521
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-10 03:24:18 +02:00
Marc Mutz 7e0562c5ff fix compilation with conforming compilers (e.g. GCC >= 4.7)
In qdbus_cast(), qMetaTypeId<QDBusArgument> as well as
qvariant_cast<QDBusArgument> are used. They don't depend
on any template argument of qdbus_cast(), so their
definitions need to be available at function template
definition instead of instantiation time.

But the necessary Q_DECLARE_METATYPE(QDBusArgument)
was at the end of the header, after the defintion of
qdbus_cast(), which is too late for conformin compilers.

Fixed by moving it up just after the QDBusArgument
definition.

Similarly, in tst_qdatetime and tst_qvector, the
Q_DECLARE_METATYPE() for Qt::DateFormat and QVector<int>,
and with it the specialisation of QMetaTypeId<>, were
issued after the first use of meta typing; too late for
conforming compilers.

Change-Id: I25ca0b06e68d5184597a22708404a8f2040b2de1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-10 03:24:15 +02:00
Laszlo Papp c327838f67 Make the x() and y() method documentation consistent with the rest
Change-Id: I24d34fe32e2ed7673ba525db0543e705d08037c4
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-10 03:24:11 +02:00
Laszlo Papp 78163b7170 Add note and references to the operator*=() methods for consistency
Change-Id: Ic2681e1db39a30619d3b2a906595cdbdd0e766d6
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-10 03:24:01 +02:00
Konstantin Ritt 917b0df633 Optimize QFontMetrics:: boundingRect() and left/rightBearing()
by avoiding unneeded metrics calculation.
Same optimization for QFontMetricsF.

Change-Id: I7fd0caa2ddb45862ee9e9c0519a71b03bcd0cb6f
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-07-10 03:23:48 +02:00
Konstantin Ritt 5cf93c4352 Fix the UCS-2 surrogates handling in Q*FontEndine*::stringToCmap()
by making sure QGlyphLayout's numGlyphs member is properly initialized
if the string-to-glyphs lookup was successful
(tip: a surrogate pair produces a single glyph index).

Change-Id: I01953f3b6281d79e1a214bfab0424e796d94769a
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-07-10 03:23:46 +02:00
Konstantin Ritt 98c1eb1750 Optimize Q*FontEngine*::stringToCMap()
by avoiding the glyph metrics calculation when those metrics weren't requested
(QFontEngine::GlyphIndicesOnly flag has been passed).

As a side effect, this fixes a crash in case QGlyphLayout
was initialized only partially (with the glyphs array and the size).

Change-Id: I7d67abc2a74683131361fa21f8be203f61f247bc
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-07-10 03:23:43 +02:00
Konstantin Ritt 1db99a6250 Move ShaperFlags enum from QTextEngine to QFontEngine
These flags are specific to font engine(s) and has nothing
to do with the text engine or the text layout.

Change-Id: I4bb793c3c634b3cf0ae0a8a8c23b946fad5874b6
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-07-10 03:23:41 +02:00
Eskil Abrahamsen Blomfeldt 3593701940 Fix glyph positions with DirectWrite font engine
Make same change as we have done in the other engines (floor instead
of round) to be in sync with changes in the paint engines.

Task-number: QTBUG-26409
Change-Id: I7a99aa27c93cb695ac91507505ef0b940cd78ebc
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-07-09 15:55:57 +02:00
Eskil Abrahamsen Blomfeldt 6fb5b6fa58 Fix bounding box of DirectWrite font engine
Vertical bearings of the font were ignored, giving the wrong height.
Also, the left bearing is right bound in DirectWrite, so the sign
should be flipped.

Task-number: QTBUG-22649
Change-Id: I82934f5b08e68e46d1b2221b35008bf9d75c5748
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-07-09 15:55:49 +02:00
Marc Mutz b65291bc42 QNX: QtGlobal: compile as a C header again
<utility> is a C++ header, only execute the check for the
Dinkumware standard library if we're compiling under a
C++ compiler.

Change-Id: I1b24e76f20bfc03b70a330f9da96b4f815106e61
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-09 15:27:18 +02:00
Jiang Jiang aee1702b13 Fix cursor truncate to include line position
Since we could have moved the line position (QTextLine::setPosition),
the truncating position should be adjusted with that.

Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
(cherry picked from commit ca89c49fa2c5cbb3945897046f33eed9f7da846c)

Change-Id: I89ea1a3776a50732181bdfea9e79b4dddef950d4
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-07-09 15:03:56 +02:00
Joerg Bornemann 4d32eab759 fix "paintEngine: Should no longer be called" warnings on Windows
Change-Id: Idece743d1f28f1c579d823123b6814fae786b58b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-09 11:54:49 +02:00
Girish Ramakrishnan 300d984bdb qpa: Fix crash when native interface is null
QPlatformNativeInterface is optional.

Change-Id: Iae2a6de63fc8a36deb6059047a0d7f05defb6b5c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-09 11:49:07 +02:00
Tasuku Suzuki d04e06dc32 Remove Library dependency on Settings
made QLibraryInfo available with QT_NO_SETTINGS.
QKdeTheme is removed when QT_NO_SETTINGS is defined.

Change-Id: I63d619bb305e6c23985d9ea50c72d39a697b7a4b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-09 11:18:17 +02:00
Joerg Bornemann 1c2d95d1b7 QWindowsWindow: fix FullScreen state transition
When putting the window into FullScreen state, we
   - must not override the saved style and geometry
     if it has been saved before.
     E.g. FullScreen -> Minimized -> FullScreen
   - have to retrieve the window's normal geometry
     if the window is currently minimized.
     E.g. Minimized -> FullScreen

Task-number: QTBUG-26420
Change-Id: If4164feee5997682406701f0ea7018d7f6257d35
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-09 10:50:32 +02:00
Joerg Bornemann 1a86e35709 QWindowsWindow: fix state transition FullScreen -> Minimized
When going from FullScreen to Minimized we must not restore the window's
saved geometry.

Task-number: QTBUG-26420
Change-Id: I75af8bb9aeb38f5bc24bc4e0b725786c8c22fdb3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-09 10:50:29 +02:00
Joerg Bornemann a2bd91c5e9 QWindowsWindow: fix restoring from minimized to fullscreen
This fixes the state transition FullScreen -> Minimized -> FullScreen.

Task-number: QTBUG-26420
Change-Id: I555c4f332e796b465149e592c2583d615b37c4ec
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-09 10:50:27 +02:00
Joerg Bornemann 84e84b507c fix fullscreen state in QWidgetWindow::handleWindowStateChangedEvent
A widget can be Qt::WindowMaximized and Qt::WindowFullScreen at the same
time. See tst_qwidget::windowState.

Task-number: QTBUG-26420
Change-Id: I89d6edb857f41cda911152244cf23d36dfd1cdce
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-09 10:50:25 +02:00
Laszlo Papp 0404bd1bcd Use QDoc instead of Qdoc to be consistent with the rest of the documentation
Change-Id: Iec031e207609b87e3c85bec66a7aaebd971973d1
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-07-08 15:33:35 +02:00
David Faure 2c55847e9e QMimeType: document preferredSuffix()/suffixes() better
Change-Id: Icf4aab3516cd622d9932e32cb0bd819bef22ce9b
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
Reviewed-by: Wolf-Michael Bolle <wolf-michael.bolle@nokia.com>
2012-07-08 10:37:24 +02:00
David Faure b069158ed3 Fix QMimeType::operator== to only compare mimetype names.
The name is the unique identifier. Code such as
if (oldItem.mimeType() == newItem.mimeType())
really wants to detect whether the item has a new mimetype (name),
not compare static mimetype data such as comments and icons.

Change-Id: I5fe56443295c91e1024c066ad6e7f93d842ae507
Reviewed-by: Wolf-Michael Bolle <wolf-michael.bolle@nokia.com>
2012-07-08 10:36:51 +02:00
Marc Mutz 294960c160 Q_DECLARE_SHARED: fix docs; require and use member-swap
By requiring a member-swap, this macro becomes applicable to a wider
range of types (e.g. QFont, which has another member besides 'd'),
while at the same time avoiding the encapsulation leak that is data_ptr().

There have been concerns over breaking existing users of
this macro, but for some time now, Q_DECLARE_SHARED only
works within QT_BEGIN_NAMESPACE anyway, so its a safe bet
that all users of this macro are in-tree.

Change-Id: I7fdd9dba204554af8d3f9768b97bb42847a5acf4
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-06 16:08:02 +02:00
Marc Mutz fa36d81bbc QPalette: add member-swap
Implemented as in other shared classes (e.g. QPen), except that
I wrapped the bitfield in a union to speed up swapping.
(GCC didn't manage to optimize (hand-rolled) swaps of adjacent
bit field elements into an integer one, even at -O2).
GCC -pedantic complains about anonymous structs, so I had to
give the struct in the union a name.

Change-Id: I519e1c2f88f6ae2dffed38b493991189d67073b8
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-06 16:08:02 +02:00
Marc Mutz b0aa023aa2 QtNetwork: add member-swap to shared classes
Implemented as in other shared classes (e.g. QPen).

Change-Id: Ib3d87ff99603e617cc8810489f9f5e9fe054cd2a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-07-06 16:08:02 +02:00
Marc Mutz 7d63fa6edc QtGui: replace some copies with swaps
This provides move speed even for non-C++11 compilers and avoids
having to call the copy assignment operator from within copy ctors.
(which will result in infinite recursion when using the copy-swap idiom).

Change-Id: I379bc8bf2c72d9f986c0f17f9eef56cd592e7a06
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-06 16:08:02 +02:00
Casper van Donderen 8f2c57ddb2 Doc: Replace all occurences of \BR with \br.
Change-Id: I9b0fac5fac7b0467de2d9a57a951b10a0f5438d7
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-07-06 16:08:02 +02:00
Laszlo Papp a385ba17d2 Fix some typos in the qdoc manual
Change-Id: I7d5e4ad684556b6c96fde2dcbdce6c772856cc33
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-06 16:08:02 +02:00
Miikka Heikkinen 1c1bde0312 Update framestrut initially after window creation
Creating native widgets such as QGLWidget and then calling move()
on top level widget before doing show() on it caused framestrut to
be incorrect, as native widgets force the creation of the
native windows also on their ancestors when they are constructed,
rather than waiting for window to be shown.

Change-Id: I3e8d60547b3b683178ba059c5d92526a1d447442
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-06 16:08:02 +02:00
Friedemann Kleint 2df94c5182 QArrayData: Fix gcc warning about parentheses in 'a + b & c'.
Change-Id: I2c08dc8170c77de401663b1643ebca8484dbfec0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-06 13:58:38 +02:00
Kim Motoyoshi Kalland d13e3441a9 Fix division by zero in triangulating stroker.
Task-number: QTBUG-15621

Change-Id: I10e0e39e57078507a01e1c2edb59fa52fd932f6c
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-07-06 13:58:34 +02:00
Kim Motoyoshi Kalland 16f8afa5b1 Remove duplicate triangulating stroker implementation.
Change-Id: I9d8f609c9ecb02dd25e588313bc98db4b9325974
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-07-06 13:58:28 +02:00
Tasuku Suzuki 89d7a55db4 QPlatformScreen::grabWindow() support on Mac
Added QCocoaScreen::grabWindow() and copied Qt 4 implimentation.
examples/desktop/screenshot works but WId window is not handled yet.

Change-Id: If228bb59d98a5166788ab38293d7e6a6300d1f85
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-07-06 13:57:55 +02:00
Jeremy Katz 2b1a501ac5 make QtGui compile when QT_NO_WHEELEVENT is defined
This is necesary but not sufficient to make the small configuration
build.

Task-number: QTBUG-24816

Change-Id: I1a06555e6f54f4d3c09a34fd50bf76e7b47d469f
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@nokia.com>
2012-07-06 13:43:11 +02:00
Miikka Heikkinen e70e9f8239 Fix positioning when embedding native widgets such as QGLWidget
Embedding native widgets creates window before ActiveQt has a chance
to set the _q_embedded_native_parent_handle property on the window,
so embedded flag doesn't get set during window creation.
Update embedded flag also when setting window flags.

Task-number: QTBUG-26438
Change-Id: Id29d7123de81d6542dfd6471d6dba3d31bbfe2df
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-06 13:01:37 +02:00
Martin Smith e94893ddf4 qdoc: Removed several #if 1 macros.
The code should be there. Also removed
a few obsolete #defines.

Change-Id: Id63418b344157a99ac502329eea4f0bc9dc77849
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-06 12:28:38 +02:00
Casper van Donderen 33730f3b28 QDoc: Fix relative URL generation for cross-linking.
Previously the URL relative to the installdir was used, now we use a
relative URL to the index file.

Change-Id: Ia2485aa49da8240901d0db1f102eb48da689ef2a
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-07-06 03:54:38 +02:00
Jorgen Lind c6d7f9c1a0 Implement nativeResourceFunctionForContext for xcb
Change-Id: Icf6c39fb456b39fec58ac2f74c569b9d01993589
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-07-06 03:54:30 +02:00
Martin Smith 2f0dbd0439 qdoc: Removed several #if 0 blocks.
Removed a lot of dead code.

Change-Id: I237521efab7dd046d3a47ab92a6a0e083c59ab55
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-06 03:54:26 +02:00
Bjoern Breitmeyer 5f04a127a7 fixed cursor handling on wince
Change-Id: Iea91dde458b0e41a55ba6cb3e157756a1473f653
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-06 01:38:30 +02:00
Eskil Abrahamsen Blomfeldt 2f2d6db09a Clean up attribute arrays flags in OpenGL glyph cache
When used in the SceneGraph we're expected to disable the arrays
after we're done, otherwise we'll get a warning about memory corruption
and crashes.

Change-Id: Ie8e426309716bef4b75d79039e8ca0b4943c79e7
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-07-06 01:38:30 +02:00
Robin Burchell 56e751a0c9 eglfs: Allow setting screen size through environment variables.
This adds:
- QT_QPA_EGLFS_WIDTH
- QT_QPA_EGLFS_HEIGHT

If both are set, fb0 detection is completely bypassed, otherwise, the
environment variables act as an override for the fb0 values.

Change-Id: Iaf38c8b0d40ce0a921bb6c5dbf31af788802d3fa
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-06 00:37:39 +02:00
Robin Burchell 0823fa2c61 android: work around android's linux/input.h being retarded.
It seemingly doesn't include many of the required defines for evdev, so do what
everyone else seems to do, and work around it.

Change-Id: I4a6ffb548c7370f675c736177b63220f034d06b8
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-06 00:37:39 +02:00
Rafael Roquetto c54ba8c252 Disable dedicated screen event thread by default.
Screen events should come through QEventDispatcherBlackberry by default.

Change-Id: I64d17b99e9dd8edf23f68e1186e9318849f1a398
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2012-07-05 18:57:29 +02:00
Thorbjørn Lund Martsum f8f6acb05c QHeaderView - resizeSection improvement
This patch improves the manual resizeSection a bit. Before we didn't
consider that the program could maybe resize other sections when the
user was resizing one section.

The main issue with that is that setOffset is so smart that it helps
moving the mouse cursor - however it really shouldn't do if the
program is trying to change something too.

Maybe this won't solve all (possible) problems at once - but it is
a fixed needed just to make something work - trying to make anything
work without this fix is horrible....

Change-Id: I3cefa375a9b8ee4c1ef1e08ba0900025c671e4c6
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-05 13:13:58 +02:00
Rafael Roquetto 40bfbf3a5b Fix event loop throughput issue
Currently, only one bps event can be handled per event loop iteration,
bringing about a huge performance penalty. This patch fixes this issue by
bulk processing events whenever they are available.

Change-Id: Iecce1e86730bd90c3c81a7c6ebdf9ed83189e58e
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-07-05 13:13:58 +02:00
Jiang Jiang 87fbe79af2 Do not delete m_blitProgram more than once
When m_blitProgram is created the constructor will add it to
QOpenGLContext as a child of that QObject, so it will be deleted
when that QOpenGLContext is deleted as QObject will delete its
children in destructor. Delete it here will cause crash in
thread termination.

Change-Id: If9d3287d159cc3276b6a840a584a1b212b9c9fd0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-05 13:13:58 +02:00
Christoph Schleifenbaum 10c6f015f4 Support for overlay-scrollbars on Mac
On Lion scroll bars are within the scroll area itself and are not being
shown as long as the user is not scrolling.

This patch draws the new scroll bars and makes them fade away. Further
it introduces a pixel metric checking for this behaviour. It's used by
QAbstractScrollArea to put the viewport to the correct place.

Task-number: QTBUG-21673

Change-Id: Id530265043549318ac420b392de6b8642deaa4c6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
2012-07-05 13:13:58 +02:00
Morten Johan Sorvig a0e617f669 Sync QWindow properties on NSWindow creation.
Synchronize size hints, window title, flags and state.

Change-Id: Ibc2358d8d4d0625aaddfbcad159e3682e3e79d3c
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-07-05 11:06:33 +02:00
Martin Smith 0915f189e2 qdoc: The \br macro is promoted to a qdoc command
The \br macro, which is used to insert a line break in the output
text, is now promoted to be a qdoc command. For html, it outputs a
<br/>. For DITA XML it does nothing.

Task Nr: QTBUG-26435

Change-Id: Ie0542c9053f68473ccaa2f50ace74baa30f78dd0
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-07-05 11:01:02 +02:00
James Turner 76b1df3032 Native drag implementation on Mac
Create a native implementation of QCocoaDrag, using the 10.6 (and earlier) Cocoa
dragging API. This matches the implementation in Qt4 closely for the moment.
In the future it may be desirable to create an alternative implementation using
the new (non-blocking) drag API introduced in 10.7, but that will require deeper
changes to the mime-data handling.

This changes makes one more method on QPlatformDrag virtual, since the
Cocoa behaviour diverges from the base version: ::defaultAction is customised.

Change-Id: I1843293a62b2b4973a07b5e75ea3c312dc064018
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-07-04 18:00:41 +02:00
Morten Johan Sorvig a8fb38f230 Cocoa: Fix size hint and resize increment setting.
Call the corresponding NSWindow size functions.
Add special cases where Qt returns null or empty sizes.

Change-Id: I880c50c04e92271dc342ad587191c8cb2c006dba
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-07-04 18:00:41 +02:00
Thorbjørn Lund Martsum 524c3e05e8 QHeaderView - prevent negative default+minimum section sizes
In 96f1fe8855 we agreed that sections
with negative sizes did not make sense. Of the same reason default
section sizes and minimum section sizes should be not negative.

Change-Id: I6a770e7f510d8e2bb90bfd8f38b4fa0566fc137b
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-04 18:00:41 +02:00
Jocelyn Turcotte e78b3e80e6 Properly detect the max texture size when using QOpenGLPaintDevice.
The value is currently hard-coded to 1024, this is a problem since
any image painted with a size higher that this will be scaled down before
being uploaded.

This patch copies the implementation from QGLContext which works correctly.

Change-Id: Ia2bda60cf21d9adf13c91cea4854a2b20e4041f2
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
2012-07-04 18:00:41 +02:00
Tasuku Suzuki 3709d8dc52 disable building uic when -no-widgets is set
Change-Id: I86040ec086621913fefcf6d349fe603758991c4e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 18:00:41 +02:00
Rafael Roquetto c10bc4c37d Fix socket notifier registration on Blackberry.
This fixes a bug on QEventDispatcherBlackberry, where registerSocketNotifier()
and unregisterSocketNotifier() wrongly assumed that a file descriptor was
being watched exclusively by one QSocketNotifier, while in fact there can be
more than one QSocketNotifier associated with a single file descriptor.

Change-Id: I0ce54bf809df109ad97f4a7f170f448d5d04d453
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-07-04 15:58:12 +02:00
Stephen Kelly 6bd4be9436 Uppercase the CONFIG for verbatim mode.
Change-Id: Iec883e0218af80fc329d866affb2b95db72c54d3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 15:52:00 +02:00
Stephen Kelly 648d5964ee Add a Q_PROPERTY for the sourceModel of a proxy model.
Now that Q_PROPERTY with a QObject derived type is more powerful.

This property can be used in QML so that wrappers for proxy models
do not need to be created, such as in the example
at https://codereview.qt-project.org/#change,13007

Change-Id: I6ba676549d2135585d429a28e214fef0b2a6b1f9
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-07-04 15:51:50 +02:00
Girish Ramakrishnan 3517949390 Make QGenericPlugin and QGenericPluginFactory public API
These classes are not specific to QPA.

Discussed in QtCS 2012.

Change-Id: I32bc5fad4f0fa5e7095af86d61966fdf4d9e4ad7
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-07-04 14:40:20 +02:00
Samuel Rødal 32c54642dd Removed private header warning from public QOpenGLPaintDevice header.
Change-Id: I9f2068d7271778e98251d8cbcfffa3a8c3e58f3d
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-07-04 02:46:27 +02:00
Tasuku Suzuki 43aa9ff7c3 enable platformsupport for -no-widgets
qpa plugins need platformsupport

Change-Id: I6ebfac327940c00e1ab591045cf1a3bb3ac689e0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 02:46:27 +02:00
Matthew Vogt 10edf63174 Revert "Allow moc to handle symbols that have been redefined."
This reverts commit 5bb1408927.

The temporary measure used to support redefinition of QtDeclarative
class names during the transition period is no longer required.

Task-number: QTBUG-24517
Change-Id: Ib90f08fcdfb02e004e594ac72b698eaa0325d98d
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-07-04 00:48:44 +02:00
Stephen Kelly 0ce1574dad Add some quotes to prevent damage from spaces in the paths
This is a forward-port of 0331a5adde45583e3bca351f2814aea971474671
in cmake.git.

Change-Id: I8d889389a487f8b820182bd66e8a3df7aa5dc8d9
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-03 22:55:13 +02:00
Stephen Kelly 897d0021dc Improve basename extraction in qt5_add_dbus_interfaces
This is a forward port of f46903b4b21e5d1c8af9a60e9ea87805b170ed73
in cmake.git.

Change-Id: I627b17259182497c1353ccf4cd3fa4a61546be5d
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-03 22:55:13 +02:00
Christoph Schleifenbaum f4dd0828dc Platform-plugin support for QSystemTrayIcon.
Implement QPlatformSystemTrayIcon providing QPA-plugin-support for
system tray icons. Make QSystemTrayIcon use this as new backend.

Ported over qsystemtrayicon_mac.mm to qcocoasystemtrayicon.mm to provide
Cocoa support for the new interface. It had to be changed to match the
interface, especially for icon and menu handling.

This interface is made to not use QStyle or QMenu which are related
classes of QSystemTrayIcon. It's therefore not introducing QtWidget
dependency into the platform plugin.

Task-number: QTBUG-20978

Change-Id: I0d0a73835698b3b4f97219d4f5bbcfa2af57dbe2
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-03 16:48:33 +02:00
Stephen Kelly 3e5b98f4ea Simplify the creation of QMetaTypeId specializations.
Change-Id: I07405f91b6f73a4e129859ca45a983d3ec7029ab
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-07-03 14:54:42 +02:00
Miikka Heikkinen 8368557b9c Fix focus handling when the application has QAxWidgets.
Removed old defunct platform specific code from
QWidget::isActiveWindow() and added call to
QPlatformWindow::isActive() instead. This is done because
the embedded native windows inside QAxWidgets can have
focus but are not part of the parent application's Qt
window hierarchy, so native methods are required to determine
if they are part of the active window or not.

QWidgetPrivate::setFocus_sys() was implemented to activate
the window of the focused widget if the focus was elsewhere.
This is required because embedded native windows can steal the
focus from the main application window.

Focus event handling in Windows platform adaptation plugin was
fixed to correctly identify the active window in cases where
the are embedded native widgets that can have focus.

Also fixed three test cases that were affected by these changes.

Task-number: QTBUG-25852
Task-number: QTBUG-23699
Change-Id: I817e0ce4317e88955bb49b034eacd630a876ccf0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-03 14:50:34 +02:00
Miikka Heikkinen 6b5bbc531b Implement automatic mouse grabbing on mouse button press.
QWidget::grabMouse() documentation states that Qt automatically grabs
the mouse when a button is pressed and ungrabs it when it is released.
Implemented this functionality to make Qt5 behavior similar to Qt4.

Task-number: QTBUG-25977
Change-Id: I17aa7e8190f4f5224ebc382d62970c86ae492bdb
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-03 14:49:48 +02:00
Friedemann Kleint d3af02f190 Fix QDockWidgets on XCB.
Do not use native decoration.

Task-number: QTBUG-26296
Change-Id: I15a6ace737a08003ee196bde3d0b5ca65aa00408
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-07-03 14:47:49 +02:00
Marc Mutz 9180d9aa8b QNX: fix compilation with C++11 enabled
QNX uses GCC, but by default not libstdc++ as the standard library,
but 'libcpp', a Dinkumware-derived implementation that doesn't sport
many of the C++11 features, yet.

Thus, the compiler detection sets Q_COMPILER_INITIALIZER_LIST, which is true,
in a way, but we're lacking stdlib support, so the next
  \#include <initializer_list> will fail.

So, simply don't define Q_COMPILER_INITIALIZER_LIST if we're on QNX
and detect a Dinkumware signature (taken from Boost.Config).

This is a hot-fix. I'm also preparing a more comprehensive solution
(qstdlibdetection.h).

Change-Id: Ieeb147251c2935517faba61f75d1580a9e1649c4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-07-03 14:41:56 +02:00
Eskil Abrahamsen Blomfeldt fcef238d3c Remove platform specific DirectWrite font engine from QtGui
This has moved into the platform plugin, but it was still lying
around in QtGui and hindering it from compiling.

Change-Id: I47fa730453cbd8aa230ccc4651afd2e774023db6
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-07-03 14:40:01 +02:00
Eskil Abrahamsen Blomfeldt b84bb0b245 Compile when -directwrite is passed to configure
The signature for alphaRGBMapForGlyph() was updated in the
header but not the implementation. The include with
QT_BUILD_GUI_LIB defined would re-export several symbols in
QtGui from the plugin which would make the link against QtGui
fail.

Change-Id: I23c67f97ca68f984b7a1603059c6f177fef60cca
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-07-03 14:39:50 +02:00
Martin Petersson 7f32418f26 QNativeSocketEngine: remove compile watning on Windows
Remove warning of unused variable.

Change-Id: Ia361dcb9081cd47c7018f5e75cdb8eb74f5474d4
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-07-03 14:39:32 +02:00
Martin Petersson 4d145e3ffa SocketEngine Windows: If not dual stack, use IPv4 for AnyIPProtocol
If the Windows version doesn't support dual stack then we should bind
to IPv4. So we should change the socketProtocol to
QAbstractSocket::IPv4Protocol as well.

Change-Id: I7f9d0bdd861f82d720e347d3fa968198de720d1a
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-07-03 14:39:27 +02:00
Konstantin Ritt ee4f50b2e7 Add QChar::SoftHyphen enum value
Just like for the QChar::ByteOrderMark, `ch == QChar::SoftHyphen`
is much more readable than `ch == 0x00ad // (soft-hyphen)`, etc.

Change-Id: I9c85f14cfd979037d35103c3259a435fd729b869
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-03 14:39:02 +02:00
Girish Ramakrishnan 122741c671 Suppress QWindowSystemInterface inclusion warnings.
Since QWindowSystemInterface is now part of QPA API. The correct
inclusion is:
    #include <qpa/qwindowsysteminterface.h>
    #include <qpa/qwindowsysteminterface_p.h>

Bulk of the work was done by:
    find . -type f | xargs sed -i -e 's,#include <\(QtGui/\)\?QWindowSystemInterface>,#include <qpa/qwindowsysteminterface.h>,g'

Change-Id: If75fc32611e72ef1cf58505794def375b1acf74a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-03 14:24:20 +02:00
Joerg Bornemann 97b8915bb1 fix QWidget::grab(QRect(x, y, -1, -1))
Grabbing a widget with a position != (0,0) and an invalid size returned
a pixmap of the widget's size. As we're grabbing just a part of the
widget, the pixmap must be smaller by the amount of x, respective y.

Autotest: tst_QWidget::grab()

Change-Id: I3d5103e6e7c042cc6112038ace236e3f69060bda
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-07-03 13:32:01 +02:00
Joerg Bornemann 3037525530 revive the noPaintOnScreen fix on Windows
The original commit message follows.

Fixes:   Fix the windows PaintOnScreen issue once and for all

Details: To allow both the case where X11 people accidentally set
         PaintOnScreen (which should not have any effect on windows)
         and where people set it and subclass with paintEngine() {
         return 0 } to use GDI / DirectX we do this rather nasty hack.

Original commit in Qt4: 07a2f68bd5869152471e4ffc4a63c683ef141ae8
Autotest: tst_QWidget::paintOnScreenPossible

Change-Id: Ifbb7dc4611959be3ecc362c29a1c3436b0e0fa82
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-07-03 13:31:20 +02:00
Andras Mantia 8ccab9b029 Add support for SQLSTATE error codes
Postgres can report detailed information about an error using error codes.
See http://www.postgresql.org/docs/8.1/static/errcodes-appendix.html .
The current driver doesn't report the error, nor is it supported by the
QSqlError object.
The patch appends the error to the error message, helping applications to:
- handle different errors in a specific way
- show correct, translated error messages, independently on the language of the postgres installation

Change-Id: Ica3530ac33d3aaa9985e06f6c1f302ece9891033
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-07-03 13:21:23 +02:00
Girish Ramakrishnan f128c1f6d3 Remove _qpa from cpp filenames
36547f4eff removed the _qpa from .h
files and promised to remove it from .cpp files at a later date.

Change-Id: I24a5c3796f6b07dd9a1931b699f3212d315edb12
Reviewed-by: Andrew Stanley-Jones <andrew.stanley-jones@nokia.com>
2012-07-03 08:11:54 +02:00
Damir Tatalovic 614422c2e7 MIPS DSP composition functions optimizations.
List of optimized routines:
- comp_func_DestinationOver
- comp_func_SourceIn
- comp_func_DestinationIn
- comp_func_DestinationOut
- comp_func_SourceAtop
- comp_func_DestinationAtop
- comp_func_XOR
- comp_func_SourceOut
- comp_func_solid_SourceOver
- comp_func_solid_DestinationOver
- comp_func_solid_SourceIn
- comp_func_solid_DestinationIn
- comp_func_solid_SourceAtop
- comp_func_solid_DestinationAtop
- copm_func_solid_XOR
- comp_func_solid_SourceOut

Previously optimized routines qt_blend_argb32_on_argb32_mips_dsp and
comp_func_Source_mips_dsp are redesigned and rewritten.

Overall improvement by running tst_bench_blendbench benchmark app
from tests/benchmarks/gui/image/blendbench/ is 27%.

Change-Id: I6ab09b17cac10f4aded59787074ab4c89e72ccac
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-07-03 01:55:44 +02:00
Kent Hansen 60829b4a56 Silence clang warning in QVector::reallocData()
qvector.h:459:30: warning: destination for this 'memcpy' call is a
pointer to dynamic class 'QImage';
vtable pointer will be overwritten [-Wdynamic-class-memaccess]
          ::memcpy(dst, srcBegin, (srcEnd - srcBegin) * sizeof(T));
          ~~~~~~~~ ^
qvector.h:459:30: note: explicitly cast the pointer to silence
this warning
          ::memcpy(dst, srcBegin, (srcEnd - srcBegin) * sizeof(T));
                   ^
                   (void*)

QImage inherits from QPaintDevice, which has virtual functions.
qimage.h declares QImage as a movable type, so
QTypeInfo<QImage>::isStatic is false. Hence, the memcpy codepath will
be reached when the vector is not shared.

We should trust that people declaring such type traits know what
they're doing, so silence the warning.

Change-Id: If36582f57a398fc237fb4bd4f72938fb09667118
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-03 01:55:42 +02:00
João Abecasis deb8d178fe Add erase operation to QArrayDataOps
Change-Id: I37d3ac465f5beddb5038e22e9cda32acb16c78fc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-03 01:55:39 +02:00
Girish Ramakrishnan 037238022f Make QWindowSystemInterface part of QPA API
As discussed on mailing list and QtCS 2012.

Any file starting with qwindowsystem is now marked as
QPA API.

This change drops _qpa from the filenames and adds gui-private
where required for the code to compile. This change is backward
compatible otherwise and compat headers are created for
the old inclusion headers.

Change-Id: I72ea0f394dee74f46e614fcf11ab5500ac9fef2a
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-07-03 01:55:37 +02:00
Bjoern Breitmeyer fe37ae066f fixed compile for mouse button handling on wince
WinCE does not support SM_SWAPBUTTON, so the define will
let ce fail the function call and correctly assume normal mouse
button handling

Change-Id: Id603b3b6a995e22d8800e19a5566a56df95c8962
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-03 01:55:34 +02:00
Joerg Bornemann 8ccd563f3c remove unused variable from QPlainTextEdit::paintEvent
Change-Id: I0959acebaca0685f799465999ed002242f3b0ec3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-03 01:55:27 +02:00
Marc Mutz f6f517bc54 QtGui: add member-swap to shared classes
Implemented as in other shared classes (e.g. QPen).

Change-Id: I5b96d4a4795870d6252aa53de6fbaedde7c0095a
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-07-03 01:20:15 +02:00
Martin Petersson 6c59cdecee QSslCertificate::fromPath fix wildcard handling
The reqExp used to handle wildcards in the path was broken. So we
always searched the working directory and not the specified path.
Autotest where passing because of a hack used for Windows paths
where we removed the first two chars in the path string.

This fix will not use nativeSeparators thus removing the Windows hack
and fix the regExp to match wildcard chars.

Task-number: QTBUG-23573
Change-Id: I56fadbb67f25b8ce9c0f17cb6232e0bdb9148b1c
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-07-03 01:09:33 +02:00
Shane Kearns 41064f8515 Add null httpReply checks to QHttpThreadDelegate
If a request is aborted while under load, the abort signal can be
queued in front of a signal emitted from the httpReply.
The abort slot is deleting the httpReply and setting it to null.
So when the queued slot is processed the httpReply is null and
caused an MMU fault.

Removed qWarning from existing null checks, as these are expected
if abort is called with precise timing so that it races with the
reply finishing on the socket.

Task-number: QTBUG-26245
Change-Id: I0a7e0223fda1bc01d117fe8a993c7f6e43fd72ff
Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-07-03 01:09:25 +02:00
Konstantin Ritt 48925d98f3 Optimize QWindowsFontEngineDirectWrite::initFontInfo() a bit
by using QVarLengthArray instead of allocating memory on a heap
and by skipping a subsequent checks & calls in some cases.

Change-Id: I300d8eaf02ef718ce50833b7c2ca7ebe8cfd0224
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-03 01:09:14 +02:00
Marc Mutz b97070f2c4 QtCore: add member-swap to shared classes
Implemented as in other shared classes (e.g. QPen).

Special case:
 QUrlQuery: document existing swap().

Change-Id: I4b36cc9577fbf2232d4b2a2d8822d26e41e22cad
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-03 01:08:58 +02:00
Konstantin Ritt 02aee5d174 DirectWrite font engine: don't leak the font table buffer
Ideally, each TryGetFontTable() call sequence should be followed
by the call to ReleaseFontTable() with the context value
taken from the first TryGetFontTable() call,
otherwise we'll leak the buffer allocated for the font table.

Change-Id: I627bf0133b7f61798e82929723ccfb780ce9ee69
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-03 01:08:49 +02:00
Yann Bodson 2ff6086e06 Fix capitalization with newline bug
We only want to change the capitalization if the QScriptAnalysis flag
was Lowercase, Uppercase or SmallCaps.

Task-number: QTBUG-17485
Change-Id: Icbecb09b06a9153866ae81d592b3f6779c2dafb5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-03 01:08:37 +02:00
Stephen Kelly f9c73f0785 Forward the CMAKE_PREFIX_PATH to invoked tests.
Change-Id: I5166fb39dcf3ab660c971c4c68b714f534de40cb
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-07-03 01:08:30 +02:00
Stephen Kelly 91720b5bc2 Move the macros for invoking ctest to a shared location.
They are still internal, but all Qt5 modules will be able to use
them then.

Change-Id: I42ab656115b0976ca959293dfd664ec071f35dbf
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-03 01:08:25 +02:00
Stephen Kelly 13e1e30ec3 Add constexpr template specializations for built in metatypes.
This will make it possible (in Qt 6) to remove the enums listing
metatype ids. As it is constexpr, it can be used in switch statements
just like enums, as enum values, and as template specialization values.

Change-Id: I51293674c403714e34cb8a8b8953522fc97a740a
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-07-03 01:08:05 +02:00
Konstantin Ritt fa00407acf shapeTextWithHarfbuzz() minor optimization
If the used font engine is of type QFontEngine::Multi, then we already have
both the "font engine runs" and the stripped glyph indicies for the kerning
-> just call the actual font engine's doKerning() method.
If the font engine is not of type QFontEngine::Multi, then we could safely
avoid the glyph indicies extra manipulations.

Change-Id: Ia8899e6d7beecfd391b050683ac41c21465336e4
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-07-03 00:44:15 +02:00
Sean Harmer ca456f34b0 QNX: Enable threaded OpenGL rendering on QNX
The only complicated aspect to this was deferring EGLsurface
re-creation as a result of window geometry changes (e.g. when we
receive an orientation change event). To allow this to be done
in a controlled way we defer the surface manipulation until the
next call to QQnxGLContext::makeCurrent().

Change-Id: I8062d3e4d19220a822fbc3b8ca563bb1e3be09d0
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-07-03 00:40:58 +02:00
Holger Hans Peter Freyther 56df16fe4b buildsystem: Remove SXE from the configure and qconfig-*.h files
The SXE feature was used with Qtopia but is long gone. Clean it up.

Change-Id: I55fba97b6382300ba63e94f3a6c415227f571e37
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-02 10:10:56 +02:00
Thiago Macieira 978937ab4a Make the CPU detection much more efficient in user code
First, check that the option in question hasn't been already enabled
by the compiler, via compiler switches. If it has been, then we don't
need to verify anything, and we can assume that it's safe to use such
instructions. For example, on an x86-64 build, qCpuHasFeature(SSE2) is
always a constant true.

If the compile-time check fails, then we proceed to try and detect the
processor features at runtime. But instead of insisting on a call to
qDetectCPUFeatures, allow the code using the detection to read from a
variable and simply test it for values. Only if the variable isn't
initialised should it make a function call. The Q_ASSUME allows this
code to be very efficient even with multiple uses of qCpuHasFeature.

Change the uninitialised value from -1 to 0 so that simpler
instructions can be used to check for non-initialisation.

The qDetectCPUFeatures function is renamed to qDetectCpuFeatures to
match the Qt coding style and also to catch uses this code that need
to be adapted.

Change-Id: I24ca5a6ad21075e2e249e1a4f8f5057b8f68ce7c
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-02 10:09:31 +02:00
Jonathan Liu f58390e0f4 Fix MinGW-w64 compilation
Task-number: QTBUG-24699
Change-Id: If6210315926f0266045766bb5d3b00a6d0bdf703
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-02 10:06:11 +02:00
Stephen Kelly edfc0f89a9 Implement QVariant conversions for QObject derived pointer metatypes.
canConvert() and convert() use the metaobject to convert such types.

Change-Id: Ic05e74c5c2423b4b9682b88adc856a16dcba4cff
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-07-01 18:25:01 +02:00
Stephen Kelly 14c7bb72b9 Store the QMetaObject with the QMetaType.
This will allow conversion between pointers to compatible QObject
derived types.

Change-Id: I19e08934571fb3f1b91e594892214041fe5f6a11
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-07-01 15:07:10 +02:00
Thiago Macieira 2988c44f76 Don't lower the code generation level options for the compiler
If the default settings already include the necessary flags, do not
override the compiler flags, possibly lowering support. This allows
the user to specify a higher setting for a Qt build, such as what
MeeGo did (it enabled SSSE3 support in all builds).

Additionally, this prevents us from passing -msse2 or -arch:SSE2
options to x86-64 builds, as SSE2 is a mandatory part of that
architecture. This silences a warning from MSVC that the option is
unknown in 64-bit builds.

Change-Id: I6e2969b672bcac87168c245b8be3309e8cc49224
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-01 09:16:42 +02:00
Jeremy Katz 13b0a5f8bd Make QtNetwork compile with qconfig small
Task-number: QTBUG-24816

Change-Id: I8c7965e4498794db93ee51c8511c9a72071ddce3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-01 06:47:43 +02:00
Thomas McGuire 2d450f8f6e Support the showIsFullScreen style hint in widgets.
Now QWidget::show() will be the same as QWidget::showFullScreen() if the
style hint is set.
This is consistent with QQuickView now.

De-inline related methods to make it easier to change them later
without breaking compatibility.

Change-Id: I843ac6f846428217bfc5dc9f1d0a554de9d0c08f
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-06-30 23:20:59 +02:00
Giuseppe D'Angelo dba22bc036 Move QStandardItem/QStandardItemModel to QtGui
The dependencies on QFont, QBrush, QIcon are all in QtGui, so there's
little sense to still have these classes in QtWidgets.

This also copies and pastes a version of QWidgetItemData as
QStandardItemData inside qstandarditemmodel_p.h.

Change-Id: Ibafc5a30748e7ce0b54753309ae6dc4a797fc20e
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
2012-06-29 22:42:19 +02:00
Friedemann Kleint f58e046a61 Add framestrut mouse events.
- Add infrastructure to QWindowSystemInterface.
- Add a setter for enabling framestrut events
  to QPlatformWindow.
- Add Windows implementation, pass keyboard modifiers.

QDockWidget relies on it for docking.

Task-number: QTBUG-26296
Change-Id: I9d84b356e9a5eb341f57b6f51f34b6b494ff7f87
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-06-29 16:22:19 +02:00
Marc Mutz e6c98287cc QQnxWindow: properly scope a local variable
Change-Id: I71f1052f614f4e926acf2c2b76963770f7b35c96
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-06-29 15:42:05 +02:00
Thiago Macieira 4182a3afac Add detection for C++11 noexcept
The Q_COMPILER_NOEXCEPT feature indicates whether this compiler has
support for noexcept. Note that the GCC C++11 status page does not
list this feature, but investigation into the source code as well as
testing reveals it's supported since GCC 4.6.

Also add Q_DECL_NOEXCEPT, to be used to declare that a function throws
no exceptions, and Q_DECL_NOEXCEPT_EXPR(x), which declares that the
function throws no exceptions if x evaluates to true. In C++98 mode,
these macros expand to empty -- the old C++98 and C++03 exception
specification is deprecated and considered harmful.

Change-Id: Ic84901d13eceb06dcc7f025a4b7fc8b250769be9
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-29 00:27:18 +02:00
Thiago Macieira 2b904294a8 Clean up the EXPORT macros in qglobal.h.
QtPlatformSupport is a static library. It should never export
anything, so Q_PLATFORMSUPPORT_EXPORT is unnecessary.

QtSql, QtXml, QtDBus, QtOpenGL and QtPrintSupport now have the macros
on their own source trees. It's possible these modules might be
separated out from qtbase in the future. For QtDBus, the macros are
moving back to where they used to be. This also leaves qglobal.h only
creating the macros for QtCore, QtGui, QtWidgets and QtNetwork, the
core libraries.

Q_CANVAS_EXPORT, Q_OPENVG_EXPORT and Q_COMPAT_EXPORT aren't used
anywhere in the Qt sources, so simply delete them. And the
Q_QUICK1_EXPORT macro in the static section was wrong, so remove it
too.

Change-Id: I50bdf86e783338f814903b25979721f788a7becf
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-29 00:27:18 +02:00
Pekka Vuorela 92283176ac Remove deprecated tentative commit from QInputMethodEvent
Introduced and deprecated during Qt5 development.
Change-Id: I5bceefcb5dfc13f8eae2ad22f04feeea5f87dcb3
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
2012-06-28 17:15:17 +02:00
Thiago Macieira 4cf993c3ac Change CONFIG += staticlib to CONFIG += static
That's the targetted, correct way of defining a static library.

Change-Id: I43c23bf7e1bc5fb07bbb55720a320eaca680b038
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-28 17:15:17 +02:00
Thomas McGuire ec12d11892 QNX: Don't detach when iterating over child windows
Change-Id: I55dcc1d188a2c45a11b0ab6a194625b50906eca9
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-06-28 17:15:17 +02:00
Frederik Gladhorn 0e9f5dc30c Fix warning: returning non void by using Q_UNREACHABLE
Change-Id: I08e5b629582b1286c57f6c5f991e2adaf431daa4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mitch Curtis <mitch.curtis@nokia.com>
2012-06-28 17:15:17 +02:00
Mitch Curtis ab536c3c71 Make QCalendarWidget use its locale's firstDayOfWeek.
QCalendarWidget currently uses Qt::Sunday as the default first day
of the week. It has been suggested that a better user experience
would see the calendar's locale be used instead.

Task-number: QTBUG-19811
Change-Id: I4441bf9ffd52213ef622a4a7f498530b7cc9e110
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
2012-06-28 17:15:17 +02:00
Casper van Donderen 50dfd15dcc QDoc: Allow '0' to be used as 2nd arg for \qmlclass.
There can be occurences of \qmlclass where there is no C++ class (for a
pure QML Type for example). QDoc will ignore searching for a C++ class
when '0' is specified as second argument to the \qmlclass command.

Change-Id: I09c8c7ad302daffb0723a49967951ca623e646e4
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-28 14:44:20 +02:00
Kent Hansen d359b0af2b Call QObject::disconnectNotify() when receiver is destroyed
Store the signal index in QObjectPrivate::Connection, thereby making
it available in "implicit" disconnect contexts (i.e., receiver
deletion).

This change does not cause the size of QObjectPrivate::Connection
to grow (still 40 bytes on 32-bit Linux, 72 bytes on 64-bit Mac).

Valgrinding the new benchmark indicates that the percentage of the
time spent in the QObject destructor increased from 7.8% to 8.4%
on ia32, for that particular stress test; the increase is the
combined cost of calling metaObject(), QMetaObjectPrivate::signal(),
and disconnectNotify() for one connection. In practice, the measured
wallclock time increased by about 3ms for a 500ms run (which
repeatedly constructs, connects, and destroys an object).

Task-number: QTBUG-4844

Change-Id: I1beb01c753f31542fc0acb62edb4c6d165fcc5b4
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-28 14:44:20 +02:00
Laszlo Agocs 26c85a5f79 Basic tablet support in xcb through XI2
The Maemo-specific function have been renamed a bit to prevent them
clashing with the more generic stuff.

Task-number: QTBUG-25865

Change-Id: Id55693159e15d5a0c679546eb48308feb48acac9
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-28 12:35:14 +02:00
Martin Smith ba89230596 qdoc: Report multiple topic commands as an error
Some documenters are using two topic commands in a single qdoc
comment. This is only allowed for \qmlproperty so that multiple QML
properties can be documented with a single comment. qdoc now reports
an error for all other combinations of multiple topic commands.

Task Nr: QTBUG-26345

Change-Id: I1f9a6d2502ccffa76c2d41f961be3750014a0a56
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-06-28 12:35:14 +02:00
Thomas McGuire a85759f077 QNX: Make geometry changes sync to fix QWidget::showFullScreen()
These can't happen async, as otherwise the geometry of the widget is
changed too late, having the effect that QWidget::show_sys() would
overwrite the window geometry again.

Change-Id: Id60d009867a5b282ac14c112c872af1075660732
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-06-28 12:35:14 +02:00
Friedemann Kleint 4cf5ffc2a6 QMetaType: Fix warnings about truncation from uint64 to int.
Triggers warnings with MSVC2010/64bit.

Change-Id: I90abdf4de416e0db554eb46e4b3cc7a0a38cb1db
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-06-28 12:35:14 +02:00
Joerg Bornemann 3b2731839c fix QWidget::showFullScreen on Windows
When calling SetWindowPos in QWindowsWindow::setWindowState_sys we must
inform the QWidget about the new size we have set.

Task-number: QTBUG-26226

Change-Id: I42b01125f50a94cdb97026c74f5445f9ff47d8ba
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-28 12:35:14 +02:00
Miikka Heikkinen bbb15b4612 Further fixes to widget masking
If mask was set to a widget before the widget was shown,
the mask was not applied.

Also, if toplevel widgets were set a mask in Windows, the mask was
applied to frame coordinates instead of client coordinates.

Ported relevant code from Qt4 to fix these issues.

Change-Id: Id6187cf4952b81b5b60c167e2fd284b7dc83ed9c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-28 10:18:15 +02:00
Weng Xuetian 4dd2de9c76 Move QPlatformInputContextPlugin/Factory to QtGui
PlatformSupport is no longer shared and there should be no plugin
factory in it otherwise it will break plugin loading.

Since PlatformInputContext is already in QtGui, so move QPlatformInput-
ContextPlugin/Factory to resolve the platforminputcontexts plugin
loading problem. And remove platformsupport-private dependency from
existing inputcontexts plugin.

Change-Id: If4cb766470b8f9c8b72157da86cb33b4e1ff09e3
Reviewed-by: Pekka Vuorela <pekka.ta.vuorela@nokia.com>
2012-06-28 06:22:03 +02:00
Gatis Paeglis fdcdae21d8 Set window's surface format to support alpha channel.
Task-number: QTBUG-26114
Change-Id: I33f191373327832fb9d3054366412ec5be855cff
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-28 06:22:00 +02:00
Thiago Macieira 55150f0f0b Move the QDataStream operator<< for QPair to qdatastream.h
QPair is small and is no problem to include from
qdatastream.h. However, including QDataStream from qpair.h means
including QIODevice and QObject too.

Change-Id: I344321e9f68438008ec329a165135c3a346c6058
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-28 06:21:53 +02:00
Thiago Macieira 7395e6abc6 Clean up the use of QT_NODLL
QT_NODLL is replaced by QT_STATIC, but the latter is implied if
QT_BOOTSTRAPPED is already defined. Therefore, simply remove the
QT_NODLL definitions.

Change-Id: Iac7ec0b494b7a78197c25d59547f45eaf92d7465
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-28 06:21:52 +02:00
Thiago Macieira 96166fa56a Update the macros for shared/DLL and static builds
Up until now, we had a mess of different macros used for building
DLLs, for building shared libraries on Unix systems and for building
static libraries. Some of the macros were contradictory and did not
work. From now on, there shall be only:

 - QT_STATIC: indicates that it's a static Qt build and the export
   macros should expand to empty
 - QT_SHARED: indicates that it's a shared / dynamic Qt build and the
   export macros should expand to Q_DECL_EXPORT or Q_DECL_IMPORT,
   depending on whether the macro corresponds to the current module
   being built (the QT_BUILD_XXXX_LIB macro comes from the module's
   .pro file)

QT_BOOTSTRAPPED implies QT_STATIC since the bootstrapped tools link
statically to some source code.

QT_STATIC is recorded in qconfig.h by configure when Qt is configured
for static builds. Nothing is recorded for a shared / dynamic build,
so QT_SHARED is implied if nothing is defined. This allows for the
existence of a static_and_shared build: with nothing recorded,
defining QT_STATIC before qglobal.h causes the export macros to be
that of the static form. Linking to the static libraries is out of the
scope of this change (something for the buildsystem and linker to
figure out).

From this commit on, the proper way of declaring the export macros for
a module called QtFoo is:

    #ifndef QT_STATIC
    #  ifdef QT_BUILD_FOO_LIB
    #    define Q_FOO_EXPORT Q_DECL_EXPORT
    #  else
    #    define Q_FOO_EXPORT Q_DECL_IMPORT
    #  endif
    #else
    #  define Q_FOO_EXPORT
    #endif

The type of the Qt build is recorded in QT_CONFIG (in qconfig.pri) so
all Qt modules build by default the same type of library. The keywords
are "static" and "shared", used in both QT_CONFIG and CONFIG. The
previous keyword of "staticlib" is deprecated and should not be used.

Discussed-on: http://lists.qt-project.org/pipermail/development/2012-April/003172.html
Change-Id: I127896607794795b681c98d08467efd8af49bcf3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-28 06:21:48 +02:00
Gunnar Sletta 50eed2d068 Get started with patching up the Qt GUI docs
Primary goal, make the front page of the Qt GUI module a bit more
clarifying and avoid downstream references inside the Qt GUI docs.

Change-Id: Icbcfbb64b93963add889bf83711daa9575885c02
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-28 06:21:46 +02:00
Thiago Macieira 894e9ce66d Include QScopedPointer in qsettings.h
qobject.h includes it, but only if QT_NO_QOBJECT isn't defined. It is
during the build of the bootstrapped tools.

Change-Id: I8fc921fb17c283358af263a6932b763a21209d40
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-28 06:21:44 +02:00
Kent Hansen af44cb655b doc: use correct snippet id for QObject::isSignalConnected
Copy-and-paste error; the doc was based on QObject::receivers.

Change-Id: I4f6ce716d388328e0345e8457cbc99fff323ce41
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-28 06:21:40 +02:00
Kent Hansen 1d818b3a77 doc: remove duplicate link
Since QStateMachine inherits QState, QStateMachine::finished() and
QState::finished() are the same thing.

Task-number: QTBUG-14553
Change-Id: I7df2f815be377c19aeee393e9a2ce124183dc5e1
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-06-28 06:21:38 +02:00
Kent Hansen ed609db257 doc: add missing \sa tag
Change-Id: I50580bfefdf556f116b7099946b047acd12d4563
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-06-28 06:21:35 +02:00
Adrian Carpenter 9f838153e6 Removed flags from SSPI calls which prevented the NTLM authentication from working
Change-Id: I87b085442ef301d9d92def0608a8baaa330522e6
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-06-28 02:23:57 +02:00
Friedemann Kleint 2858d85281 Widgets: Apply masks to native windows only.
Do not go searching for a parent window handle in
setMask_sys() as this causes for example MDI areas
to set masks that show the child only.
Fix breakage introduced by 8e280d1e18 .

Change-Id: I57de41d16985ebc8d3fc81153a671f2e2807b1eb
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
2012-06-27 14:43:00 +02:00
Thomas McGuire 20e2fd074a QNX: Add support for window states
Now QQuickView::showFullscreen() works as expected.
QQuickView has no fallback for platforms without window state support,
as opposed to QWidget.

Change-Id: I9c41fe563ea1f6d117eaebd3ea1db87465142b85
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-06-27 14:43:00 +02:00
Thomas McGuire c196f89b7e QNX: Flush after changing rotation
This fixes a painting glitch where the window would stay in the old
position with the old rotation until it got repainted.

Change-Id: Id9de256b525760e8b32e55a87549efeccca151e0
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
2012-06-27 14:43:00 +02:00
Weng Xuetian 3dbd381e03 Also use x11FilterEvent for auto repeat key in xcb.
filterEvent for QPlatformInputContext is already used for auto repeat
key, x11FilterEvent also need to be filtered.

Task-number: QTBUG-25795
Change-Id: I3db87fdffdb5b01404047e905793ae6e10bb1e90
Reviewed-by: Pekka Vuorela <pekka.ta.vuorela@nokia.com>
2012-06-27 14:43:00 +02:00
Albert Astals Cid 175c69108a Add const & to foreach 'iterators'
Change-Id: I8c0600dfd919f45d14a0011f2da9b9fe0b9a0df3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-06-27 14:43:00 +02:00
Stephen Kelly 1b6c83f7a3 Document that the object of a plugin must be default-constructible.
Change-Id: Iaaf56ec3bb0d2423c8ab5deb0627dc1357cee830
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-27 14:43:00 +02:00
Albert Astals Cid 7a0f14c569 Remove .values() call in foreach
foreach already knows how to iterate over the values without the need to create an intermediate qlist

Change-Id: I4622a36fbdbf536a75f26b42e32488a77d078f02
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-06-27 12:46:47 +02:00
Thiago Macieira 9a2dca09a3 Remove deprecated method from new class.
I'm pretty sure I've caught all uses of deprecated methods throughout
the Qt codebase, except for the ItemViews changes and for QtWebKit
(which must still compile with Qt 4).

Change-Id: Ic17801b71434fa41c647f97c9e5e4234ad4f9af0
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-27 12:39:53 +02:00
Friedemann Kleint bc8cafcf64 Add QPA prefix and version number to QPA plugin factory interfaces.
The interfaces may change in Qt minor versions.

Change-Id: I43bc6245ddbba8232e00313bdc64e8e60c7eab6f
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-27 12:39:53 +02:00
Miikka Heikkinen 3812af8ad0 Fix raising and lowering native widgets
Raising or lowering a native widget needs to raise or lower the
associated platform window, too.

Task-number: QTBUG-26344
Change-Id: Ib847d97df86857d92bcc4c9c0dd51219575d8db1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-27 12:39:53 +02:00
David Faure 2246e48a76 Add QGuiApplication::setApplicationDisplayName.
This is for use in window titles.

Change-Id: I0070a08abd379ae2edcfab4413c182bd9e840678
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-06-27 09:23:15 +02:00
Shane Kearns ae7e9a407f Add \since 5.0 to QDir::removeRecursively
Change-Id: I2392f26e666d5e01e71932f1afa48a65704f6d48
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2012-06-27 03:55:29 +02:00
ABBAPOH 8655f57bb5 Remove debug output
Change-Id: I07270211ee6f0439dc7249c8946795a68025828f
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: David Faure <faure@kde.org>
2012-06-27 03:55:28 +02:00
Lars Knoll 3a8d7b0b9a Remove all references to XLFD fonts
XLFD fonts are no longer supported in Qt 5.

Change-Id: I83400dab417c933d5cd956c0d168c45b9d79dab7
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-27 00:46:35 +02:00
Oswald Buddenhagen 989cada8cc don't compile the host tools for wince already in configure
qmake can now produce proper mixed-target projects

Change-Id: I797f055f6e1487b9aefb75eee91d6c2cc4e6e56e
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-27 00:46:35 +02:00
James Turner 9315497d2a Convert QPA menus to use QIcon, and enable icons.
Icon support was disabled in QPA menus, now QIcon is in QtGui, convert the QPA interface, enable setting the icon in QMenu, and make the Cocoa implementation use it. (And fix a ref-counting leak if an icon is actually set)

Change-Id: Ica203bf6826b79d8beee58f39febc851b9633a66
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-27 00:46:35 +02:00
Shane Kearns 3ff70a838b QNetworkCookie - ignore unparsable expires attribute
As required by RFC6265, if the date can't be parsed then the
attribute should be ignored but not the whole cookie.

Task-number: QTBUG-15794
Task-number: QTBUG-16798
Change-Id: I2ed2fbbaf2d00b194995349c24b174032a599703
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-06-27 00:46:35 +02:00
Shane Kearns cf29b7b967 Ignore empty domain attribute in cookies
As recommended by RFC6265.
This fixes the optional-domain0042 test case.

Task-number: QTBUG-15794
Change-Id: I6dd459797afcb52fa2a78437f8481f5abc6f3105
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-06-27 00:46:35 +02:00
Shane Kearns 058fddd1c0 Use RFC6265 rules for cookie path & path matching
Url encoding of paths is no longer used. This matches the
current release behaviour of Firefox, Chrome and MSIE browsers.
RFC6265 does not allow this type of encoding.

This fixes remaining path test cases in the IETF test suite.
Currently the path0027 test is passed by Firefox but failed by
Chrome and MSIE, so there is a potential compatibility issue.
However it is a corner case with a malformed cookie.

Task-number: QTBUG-15794
Change-Id: I9b02bb5adc32d614f512d314d06f2c60894aa2b0
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-06-27 00:46:35 +02:00
Shane Kearns d76bd0d735 QNetworkCookie: Use RFC6265 rules for parsing Set-Cookie
The ';' separator takes priority even inside a quoted string.
Quotation marks have no special meaning, they are not parsed and
regenerated anymore. This means it is not possible to include
the ';' character inside a cookie value.
Other characters are returned transparently, including [",\]

Task-number: QTBUG-15794
Task-number: QTBUG-26002
Task-number: QTBUG-11641
Change-Id: I4eefef5c6ac7753d5a21c226169e264578521fe9
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-06-27 00:46:35 +02:00
Shane Kearns 7b61e60676 QNetworkCookie - use RFC6265 rules for max-age
If unparsable, ignore the max-age attribute but process the rest of
the cookie normally.
If max age <= 0, set expiration time to "earliest representable time"
To keep this a safe value for conversions, time_t of 0 is used.

This fixes cases 0019 and comma0005 in the test suite.
Due to this change, cookies may be sent after they should have expired
in case the max-age was malformed. Previously they would have been
discarded immediately, which is more likely to break web services.

Task-number: QTBUG-15794
Change-Id: I7882af8eb37db156785e4e358ca639e90c94f8d0
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-06-27 00:46:35 +02:00
Shane Kearns 57adc1761d QNetworkCookie - ignore unknown attributes
RFC6265 clarifies that unknown cookie attributes should be ignored,
including the version attribute which was defined by RFC2109 but
not used correctly in practice.

This fixes case 0008 in the test suite with minimal risk.

Task-number: QTBUG-15794
Change-Id: I6f15e8e5e2e5f1ed168fc733a5c84d606a452252
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-06-27 00:46:35 +02:00
Jocelyn Turcotte 297a25cc4b Remove support for multiple cookies in one Set-Cookie header to follow RFC6265.
This also allows cookie values to contain commas to increase compatibility like
most popular browsers do even though the RFC still reserves them for future uses.

Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
Task-number: QTBUG-21456
(cherry-picked from 8ba781b01e900148fec2e9d26485369b3295487f)

Change-Id: Ib09ab2411dddf7f99de1c0c31680428b7412fc7e
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-06-27 00:46:35 +02:00
Morten Johan Sorvig e1402c0d27 Add a method for querying window activation status from QPA.
Add QPlatformWindow::isActive(), where the platform
can do further isActive tests, and Windows implementation for it.

Change-Id: I1acfc44d3a4ab36a3aaee52fb7b5f5b40661095e
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-27 00:46:35 +02:00
Samuel Rødal 6874a33a75 Fixed missing way of choosing EGL renderable type with QSurfaceFormat.
This has been long overdue, since EGL now lets you choose between
desktop and ES based OpenGL. We also add OpenVG for those who want to
use raw OpenVG with a QOpenGLContext. The underlying EGL API for using
OpenGL / OpenVG is the same, with eglMakeCurrent() and eglSwapBuffers().

Change-Id: Ib0146b3fde5fe632069ebf99e7712f496ee7ea4d
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-27 00:46:35 +02:00
Jan-Arve Saether cd853c0ad7 Remove some unused variables from QAccessibleWidgetPrivate
Change-Id: I22fd67d63131d48356023c26eb0689587ce96967
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-06-26 22:45:30 +02:00
Giuseppe D'Angelo a2e65bc4d4 Fix QCOMPARE for QIcon in QtGui
There's no need of QtWidgets for using QCOMPARE on two QIcons, as
QIcon lives in QtGui.

Change-Id: I40c3d4aeb15fb95876449383d9e2dd1ad39aa5f9
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-26 22:39:46 +02:00
Markku Heikkila c508030c4a Clarified documentation for QStandardItem::parent()
Task-number: QTBUG-18785

Change-Id: I91ee8c3dc10c1484376a17e3f13794038d4a648f
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-26 22:38:23 +02:00
Kent Hansen f4b3fa305d Add QAbstractDeclarativeData::isSignalConnected hook
Similar to QAbstractDeclarative::receivers. This hook will allow
QObject::isSignalConnected(QMetaMethod) to return true when there are
QML-managed connections.

It's important that the hook is called from
QObjectPrivate::isSignalConnected(uint), since QML calls that
function.

Change-Id: I9c5e42f2b3e7f985af02905985a3a47101cdee05
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
2012-06-26 22:38:23 +02:00
Giuseppe D'Angelo 5211f45d58 Fix compilation for XCB-without-Xlib
Commit 6481218da1 broke the build by
removing the #ifdef XCB_USE_XLIB guards, but forgetting to port
Button1 to the XCB equivalent.

Change-Id: I9102feceb4deb0135ce0df318e46b35d1134a0b9
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-26 20:32:07 +02:00
Robin Burchell edcca18872 Don't try build devicediscovery if evdev is not available.
Fixes build on Android.

Change-Id: I1e6af972e8c29dd4c38773985e8f201064c2164f
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-26 19:45:23 +02:00
Mitch Curtis 98803a76b3 Fix QIODevice warning when running rcc.
When opening a QFile on stdout, for example,
we must not call seek as it is a sequential device.
This has been flagged as a warning since commit Ie3a96d3a
and has resulted in spurious warnings being emitted.

In the case of opening a QFile in Append mode, QIODevice::open
already sets the position marker, so calling seek is redundant.
This is also true for the file engine's open function (called
through openExternalFile()), which also ensures the handle or
descriptor is repositioned appropriately.

Task-number: QTBUG-26104
Change-Id: I71040c399efe54e7538f54433368b432e959e08d
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-26 19:30:00 +02:00
Giuseppe D'Angelo 0db3d6a247 Fix PCRE build under non-__GNUC__ compilers
PCRE's JIT has several paths that end in a #error under compilers that
don't #define __GNUC__.

This is because either
- those platforms were unavailable to PCRE devs so they were not tested;
- the #ifdef guards inline assembly fragments in GCC (AT&T) syntax;
- the #ifdef guards functions present f.i. in ARM's EABI and unavailable
  f.i. under WinCE.

This commit disables PCRE's JIT under ARM and MIPS unless __GCC__ is
defined. The MIPS #define from MSVC (_M_MRX000) is also dropped.

Change-Id: I59f959c321413845ffbdf1ac32740b400422e0ee
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
2012-06-26 14:53:36 +02:00
Robin Burchell 92455dad4d Remove toRect_normalized().
Seems to have been unused since qt4's fde7475bcf9c10522a8170e6eb8fb9a8fadc21cd.

Change-Id: I7ec88fb4ca8c1ffda469a1c048b4fea17ff042bc
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-26 14:42:03 +02:00
David Faure 27d7d7c69e Fix warning when ibus is not available.
This is perfectly ok on a linux desktop, so no reason to abort when
setting QT_FATAL_WARNINGS.

Change-Id: I64ba987679195741631fb204af57ae3d283bb516
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-26 14:40:50 +02:00
Friedemann Kleint 8e280d1e18 QPlatformWindow: Add Window masks.
Add functionality for window masks to QPlatformWindow, which is
required to implement QWidget::setMask() in order to fix
the regression in functionality from Qt 4.8.

Change-Id: I2c2d5629f0b4c6d90e52595ad70b13559aab1f41
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-26 14:40:26 +02:00
Thiago Macieira 799f0841a6 Make QRegion not need to be friends with QVector
This hack was introduced in Qt 4.5 and the intention was to resize
(hopefully, shrink) the QVector without causing it to reallocate
memory. We can accomplish the same by reserving the size: until we
clear() or squeeze(), the container will not free memory.

Change-Id: I03a09537a617be0ce865eefa043005e4051e8706
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-26 11:57:51 +02:00
Oswald Buddenhagen 34cb86d46b make using testlib automatically "promote" all modules to -private
autotests often need private headers (especially with qpa headers now
being private) and have no compatibility requirements, so it makes sense
to just use the privates of requested modules.

this also suppresses the useless warning about using privates, in case
they are still explicitly specified.

Change-Id: I9e499bedcf6ef25777283ff1432cef7254e9093a
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-26 11:51:34 +02:00
Sukhyun Kim a685e9ae1b Make QGtkStyle build with QT_NO_FILEDIALOG
Fix compilation failure with qconfig large

Change-Id: I8ae14f01879b94430dcbb5c85c61d14e922f6eb9
Reviewed-by: Lincoln Ramsay <lincoln.ramsay@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-26 11:50:15 +02:00
Martin Petersson a9c398096b QIODevice: free memory when buffer is cleared
The QIODevicePrivateLinearBuffer does not deallocate any data on
readAll or clear. This fix will change the buffer so that
data is deallocated on clear, readAll and when read emptied the
buffer.

This is needed for QAbstractSockets that don't have
readBufferMaxSize set, as the buffer will grow but never
decrease in size when you read from it.

Change-Id: Iab42e40182f9ebe0739c99b2d1e820ce287dc931
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-26 11:32:39 +02:00
Martin Petersson 1ce203d05a QAbstractSocket: Enable readNotifier on read from buffer
This is needed for the QSslSocket. When we read on that socket we will
only read from the QIODevice buffer to get the unencrypted data.
So when the readNotifier has been turned off on the plainsocket there
is nothing to trigger it to be turned on again.

This will add a readData with zero size when we have read everything
from the buffer. This is so that we get a call into the socket to
check if the readNotifier should be turned on again.

Change-Id: I3b63e33de007db823e964480903186eb1b8caac2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-26 11:32:21 +02:00
Martin Petersson bf6897edb0 QtNetwork: remove double buffering on sockets
Removes the readBuffer from the QAbstractSocket since data is already
buffered in the QIODevice.

Change-Id: I4e50b791fd2852455e526fa2c07089d4d3f0b2a4
Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-26 11:32:04 +02:00
Rafael Roquetto 9e66ee2d59 [QNX] Enable MT screen event handling on Blackberry
Consuming incoming screen events through the BPS event
dispatcher on its current incarnation has proven to be
very inefficient since it cannot put up with the screen
event throughput. This patch enables the screen event
thread also for Q_OS_BLACKBERRY platforms, in addition
to stock QNX. This behavior can still be configured
through the project file, though.

Task-number: QTBUG-26177
Change-Id: I98a3b22549c9fbf0c16b5a8c39a55c1eaa6ec1f4
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-06-26 11:07:20 +02:00
Tasuku Suzuki 197b145a23 Fixed inputMethodQuery() for Qt::ImHints
to return QWidget::inputMethodHints()

Change-Id: I46735c553e0cb4689cd0c53a69d07ed61ba56bf6
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
2012-06-26 08:14:17 +02:00
Tarja Sundqvist 0a6dc44f24 QTBUG-26035: Remove positive sign from start of string
Updated removeGroupSeparators(QLocalePrivate::CharBuff *num) so that it
removes also positive sign ('+') at the start of the string. Auto test
included.

Task-number: QTBUG-26035

Change-Id: I8e0e071d6c682d9192a8c6bb2f282510e21b3c48
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
2012-06-26 08:14:17 +02:00
Girish Ramakrishnan 9dc7f84839 Use valSeen since it results in unused warning otherwise
Change-Id: Iccfa4b895d9e50227efa1747ea20ce07ce70327e
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-06-26 05:30:10 +02:00
Lars Knoll a1f9149ac7 Small documentation fix about the text streams default encoding.
It's UTF-8, not Latin1 on most systems nowadays. Only Windows
still living in the past...

Change-Id: I70f1bd7a49bed6dcc8e39bbc0f0613475791afdb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-25 23:39:27 +02:00
Lars Knoll df151d21b6 We shouldn't have a Makefile here.
Change-Id: If55952b4aa9b95ff9311c1b7338b77af62a5c503
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-25 02:23:18 +02:00
Lars Knoll d75a97793a Remove the font codecs
These codecs have only been used for XLFD based fonts.
These are not supported anymore by Qt 5.

Change-Id: I7dc083f2efcd42363b144b24bd62c169d83390cf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-25 02:23:18 +02:00
Lars Knoll 587b80f67d The codecForTr() should be utf8
tr() assumes utf8 as input encoding, not
latin1.

Change-Id: If834f8c169bdb431d78713d14b03542d3a7ca8e4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-25 00:19:31 +02:00
Lars Knoll b2412843cb Fix docs mentioning Q_EXPORT_PLUGIN2
Fix all remaining places where Q_EXPORT_PLUGIN2
was being used in the documentation.

Change-Id: I7be67b83c18545d0e74f250b4b26583444b01909
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-25 00:19:26 +02:00
Lars Knoll 72cd356200 Use the new plugin system
Convert the last remaining three plugins over from
the old plugin system.

Change-Id: I355e6bb068ec4afb58a2ee9542f86e2913b3851d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-25 00:19:15 +02:00
Tasuku Suzuki d2e83f3056 Make qtbase compile with QT_NO_DRAGANDDROP
Change-Id: Ief16e435af6e6d246b84505a1c1208994c7b0b38
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Jeremy Katz <jeremy.katz@nokia.com>
2012-06-24 21:22:51 +02:00
Thiago Macieira 7590ca03ce Ensure that no extra bits can leak into QUrl::toEncoded.
Technically, this function should take QUrl::UrlFormattingOptions, but
that doesn't exist. So we just mask out the high bits that determine
the encoding options. toEncoded only supports one encoding way: fully
encoded.

Change-Id: I1445ad7c292500921ec2672be4524d7d76a39f98
Reviewed-by: David Faure <faure@kde.org>
2012-06-24 19:26:29 +02:00
Tasuku Suzuki 165dc2cb3d Make qtbase compile with QT_NO_CSSPARSER
Change-Id: Iadcc7dfde6b06c339118c00a645d9dc592a0eead
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-24 15:26:34 +02:00
Thiago Macieira e2d360c04d Wrap QObject usage in qsharedpointer_impl.h with ifndef QT_NO_QOBJECT
Otherwise, bootstrapped tools like qmake and moc won't compile, unless
QObject is forward-declared (which it isn't anymore).

Change-Id: If67ca1cd8fdb7b29628f9dc4b454595d26a715d0
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-06-24 13:32:59 +02:00
Robin Burchell ffa249f9da Remove documentation for QIconEnginePlugin::keys().
Method was removed in dcf3c95175.

Change-Id: I6c01ea7d329e15aec8b4ce29e8d3d5c3e784731a
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-06-24 09:31:57 +02:00
Robin Burchell d153b73c12 Guard evdev specifics with QT_NO_EVDEV.
Android fails the evdev configure test at present.

Change-Id: I1cbaf2dab589f647c02c8c5b92f72bd5159ccfa9
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-24 05:26:39 +02:00
Laszlo Agocs 642a26dab4 Fix setMouseTracking on QGLWidget
Remove the function altogether. Alternatively we could call the
base class implementation but there is no reason to keep this
confusing, non-virtual override.

Change-Id: Ie8724f7bbc6666fdace7ff777bcde99f3d8a9561
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-23 20:27:45 +02:00
João Abecasis 796f85b611 Don't operate on bogus data, assert on preconditions instead
QVector::erase shouldn't try to make sense of iterators it doesn't own,
so the validation being done here is bogus and dangerous. Instead, it's
preferrable to assert, the user needs to ensure proper ownership.

The case of erasing an empty sequence is not checked for preconditions
to allow

    QVector v;
    v.erase(v.begin(), v.end());

, while being stricter on other uses.

Autotests were using ill-formed calls to the single argument erase()
function on an empty vector and were fixed. This function erases exactly
one element, the one pointed to by abegin and require the element exist
and be valid.

Change-Id: I5f1a6d0d8da072eae0c73a3012620c4ce1065cf0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-23 14:16:33 +02:00
Stephen Kelly ddf5226bd7 Forward-port change to QT4_ADD_RESOURCES macro for missing rcc files.
Forward-port of commit 9ce67d30011db4528d3d0bbee36412e13cfb80cc in
cmake.git.

Change-Id: I2d6c14f68f1630fc0835b3103e5058f52c2d0d13
Reviewed-by: David Faure <faure@kde.org>
2012-06-23 11:37:39 +02:00
David Faure 9a16e14666 Implement QXcbIntegration::queryKeyboardModifiers()
Change-Id: Ifd2255362f5ef005e2a57f4001a72d932497b453
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-22 17:38:59 +02:00
David Faure 3506ee51b2 Docu: fix copy/paste typo
Change-Id: Ie3573ab6983c2b66c66b0f9c342f72018674016c
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-22 17:38:59 +02:00
David Faure ee45201415 QPA docs: list the platform names that the method is likely to return.
Change-Id: Ia98c534fbdb157ff7b2b328a832941772ea833ec
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-22 17:38:59 +02:00
Girish Ramakrishnan 17d35cfdca Add gui-private to generic plugins
QWindowSystemInterface will shortly be marked as QPA API.

Change-Id: I0b7cb1a75e3a4f0fc4627329edd3bfd21583a0a6
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-06-22 15:42:44 +02:00
Girish Ramakrishnan 7042de0894 eglfs: move m_pos into Cursor
Change-Id: I51e92d265e7ea6372ae58b357f75362e2d9a2df9
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-22 15:42:44 +02:00
Shane Kearns 1655cb5a69 Fix non inheritable socket creation on old windows versions
The documentation is misleading, as using the new API actually
causes WSASocket to fail.
New behaviour:
On windows vista or earlier: skip the new API, use old one
On windows 7: try the new API first, if it fails try the old one
On windows 8: try the new API only

The windows 7 behaviour is because we don't know if the service
pack has been installed or not. (And IT departments may have
specifically installed/blocked the hotfix)

Task-number: QTBUG-26224
Change-Id: I6da47959919caee0cd2697f1ae1fca46aa33c1ff
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mikhail Vorozhtsov
2012-06-22 13:43:28 +02:00
Andy Shaw 66589cd545 Ensure that Proxy-Connection: Keep-Alive is respected for HTTP 1.0
When doing a NTML authentication it would close the connection after
the second phase before replying when the reply was a HTTP 1.0 version
reply. Since the Proxy-Connection header is set to Keep-Alive in this
case we want to ensure we do not close in this siutation.

Task-number: QTBUG-26037

Change-Id: Icaaf2277efc0d05a946c52fb42b5191964e2e0fe
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-06-22 11:47:24 +02:00
Glenn Watson 4a8d9eed87 Fix key modifiers in mouse wheel events on Windows.
The Windows platform plugin was not checking for the control or
shift keyboard modifiers when processing mouse wheel events. Added
a function to convert Windows wheel events to Qt::KeyboardModifiers
and passed this through the event chain.

Task-number: QTBUG-25754
Change-Id: I6551e98b4eaebad5704058bddfb06502ded5155d
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-22 11:47:24 +02:00
Uli Schlachter 6481218da1 Reimplement QXcbWindow::startSystemResize() with xcb
This function just sends a ClientMessage to the window manager. XCB can
do this fine and there is no need to require Xlib for the job.

Change-Id: Iad3d78c393c1f439fff987fa19b4d82513810930
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-22 11:47:24 +02:00
Daniele E. Domenichelli 652d82991d qtdbus: Export org.freedesktop.DBus.Peer interface when introspected
The ofD.Peer interface is automatically implemented when an object is
registered on DBus, but the ofD.Introspectable.Introspect method does
not show it.

You can test it by running

$ qdbus --literal <some service> <some object> \
>    org.freedesktop.DBus.Peer.Ping

$ qdbus --literal <some service> <some object> \
>    org.freedesktop.DBus.Peer.GetMachineId

Change-Id: I7062ba0cdae486d443011ee19cf3874aabf90205
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-22 09:47:59 +02:00
Konstantin Ritt b57e2162ef QUnicodeTables: some internal API renamings
enums GraphemeBreak, WordBreak, and SentenceBreak has been renamed to
GraphemeBreakClass, WordBreakClass, and SentenceBreakClass respectively,
their values has been renamed to contain a '_' as logical enum-value separator
(just like many other nums in Qt, e.g. LineBreakClass);
*BreakFormat has been replaced with *Break_Extend (some format characters are
kind of subtype of the extender characters, not vice versa).

Change-Id: I9ddbcf8848da87409736c2d6d1798a62fa28cab8
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-22 09:47:59 +02:00
Konstantin Ritt c1329fba13 Clean-up the Unicode tables generator code and the generated header
This fixes the blocks and memory consumption reports, the whitespace issues
and makes the code a bit cleaner.

Since I'm the only one who does change this code, such a no-op commit
could not hurt anyone or even git blame ;)

Change-Id: Ib069f925a3791c82e16c368c8392bcffbfd68c53
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-06-22 09:47:59 +02:00
Daniel Thor Kristjansson c5f16efa34 Fixes high CPU usage on timer expiration when using glib event loop.
GTimerSource has 1ms accuracy, QTimerInfoList::timerWait() has 1us accuracy.
So when there is less than 1 ms left on the timer we enter a tight loop
checking for timer expiration since we don't round up the timerWait()
timer to the nearest millisecond.

Task-number: QTBUG-7618
Change-Id: I684c9236324f598bc69c6810be270aa47c791f91
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-21 23:08:59 +02:00
Stephen Kelly fbcb438226 Update the docs about setRoleNames deprecation.
Change-Id: I5aff626979238014d34cba1d383051cd4b048499
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-06-21 17:47:16 +02:00
Joerg Bornemann 42dc1c8aef fix doc typo in qwindow.cpp
Change-Id: I0980319e32b94882fe882c57cd8341f6b3e62048
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-06-21 15:21:20 +02:00
Kim Motoyoshi Kalland fde71d1ae7 Fix possible crash when copying QImage.
Task-number: QTBUG-14766

Change-Id: I82a4736dbd5ac08ede1b2bdccfa29a2009ebb4d8
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-06-21 12:50:08 +02:00
Casper van Donderen f717c19469 QDoc: Use the module page as link in qt.ditamap.
If the number of [QML]module pages in a single qdoc run is 1: Use it as the link for the nested group of documentation pages in the automatically generated ditamap.

Change-Id: Idbc3e2e5d65a1e7f0201638102ffab62475a66ec
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-06-21 12:50:08 +02:00
Casper van Donderen cb74f7b22c QDoc: Use 'Type' instead of 'element' in instantiates.
On a C++ documentation page "is instantiated by QML element" was printed
when you have a QML Type that instantiates this class. The text is now
changed to "is instantiated by QML Type".

Change-Id: I6c93531edc6ef9ac112573034fd54fa52390bc37
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-21 12:50:08 +02:00
Girish Ramakrishnan fd1b7b4cac Remove QWS references from testlib
Change-Id: Iad52a5c44b27cb11a47987c9f8890cc67b557fb7
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-06-21 10:55:39 +02:00
Kim Motoyoshi Kalland c7e21f3923 Avoid unnecessary detach when saving to BMP.
Task-number: QTBUG-11486

Change-Id: Ic9aa733da4f23dc3eaba111c97a39bfd911f8cb3
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-06-21 09:01:32 +02:00
Konstantin Ritt ff3a46c482 QTextLayout docs: a minor typo fix
Change-Id: I5e6d02f17e9064afe0c21dda806e67bc14c728b7
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-21 02:52:16 +02:00
Konrad Grochowski b0a6c521ab proper filling when using Qt::TexturePattern
fix for using both Qt::OpaqueMode and
Qt::TexturePatter for filling

Task-number: QTBUG-19202
Change-Id: Ia92363cacaa51140fe78b542d9768aead81868ff
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
2012-06-21 02:52:16 +02:00
Samuel Rødal ec2e99ead5 Fixed mouse grabbing preventing popups from being closed.
The pointer grabbing leads to fake Enter events being sent to the
Qt::Popup window, preventing it from closing since QWidget::underMouse()
returns true. We should only send Enter events if the mouse is actually
inside the widget.

Change-Id: I4ba3fb08943580f93ad4337ff0227becd647767e
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-21 00:58:22 +02:00
Shane Kearns 98fd2eeb62 Handle fragmented responses on SOCKS5 control channel
Server responses may arrive in more than one packet, though this
is rare due to nagle algorithm.
Also fixed IPv6 addresses being discarded from server responses,
which was caught by the new autotest.

Task-number: QTBUG-18564

Change-Id: I32d9e2978037fb3e1fff27b7e618b5da6d222f28
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2012-06-21 00:58:19 +02:00
Chris Adams d8ad516150 Add new benchmark metrics to testlib
QElapsedTimer provides nanosecond-resolution elapsed timing, which
allows for finer granularity benchmark reporting.  Also, clients
may also wish to benchmark the memory usage of a particular component,
but no metric currently exists which matches that requirement.

This commit adds the WalltimeNanoseconds and BytesAllocated metrics
to meet these needs.  It is intended for manual use by clients via
setBenchmarkResult() only.

Change-Id: Ib37ada374e265c857eda02d047d51d436618e4a7
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-06-21 00:58:12 +02:00
Daniel Molkentin 78a4c46842 Doc: tmake -> qmake, it's about time
Pushing this before 5.0 since it will most certainly
trigger a major recompile, which is probably why
this has never been changed.

Change-Id: I5fd90537d3b754d0a8a1b522d66183513693e0af
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-21 00:58:10 +02:00
Shane Kearns 4f578d15fe Change default Content-Type for http POST to match 4.7.4
Qt 4.7.3 sent no Content-Type header by default.
This was fixed independently on 4.8.0 and 4.7.4 branches, with
different defaults.
Since this is often used for web service logins, the 4.7.4
default of x-www-form-urlencoded seems more likely to work.

The warning message is left in place, since not specifying the
content type is still an application bug.

Task-number: QTBUG-23350
Change-Id: I30bf50fd216ee9894d0168e904cea1ed4251ec68
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2012-06-21 00:58:05 +02:00
Girish Ramakrishnan 3401e91be0 Remove references to Q_WS_QWS
Affected code includes:
src/widgets/dialogs/qmessagebox.cpp
src/widgets/graphicsview/qgraphicsitem.cpp
src/widgets/kernel/qapplication_p.h
src/widgets/kernel/qwhatsthis.cpp
src/widgets/kernel/qwidget.h
src/widgets/widgets/qdockwidget.cpp

Change-Id: Ib9e920b3cc1253b39e4e00d7137c21321ecc0399
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-20 15:45:07 +02:00
Girish Ramakrishnan 994192643a plastique: Use QPlatformTheme::DialogButtonBoxButtonsHaveIcons
Change-Id: I2f493d45820063ef62f16febde0df89a874dddb0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-20 15:45:07 +02:00
Girish Ramakrishnan 00a4dd2a6f Remove dead code
Change-Id: I48c1e3b2ebcf4ec2fb21ed2d1a88e1dae64e937d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-20 15:45:07 +02:00
James Turner ed29e29a3c Fix QWidgetWindow sending duplicate drag-drop events
Unlike the other event handlers in QWidgetWindow, the drag-drop events are not followed by an
early return. This causes all drag-drop events to also be sent to the root widget of the window,
which is a bug. For example in the fridgemagnets example, where the target widget and
root widget are the same, the drop event is received twice.

Change-Id: I99e56ad8c48b3d31b0bd7c815cea8490edbf0af4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-20 15:45:07 +02:00
Stephen Kelly 579ea489a4 Record if a metatype is a smart pointer to a QObject derived.
This allows QVariant/QMetaType software (such as QtDeclarative) to
deal with smart pointers in a similar way to how they can deal with
naked pointers (accessing properties etc).

This also adds a requirement that T be fully defined when
QSharedPointer<T> is inserted into a QVariant.

Change-Id: I29e12b8a6aa5f4aadbd62f92b89bc238f64b5725
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-06-20 15:45:07 +02:00
Stephen Kelly 668efc29fd Add some internal API for extracting a QSharedPointer<T> from QVariant.
The T must be derived from QObject, or it will fail to compile.

This will allow scripting or other 'wrapping' and runtime environments like
QtDeclarative to handle QSharedPointers to types derived from QObject
properly. A QSharedPointer<T> can be inserted into a QVariant, and
where T derives from QObject, a QSharedPointer<QObject> can be
extracted from the QVariant, and its properties are then accessible.

Change-Id: I68d6d89aceceb019267bd7301baa2047f9c09b90
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-20 15:45:07 +02:00
Martin Petersson 534bcc9667 QNetworkAccessManager: delete the httpThread
The httpThread was using deleteLater the finished signal of the
thread to call the deleteLater slot. If the QNetworkAccessManager is
deleted when the application is closed then then fished is emitted
but we never return to the eventloop so the deletion is never done.

This will delete the httpThread directly instead of using deleteLater

Task-number: QTBUG-25487
Change-Id: I1fdbd4eca01e8bd8b3a98936298e5c78217752b4
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-06-20 15:45:07 +02:00
Bradley T. Hughes cf7c93b928 Change *-clang mkspec globs to *-clang*
Like with the numerous g++ mkspecs, we have mkspecs with suffixes, and
these mkspecs should still match the clang globs.

Change-Id: I9296408b5192bc72cc468d229a57923e3f5ab6f0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-20 15:45:07 +02:00
Jeremy Katz a8cbd3a527 Make QUuid compile with QT_NO_QUUID_STRING without breaking QDebug <<
Change I0cbb0581a1c3abefdde75b7cd45fdafd31640f0d breaks the use of
operator<< for QDebug, which shows up when trying to link QtCore in
the small qconfig.

Instead, render QUuid as "QUuid(QT_NO_QUUID_STRING)".

Task-number: QTBUG-24816

Change-Id: Ia52283d7461a9907bcec7a110e41c9f830895efe
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@nokia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-06-20 12:38:32 +02:00
Jeremy Katz 23e3c703a1 define QT_NO_ICONV if QT_NO_TEXTCODEC
This also updates qfeatures.h with various other things that have
been neglected. Run $QTSRCDIR/util/scripts/make_qfeatures_dot_h
after changing qfeatures.txt

Task-number: QTBUG-24816

Change-Id: I18b71fcec71efa9cfe3425fb1a7833456ec411b9
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-20 12:38:32 +02:00
Jeremy Katz 6eed1ff9d5 Make QVariant compile with QT_NO_QUUID_STRING
Task-number: QTBUG-24816

Change-Id: I76e6a6bcf1a2381e14f400648e3cb8ba554772a6
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-20 12:38:32 +02:00
Eike Ziller a44bbc3c1c Mac: Fix rendering of non-int sized fonts.
Scrolling happens in integer steps, so it's necessary to use a
fractional correction value.

Task-number: QTCREATORBUG-7127
Change-Id: I6eccba6532f95aa4bf9270bdaec4b57280dc8e3d
Reviewed-by: Matthias Ettrich <matthias.ettrich@nokia.com>
2012-06-20 12:38:32 +02:00
Girish Ramakrishnan eff1f61e50 Document and use UserEvent::nullWindow for event delivery
nullWindow is used to track if the window was null when the event
was created. If the window was null at contruction time, the qpa
event delivery code will choose a window to deliver it to.

If the window was not-null at creation time but became null during
the actuall event processing time, the event is ignored.

All the event delivery except the touch event delivery has been
changed to reflect this. I have not changed touch event delivery
because I don't really know what all need to be retranslated into
new window co-ordinates.

Change-Id: Ic62d12a13e70dd4d01226509411817db1b6af108
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-06-20 12:38:32 +02:00
Oswald Buddenhagen 6d9c545d2b Merge "Merge branch 'buildsystem'" into refs/staging/master 2012-06-20 12:38:32 +02:00
Mitch Curtis 86f953a6d4 Make QDateTime::fromString()/Time::fromString() adhere to ISO 8601.
Currently QDateTime::fromString and QTime::fromString do not correctly
handle fractional minutes and, in some cases, fractional seconds.

In the case of reading fractional minutes, it has been decided to
ignore invalid characters outside of the 5 character portion that
we're interested in (see code comments in fromStringImpl() for
info on why we read 5 digits). The motive is that there is a
performance penalty for calling mid to get the portion of surplus
string and also for converting to it to a float. This is also in
line with what QDate does with surplus characters, for example.

Task-number: QTBUG-14418
Task-number: QTBUG-25387
Change-Id: Ib742fe80686aff3c3770b995678cf838fb4e3bb4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-20 12:38:32 +02:00
Mitch Curtis 902638e379 Add leading zeros to years below 1000 in QDate::toString().
QDate::toString(Qt::ISODate) lacks prefixed 0's on years below 1000.
The ISO 8601 standard dictates that this should be the case.

Task-number: QTBUG-16476
Change-Id: I7e73152bba0f5894bcbaa3f4418732b74ce86bc5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-20 12:38:32 +02:00
Stephen Kelly f9817dda55 Use the POSITION_INDEPENDENT_CODE property on targets using Qt.
This property is only set if Qt is configured
with -reduce-relocations (which is the default).

Change-Id: If2f0ab92448f03bbc3f7c828d3bca60107229072
Reviewed-by: Brad King <brad.king@kitware.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-06-20 10:26:59 +02:00
Martin Petersson 79b14f42ba QUrl::setEncodedQueryItems should replace
If there is  already a query string present in the url. It should be
replace when setEncodedQueryItems is called again.

Task-number: QTBUG-26148
Change-Id: I2bd4e1f5d9b4161d64556062e97141888ad89b3b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-20 10:05:49 +02:00
Samuel Rødal c752bb8eb8 Improved QCursor::setPos() robustness on xcb.
This makes tst_QGraphicsView::hoverLeave() less flaky.

Change-Id: Iaa1be6e2d02499679c69b26c07132413040173b6
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-06-20 10:04:26 +02:00
Kent Hansen 42545eaea0 QMetaMethod::invoke: Use normalizedType() to normalize return type
The code was probably written before QMetaObject::normalizedType()
was introduced.

The behavior is covered by the existing tests
tst_QMetaObject::invokeMetaMember and
tst_QMetaObject::invokeBlockingQueuedMetaMember.

Change-Id: Ib1c3b3e4dff37947defd1dfdcc860df44539aa3a
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-20 09:34:40 +02:00
Frederik Gladhorn 8b24ed162c Accessibility: Do not automatically add controllers
While I do like the idea, it currently relies on every
QWidget having QAccessibleWidget as a11y representation.

This crashes for example when using the itemviews and
asking them for relations.

Change-Id: Ie15a78dae620eefb97c646b9e802b13bdf864650
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-06-20 09:18:08 +02:00
Yuchen Deng 3db8877d28 MOC: Avoiding MAX_PATH limit on Windows
See: http://msdn.microsoft.com/en-us/library/aa365247(v=VS.85).aspx
Task-number: QTBUG-26157

Change-Id: Ie74481cd06c31149a060a432352da5b2731caaef
Reviewed-by: Debao Zhang <dbzhang800@gmail.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-20 08:39:41 +02:00
Gabor Ballabas 8b92d770a0 Fix compile-time error macro when building with -fPIE
This macro causes a compile-time error using LLVM with Clang
when the target that includes qglobal.h is built with -fPIE.

Change-Id: I2e82e1a8feed9009c814f187b06501b26ea3b3b7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-20 03:18:13 +02:00
Tobias Hunger 88cf9402e3 Fix access to uninitialized pointer
The C++ standard says in 9.4..2 that the object expression is evaluated,
so any compliant compiler may access d. So this syntax is a bug in this
place.

Change-Id: I37d2c4ea54febd40410ca473c906bcb1c66c4974
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-06-20 03:18:07 +02:00
Olivier Goffart 958aaf3770 Add qMove macro to support std::move
Change-Id: I373e07f479c11b172dab35ed7e5b62724aa50a1a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-20 03:17:55 +02:00
Friedemann Kleint e4505acd12 Windows: Fix MinGW warnings.
- Missing initializers for structs
- Missing enumeration value
- Mixing enumeration/ints in operator ?

Change-Id: I149ab01ad2ebd04f89e5c699905d5ba724828e0f
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-20 03:17:49 +02:00
Oswald Buddenhagen b652bffea7 Merge branch 'buildsystem'
This appears to be fully backwards-compatible with all tested modules,
as far as CI is concerned.

Change-Id: I53f979d06d0a264c5aab1193bab181a38ab837d6
2012-06-19 16:48:23 +02:00
Oswald Buddenhagen 1ee462604b fix misnomer: qt_module.prf => qt_build_config.prf
qt_module suggests to be congruent to qt_plugin.

Change-Id: I629530bcbe2ba6c0adbdc11a275119c8aff0c953
2012-06-19 16:46:08 +02:00
Oswald Buddenhagen c595988a58 automatically add QT_BUILD_FOO_LIB to DEFINES
Change-Id: I35d9861e48469eb5cc8824e361450684047e6559
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:46:00 +02:00
Oswald Buddenhagen 6fb0b7f5fc clean up projects from QPRO_PWD nonsense, etc.
Change-Id: I4c41aedf5bfb37e31ad202cacd2312b0bdb168e2
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:45:59 +02:00
Oswald Buddenhagen 131ba187f2 auto-generate QMAKE_PKGCONFIG_REQUIRES and QMAKE_PKGCONFIG_DESCRIPTION
less boilerplate, more accuracy

Change-Id: I6cc2abd50eafb4901d987c122f10a62ec9ea9da3
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:45:59 +02:00
Oswald Buddenhagen f3cca88ac4 move QMAKE_PKGCONFIG_VARIABLES stuff out of qt_module_config.prf
this only needs to be set in one module each - the one which provides
the relevant tool.

this is moderately source-incompatible, in that a package which queries
a given variable from the wrong library won't get the path it looks for
any more. as it's likely that everyone was using QtCore as a reference
anyway, this will only affect uic - which is in the new QtWidgets
library, to which people need to adjust anyway.

Change-Id: If05d3c33fda6cd12466e261391b825c59651d3e4
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:45:59 +02:00
Oswald Buddenhagen 0b37ec3321 don't use qt_module_config for winmain
it is not really a Qt module, and pretending causes some messups.

Change-Id: Id0980f7c00d6d176dd4937f8b265b8b571aa1277
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:44:56 +02:00
Oswald Buddenhagen 0b76b7ab8a auto-generate module pris
Change-Id: I654428771034221ccf424be34d5d9c7764daf3b4
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:06 +02:00
Oswald Buddenhagen fb36b22269 don't refer to module versions during bootstrap
once we auto-generate the pris while building their respective modules,
the versions won't be available during bootstrap yet.
however, as these are core modules, their version is locked to the global
$$QT_VERSION anyway, so just use that.

Change-Id: I092f5e7d4dfe99c03e0df71f9409cac9be9f2297
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-06-19 16:40:06 +02:00
Oswald Buddenhagen e203e42906 automatically add the version header to HEADERS
Change-Id: I7c2e1d852ebdbc5cca7a3a31ab2b4c9ab9faffd9
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:04 +02:00
Oswald Buddenhagen 0202e15617 remove explicit RCC_DIR addition to INCLUDEPATH
qrc_ files are generally not meant to be included, so there is not much
point in doing this.
qprintsupport was a notable exception - which broke on mac and thus
needed a hack. just remove the qrc_ inclusion.

Change-Id: If5115665f331a280869e800673bf7b81d3ab559a
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:01 +02:00
Oswald Buddenhagen f4b7e33c0b make qt_module_config.prf install the module pri file
absorb module.prf into qt_installs.prf, as that's where it belongs.
add qt_install_module option and automatically set it in
qt_module_config. make qt_installs use that option.

Change-Id: I860616f3a29a456f7b88ddaffa09375400c8911e
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:00 +02:00
Oswald Buddenhagen 6a8f64136e introduce /get property variants
properties are now split into a write location $$[FOO] and a read
location $$[FOO/get]. the write locations are hard-coded and configurable
via qt.conf/Paths as before, while the read locations are configured via
qt.conf/EffectivePaths.

this finally provides a clean solution to the problem that during the qt
build itself tools and libraries need to be taken from somewhere else
than they are installed to.

Change-Id: I956c43bd082afd465e690fe75d0bee3c2c0f7c25
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-06-19 16:39:58 +02:00
Oswald Buddenhagen 107aeb870b move moc, rcc and uic CONFIG additions to the respective qt modules
they don't belong into the global scope

Change-Id: I27a3de5f706392b3c4a84035521bc3b4e4055740
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:39:53 +02:00
Oswald Buddenhagen 290aae5a3a remove last traces of qbase.pri, qt_targets.pri and qt_installs.pri
qt_module_config.prf, qt_targets.prf and qt_installs.prf replace them

Change-Id: I6fc670ce8540dbd9ddaec1632d486e43a7ebf14b
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:39:52 +02:00
Oswald Buddenhagen 07581a87f8 remove some qmake -project boilerplate from project files
Change-Id: I5e6103db42b4fcca4ed4c2ffaec71e71e73d5b95
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:39:52 +02:00
Oswald Buddenhagen 78290e66c4 clean up path normalization in configure.exe and QLibraryInfo
always use normalized path separators, except when running native
commands or printing (note however that the qmake -query output will now
be consistently normalized).

Change-Id: I6ae920c3bc656cb517d1f4e4e5518cf79e002169
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:39:50 +02:00
Oswald Buddenhagen 17b6125bce rewrite SUBDIRS construction logic
clearer and gets the conditional dependencies right

Change-Id: Ifb24a4a84caffb0e3b45af7eb8cb21f5c5861d54
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-06-19 16:39:50 +02:00
Oswald Buddenhagen c7bf0448da detach src/src.pro and src/tools/tools.pro from qtbase.pro
they were included instead of being proper subdirs. this doesn't appear
to be necessary for anything at this point.

Change-Id: Ie57285df8e5ea7bd8883bcd42fa6ed62b8e1d54d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:39:21 +02:00
Oswald Buddenhagen bcadd2ded2 remove convoluted recursive debug/release target magic
this has been a) dysfunct and b) unnecessary for *quite* a while.

Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Change-Id: I5d658a15d0c1dc923002f8d773eecb8382cd213d
2012-06-19 16:37:50 +02:00
Oswald Buddenhagen 7d8578418d properly declare the host tools as such in the project files
don't mess with the qmake cmdline args any more.

Change-Id: I399d87145d31d25e29951b6acd96387a3c7282f0
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:37:50 +02:00
Janne Anttila a0cf2119a7 Disable TranslucentBackground for WinCE to fix Windows QPA plugin build.
WinCE and WEC7 does not support layered Windows APIs:
http://msdn.microsoft.com/en-us/library/hh300132.aspx

For now - fallback to default window BitBlt always in WinCE.

Change-Id: I6f99d198dec9e90fb4a968882271b466638009d6
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 09:14:31 +02:00
Bradley T. Hughes 28f193ab53 QEvent: Don't give DeferredDelete special treatment
After commit 9b07fd0d5c, Qt no longer
keeps the loop-level in QEvent's d-pointer. This means we no longer need
to special case this event type in the QEvent copy constructor,
assignment operator, and destructor.

Change-Id: Iff71713d38303674f4517fdfa169cc448ed41dd4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-19 02:55:50 +02:00
Johannes Zellner e7836e6a9a platform hooks: provide defaults for screen size and depth hooks
Default hooks for querying screen size and color depth based on linux
fbdev API.

Change-Id: I7fc75c0df5e0f507cf679439416fe68c8f62f91d
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-19 00:38:02 +02:00
Samuel Rødal 95427b0f40 Fixed QOpenGLFunctions API.
We don't use the GL short term in the new API.

Change-Id: I73a51f65f5f4216c1763b95dcddf68fe8fc229d1
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-18 21:58:30 +02:00
Samuel Rødal 7967cb4f48 Prevent ending up in a state where focus is perpetually grabbed.
Mouse / enter / leave / key events etc are all blocked when a window has
the blockedByModalWindow flag set. The problem appears if a QWindow is
created and only later directly or indirectly parented to a modal window
that's currently showing. Since the decision on whether a window should
be blocked or not is based on its parent / transient parent chain, we
need to reevaluate the blocked status each time the parent or transient
parent of a window changes.

Task-number: QTBUG-26112
Change-Id: Ida6b118b556fe26d17fa86335a0fe7baddc7eaf8
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-18 21:58:30 +02:00
Girish Ramakrishnan 3c8eb40487 xcb: ensure the primary screen is added first
Currently, Qt windows without an explicit screen parameter always appear
on screen 0 despite the DISPLAY being set to :0.1. With this change,
the xcb backend adds the primary display at the beginning of the
screen list. QGuiApplication::primaryScreen() will then return that
display for all windows without an explicit screen.

Change-Id: I657c4ed92b9e0f0ed379e91c732dad9d69c4f5e0
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-18 21:58:30 +02:00
Jeremy Katz abe4b31713 Make QUuid compile with QT_NO_QUUID_STRING
Task-number: QTBUG-24816

Change-Id: I0cbb0581a1c3abefdde75b7cd45fdafd31640f0d
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-06-18 19:15:54 +02:00
Miikka Heikkinen 486601fbc4 Clean up a partially scrolled QRollEffect widget
If the associated widget pointer got zeroed while QRollEffect was
scrolling, the partially scrolled QRollEffect widget remained on
screen indefinitely as 'done' was never set to true.

Change-Id: If1567ea740e81b5501137d10db471ca97d295ed8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-18 16:11:39 +02:00
Konstantin Ritt fa705caca7 Improve the code generation by using Q_LIKELY/Q_UNLIKELY
+ reorder conditions in getWordBreaks() to make further updates more clear

Change-Id: I1ca9adde066c3a48830f310202f7181585fac194
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-16 21:14:48 +02:00
Berthold Krevert 3a77bbe68b Fix: Widgets that become top-level widgets may crash the application
You can reproduce the bug with the QMainWindow demo application: Just
dock the toolbar on the left side, then try to drag the bar back to
the top and observe that the application crashes.

This happens, because the toolbar becomes a top-level widget during the
dragging action and therefore some data structures like a window are
created. After the toolbar has been docked, it loses its top-level state
and the window object is destroyed. The same is not true for the backing
store structure, which still keeps a pointer to the destroyed window.
When the toolbar is dragged the next time, a new window object is created,
but the backing store tries to access the deleted one. Crash occurs.

Change-Id: I0d1ffc04c19ec14654ceb62a0d3cf7cf65cb952d
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-15 19:36:35 +02:00
Stephen Kelly e83c3a0d33 Add automatic metatype declaration for QPointer and QWeakPointer.
Change-Id: Ic9a04fa68d0bb14ef07455a6559e59f4b887f38b
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-06-15 19:33:41 +02:00
Jonathan Liu aca3513dda Do not redefine NIN_KEYSELECT if already defined
NIN_KEYSELECT is already defined for MinGW-w64.

Change-Id: Ieab9f883cf1680f792d085e254916d51602ce701
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-15 16:13:01 +02:00
Jonas M. Gastal 007476ab19 Fix double error setting, which overrode correct value.
Change-Id: I3bc992b8b41f305a01b80bca16346e18ac4d7833
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-06-15 14:06:49 +02:00
Thiago Macieira b719bd498e Forward-declare QLatin1String too
qhash.h doesn't include qstring.h and was depending on an indirect
inclusion (probably via qpair.h -> qdatastream.h -> qiodevice.h ->
qobject.h -> qstring.h, which I've broken).

Since it forward-declares QString and QStringRef, let's add
QLatin1String too.

Change-Id: I179ebb22f761b88423ef13643afa2e5ce91ef6a2
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-15 00:55:53 +02:00
Johannes Zellner 11aa64b1a1 eglfs: Pass QSurfaceFormat to createNativeWindow() hook
Change-Id: Ib352d8591360a224359ef218b95cd27cdfaf81aa
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-14 16:12:31 +02:00
Girish Ramakrishnan f2d04d9b8c eglfs: Make QEglFSWindow respect the window format
Prior to this change, eglfs code used to override the window format
with it's own format. With this change, eglfs will respect the window
format. This is useful when the application requires a surface with
alpha (for example, so that the video layer below is visible)

QEglFSHooks::surfaceFormatFor() allows the hook author to override
the context and window surface format.

Change-Id: I97f03a8b0871dfebfca73004fa0188b33d0d0367
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-14 16:12:19 +02:00
ABBAPOH ed776e3670 Speedup for QAbstractItemViewPrivate::delegateForIndex
This fix prevents copying of a QPointer on a stack and adding/removing
QMetaObject guards

Change-Id: I844c10cede1536a14ad7cd9f007470966619d6d6
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-14 16:00:05 +02:00
Thiago Macieira 606c21526a Use QPointer, not QWeakPointer.
QWeakPointer tracking of QObjects is deprecated.

Change-Id: I1a81a0f9bbe02a6a38a50ab4a50e7c65212fa591
Reviewed-by: Jan Arne Petersen <jpetersen@openismus.com>
Reviewed-by: Michael Hasselmann <michaelh@openismus.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-06-14 15:29:07 +02:00
David Faure 741b1fcfa3 Make qurlinfo private, now that QFtp is private.
Change-Id: I0bb641b397b7087c89009f92d9973e0922dce653
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-06-14 12:23:11 +02:00
Jeremy Katz cd89b164a5 Extend JSON QStandardPaths to support multiple paths per location
Allow a location to be specified as an array of paths.
    LOCATION: ["first", "second"]

The first value is selected for writableLocation().

Define the first entry as an empty string for no writable path.
    LOCATION: ["", "second"]

A single path may be expressed as a string.
    LOCATION: "only"

Change-Id: I897cf40a039ad7cb680bdf643bfa78020e8eb1cb
Reviewed-by: Lincoln Ramsay <lincoln.ramsay@nokia.com>
Reviewed-by: David Faure <faure@kde.org>
2012-06-14 12:20:51 +02:00
Jani Honkonen a85d15259c Fix QListView::scrollTo() when there are hidden rows
This is a cherry-pick of b0601630dd0ddabfaa3b97d042ee02b981d95988
from February

QListView does not consider hidden rows when scrolling to an item.
If there are hidden rows (or columns) before the selected item then
the visual index of an item is not the same as the row index
from the model. So scrolling will be off by the number of hidden
rows before the selected item.

Added a autotest for this also.

Task-number: QTBUG-21115
Change-Id: I01b097bce7f163cdb480a71b763c060cc006fdc7
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-06-14 10:11:26 +02:00
Stephen Kelly 6649171ddc It should be a moc error for the specified file to not exist.
Currently the missing file is ignored and plugin data is created anyway.

Change-Id: I118fd57b7d05a135e3ff58c0298b25e67cd12587
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-14 10:11:24 +02:00
Jiang Jiang 6da6845f07 Disable hinting for scaled glyphs in FreeType
Scaling hinted glyphs looks ugly, and it makes smooth scaling
animation not possible. Since nothing will work as intended
in hinted mode, we should disable hinting automatically when
glyphs are loaded with scaling transformation.

Task-number: QTBUG-24846
Change-Id: Id7fb5f5bdc2d00be157b0c5d55c316473571473c
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-14 10:11:23 +02:00
Girish Ramakrishnan cb97d846e2 egl: return EGL config when r/g/b sizes are not set
The check is already done for alpha. Do a similar check for
r/g/b sizes.

The problem was discovered because the default scenegraph context
in QSGContext::defaultSurfaceFormat does not have r/g/b set.

Change-Id: I2f529c9d5cc7dbc61a27722336e8099e7be08965
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-06-14 10:07:23 +02:00
Albert Astals Cid d40ab8b9f5 Add since 5.0 markers to new QCryptographicHash enums/functions
Change-Id: If367d365510cc7f6bf8f87808f5843c4a41d13e1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-14 05:26:49 +02:00
Shane Kearns 46e40214cf choke uploadProgress signals
The QNetworkReply::uploadProgress signal is intended for updating UI
elements such as a progress bar.
Limit the signal emissions to 10 per second to prevent overloading
the UI with updates.
As with the downloadProgress choke, this is implemented by dropping
signals that occur within 100ms of the previous emission.

The 100% signal is always emitted (bytesSent == bytesTotal)
When the upload size is initially unknown, this behaviour is still
provided by the upload device emitting a suitable readProgress
signal when EOF is reached.

Task-number: QTBUG-20449
Change-Id: I77e03c8a49109106e1c375ee00380293fd326b63
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2012-06-14 05:26:37 +02:00
Shane Kearns d6d9c8bf32 choke downloadProgress signals
The QNetworkReply::downloadProgress signal is intended for updating
user interface components (e.g. a progress bar).
Limit signal emissions to 10 times per second, with an additional
signal just before the finished() signal to provide the 100% progress.

For the size of download where a progress bar is necessary, this
update frequency seems sufficient.

The implementation is done by dropping signals which would be emitted
less than 100ms after the previous signal emission.

Task-number: QTBUG-20449
Change-Id: I9c2dbe16c70f3270cbf98f3c74cf9d9a3f0ab900
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Markus Goetz <markus@woboq.com>
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2012-06-14 05:26:35 +02:00
Tasuku Suzuki 5a7937bb04 disable codecs for asian language when QT_NO_BIG_CODECS defined
Change-Id: I45025b13bacc5f63946b02a87c742beff1946c0b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-14 05:26:26 +02:00
Konstantin Ritt f00012aa89 Regenerate the Unicode tables
Change-Id: I64b93ba8ec85eff5e308d92c57e98e8745c43d66
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-14 05:22:15 +02:00
Konstantin Ritt 09bc8e2cb8 QFontMetrics/QRawFont: Optimize SMP code points handling a bit
Calling QString::fromUcs4() for the single UCS-4 -encoded character is quite suboptimal
since the BOM detections and the resulting QString aren't really used;
all we need is to split the UCS-4 code point into the UCS-2 surrogate pair.

Change-Id: Ia5b68312909bf551cf2493d9e2752a7d7d837fb9
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-14 05:22:11 +02:00
Konstantin Ritt dd68e93de7 Add the AGLFN tables generator, update the tables up to AGLFN 1.7
Task-number: QTBUG-21727

Change-Id: Ib2cacc2a52b2853059d6c873a33dcde735fbe168
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-14 05:22:03 +02:00
Konstantin Ritt 3014c35756 AGLFN: optimize glyph name lookup and reverse map creation
Use binary search in glyph name lookup, drop the linear search sentinel (0xFFFF);
Pass the reverse map by ref, initialize with memset.

Change-Id: I56de64bf2352af0615787e4cc0e13c922c640822
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-14 05:21:54 +02:00
Friedemann Kleint 0137f092af Introduce QPA API for size grip handling.
- Introduce API to do size grip handling (mouse press
  and move).
- Move Windows code to Windows plugin.
- Move X11 code to XCB plugin and activate it.

Change-Id: I2f61d6ddc1fa07447e668554d41ecc820efca23f
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-14 03:05:41 +02:00
Friedemann Kleint 1539e8e310 Windows: Fix warnings about being unable to load fonts from font dir.
Do not call QPlatformFontDatabase::populateFontDatabase(), which
tries to load qpf2-fonts from the Qt library directory.
This directory is not installed on Windows.

Note: This affects non-in-source builds only.

Task-number: QTBUG-26066
Change-Id: I5782e61965958fc48e0edd7a3d50eef325529708
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-14 03:05:27 +02:00
Sean Harmer 0346d605e3 Do not add debug/release to QMAKE_CONFIG. Let module system enable them
This solved QTBUG-26111 in which qtjsbackend gets built with an
incomplete framework on Mac OSX. This was traced back to commit
6a6fd56e66 which moved QMAKE_CONFIG
values from .qmake.cache to mkspecs/qmodule.pri. Since qtjsbackend
contains config tests it creates its own .qmake.cache which was
previously masking this issue.

QMAKE_CONFIG incorrectly contained debug for debug_and_release builds
even though debug and release are already present in the CONFIG variable
in mkspecs/qconfig.pri. The changes to configure prevent CONFIG in
qmodule.pri from containing debug and release variables and ensure
that QT_CONFIG contains build_all and debug_and_release if appropriate.
Configure.app is also adjusted to match this behaviour.

The other part of the change is to qt_module_config.prf and
qt_plugin.prf. These changes take care of populating CONFIG with
the appropriate debug_and_release and build_all variables depending
upon what is present in QT_CONFIG. This ensures that the Qt modules
and plugins get built with the same configuration as qtbase.

The special handling for the qcocoa QPA plugin ensures that it is
built in release mode only to preserve the behaviour introduced by
commit 5603f94eaa.

Task-number: QTBUG-26111
Change-Id: I6f65aba50709e1b2431b8b4411ff30a06f7d8aed
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-14 03:03:38 +02:00
Morten Sorvig bfca0a1bb6 Compile.
Expressions containing "reinterpret_cast" are not
constant expressions according to C++11 rules.

Change-Id: Id97729f184983e5bdda180b99cfbe27e2768e09e
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-14 03:03:38 +02:00
Toby Tomkins 3e9c45c4cc Fix namespace compilation on OSX.
Change-Id: Ib579ae298a5f894b8b02a5d56567870109bd29bd
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-06-14 03:03:38 +02:00
João Abecasis c190b596c5 Remove unneeded #includes and namespace wrappers
qvector.cpp no longer contains any code, now that inline functionality
has been deferred to QArrayData.

Change-Id: I000ef8507e5b8438edd32a762750e4ceaa8aa8ee
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-06-14 03:03:38 +02:00
Sean Harmer 6a66f29ead OpenGL: Update QOpenGLFunctions docs to remove widget code
Change-Id: I4246a49444c09d899f2bd7cd2e9353ee0a6859bf
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-14 03:03:38 +02:00
Friedemann Kleint 9e9ea7c0e6 QtWidgets: Fix warnings about deprecated QGraphicsView functions.
Warnings introduced by d76de69b4b .

Change-Id: I613500074a2318a617f18d5b887840ecc3408237
Reviewed-by: Gatis Paeglis <gatis.paeglis@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-06-14 03:03:38 +02:00
Casper van Donderen 5bbe8756fd QDoc: Check if index file was already inserted in list.
Previously it was possible to insert exactly the same index file in the
map twice by specifying an -indexdir which is the same as -installdir.
Probably you can also have two indexes with the same name that happen to
have the same creation time, but changes of that happening are slim to
none.

Change-Id: I6be5fb9d04839026830b9948887b282489b379c0
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
2012-06-14 03:03:38 +02:00
Gunnar Sletta 8a5af08cf0 Remove downstream documentation references from gui
Change-Id: I6c107ed1f1cabe3713e22ec1c7854d5c07dca4b5
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-06-14 03:03:38 +02:00
Sean Harmer 5eae12ff72 QNX: Enable additional CPU features to be compiled in for QNX
The QNX toolchain can use Neon on ARM and SSE<X> on x86/x86_64.

Change-Id: I36c61fa12b65d806b3cc60a0aefcb63964f9ab7e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-14 03:03:38 +02:00
Girish Ramakrishnan 7020c2fe2a Deliver wheel events when window is null
The generic input plugins do not set the window parameter. So,
use the same technique we use with mouse event handling to determine
the window to deliver the event to.

Done-with: Johannes Zellner

Change-Id: I950c0ad2f330dccfdcc41b8d01f62cd39902bc9c
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-06-14 03:03:38 +02:00
Thiago Macieira 4618bc3ea0 Fix QUrl documentation: FullyDecoded and DecodedMode are a pair
DecodedMode with FullyEncoded makes no sense whatsoever.

Change-Id: I182db7aceb38e4e9398138066022912adec9c413
Reviewed-by: David Faure <faure@kde.org>
2012-06-14 00:05:49 +02:00
Girish Ramakrishnan 4b7a4c40d8 eglfs: mark overriden methods with Q_DECL_OVERRIDE
The current cursor implementation can be a bit hard to read
without hints about which methods are overriden.

Change-Id: I3376890a13be46e1ece03d1442dd5a15ccd61382
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-13 23:59:17 +02:00
Girish Ramakrishnan 58d1b8253e printersupport: Fix cups.pro qmake warning
Change-Id: I59c8e3021fbf733af003ebd99be4a63e0a68f155
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-13 23:59:03 +02:00
Simon Hausmann 5230d62feb Partial fix for WebKit compilation on Windows
qdatetime.h uses std::min/max and on Windows windows.h (or some subsequent
header file) may under certain circumstances define min/max as macros.

The easiest way to prevent the windows header files from doing that is to
define NOMINMAX in the place right before windows.h is included. The other
way is to define min and max to min/max themselves to prevent windows.h
from doing its evil thing.

If a user of Qt (WebKit in this case) chooses the approach of defining
min/max to themselves and then includes qdatetime.h, then a subsequent
inclusion of windows.h doesn't work because qdatetime.h undefines min/max.

We should not enforce the type of workaround needed, therefore this patch
removes the workaround from qdatetime.h and requires user code that
happens to include windows header files before qdatetime.h (seldom case)
to choose either workaround.

Change-Id: I7347eec7369491a065e894cff557004e069453d5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-13 23:24:08 +02:00
ABBAPOH 1d859ef805 AbstractItemView editorForIndex/indexForEditor speedup
Frequent calls to editorForIndex/indexForEditor are very slow because of an implicit
conversion from QModelIndex to QPersistentModelIndex.
This fix allows to avoid unnecessary conversions when there are no open
editors (most common case)

Change-Id: Ic072880c9f33a43a20b2a61a42c3ba215c5c33cb
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-06-13 23:22:28 +02:00
Friedemann Kleint e2f57d59d8 Send key events to pop-up widget in case there is one.
Make QApplicationPrivate::inPopupMode() static for
convenience.

Task-number: QTBUG-26095

Change-Id: I98dc1e40d357592b790cd51d7aca60c2be9f380f
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-13 02:29:46 +02:00
Lars Knoll 087f279fff Don't use gcc extension for QByteArrayLiteral neither
This extension doesn't work for e.g. default arguments
in function declarations.

Change-Id: I32b7afa6e01b6af55fb2409179b4fd94cb04cd8d
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-12 22:57:22 +02:00
Thiago Macieira 08b3aceffe Keep the #ifdef for tracking shared pointers in a single function
If we have it in different functions, then different out-of-line
implementations could be selected for each object file, resulting in
invalid states. The error I caught was when wrapper.cpp was compiled
without tracking and, therefore, did not place a call to
internalSafetyCheckAdd. However, it called an out-of-line copy of
QtSharedPointer::ExternalRefCountWithCustomDeleter::create, which did
set the deleter to remove the safety check.

Therefore, keep everything in one function.

Change-Id: Ib2c6a606699db49d102704bccdd331ec22a8bd78
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-12 20:09:39 +02:00
Thiago Macieira 48b38fb2b0 Simple optimisation for the construction of a QSharedPointer
Let the constructor initialise the "value" member.

In the case of create(), which already initialised "value", simply
merge the two functions for more readability.

Change-Id: I5638b3d42af3d0f5988f815e0f91d591fa1897a8
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-12 20:09:36 +02:00
Thiago Macieira 6daea46918 Use the copy & swap trick to simplify some code in QSharedPointer
Change-Id: I5fa2fae19126bea60b9682ed7765681dd6da8c15
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-12 20:09:33 +02:00
Thiago Macieira 086d6e74d2 Now merge the QtShared::ExternalRefCount class into QSharedPointer
Completing the work of the previous commit: we don't need separate
classes. Merge into the main class's body.

Change-Id: I2f89b34cb6b7f5f9e8d8b809bebd86656f458644
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-12 20:09:26 +02:00
Thiago Macieira 32edd16e2b Merge QtSharedPointer::Basic into QtSharedPointer::ExternalRefCount
The basic class existed for legacy only, when internal reference
counting was a goal. Since it isn't anymore, we can remove the
distinction and simply merge the two classes.

Change-Id: Ib7a1c4158a8d71e71fa6afa447938b8b85ddae87
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-12 20:09:21 +02:00
Thiago Macieira f77d2e0319 Merge two internal classes of QSharedPointer and de-virtualise them
The two classes are QtSharedPointer::ExternalRefCountData and
ExternalRefCountWithDestroyFn. The split existed because of what Qt
4.5 did before custom deleters existed: the ExternalRefCountData class
was a virtual class that contained a destroy() virtual, which was in
charge of deleting the data or returning false if it didn't.

Turns out that virtual classes was a mistake. This commit
de-virtualises them -- we couldn't do it in Qt 4 because of binary
compatibility. This saves us one pointer-size in the size of the
private, plus the fact that fewer symbols are required (there is no
virtual table to be initialised).

Additionaly, since a deleter is always stored with the reference
count, we don't need the split between the two classes anymore.

Change-Id: I1cd9400561dcee089a406a57bd856b1730f18afc
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-12 20:09:16 +02:00
Thiago Macieira 55c6f09b3a Remove "delete value" from QSharedPointer
This allows a QSharedPointer to be used in contexts where the class in
question is still forward-declared. This produced a warning in Qt 4 due
to the expansion of the template, even if there was no chance of the
pointer being deleted there (because the reference count could not drop
to zero).

Now, not only is the warning removed, but you can actually have the
reference count drop to zero in a forward-declared class and it will
do the right thing. That's because the deleter function is always
recorded from the point of construction and we're sure that it wasn't
forward-declared.

The unit test for forward-declarations had to be rewritten. The
previous version was passing only because the QSharedPointer object
was created under the "tracking pointers" mode, which causes a custom
deleter to be used in all cases.

Task-number: QTBUG-25819
Change-Id: Ife37a4cea4551d94084b49ee03504dd39b8802c1
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-12 20:09:09 +02:00
Holger Hans Peter Freyther 13074f2ba1 mips: dsp and dspr2 can be enabled separately fix dspr2 only compilation
Separate dsp and dspr2 handling. The configure script allows to disable
them separately and with this patch it is possible to compile a dspr2
only libQtGui.so.

Change-Id: Ifca583c9b46a25c93751967a31ac77eafc5d51e4
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-12 17:45:03 +02:00
Gatis Paeglis d76de69b4b Fix Qt5 To-Do's in QGraphicsItem
- Merge isObscured()
- Deprecate and inline obsolete methods
- Correct outdated documentation

Change-Id: I4eb29df78785794c6d134bf9c2f5e0f3c3d6a29f
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-06-12 17:41:49 +02:00
Friedemann Kleint 529a9fbd81 Remove unused static functions from qlogging.cpp, qstring.cpp.
Change-Id: I4e9642b5e7fb57ac56511ae06af6ce416d0401ec
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-12 17:40:02 +02:00
Thiago Macieira e7c39180be Export qMemSet and qMemCopy properly
Commit d839564c94 was incomplete. It
added the Q_CORE_EXPORT macro to qmalloc.cpp, but the qMemSet and
qMemCopy function bodies are in qglobal.cpp.

Change-Id: I24ee44f04365d8dbdf3f1c0f22b6a72cae9f96bb
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-06-12 17:35:15 +02:00
Lars Knoll f9c9d8aaa6 Make sure you can link against more than one static plugin
The old macro was leading to symbol clashes.

Change-Id: I090c511d4090bc96fc6c88537fae7bbe7f143b6c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
2012-06-12 17:12:52 +02:00
Bradley T. Hughes 46abc9138b Cocoa: re-enable getUrl: and appleEventQuit: AppleEvent handlers
The getUrl: and appleEventQuit: handlers are only called if we register
them with the NSAppleEventManager. The Cocoa documentation says the best
place to do this is in the applicationWillFinishLaunching: delegate
method, so add this method and move the code from
qcocoaeventdispatcher.mm to there. Since QCocoaApplicationDelegate is
only used when AA_MacPluginApplication is not set, we do not need to
check again in the delegate code. Be sure to remove these event handlers
when shutting down the application.

For the getUrl: handler, send file open events when receiving this
event. This restores Qt 4 behavior.

Remove the qDebug() from the appleEventQuit: handler.

Change-Id: Ibcbdd541695176e3d236366d4d541e4811882d6c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-06-12 11:19:29 +02:00
Bradley T. Hughes b0e0671152 Cocoa: Remove unused QApplicationPrivate from QCocoaApplicationDelegate
To avoid a QtWidget dependency, we should use QGuiApplicationPrivate
isntead, but instead of storing, we can use
QGuiAppliationPrivate::instance() instead.

Change-Id: If3f63fee804b7ad32fe8d612bf70c051b70f54c8
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-06-12 11:19:20 +02:00
Chris Meyer 4591f67e91 Fix QTreeView header re-ordering bug on Mac OS.
This is a cherry-pick of 0ba850c7a2dbccb8dd6aa1664679bda6cce95065

When the mouse button is released at the end of a drag, Cocoa
may simulate an extra mouse moved event. However, the state of
the buttons when this event is generated is already 'no button'.
This leads to some failsafe code canceling out of the drag state
and when the actual mouse release event is finally processed, the
header drag state has already been exited and the header drag
fails.

This patch disables the failsafe code on Cocoa and makes header
dragging work when the mouse goes outside the bounds of the header
view.

Task-number: QTBUG-14179
Change-Id: Ia9fd1ac79f9e7b4b90d3e160298c53d65fb171d3
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-06-12 11:16:49 +02:00
Stephen Kelly 32bc019ac1 Fix automatic declaration of QSharedPointer<T> metatypes.
QSharedPointer doesn't work like the other automatic template metatype
declarations because in some cases T* is declared as a metatype, but we
are interested in QSharedPointer<T> (eg QObject*). In other cases, T is
declared as a metatype and we are interested
in QSharedPointer<T> (eg char).

In particular the macro used before this patch was attempting to get the
metatype id of the element_type using for example qMetaTypeId<QObject>()
instead of qMetaTypeId<QObject*>(), which did not work.

Similarly, the variadic macro driven test is no good, because it was
testing QSharedPointer<QObject*> instead of QSharedPointer<QObject>,
so that is removed.

In the end, the only thing we can sensibly automatically declare as
metatypes are QSharedPointers to QObject derived types. That is also
the type that makes the most sense in a QML context anyway.

Change-Id: I13dd40147e2e6bedf38661f898102abaaaa96208
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-06-12 11:16:45 +02:00
Jonathan Liu 9ab445d264 QWizard/Win: Handle hit testing correctly for Vista style
Clicking the area just below the close button when Aero is enabled
reveals duplicate caption buttons. DwmDefWindowProc returns hit results
for DWM caption buttons but DefWindowProc may also return hit results
for non-DWM caption buttons.

To resolve this issue, if DefWindowProc returns a window button hit
result then we just use HTCLIENT (the client area) as the hit result
instead.

Change-Id: Ia741ce4f9aa944109d8de54c2f84009f5ea1883f
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-12 11:00:38 +02:00
Friedemann Kleint 378e65c07a Windows/ICU: Compile fix.
Change-Id: I95c281b0e577a89e4d92dd16fd039ab9e53036f5
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-12 07:11:39 +02:00
Yoann Lopes 68c90dd9b3 Make distance field image width variable.
The distance field generator was always returning a 64x64 pixels image.
It now returns an image with a variable width (width of the represented
glyph) and always a height of 64px.

Change-Id: Id5f11a50a8031ebca10cd4803adf179ccde6db26
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-06-12 07:09:54 +02:00
Thiago Macieira 290655c8a2 Fix compilation of tests/auto/corelib/tools with QT_STRICT_ITERATORS
Most fixes are simple and quite obvious. The ones more involved are
the ones to QArrayData, which had probably not been compiled with
strict iterators thus far.

Change-Id: Ic4ff84c34fd9a04fd686fecaa98149b1c47c9346
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-06-12 04:30:20 +02:00
Stephen Kelly c5665a182d Only quit if there are no visible widgets or windows.
We need to let the QGuiApplication determine whether quitting is appropriate
based on whether there are visible top level QWindows after the last top-level
QWidget was closed.

This solves the issue raised here: http://thread.gmane.org/gmane.comp.lib.qt.user/1880

The transientParent is the QWindow equivalent of parentWidget on QWidget, so the test
in QGuiApplication::shouldQuit is similar to the one in QApplication::shouldQuit.

Change-Id: I500eff8d5887f24415180134b3a4be3c630a896f
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-12 04:30:18 +02:00
Kent Hansen c66dc44968 Change internal QDeclarativeData hooks to use signal index range
This also changes the qtdeclarative-specific QMetaObject::activate()
overload to not take a methodOffset argument, since it's no longer
needed.

Change-Id: I4f7ece9f43339f3327419598c032e48fb37b97f0
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
2012-06-12 04:30:16 +02:00
Lars Knoll 69478da0f0 Don't use the gcc extension for QStringLiteral & Q_ARRAY_LITERAL
The extension doesn't work outside of function scopes, so a
function declaration such as
void foo(const QString &str = QStringLiteral("bar"));
would fail on certain gcc versions.

Change-Id: I2971301f2859edd3fc81b95dfa5a7c15f29e395c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-12 04:30:13 +02:00
Stephen Kelly f9caf48bee Use a QVector<int> instead of a QSet<int> in itemviews/models.
The QSet<int> is a more expensive container to use and create, so
it should be avoided.

This is source incompatible compared to earlier Qt 5 for
QAbstractItemView subclasses which reimplement dataChanged, but this
patch changes nothing compared to already-present SiC compared
to Qt 4.

Change-Id: Id95391dfd62a0a7f487a8765790b007badefb937
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-12 04:30:07 +02:00
Jędrzej Nowacki 3df316e961 Avoid a type name normalization during auto-registration.
Containers are auto-registered and use normalized names.

Change-Id: Id65c3940401f69436929220e1f6a971135e147ed
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-06-12 04:30:05 +02:00
jian liang 778e2b3bf5 Implement WindowTransparentForInput flag in Windows platform.
set WS_EX_LAYERED | WS_EX_TRANSPARENT style if the window has
WindowTransparentForInput flag.

Change-Id: I6b0dcf35abb5fc63c800439e9b81ace1070dcad4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-12 04:30:02 +02:00
Bradley T. Hughes 0fb84aa7a9 Cocoa: do not terminate applications prematurely
Re-enable application termination as it was in Qt 4.
QApplication::exec() must return to main() so that the destructors in
main() are run.

The QApplicationPrivate::canQuit() function from Qt 4's
qapplication_mac.mm is gone, so bring back this function in
QCocoaApplicationDelegate instead.

Change-Id: I1c21894d59061687c36ab49bcb2e4e3ae0752fa4
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-06-12 04:29:56 +02:00
Morten Johan Sorvig 3abf49cdc8 Cocoa: Compile when configured with -no-widgets
Build printing only if Qt is configured with
widget support.

This is mostly useful for testing -no-widgets builds.

Change-Id: I2d47b420e311869e85508db1f7372fe326617dec
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-12 04:29:53 +02:00
Laszlo Agocs f100f84703 Clarify QTouchEvent docs
Mention something about touch handling with QWindow and document the
non-partialness of touch events which has been taken for granted since
4.6, but has not been documented at all.

Change-Id: I9ec75f74153bbc28e146b000d70fb26384e497a3
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-12 04:29:51 +02:00
Girish Ramakrishnan e9df01d3db eglfs refactor: move window creation into qeglfswindow
This potentially allows the creation of multiple QWindows. The platform
context is now in a seperate file and the integration provides a new
instance of the context allowing creation of multiple contexts.

Change-Id: If2b6fa29b573d87c0a4cd0a8eff1f044bd1ff9b8
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-12 04:29:49 +02:00
Thiago Macieira 040f30decd Enable compilation of improved x86 code generation with MSVC
Now that we know the compiler flags for asking MSVC to produce SSE2 code
properly as well as AVX code (technically, just VEX-prefixed SSE2), we
may as well use it.

The SSE2 code generation is enabled by this commit. The AVX one
requires a change to configure to detect the support in the compiler.

Change-Id: Ib6970daaedf450500ee73600e6bf9722eddb9a0c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-12 04:29:47 +02:00
Thiago Macieira 6a51062e99 Move the SSE2/AVX/Neon/etc. flags into the compiler mkspecs
This allows us to have different flags for the compilers for
supporting the same feature. For example, the official flag in GCC to
support AVX2 is -mavx2, but ICC does not support it (yet), requiring
-march=core-avx2 or -xCORE-AVX2. That flag, instead, enables support
for all the features that the "Core-AVX2" processor (codename Haswell)
will support. And clearly, the MSVC flags are different.

Change-Id: I33b6d8617520925e807747180a8dbaafd79b7a9a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-12 04:29:42 +02:00
Casper van Donderen 0d45699602 QDoc: Also allow dependant modules to be specified on CLI.
Change-Id: I25dfbadc788616a864ecbf322434a3ce45bb94e5
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-12 04:29:34 +02:00
Martin Smith 14b0722166 qdoc: Better error messages for QML command errors
Some error messages were not clear for these qdoc commands: \qmlclass,
\qmlmodule, \inqmlmodule, and \qmlproperty. They have been made clearer
now.

Also, qdoc now parses input files in the same order all the time now.
The order is alphabetic now. This might not be the optimal order.

Change-Id: Id53a5ec8105009c71f4bbd41973a54aed7821099
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-06-12 04:29:31 +02:00
James Turner c23e8f932b Fix Mac menu-merging case-sensitivity.
Use case-insensitive string comparisons to deal with any combination of case in the target or menu text correctly. Fixes issues reported by BHughes in TextEdit and Creator.

Change-Id: Ic3b577bf9034659b2de4aa206757b3a5a303a7b8
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-06-11 11:41:08 +02:00
Christoph Schleifenbaum 2a8c423577 Deprecate QMainWindow::unifiedTitleAndToolBarOnMac
Update documentation. Implementation is left for
now.

There is currently no replacement; once we have
that in place we'll update the docs agin to point
to it.

Change-Id: I8b4532702938398dc5b4eef5da2b3f9dfb68382f
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-11 11:22:07 +02:00
Morten Johan Sorvig ee895bdbb1 Remove QtWidgets include.
Change-Id: I39ff73ce0dbfe36634b5331538165e636f62e57c
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-11 11:21:49 +02:00
Morten Johan Sorvig 4e2199617c Cocoa: Remove QtWidgets dependencies.
Make the file/color dialog helpers use QCoreApplication::
translate("QDialogButtonBox", text) instead of
QDialogButtonBox::tr(text)

Change-Id: I7ee4c32f8f8b9cd002836e24b962ef1c0f2e0737
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-11 11:21:37 +02:00
Jeremy Katz 69f0782c09 update QStandardPaths::standardLocations() documentation
Remove the reference to PATH, as it may confuse developers who expect
a separator between locations. The ordering has been made explicit,
including the position of writableLocation() if it can be determined.
Note that some implementations may allow the empty string.

Change-Id: I134db44dd8bea437824a1d0bf8ed373ec655ab04
Reviewed-by: David Faure <faure@kde.org>
2012-06-11 00:37:12 +02:00
Lars Knoll b2c1550564 Use QCollator in QString and remove it from qlocale_icu
Change-Id: Ic94439943999382f8050668edfb67d3b75ac1df4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-10 19:09:04 +02:00
Lars Knoll 1e9be1327b Add proper collation support to Qt
QString::localeAwareCompare() has always been a broken
way to support collation. The current implementation is
not even thread safe.

This adds a proper collation class that fixes the problems
and finally allows Qt to sort properly according to locale
rules.

The class is private for now, but is intendent to be made
public with 5.1

Change-Id: Idb4e75ff68a398c9813af622af884a90898d2be9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-10 19:08:56 +02:00
Lars Knoll 97e177e58d Refactor the ICU code for QLocale
Clean up the ICU code and make it thread-safe. Add a
QIcuData structure to QLocalePrivate, that contains
ICU specific data.

Link against ICU directly, greatly simplifying the
code.

Also fix a bug in the locale specific case conversion
code that would cause it to fail and fall back to the
QString code if the output string was larger than the
input.

Change-Id: Ie67e5ea14fa204ebc5887d7aaeb1a4f3ecaf8697
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-10 19:08:49 +02:00
Konstantin Ritt c631927b76 Regenerate the Unicode tables with UCD 6.1.0
Task-number: QTBUG-1963
Task-number: QTBUG-5472
Task-number: QTBUG-12144
Task-number: QTBUG-18360
Task-number: QTBUG-23654

Change-Id: Ida09ad657c4b012eca654fcb79608b7cdeb5d60d
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-10 15:58:17 +02:00
Konstantin Ritt 12e0319213 Line Breaking Algorithm: handle the Object Replacement Character
See http://www.unicode.org/reports/tr14/#CB
and http://www.unicode.org/reports/tr14/#LB20 for details

Change-Id: Ice0aa2b2ce81f6e39839a353240420436eddd754
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-10 15:58:13 +02:00
Konstantin Ritt c8dd0de1a6 Line Breaking Algorithm: don't break inside numeric expressions
Change-Id: I8362663454e4c6604ecb6289ae8009d47c78aeb1
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-10 15:58:09 +02:00
Konstantin Ritt d64cb5f707 Update the Unicode Text Breaking Algorithm implementation
to make it conformant to the Unicode 6.1 specifications #14 and #29.

The most important changes are:
* The implementation has been reworked from scratch to fix all known bugs;
* Separate-out the grapheme and the line breaking implementation to eliminate
  an overhead due to calculating unnecessary breaks;
* Stop using deprecated SG class in favor of resolving pairs of surrogates;
* A proper support for SMP code points;
* Support for extended grapheme clusters (a drop-in replacement for the legacy
  grapheme clusters as of Unicode 5.1);
* The hardcoded tailoring of UBA has been eliminated which breaks the 7 years-old
  lineBreaking test. Some later, we'll investigate if such a tailoring is still needed.

Change-Id: I9f5867b3cec753b4fc120bc5a7e20f9a73d89370
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-10 15:58:02 +02:00
Konstantin Ritt 60e1892d83 Update the qunicodetables generator to deal with UCD 6.1 files
Change-Id: If22018ff83cfc6b9c984f689648da038fce11d84
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-10 15:57:49 +02:00
Thiago Macieira 2176a4f04f Reorganise the painting.pri file after the last round of cleanups
Change-Id: I35f5356fc59d109074d39c4fafd608540743479a
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-06-10 15:56:46 +02:00
Kai Koehne 0f73d7bb35 Logging: Remove outdated QMessageHandler
Commit d9a1c2dff replaced QMessageHandler with QtMessageHandler. However,
the old signature was still supported for a grace period.

Change-Id: I3141499efdc749460b77de1ceec82f312e904bec
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-10 15:55:49 +02:00
Johannes Zellner 16548ce85e evdevmouse: send correct event position for wheel events
The current position for mouse events is synchronized in the mousemanager,
thus the wheel event needs to pick the event position from there.

Change-Id: I1e73a0154b596885c7092f0a74e6dd448deb428c
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-06-10 09:39:36 +02:00
Thiago Macieira 612fae1ae6 Add support for the x86intrin.h header on GCC systems.
This header can be included at any time on x86 systems and is present
since the GCC versiosn that also support AVX.  It contains intrinsics
for instructions that have been present in x86 CPUs since the dawn of
time.

Change-Id: I9adb066c2c0b56ce8fd5ed7366716038f1254502
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-09 10:45:01 +02:00
Thiago Macieira fbabbe63c5 Use UTF-8 in the QtTest data and benchmark tags
Future-proofing. Since Qt source code is now mandated to be in UTF-8,
it is entirely possible that someone will use non-ASCII in data tags.

Though it would be interesting to see how to access them from the
Windows command-line.

Change-Id: I880fc312432b62143888ff1e1d9abbd54f704601
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-06-09 10:45:01 +02:00
Miikka Heikkinen 5e6b167fea Windows: Fix window positioning for ActiveQt servers
The toplevel window for an embedded ActiveQt server does not have
a parent QWindow, but it does have a parent HWND, so is not a real
toplevel. Enable using a QWindow property to inform windows platfrom
plugin that a window is embedded and handle geometry accordingly.

Task-number: QTBUG-25808
Change-Id: Ie26c53b587c312b1df397b25cb944019c020b8de
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-09 10:45:01 +02:00
Jonathan Liu dfe5987161 QWizard/Win: Drag window on Vista with only left mouse button
The QWizard window should only be draggable using the left mouse button
on Vista.

Change-Id: Ie6ec118cbb48440c5dc6b84c4361119b1bbbd0cf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-09 10:45:01 +02:00
Friedemann Kleint 1fb176eaf4 QWidget::destroy(): Release mouse and keyboard grab.
This used to happen in the platform widget code.

Task-number: QTBUG-26079

Change-Id: Id6de7473c2fa4381a39114d5122e06e3bde159fa
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-09 10:45:01 +02:00
Joerg Bornemann e03d1ae953 implement Qt::TranslucentBackground for Windows
Adapted the Qt 4.8 implementation of translucent widgets in
the Windows platform plugin. This is only working for non-OpenGL
top level Windows.

Change-Id: Ic4c1c52d33b380f530f6a07e96c0c154a0571415
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-09 08:34:56 +02:00
John Layt 14f45e535b QtPrintSupport - Add CUPS printer and options queries to plugin
Implement initial support in the CUPS plugin for directly calling CUPS
to obtain printer list and basic printer info rather than QCupsSupport.

Add api to the plugin to return any options for a printer, usually IPP
options as implemented for CUPS, but whatever applies for the host
print system.

Future changes will add support for returning the PPD options.  This
api may eventually be added to QPrinterInfo, but not in 5.0.

Change-Id: I6c8bae4c9295009599e6ab31382f5fff4c93981f
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2012-06-09 01:46:36 +02:00
Konstantin Ritt 80ceba9a36 QZip: improve reading of zip files, fix some edge cases in writing
This supercede https://codereview.qt-project.org/#change,25111 and fixes
some more cases;
The autotest crash is fixed as well (but the test itself omitted due to
.pro file misconfiguration)

Change-Id: I4a3adde18b4f9a8ac9822f700eee71d2a12b9c2c
Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
2012-06-08 21:49:58 +02:00
Lars Knoll 09992c654d Remove QFactoryInterface from style plugins
Change-Id: I5c41f1c8b91b5e1117b9163c137de4bf5f51099c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 21:34:45 +02:00
John Layt 20c7fa62ca QtPrintSupport: Move printer list into plugin base class
Move the cached printer list from the Windows plugin into the base
class so the CUPS plugin can also use it in a subsequent commit.

Change-Id: Idf5fb7fc49b1820aad58f16e8854ab9120caa193
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2012-06-08 18:44:55 +02:00
Miikka Heikkinen f2df9cef75 Fix crash in qt_qpa_core_dispatcher() at application exit.
In some situations it is possible to get events when QCoreApplication
has already cleared the 'self' pointer and will thus not return an
instance. For example, destroying screen at application exit when
there are parentless dialogs open will result in hiding the dialog,
which at least in Windows causes a call to
QWindowSystemInterface::handleExposeEvent() which will need the core
dispatcher down the line.

Fixed the crash by checking if the QCoreApplication instance is valid
instead of blindly using it. This should cause no problem as unhandled
events are simply queued.

Task-number: QTBUG-26061
Change-Id: Ide2350a62208433728e0271192c1da4b1efacc9b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-08 18:39:02 +02:00
Girish Ramakrishnan a15aa822b7 Remove unused variable inSetParent
Change-Id: Ie65514209f14d8f8b2396c1d6e37cd8c3e4c0c1a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-08 18:35:40 +02:00
Stephen Kelly 14cd267839 Use variadic macros where available to make QSKIP source compatible.
Otherwise this is a large source incompatbility during porting, so
it makes sense to provide the option of using C++11 for that.

Change-Id: I9792b3ae2c1fa3743bc9a2e74380134ea2f24add
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 18:10:18 +02:00
Markku Heikkila 9e75354aab Fix crash in QTreeWidgetItem::sortChildren when adding new item.
This is a cherry-pick of 4f388c383e39b598d997e21bd9a4f16d89bd0625
from February

Recursive call is caused if user code calls QtreeWidgetItem()::sortChildren and
sorting is enbled in QTreeWidget.

First call is from user code and second is caused by timer.
When timer expires second call is made.

This recursion is prevented with QTreeModel::SkipSorting skipSorting()
in QTreeWidgetItem::sortChildren();

Task-number: QTBUG-20345
Change-Id: Ibf73e69274423f31397a9e391bfba7d5c4103a3c
Reviewed-by: Markku Tapio Heikkilä <markku.heikkila@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-06-08 18:09:07 +02:00
Casper van Donderen 7525e85798 QDoc: Only print modulename::type on collision pages.
Change-Id: I090698b106456370f6c0982006243304f87dc70c
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-08 13:38:56 +02:00
John Layt 271b484b00 QtPrintSupport: Move plugin access of QPrinterInfo internals to base
Move all plugin methods requiring access to QPrinterInfo internals
into the plugin base class, and remove the plugin classes as friends
from QPrinterInfo.

Change-Id: Ic527efc681e198abf19e038dd77c36bb8017d049
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2012-06-08 13:33:50 +02:00
Morten Johan Sorvig 2922f85e70 Reduce QtWidgets dependencies in the Cocoa plugin.
b8246f08 added the new menus implementation which
removes one of the major QtWidget dependencies.

Continuing on the path to QtWidget-freedom this
commit removes the following:
- qmenu_mac.h/mm. Not used.
- FORMS += filedialog.ui. Not used.
- qt_strippedText from qaction.cpp. Duplicate.
- Misc stray includes.

What is left should be the dependencies needed by
the print engine implementation. These will be
handled at a later time.

Change-Id: I0cead4cdaddcebd402d30c6112f3e889d0f28740
Conflicts:
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-08 13:00:03 +02:00
Friedemann Kleint 94a81928ac Fix a crash when calling effectiveWinId() on parentless widgets.
Remove the assert as it also triggers when the widget is one
that currently has no parent (setParent(0)).
Check that the WinId is != 0 in the cursor code.

Change-Id: I711fc600f1d803c8f01c15df87984e742a4c23d2
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-08 08:02:13 +02:00
Frederik Gladhorn 21e0d16411 Remove widgets lib dependency on platformsupport.
Instead of the dependency add the one needed function as virtual to
the QPlatformServices in QtGui.

Change-Id: Ia4455f5ac88ec4d0480bd81635cebba62bbd8ac5
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-08 04:47:59 +02:00
Mitch Curtis 168c583a78 Allow ISODate string without seconds in QTime::fromString().
According to ISO 8601 (section 4.2.2.3), seconds can be omitted
from a string representing time.

Task-number: QTBUG-2813
Change-Id: I2578f290845e46a8f49be489f1d7427984ae7f08
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:55:27 +02:00
aavit 1f461ac45b Namespace the bundled zlib symbols, to avoid clash with user zlib
When Qt is being compiled and is using the bundled zlib, QtCore needs
to export the zlib symbols, since zlib is needed in other Qt
libraries as well. That gives a danger of a potentially disastrous
symbol clash if the user later on links with both Qt and an external
zlib (ref. e.g. QTBUG-15071).

This commit enables a zlib compilation flag that causes all zlib
symbols to be redefined with a prefix. Hence, they will not clash
with a standard zlib.

A minor drawback is that zlib.h will now have #defines for a few
semi-normal identifiers. Hence, a couple of more changes are done:
In the private qzip code, the identifer crc32 had to be renamed.
QHttpNetworkReplyPrivate needed no change, but as a defensive measure
the #include <zlib.h> is moved from the _p.h file to the .cpp file,
to avoid surprising compilation errors later in code that include
that header.

This commit does not in itself solve the issue of how to let Qt
libraries outside of qtbase use the same bundled zlib, but it is
a prerequisite for that.

Change-Id: If84105901a8c90d35009faffe660c85a6bd2fee5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:53:10 +02:00
Lars Knoll 02191b6e4b Remove dependency from QFactoryInterface for the print plugin
Change-Id: Ia35890b72e7797ef655bf97b4a34af2908657c0e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:12:20 +02:00
Lars Knoll 7715a2d0a5 Remove QFactoryInterface from the input plugins
Change-Id: Ia4a9dc5b4ef276dca39681848e531b4c9e4f64e2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:12:16 +02:00
Lars Knoll cf9264bb6b Remove QFactoryInterface from bearer plugins
Change-Id: I8d6736e56f34f49041fff409d040634475eb0bf5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:12:13 +02:00
Lars Knoll 0b69385e42 Remove the QFactoryInterface dependency from platform plugins
Change-Id: I4010e59dcd8a790e06bb9a0ccf3cc9a5c7737ed1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:12:09 +02:00
Lars Knoll d173da37ee Remove QFactoryInterface from the generic plugins
Change-Id: I5a4351ca4b6605f9628496701bb8c6063cf36c78
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:12:09 +02:00
Lars Knoll 1402660575 Remove QFactoryInterface from picture plugins
Change-Id: I7b02cbfb850d6a9fc90c1eb1e12a9950baf61e77
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:12:05 +02:00
Lars Knoll dcf3c95175 Remove QFactoryInterface dependency from icon plugins
Change-Id: I65bed1646f3c5e89329a6bbe3dcdbdb5660b7004
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:12:05 +02:00
Lars Knoll 2903db8b4c Remove the QFactoryInterface dependency from accessible plugins
QFactoryInterface is not needed anymore and will get removed soon.

Change-Id: Ib2806200b1a7f4a45d62e2b556380946ef68f585
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-06-08 00:12:03 +02:00
Lars Knoll c9d040c1f5 Don't inherit from QFactoryInterface for image plugins
QFactoryInterface is obsolete now that we have the new plugins loading
mechanism, where we can get the keys out of the plugin without
having to load it. Remove it from QImageIOHandlerFactoryInterface
as a first step of getting completely rid of it.

Change-Id: I856b149dd20131e1cdcdcb271c1a355c9e0da6ab
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:12:00 +02:00
John Layt b9fc8bc10f SIC: QPrintSupport - Remove options api from QPageSetupDialog
QPageSetupDialog has an enum PageSetupDialogOption, however one option
had support removed in Qt 4.5 and the remaining 2 are actually for an
internal implementation detail that could lead to memory leaks if
changed by an app.

This change removes the enum and the api as they is now useless.

Change-Id: I9a3ab689dcab57151de894db5ebf22f6ad90d71e
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2012-06-07 21:18:36 +02:00
Konstantin Ritt 88e735c9c9 Shift positions for lineBreakType
to keep them consistent with positions for all other flags.
This changes the internal behavior so that attributes[0].lineBreakType now means
"break opportunity at start of the text (before the first character in the string)"
and is always assigned with HB_NoBreak to conform rule LB2
(see http://www.unicode.org/reports/tr14/#LB2).

The current implementation is based on the sample implementation from tr14
that aimed to be as simple as possible rather than to be optimal.
From now, we can use pieces of the attributes array "as is"
without having to adjust some positions. Or we can analize some long text
by chunks (e.g. paragraph by paragraph) and consume less memory.

This introduces a minor overhead that will be eliminated shortly.

Change-Id: Ic873a05a9d5203b1c3d5aff2e4445a3f034c4bd2
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-07 21:18:36 +02:00
Konstantin Ritt 8aac04f705 QTextBoundaryFinder: Consider soft hyphen as line breaking opportunity
SoftHyphen enum value was added to specify such a boundary reason

Change-Id: I4248909eed6ab8cbca419de4dcf9fe917620a158
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-07 21:18:36 +02:00
Konstantin Ritt 824180a122 Set the whiteSpace flag outside the grapheme and the line breaking loop
The white spaces determination doesn't belong to the text breaking algorithm.
A proper breaking implementation shouldn't assume spaces are
break opportunities (actually, space is allowed to be a grapheme base);
However, the whiteSpace flag should never be checked alone while iterating
over the text to find the space sequence; the grapheme boundaries should always
be taken into account. This covers the SMP code points in UTF-16 text and
graphemes that consist of a space followed with one or more grapheme extenders.

This introduces a minor overhead that would be eliminated some later.

Change-Id: Ic2cc7f485631fd0b436fc256ce112ded5f94fc07
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-07 21:18:36 +02:00
Lars Knoll 9d3e77f18e Remove QFactoryInterface from sql drivers
Change-Id: Ib31e6c4ce5264fc1e4281c8846df5630a6479a7c
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-07 21:18:36 +02:00
Stephen Kelly ee7fa67eb0 Deprecate the use of QWeakPointer to track QObjects.
The main problem with using QWeakPointer to track QObjects is that it
has API to convert to QSharedPointer, which is undefined behavior. There
is no need to overload the meaning of QWeakPointer with QObject
tracking.

QPointer is more suitable and should be used instead. Because QPointer
is implemented in terms of QWeakPointer, we need to add some overloads
which are not deprecated.

Change-Id: If0333e4800c9fd277629cc69185c9ca3e4e7e81d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-07 19:08:51 +02:00
Stephen Kelly 77a03ebd8d Expand the 'existing target guard' in generated CMake files.
This way the target will be created and have its properties
populated only one time.

I tried wrapping the whole file in an 'include guard', but that
broke the unit test in tests/auto/cmake/pass1 (and
the qt5_use_module function), because the function causes the
variables in the Config file to not exist outside of the
scope (eg for include directories), and yet, Qt5${Module}_FOUND is
still true even when the find_package was previously called in a
function, so it is not found and processed again.

The change in Qt5CoreConfigExtras.cmake does not need to be guarded
as it is only ever included from Qt5CoreConfig.

Change-Id: Iaa016563db5eb61294360ac9e003c9c923393d8c
Reviewed-by: Brad King <brad.king@kitware.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-06-07 19:08:34 +02:00
Samuel Rødal 1f9ae50457 Added SpellCheckUnderlineStyle theme hint.
Task-number: QTBUG-25115
Change-Id: I70abbed426ad8bebca51823ed5ce16f2f300b5cc
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-07 17:41:37 +02:00
Friedemann Kleint d728bfe793 Windows: Store only full-size DC's obtained by BeginPaint.
Avoid painting bugs in case the DC covers only a part of the
window and QBackingStore does a full flush.

Task-number: QTBUG-26039

Change-Id: Ic918d9898ac824690273ac59bcb1e7e546cc698a
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-07 17:13:38 +02:00
Konstantin Ritt 22e6477185 get rid of "uninitialized member" gcc warning
Change-Id: I486212829ec9309239645222e7f03f36ae4847f0
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-07 00:38:12 +02:00
Laszlo Papp 01d48e07d8 Mark the testSslOption method as introduced in Qt 4.8
Change-Id: Ibe7cb1ca9cdcedd3f09dd4f865907e3f0fa6aef3
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-06-07 00:38:04 +02:00
Sean Harmer 6aa09123df QNX: Take nativeOrientation into account for QNX device orientations
Change-Id: Idfe4a5bd9c9638a1f9ae52a7b1def3f869286587
Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-06-06 20:17:11 +02:00
Martin Petersson c5b742a5f6 QtNetwork: disconnect other channels when network layer detected
With Happy Eyeballs we will connect one IPv4 and one IPv6 channel and
pick the network layer depending on which connects first. When the
first channel is connected we can close the other one.

Before this we let the other connection finish connecting and then
closed it. This will close the other one as soon as the first one
is connected.

Change-Id: Ib2ab3f949704fd39dc0584bd31b9bcaf75ce35f7
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-06-06 15:29:34 +02:00
Nicolas Arnaud-Cormos b002c7a8c0 Add Blackberry path for SSL certificates
Change-Id: Ic01e4bddaa6f1fd94f16952e0818f4369c2ec8ab
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-06-06 15:29:34 +02:00
Kent Hansen 3c4cfff783 Use the correct ifdef (QT_WIDGETS_LIB) in qsqlrelationaldelegate.h
Change-Id: I4cdb1eef7dab55c7d295463fe8ad29b5480b0788
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-06 15:29:34 +02:00
Mike FABIAN cc94a1c845 Rename QSystemLocale::fallbackLocale() to QSystemLocale::fallbackUiLocale()
Suggested by Oswald Buddenhagen. This function is about the (main)
UI language, not about other locale features like number formatting etc.
It not in the public API anymore in Qt 5.0 so it can be renamed.

Change-Id: I2a23892c67e5813de4c0e57330749568777e9ee6
Reviewed-by: Oswald Buddenhagen
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-06 15:29:34 +02:00
Mike FABIAN 897e19f95e Check LANGUAGE as well in QSystemLocale::fallbackLocale
Because QSystemLocale::fallbackLocale() is about UI languages,
it makes sense to check LANGUAGE as well if appropriate.
Adapt tst_qlocale.cpp accordingly.

Suggested by Oswald Buddenhagen.

Change-Id: Ib2c9674081809e3251be4e34456b05210eebc010
Reviewed-by: Oswald Buddenhagen
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-06 15:29:34 +02:00
Mike FABIAN 7dfee3ffc5 Use LC_MESSAGES instead of LC_NUMERIC in QSystemLocale::fallbackLocale()
commit b9790a04ee
(https://codereview.qt-project.org/24304) introduced the problem that
the country gets initialized from LC_NUMERIC and the language from
LC_MESSAGES. For example, if LC_NUMERIC=ru_RU and LC_MESSAGE=fr_FR,
then QLocale::system().name() returns "fr_RU". It is not nice to mix
the values of two LC_ variables there. Therefore, revert this change
and use LC_MESSAGES instead of LC_NUMERIC in
QSystemLocale::fallbackLocale(). This was also suggested in the
changelog of b9790a04 and it looks like a better way to fix the
problem.

Change-Id: I8fa6fec2b33e9f1f5a31c4b288503a658dad6d30
Reviewed-by: Denis Dzyubenko
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-06 15:29:34 +02:00
Samuel Rødal 66a0b8446d Fixed compile error in eglfs plugin due to narrowing conversion.
qeglfscursor.cpp:300: error: narrowing conversion of
‘((const QRectF*)r)->QRectF::left()’ from ‘qreal’ to ‘const GLfloat’
inside { }

Change-Id: Ic4273828ad361ffac5a68068372bf400d468fb38
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-06 15:29:34 +02:00
Laszlo Agocs 0cf0a2ae7c Test if the device is grabbed in some of the evdev plugins
Even though they target embedded devices, the touch and tablet plugins
are very often used on desktop, under X, for development and
experimenting. However the X.org drivers like to grab the input
devices, resulting in getting no events when reading
directly. Inspired by evtest, we show a warning from now on in this
case so the user has a clue what's going on.

Change-Id: I19474f1fcc5163f2601e7000aaee0cce54f99367
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-06 15:29:34 +02:00
Kent Hansen 302e6968f1 statemachine: Make delayed event posting work from secondary thread
postDelayedEvent() and cancelDelayedEvent() are marked as thread-safe
in the documentation. Unfortunately, they didn't actually work when
called from another thread; they just produced some warnings:

QObject::startTimer: timers cannot be started from another thread
QObject::killTimer: timers cannot be stopped from another thread

As the warnings indicate, the issue was that postDelayedEvent()
(cancelDelayedEvent()) unconditionally called QObject::startTimer()
(stopTimer()), i.e. without considering which thread the function
was called from.

If the function is called from a different thread, the actual
starting/stopping of the associated timer is now done from the
correct thread, by asynchronously calling a private slot on the
state machine.

This also means that the raw timer id can no longer be used as the
id of the delayed event, since a valid event id must be returned
before the timer has started. The state machine now manages those
ids itself (using a QFreeList, just like startTimer() and
killTimer() do), and also keeps a mapping from timer id to event
id once the timer has been started. This is inherently more complex
than before, but at least the API should work as advertised/intended
now.

Task-number: QTBUG-17975
Change-Id: I3a866d01dca23174c8841112af50b87141df0943
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-06-06 13:27:32 +02:00
Mark Brand fc15a1d5e2 QSqlResult: replace virtual hooks with virtual functions
Instead of virtual functions which would have broken binary
compatibility, virtual_hook() was used to implement the virtual
functionality. Now, since the step to Qt 5.0 allows breaking
binary compatibility, we take the opporunity to simplify the code
using real virtual functions.

SetNumericalPrecision --> setNumericalPrecisionPolicy()
NextResult --> nextResult()
DetachFromResultSet --> detachFromResultSet()
BatchOperation --> execBatch()

Task-number: QTBUG-25252
Change-Id: Idd3a870f876d8b8a7457559d5f31ec2073786a75
Reviewed-by: Bill King <bill.king@nokia.com>
Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
2012-06-06 13:23:51 +02:00
Bradley T. Hughes e8cd9a617d Cocoa: do not send multiple window activation events
When switching the active window within the same application, Cocoa
sends us an NSWindowDidResignKeyNotification for the old activated
window, then an NSWindowDidBecomeKeyNotificationfor the newly activated
window. Our handling of this would first set Qt's active window to zero,
then immediately reset it afterwards. Avoid this by checking the key
window when handling the deactivation event, and don't set the active
window to zero if a new window has become active.

Task-number: QTBUG-24322
Change-Id: I8719fc501049eeaaebb75e9ea03261b2209458b6
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-06-06 12:07:48 +02:00
Samuel Rødal 80653bf4ce Added QScreen::setOrientationUpdateMask().
It might be too expensive to always have an accelerometer sensor
running, so introduce API so that the application has to explictly ask
to get the orientation updates it's interested in.

Change-Id: Ib7dc5ad8807718409f744ebef53f4476aa05175d
Reviewed-by: Ian Monroe <ian.monroe@nokia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com>
2012-06-06 07:41:17 +02:00
Morten Sorvig 09001e72dc Cocoa: Fix QCocoaBackingStore::flush on 10.8
The call to displayRect works on 10.7 but does not
update the pixels on screen on 10.8. Many Qt windows
do not update properly.

This is a workaround found by trail and error
without fully understanding the underlying issue.
I would like to have this in place until we can
determine the cause of the bug.

Change-Id: I1ecee745f42a93ded4f651cc8ad51963f250e78d
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-06-06 07:41:14 +02:00
Kent Hansen 4951d16110 Fix compilation when configured with -no-widgets
printsupport plugins need QtPrintSupport (which needs QtWidgets).

Change-Id: I8cc9cc15abd19c95b8d4bac26dfd17d027bbfa96
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-06 02:03:23 +02:00
Balazs Kelemen 26d0606bad Export QPlatformIntegrationFactory to make it usable outside of QtGui.
QPlatformIntegrationFactory can be used to load a platform plugin dynamically.
It can be useful for an external platform plugin that want to define some
behaviour on it's own and use the default plugin for the rest. We are going
to implement such a plugin in WebKit for the test infrastructure to tweak
the platform backends in order to provide more platform independent layout
test results.

Change-Id: Iaaabe1cbc173a03132d83474faa7858aead4cae0
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-06 02:03:20 +02:00
Denis Dzyubenko 944221001c Fixed QJsonObject::find()
The function returns mutable iterator on the object that can later be passed to
e.g. erase(), hence it should detach() to be consistent with
QJsonObject::begin() which also detaches.

Change-Id: Id79e8e012fd5469e06b68fbc9eecb7c6848ce9c1
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
2012-06-06 02:03:11 +02:00
Konstantin Ritt 9b0aa9dc4c normalize the process arguments to Normalization Form D on mac
QFile::encodeName() does this for us + simplifies the code a bit

Change-Id: Id2ca2615e20408229dd021c26587fefd60365352
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-06 02:03:08 +02:00
Pasi Matilainen b24bf21fcb Do not set an action on native submenu items on Mac
On Mac, clicking on a submenu entry triggers QMenu::triggered(QAction*)
signal, which is unexpected, and also closes the submenu, which does
not match platform behavior. This happens because native submenu items
have an action set, so fix it by not setting the action.

Task-number: QTBUG-16738
Task-number: QTBUG-10706
Change-Id: I6819999e5af35e6acab1aec035d5d85445189f11
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-06-06 02:03:05 +02:00
Lars Knoll 7443895857 Remove support for Qt 4 style plugins
The new plugin format allows us to avoid loading the plugins in
all cases. Remove the old format, as we could get bad behavior
with the old format if Qt would try to dlopen a Qt 4.x plugin.

Change-Id: I2193e6874d6cca3c0b12298c2b9beb4105a42fd5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-06 02:02:49 +02:00
Lars Knoll 9ca509676f Update of the plugin documentation
Moved the plugin overview from qtdoc to qtbase. Updated
the docs to describe the new plugin mechanism.

Change-Id: I1b92d5099aeaa3a166c1f7698176d811d47c3392
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-06 02:02:46 +02:00
Thiago Macieira 044e2b3262 Remove references to QtSharedPointer::InternalRefCount
This class does not exist, is not needed and has never been published
in a released version of Qt.

It existed during the development of QSharedPointer, when internal
reference counting (also known as intrusive counting) was a goal. That
goal was abandoned when use with forward-declared classes was
preferred.

Change-Id: If3a5a29c07fc71e2001d6ba64b90ddd241ab8ae3
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-06 02:02:43 +02:00
Girish Ramakrishnan b5e041d48d eglfs refactor: Query screen and format info from hooks
This allows boards to customize what they really work best for
without having to set environment variables.

Change-Id: Ib40c3a870ade568f66e37e621a8abc6b17e39411
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-05 18:48:40 +02:00
Girish Ramakrishnan f35470a442 eglfs refactor: Move egl initialization to the integration
Change-Id: If2c870538c742fd034fb9e5c115e4ac0bd8e2e03
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-05 18:48:16 +02:00
Holger Hans Peter Freyther e1774d2029 Verify the surfaceType before activating the GL context
Verify that the surfaceType() of the QPlatformContext is of type
OpenGLSurface before making the context active. Make it possible
to get the QSurface from a QPlatformSurface, make QPlatformWindow
use that to access the QWindow. Remove the setSurfaceType call from
the eglfs plugin as this hiding a problem.

Change-Id: I08906da052e066bb1f1f042030643c6389ab17d7
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-05 18:48:00 +02:00
Stephen Kelly 7d28f7772c Use QPointer instead of QWeakPointer.
The use of QWeakPointer for tracking QObject pointers is to be
deprecated.

Change-Id: If460ca7f515db77af24030152f4bd56e1a5fae7c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-05 18:42:26 +02:00
Kent Hansen 8a5a986828 Avoid string-based lookup of signals
Resolving signals by member function is preferable.

Change-Id: I2a47a27bc780c4c3c29cf472f9f063c910e20c18
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-05 16:01:29 +02:00
Kevin Ottens 0915d073f1 QNX: Implement QQnxScreen::nativeOrientation()
Provide a proper version of nativeOrientation(). We use the screen
physical size as reported by the device to determine its native
orientation.

Change-Id: I45b593b0d62436529f89050e98e10b8c9463b6b9
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-06-05 16:01:29 +02:00
Kevin Ottens 99b3a15dcf Introduce nativeOrientation() to QPlatformScreen
Now QPlatformScreen has a nativeOrientation() method which default
implementation return Qt::PrimaryOrientation. Its purpose is to return
the native orientation of the device (e.g. when the device logo is right
up).

Only the QPA backend can know for sure what this native orientation is,
so allow QPA backends to override it with a finer result.

Change-Id: I3bef14acb6b8568e64398ff919d9cb4461a2c9cc
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-05 16:01:29 +02:00
Casper van Donderen 21ebd2e4eb QDoc: Look for template and include() under installdir.
The installdir will now also be used to search for include() qdocconf
variables and the stylesheet.

Change-Id: I388392114fd5a8d57bab0b71699b30e4a6ddd46e
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-05 16:01:29 +02:00
Lars Knoll 143daa6ac2 Correctly locate files with relative paths
QUrl("relativefilename").toLocalFile() changed behavior
and now returns an empty string if the scheme is not set.
Setting the scheme to "file:" in setSource would however
break some other assumptions in the code about relative
url's.

Task-number: QTBUG-22416
Change-Id: I1b3fcbef81f6e356935ec426903989e783ce9a78
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-05 13:40:00 +02:00
Jiang Jiang fb631d10d0 Fix Mac support for glyph scaling
Change-Id: I9ac9da86c38e9313c6219b8049e46b6b58fa6731
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-06-05 13:37:43 +02:00
Mitch Curtis 05d980664f Make QIODevice::seek() return false for sequential files.
Task-number: QTBUG-18173
Change-Id: Ie3a96d3a6f60995b8ba7823153778869d0c2dc58
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-06-05 13:12:58 +02:00
Bradley T. Hughes a6d6719c26 directfb: Compile with C++11 support enabled
qdirectfbblitter.cpp:146: error: narrowing conversion of 'srcRect.x()'
from 'qreal' to 'int' inside { }
qdirectfbblitter.cpp:152: error: narrowing conversion of 'rect.x()' from
'qreal' to 'int' inside { }

The same error exists for calls to y(), width(), and height() at both
locations.

Change-Id: I14f165a6a1cab9502e157e798157b835faf2300f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-05 12:30:02 +02:00
Casper van Donderen 67fc1b893d QDoc: search for example projectPath for manifest.
Previously qdoc would automatically use the first .pro/.qmlproject file
found, now it explicitly searches for a .pro/.qmlproject file with the
name of the example.

Change-Id: I2552e529bd3d1b724d3b4286d98d664edbbabcf2
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-05 09:25:07 +02:00
Laszlo Agocs a3768cb3bd Add StartDragVelocity to style hints
This will be used by Flickable in combination with the drag distance
to improve the drag start detection logic.

Change-Id: Ica30042ef3d15041d857b07fa4173dde3d3f900f
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-05 09:02:55 +02:00
Lars Knoll b7be632d5e Expose the plugins meta data in the plugin loader
add a metaData() method to QPluginLoader so that
applications can query the plugins meta data without
having to load the plugin.

Change-Id: Ic3ebb35fd3c403926326e8dd1de4176b0c48dbef
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-05 08:58:00 +02:00
Laszlo Agocs 87e50e079e Make touch operating better on some touchpads
Some MT protocol capable touchpads do not provide
ABS_MT_TOUCH_MAJOR. The calculation for touch area was meaningless in
this case and resulted in a very small area not playing nice with apps
like fingerpaint.

Change-Id: Ibe472e22e5e792059fd594f54be9be8b75287730
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-05 06:15:15 +02:00
Mitch Curtis f3f648f920 Fix QTemporaryFile::open() failing after remove().
If a QTemporaryFile is constructed using a template file path,
the path is generated in QTemporaryFileEngine::open() and then
filePathIsTemplate is set to false. If remove() and then open()
are called on the same QTemporaryFile, the path is not regenerated.
This change ensures that if the file path was generated, it will be
generated again in the scenario above.

Task-number: QTBUG-2557
Change-Id: I718ceb89daa9a9d46fdbe811fecc3d57d6dc08c2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-05 06:15:06 +02:00
Mitch Curtis 872f0b94ac Make QString("inf").toFloat() return inf instead of zero.
Currently, QString::toFloat() returns 0 (and sets ok to false) if you
try to convert "inf". This is because inf is greater than QT_MAX_FLOAT
and there is currently no check to handle inf.

Task-number: QTBUG-8629
Change-Id: I498daf4a7a6f880f928461fca628fcaf7d1d6d08
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-06-05 06:14:57 +02:00
Jędrzej Nowacki 879539fb99 Rename QVector::realloc and QVector::free.
These names were confusing and conflicting with standard C memory
management functions.

Change-Id: I6efe20665d2ec7ad3e00f3a806cc1843a57374d4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-05 06:14:32 +02:00
Christian Kandeler 046c31988e QProcess: Add accessors for program and arguments.
Task-number: QTBUG-24550

Change-Id: I1ce26e584e39b0b58b1c9f78d8027b2479f2d92c
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-05 06:14:28 +02:00
Casper van Donderen 0dfbb2f553 QDoc: Use the correct DITAiXML for table col/rowspan.
Change-Id: Id5443b4428a5f0b6b9fee92efcf2fd1ae19c0d19
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-05 06:14:22 +02:00
Thiago Macieira 006edbd0d9 The QFontEngineFT files are not built into QtGui anymore.
These files are only built into QtPlatformSupport, so the Q_GUI_EXPORT
macro is now wrong. Remove it.

Additionally, since these files are built into QtPlatformSupport, the
windows platform plugin does not need to build them again.

To-Do: move the files to src/platformsupport/fontdatabases

Change-Id: I9d69b97ca25ee52ab627cfa633f43b277acc5e05
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-06-05 06:14:19 +02:00
Bradley T. Hughes 9b07fd0d5c Add QDeferredDeleteEvent
Use this to store the loop-level counter needed by QCoreApplication
when determining when it is safe to delete an object.

This removes the hack to hijack the QEvent::d pointer (even though
the pointer is unused).

Change-Id: I91c0b1aa00235ec6e13feb30bf928e56d2f80026
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-05 06:14:16 +02:00
Mitch Curtis d8e457323c Allow 24:00:00 for ISO dates in QDateTime::fromString().
ISO 8601 section 4.2.3 states that "The end of one calendar day [24:00]
coincides with [00:00] at the start of the next calendar day", so
fromString() was updated to account for this.

Task-number: QTBUG-25387
Change-Id: I391db0da755dbc822ba0820c302a2c10391e1f3b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-05 06:12:37 +02:00
Laszlo Agocs bc3cfebc66 evdevtablet plugin
Change-Id: Ie8fbaac929180e6d4c626253c4c20d1b3a9083f5
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-04 22:29:10 +02:00
Debao Zhang 13714cdd64 Fix parent-children relationship of QWidgetWindows
For a native child widget,
widget->nativeParentWidget()->windowHandle()
should always equal to
widget->windowHandle()->parent()

Change-Id: I2560689d32b0cb2834ed33f96c1c70ef3c14342d
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-04 22:28:48 +02:00
Kent Hansen f7c2ba9bbe Enter initial state before QStateMachine::started() is emitted
The documentation says that started() "is emitted when the state
machine has entered its initial state", but the implementation
didn't adhere to that.

The consequence is that if you e.g. emitted a signal from a slot
connected to started(), and that signal was used by a transition
from the initial state, the signal would effectively get ignored and
the state machine would remain in the initial state.

Task-number: QTBUG-24307
Change-Id: Ibbeb627d517eaff821d88e256a949eacf6aae350
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-06-04 16:53:42 +02:00
Kent Hansen 2682165708 Fix typos in QState sorting functions
A QObject can't be a child of itself, so the comparison always
returned false. In practice, this was causing the entry/exit order
of parallel states to be random.

QObject::children() is documented to contain the children in the
order in which they were added, so this fix actually achieves
deterministic behavior.

Task-number: QTBUG-25959
Change-Id: Id3f12d6bfbc249f1d4fed0bafb7d0217093e458e
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-06-04 16:50:24 +02:00
Andreas Holzammer 939aa51138 Fix endian detection for wince
As the qsystemdetection.h is not included
so Q_OS_WINCE is not defined here, so use
the define from the mkspec.

Change-Id: Ic170725d0da89f0c0e675c62bd2aa5c58803de9f
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-04 16:43:21 +02:00
Casper van Donderen e0bdcf1fc4 QDoc: check if !isNull() before casting prev/next nodes.
Change-Id: Ifac095ef0af0b483fbf53c6a18cf3c3130d37710
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-04 10:06:17 +02:00
Laszlo Agocs b6535f65e1 Fix touchpads with evdevmouse
evdevmouse only worked properly with real mice, the ABS event handling
was somewhat broken, it wasn't possible to properly move a mouse cursor
with a touchpad due to unwanted jumps. The button handling is also
corrected.

Change-Id: Id04ef65d867a75bcfc54240d192a78224a4481d6
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-06-04 09:26:09 +02:00
Laszlo Agocs d0b4c7b159 Report mouse events when the driver says so
Generate mouse events in SYN only, when all available data has
been reported.

Change-Id: I74a9e9dd603ee0747b00115fac0405b1c600bdeb
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-06-04 09:25:39 +02:00
Debao Zhang 3892ccaca7 QWidgetWindow: Fix handleExposeEvent()
When the associated widget of QWidgetWindow is visible but its
updates are not enabled, avoid marking the widget dirty.

Task-number: QTBUG-25991
Change-Id: Ibeac4c0dfd3198a5174372331e50628b0d3a480d
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-06-04 09:08:21 +02:00
Kent Hansen ff50519768 Change testlib signal dumper hooks to use signal index range
Another step towards getting rid of the class method offset
computation in QMetaObject::activate().

Since QMetaObjectPrivate::signal() is private API, this also
required adding a testlib dependency on core-private (and
getting rid of the duplicated QSignalSpyCallbackSet struct).

Change-Id: I0d830f35392a6b44fc321c5285877ec0bf437100
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-04 01:18:52 +02:00
Debao Zhang 0916394126 QtWidgets: Make QWidgetWindow disappear when its associate QWidget hides
Task-number: QTBUG-25980
Change-Id: I572eb9dd175121b1f1b6070e1849247000b48961
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-04 01:18:18 +02:00
Kent Hansen 6d996dd74d Change QConnectionSenderSwitcher et al to use signal index range
First step towards getting rid of the signal_absolute_index variable
from QMetaObject::activate() (which requires computation of the
class's method offset).

This also required changing the implementation of the public function
senderSignalIndex() so it still returns an index in the full method
range.

Change-Id: I58571eb3c8099ea5b673682872c53875f5ea8c13
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-03 11:04:50 +02:00
Kent Hansen 0d86ca432a Use QMetaObjectPrivate::signalOffset() where appropriate
computeOffsets() was unnecessarily computing the method index, when
only the signal index is needed.

Change-Id: Id682d4447ba283a44cf0ea15cc47bd30edccb57b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-03 11:04:33 +02:00
Mike FABIAN e051819983 Pashto uses Arabic script and is written right to left
QLocale::textDirection() was missing Pashto as a
right to left language.

Change-Id: I1623abf711597a26f283a86708dc756696790b7d
Reviewed-by: Lars Knoll
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-02 12:26:31 +02:00
Girish Ramakrishnan 2a1b50d67c eglfs: Create mouse, keyboard and touch handlers by default
Prior to this change, input support for eglfs was loaded as plugins. With
this change, eglfs supports evdev based keyboard, mouse and touch input
out of the box.

The event dispatcher is created in the constructor because the evdev
code creates QSocketNotifiers in the constructor which requires an
event loop.

Change-Id: I4e08f4121b9381ee5b414d0886eae2b8a2925800
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Romain Pokrzywka <romain.pokrzywka@kdab.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-06-02 10:25:31 +02:00
Corentin Jabot 6131b90953 Implement QXcbWindow::setWindowIcon
Change-Id: I1908cbef0c20d3725423b559f234bd6d3ddd4167
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-02 01:14:22 +02:00
Corentin Jabot 074224eca0 Implement QWidgetPrivate::setWindowIcon_sys()
* The widgets icon are correctly set, through the QPA plugins
 * Removing QTLWExtra::iconPixmap that was only used in some platforms
in Qt 4.7, so if that wariable is still needed somewhere, it sould be
declared in the concerned QPA plugins

Change-Id: I85f50726cce3578b66c09c327767111f09935075
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-02 01:14:14 +02:00
Kent Hansen 42a6fb4090 Simplify the QObject::dumpObjectInfo() implementation
Use the new signal index-based API.

Change-Id: If44e02e71b718bca5c18c486ca9ab95f836cd0f1
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-01 20:34:31 +02:00
Kent Hansen 3057c4173b Simplify connectSlotsByName() implementation
Use the new signal index-based API.

Change-Id: I89263f5366726ef8213e45e5ab6575ebd6eab04a
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-01 20:34:31 +02:00
Casper van Donderen 03fa5dfa27 QDoc: Don't put ditamaps in index file.
Change-Id: Id3ceb05d3c9c4424b767222850237755080b9879
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-01 20:34:31 +02:00
Casper van Donderen 7739076849 QDoc: Do not put indexNodes in qt.ditamap.
Change-Id: I659a3a91aaa6da26f4f739428d79cccfab8ce076
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-01 20:34:31 +02:00
Casper van Donderen 6c60fe20c2 QDoc: Use \page title with prev/next links in DITAXML.
Change-Id: I260998986752f5c8cc48279c04557c925af1cb14
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-06-01 20:34:31 +02:00
John Layt c8b1f7c859 QtPrintSupport - Cleanup QPrintDialog header
Move QUnixPrintWidget from the header to the UNIX implementation as
it is not used anywhere else and doesn't need to be exported.

Make the private slots only compile under UNIX, remove the Mac and Win
stubs for them as unneeded.

Add some documentation to the UNIX dialog

Change-Id: I8f30504285df877e17ac8eeace875f666f43d94d
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2012-06-01 18:26:18 +02:00
Debao Zhang a86efb543d Fix QApplicationPrivate::pickMouseReceiver() crash
When a widget associate with a QWidgetWindow received a mouse event, but
another widget which is not a child of the widget has grabbed the mouse, the
application will crash. As QWidget::mapFrom() only works when mapping from
parent to child.

This is the side effect of SHA: f6c107d799

Task-number: QTBUG-25985
Change-Id: If2e6289e02d6d67c215694f2217221c9c7a0af46
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-06-01 18:26:18 +02:00
Laszlo Agocs 4f27960dd8 Dispatch tablet events to widgets
Plus remove some platform-specific tablet leftovers from Qt4.

Change-Id: I376abc38d1fe4c253d8803cf0ce007e2d6c298bf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-01 18:26:18 +02:00
Kent Hansen 37db43f1c2 Add private API for working with meta-methods in signal index range
Internally, QObject and QMetaObject already leave out non-signal
methods when working with signals. This is possible because the
signals always come before other types of meta-method in the
meta-object data. Ignoring irrelevant methods is faster and can
save memory.

QMetaObject provides internal indexed-based connect() and
disconnect() functions. However, these functions currently take an
absolute method index as the signal specifier, instead of an
absolute _signal_ index. Hence, QMetaObject and friends must convert
from the method index range to the signal index range.

By providing an API that only considers signal indices, clients of
the index-based QMetaObject::connect()/disconnect() can provide the
proper signal index directly. Similarly, for the qtdeclarative
integration (QDeclarativeData hooks) the signal index can be passed
directly. This will eliminate most of the conversions back and forth
between signal index and method index, and some other redundant work
done by qtdeclarative's custom connection implementation.

There are some places where the behavior can't be changed; for
example,  QObject::senderSignalIndex() will still need to return an
index in the method range, since that function is public API.

Changing QMetaObject::connect()/disconnect() to take an index in
the signal range will be done in a separate commit; this commit is
only an enabler for porting existing usage of those functions to
the new behavior.

Change-Id: Icb475b6bbdccc74b4e7ee5bf72b944b47159cebd
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-01 16:04:04 +02:00
Martin Petersson 4189d07c83 QtNetwork: handle raw deflate compressed data in Http.
For raw deflate compressed data with no zlib or gzip header
we need to call initInflate2 with -MAX_WBITS.

The first call to inflate will asume that the data has a header,
but if that call fails with a Z_DATA_ERROR we can try once more
with changed windowBits incase the data was raw compressed data
without a header.

Task-number: QTBUG-25513
Change-Id: Ib37c286c6da6d5395581717d0e76a0dbd5df289c
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-06-01 15:57:18 +02:00
Jonathan Liu d744b24fab QNetworkReply: Change abort() function into a slot
It is useful for abort() to be a slot for connecting cancel and timeout
signals.

Change-Id: Ib0146d66fffe3f57b683dfbce0863e378b8c076d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-06-01 15:47:10 +02:00
Laszlo Agocs bb4e8e37d2 Add QEvdev prefix in evdevtouch and update readme
Now that the code is in platformsupport we need to avoid too generic
names so rename the classes a bit.

Change-Id: I7241aa1a3449be772de369ebd08df01e886dbfa3
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-01 15:24:30 +02:00
Girish Ramakrishnan 5933205cfc eglfs: implement hardware cursor for the raspberry-pi
The cursor is rendered on a dispmanx layer and moved
around. This approach saves us from having to update the
underlying window each time the cursor moves.

Dispmanx layers cannot be moved to negative coords. As
a result, currently it is not possible to move to a
location less than the hostpot. A future commit will
fix this problem.

Change-Id: Ida5ee961d03a6929860c515e503482756a4913ed
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-01 15:22:49 +02:00
Shane Kearns bae1613c4c QNAM - maintain a weak reference to the QNetworkSession
When handling signals from the session, a pointer is needed.
Also the QNetworkReplyImpl needs to access the manager's session.
So, the manager should have a strong and weak reference.
The strong reference is held during connection establishment.
The weak reference is held all the time, though it will become
null when the session is destroyed in idle.
The non static member function getNetworkSession() is used to
create strong references from the weak reference where required.

Task-number: ou1cimx#1004278
Change-Id: I4b5b36b1d996b98e659d993969006c61b4440c15
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2012-06-01 15:19:42 +02:00
Shane Kearns 3580168c3e Track active network replies without qFindChildren
For bearer management to work correctly, we need to know when there
are no network replies active. Previously this was implemented
using qFindChildren, but that doesn't work when the user reparents
QNetworkReply.
QtWebkit does this (actually sets parent to 0).
Also the qFindChildren implementation was racy if multiple requests
were finished in parallel. Again, likely to be triggered by webkit
loading page elements.

Task-number: QTBUG-15812
Change-Id: I181a9ba6611c7c4b6fffa2d84fe4029d89e8f596
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2012-06-01 15:19:33 +02:00
Jonas M. Gastal 5e9aebf0fc Socket FD are now of type qintptr.
This should've been done together with the bulk of other changes in:
bdce610022 and
bf7f170607

Task-number: QTBUG-19004
Change-Id: I6d95a29140c1de5e6800812add9d7882511b909a
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-06-01 15:19:19 +02:00
Janne Anttila 6ddd8f6bd9 Put Windows NTLM stuff inside consistent preprocessor directives.
QNtlmWindowsHandles was placed inside Q_OS_WIN in some places and in
other places inside Q_OS_WIN32. It seems that Q_OS_WIN is correct
define everywhere.

In addition placed "InitSecurityInterfaceW" inside L macro to convert
argument to wide characters in WinCE. WinCE GetProcAddress takes
LPCWSTR instead of LPCSTR.

This fixes the QtNetwork build for WEC7, where Q_OS_WIN32 apparently
is not defined. Should it be defined, is another story...

Change-Id: Id309d20c46b66139e2cb2e62349067848d8ebb4e
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-06-01 15:19:10 +02:00
Lars Knoll 79194978cd Fix a bug in the case conversion code
Chars that have a case conversion that converts
them into several characters can't be handled
by QChar::toUpper() etc and should get ignored. The code
didn't do that correctly.

Change-Id: I281d122e90bf49187b6449088d2fccef2ef75e86
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-01 13:11:50 +02:00
Kim Motoyoshi Kalland 524d47b3f5 Remove unused isGLWidget variable.
Change-Id: I9d1a0edfce3d13ed56916b7301098aa5fbe0bc40
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-01 13:06:56 +02:00
Kim Motoyoshi Kalland 8dd443034d Add method to set size of QOpenGLPaintDevice.
Change-Id: Iecc72c64dbb5f35ee41bdeb960bc759cd43b8bcb
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-01 13:06:24 +02:00
Thiago Macieira 5a447502b5 Fix the QVector build with C++11 initialiser lists
Initialiser lists were not tested before in the QVector rewrite, so
the older malloc call was left behind.

Also, std::initializer_list has const iterators returning const data
and broke the build in a few places where const qualifiers were
missing.

Change-Id: I3c04e58361989aa7438621cda63c7df457d7dad8
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-06-01 12:27:37 +02:00
Thiago Macieira 9c5a77f0ef Make QVector compile with QT_STRICT_ITERATORS again
Move the iterator classes into QArrayTypedData and add constBegin()
and constEnd() to that class.

I also had to add an operator T*() to the strict iterators, since
there are many places that expect the iterator to behave like a
pointer (including in QVector itself).

Change-Id: Icc5ed56ad47b013664a48eef9d31b5273aecb4e3
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-06-01 12:27:32 +02:00
Kent Hansen b60f6447d0 Avoid accessing QObjectPrivate::currentSender directly from QtDBus
In particular, currentSender->signal is about to be changed from
the method index range to the signal index range (i.e., excluding
non-signal methods). The public senderSignalIndex() function will
still return the index in the method range, so QtDBus will then
continue to work without change. If necessary, QtDBus can afterwards
be ported back to using the internal API again (including the new
QMetaObjectPrivate API for working with methods in the signal range).

Change-Id: I58212e859560a8e241adee99dd2da9ef009d4e5b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-01 12:03:39 +02:00
Konstantin Ritt cd95bcd7db Allow compare QLatin1String to QLatin1String
even if QT_NO_CAST_FROM_ASCII is defined.

Change-Id: I8c4deceedb6f3e3cd5bdf72d6e9d189c509c9ff3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-01 03:16:17 +02:00
Konstantin Ritt f19fbcf4e3 Add missing QT_NO_CAST_FROM_ASCII
to QLatin1String's compare operators that takes const char *s or QByteArray.
Such comparison leads to a potential misuse since QByteArray could contain any arbitrary data
in any arbitrary encoding and QLatin1String is used to only contain strings in UTF-8 -
they are just a different beasts aimed for different purposes, and since QT_NO_CAST_*_ASCII
disallow indirect conversions and require the user to know what he's doing,
let's be consistent here too.

Change-Id: I9bf5f326495157db8a6af064d6154961b7861a7e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-01 03:16:17 +02:00
Pino Toscano 72bd1c3228 Unconditionally enable Q_OF_ELF for any ELF platform
Just enable ELF stuff on any platform which uses ELF format, instead of a selected subsets of those.

Change-Id: I0753c020c718bc67b4b50c3957fe8dc10afd2c61
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-01 03:16:14 +02:00
Stephen Kelly 55d0c6c6cf Add clear() to QPointer for QWeakPointer compatibility.
Change-Id: I9efc162bf56775c7ebcff4e3b79a997edc4ceaeb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-01 03:16:08 +02:00
Jiang Jiang 28dd6eda7b Make font fallback list for common script locale aware
Even in common script we may need to have a preferred font list
(which font should be used for CJK codepoints, Chinese, Japanese
or Korean? Since the codepoints they cover may overlap.) Adding
current default language into the pattern in that case will give
a better recommendation for the fallback list if the system have
configuration files like that.

Change-Id: Idbc7f7b0cf24108d6cc255a1add0b29b730588c0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-06-01 03:16:08 +02:00
Konstantin Ritt 6615363e58 Fix some gcc warnings
These are:
"enumeral and non-enumeral type in conditional expression",
"comparison of unsigned expression >= 0 is always true",
and "address requested for 't', which is declared 'register'"

Change-Id: Ia9bab2e1e2c212a2889197e8dd5f7295dda9dadd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-01 03:16:04 +02:00
Rohan McGovern 26ea987a66 Fixed compile on Windows without precompiled headers
Added missing header.

Compile failure is only reproducible when precompiled headers are
disabled.

Change-Id: I0fb2e51b3352ebad3b7b5b58898347605b8d5090
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
Reviewed-by: Kalle Lehtonen <kalle.ju.lehtonen@nokia.com>
2012-06-01 03:16:01 +02:00
Morten Johan Sorvig ad33f3639c Fix QFileDialog crash on show with the GTK style.
Call createWinId on modal_widget to make sure
it has a valid QWindow.

Change-Id: Ieaec2bcaceb2ac28032cb42e5f8bcaf7a33828ca
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-06-01 03:15:58 +02:00
Donald Carr 698e5b376d Remove all references to X11 session management
There is no session management currently implemented for the xcb QPA
backend. Update the build system to reflect this.

Change-Id: I3486de5741f1fb7e09330ca142b8235a84d3b91d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-01 03:15:55 +02:00
Laszlo Agocs 22ef98c0b1 Migrate tslib to new plugin format
Also rename the binary and avoid crashes when tslib initialization
fails.

Change-Id: Ia7ccf7c997e1b1484bd475626ca16c9a9642466e
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-01 03:15:52 +02:00
Friedemann Kleint cd91f1cc10 Get rid of MSVC compiler warnings from QVector code
Change-Id: I39b849721f3ba790c4a9197d69ac48e98cc2f5bd
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-01 03:15:46 +02:00
Jędrzej Nowacki 7b737b172d Remove debugging code from QVector
It was depending on internals of Q_ASSERT

Change-Id: I3dfc0ae0438135a30961f36808dbfc3e663a5538
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-01 01:22:10 +02:00
Chris Adams fbee9834dc Fix crash in QStringBuilder when concatenating data-less QLatin1String
Previously, the append functions in QConcatenable in the QStringBuilder
dereferenced the data() pointer of the argument QLatin1String without
performing null check.

Change-Id: I629f19fbce3113f1f80f4272fa7ae34e1dbc6bee
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-01 01:22:06 +02:00
Kent Hansen 1e778ebd06 Move implementation of QObject::senderSignalIndex() to QObjectPrivate
In preparation of changing the implementation to return an index in
the signals-only range, not all-methods range.

Change-Id: Ib743a4bc9da27ad776ade262b215ebf988e7ab28
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-01 01:21:43 +02:00
Kent Hansen 87d7545cd0 Fix To-Do in qstatemachine (use QObject::senderSignalIndex())
Change-Id: Id8a541878918f27a34595ff297d0f41b79275a96
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-06-01 01:21:40 +02:00
Girish Ramakrishnan 3aac6768f8 Move evdev to platformsupport
Also wraps various string literals with QLatin1String.

Change-Id: Ia0681bfae00006d9e9ad51f05d0e0d0f45cf2cec
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
2012-06-01 01:21:24 +02:00
Thiago Macieira 2a5ec0403c Remove the unnecessary comment about operator== not being necessary
The mysterious comment was just suggesting that they weren't
necessary. Turns out the comment is wrong: they are necessary for
non-strict iterator modes.

Task-number: QTBUG-25063
Change-Id: I20ada17035642ee656c431d6bf2152a5243cecdb
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-05-31 17:57:50 +02:00
Thiago Macieira 05dc32ef6c Fix the confusion caused by the QT_ALWAYS_HAVE_xxx macros
The QT_ALWAYS_HAVE_xxx macros are gone: they were hard to use and not
defined properly. It indicated that the compiler was producing code
that required that particular instruction set, so we could use it in
our code unconditionally. Instead, let's use the GCC-style __SSE2__
and __ARM_NEON__. MSVC does not generate the __SSE2__ macro, so let's
do it for the compiler. Also, define __AVX__ and the macros for the
technologies leading to it when we manage to detect an /arch:AVX build
(currently not possible, see note in the header).

ICC and MSVC allow one to use the intrinsics anywhere, but for Qt all
uses of the intrinsics are either in specially-built files, protected
by runtime checks, or they are unconditional (qstring.cpp). So we only
use the intrinsics when the compiler was instructed to generate code
for that instruction set anyway.

Change-Id: If8382f30422cee0e5831d051b003acf036824abf
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-31 17:55:43 +02:00
Thiago Macieira 398c8513b1 Overhaul the qsimd_p.h: rename macros and update conditionals
The QT_HAVE_xxx macros are replaced with QT_COMPILER_SUPPORTS_xxx.
They indicate that the compiler supports those intrinsics, but not
necessarily that they can be used right now.

ICC and MSVC allow one to use the intrinsics anywhere, but for Qt all
uses of the intrinsics are either in specially-built files, protected
by runtime checks, or they are unconditional (qstring.cpp). So we only
use the intrinsics when the compiler was instructed to generate code
for that instruction set anyway.

Change-Id: Ie58eebbc0518ad1d5420a85174fd84153bb9abaa
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-31 17:55:37 +02:00
Laszlo Agocs 5cbdba588a Fix int-long mismatch in device discovery
Change-Id: I506fc206e68d57b67524cedf99896db1cff1694f
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-31 17:49:54 +02:00
Laszlo Agocs 115f45ff41 Prevent evdevkeyboard file opening from failing
On many systems the device nodes will not be writable normally. There
is no reason to open for writing in any case. Also switched back to
non-blocking I/O.

Change-Id: I9290e6b1ce7e3bc6cb0e75069b3968f647ffbeee
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-31 17:49:50 +02:00
Girish Ramakrishnan 56cfd5d83f Add QObject parent parameter to constructors
Also drop the explicit keyword in constructors with multiple
args since it has no effect on multi-arg constructors.

Change-Id: I48af6ede6cc968c52720c6107cadf3aa4dbfc7f7
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-05-31 17:49:39 +02:00
John Layt f70924e9cc QtPrintSupport: Add CUPS printsupport plugin
Move CUPS code around to create a new CUPS printsupport plugin, this
fixes QPrinterInfo for CUPS which depends on the plugin to work.

It QT_NO_CUPS is defined then the plugin is not built and only Print
to PDF is supported under Linux.

* Move unused genericiunixprintersupport plugin to start new CUPS
  printsupport plugin
* Split QPdfPrintEngine to create QCupsPrintEngine
* Remove LPR related code from QPdfPrintEngine
* Move CUPS specific code from plugin base class to derived CUPS class
* Remove forcing CUPS print engine to use PDF mode as PDF is now Native
* Move qt_getCupsPrinterPaperSizes from qprinterinfo_unix to
  QCUPSSupport
* Remove qprinterinfo_unix as no longer used
* Remove all QT_NO_LPR uses

There is now no CUPS specific code left in printsupport/kernel except
QCUPSSupport which is needed for the dialogs.

Task-number: QTBUG-23060

Change-Id: Ie8fa4512a2424edc8943068e0fa9fb714cc42db9
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2012-05-31 17:40:55 +02:00
Kent Hansen 704bd68631 Include qobject_p.h from qmetaobject_p.h
Needed for QObjectPrivate::Connection. Since it's a nested class,
it's not possible to merely forward declare it.

Change-Id: Ie2ad1b3972df5433cdb49ee443f053ba2d613779
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-31 09:38:07 +02:00
Kent Hansen ec508e9a6a Don't call metaObject() redundantly
The desired meta-object is already stored in a local variable.

Change-Id: I40c7840f07f5dbd67110e2f7d5bb618cbb269047
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-31 09:37:57 +02:00
Kent Hansen d0c0360392 Don't call metaObject()->method() redundantly
The desired method is already stored in a local variable.

Change-Id: Ibf0078813c7aebc83604b9c7ad9a8b6c596c5c65
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-31 09:37:50 +02:00
Girish Ramakrishnan 8710c900d6 eglfs: allow cursor to be created without a context
Textures are now created and uploaded on demand on first render()
call where we are guaranteed to have a current GL context.

Change-Id: I352c876dd1d8b7ed73536de21fa2880cdc6bdb60
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-31 09:25:56 +02:00
Jiang Jiang 47462ffd68 Make fontconfig default font locale aware
Application default font should be locale aware in fontconfig db
as in other font databases. We use a hack to obtain the system
default language parsed by fontconfig and use that to find out
the preferred font for a given language (such font list is edited
by fontconfig from fonts.conf in FcConfigSubstitute() process).

Change-Id: I99bb8dd29d2dde2c8019ed8e77f5bfc09ddf3ca5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-05-31 09:13:01 +02:00
Girish Ramakrishnan 94492d88a7 Remove QCursor::handle
This used to be the Qt/Embedded's QCursor handle implementation.

Change-Id: I31b8ed44ac9325defcb13d887949d9536a262be8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-31 09:13:01 +02:00
Girish Ramakrishnan 8d27345327 QCursor: Remove doc of obsolete functions
These functions don't exist in QPA land.

Change-Id: I50c0588cf03ed64878c8ed864dc18a7558b20156
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-31 09:13:01 +02:00
Tasuku Suzuki 241992ad0d remove QT_NO_SOUND and QT_NO_RASTERCALLBACKS
These two defines are not used.

Change-Id: Iec4ae95a8a2222d3c6e9f35b08954cf30aa15bda
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-31 09:13:01 +02:00
Laszlo Agocs b551d5e4f7 QPA tablet event support
Should be sufficient to allow implementing the actual functionality in
xcb/cocoa/windows to match the Qt 4 level of tablet event support.

Task-number: QTBUG-25864
Change-Id: Iebcca256dfba841d8976b58fda1b76026d3133a3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-31 09:13:01 +02:00
Girish Ramakrishnan ce7b3c9720 Remove QRegion::handle
This function is unavailable in QPA land (it currently returns
the QRegionPrivate as the handle()).

Change-Id: I4e81e29d4546a4737c1aaab4ee1fb97e28a473f5
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-05-31 09:13:01 +02:00
Girish Ramakrishnan 7a2f63feb6 Remove QFont::handle
This function is unavailable in QPA land.

Change-Id: I43bb95d64e3abaa2fbcd8de07ca39c1d28f46f42
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-05-31 09:13:01 +02:00
Friedemann Kleint e7f1106edb Windows: Add ANGLE support.
- Add QWindowsEGLContext usable for ANGLE and Windows CE.
- Add QWindowsEGLStaticContext containing the display
  for resource cleanup.
- Add EGLSurface to QWindowsWindow.
- Add a -angle option specifying the path to the external
  ANGLE installation to configure, add libraries to
  the mkspecs.

Initial-patch-by: Jabot Corentin <corentinjabot@gmail.com>

Task-number: QTBUG-24207

Change-Id: I5f80b1efb6996da7c5d70aa3720f7801c9e4c6af
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-31 09:13:01 +02:00
Jiang Jiang 604fe65cb3 Eliminate a warning in unsigned integer comparison
The length we cast is from int QTextEngine::length() so it's safe
to do so.

Change-Id: I60fdbcb5a96c99b767093102a30e97951ef5b6ea
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-05-31 02:06:42 +02:00
Casper van Donderen 62fc26df0d QDoc: Remove fatal exit when not finding an index directory.
QDoc would exit with exit code 1 when an index directory is not found,
this behaviour was probably a bit too strict.

Change-Id: If62fe1aeac4392002fa7419f6abcb62ed41c2beb
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-05-30 23:58:56 +02:00
Bradley T. Hughes 6deebc8170 Compile with clang when C++11 support is enabled
text/qtextdocument_p.cpp:1070:43: error: non-constant-expression cannot
be narrowed from type 'int' to 'quint32' (aka 'unsigned int') in
initializer list [-Wc++11-narrowing]
text/qtextdocument_p.cpp:1070:43: note: override this message by
inserting an explicit cast

Change-Id: I16127aef2171324135b5c0c2ac611b8b4f03d7b7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-30 19:30:58 +02:00
Holger Hans Peter Freyther 44bc32d9c5 directfb: Allocate a special surface for OpenGL
Allocate an RGB16 surface when we need to use OpenGL, set the
custom DSCAPS_GL for this EGL mode. The broadcom hardware would
allow us to use ABGR but we have some issues with the QSurfaceFormat
to select the right kind of surface.

Change-Id: I0fff7906154f3d7afb35b2b5d2bb91510cf3aa4d
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-30 19:29:35 +02:00
Jędrzej Nowacki d17cf14185 Implement QVector with QArrayData interface.
Change-Id: I109f46892aed2f6024459812d24922b12358814d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-30 17:07:27 +02:00
Jiang Jiang 5131aefc1f Fix text decoration width rounding
width passed in qreal should be set with setWidthF instead of
setWidth, otherwise the fractional part is lost.

Also remove the raster paint engine hack that has been removed in
Qt 4.8, it's no longer needed.

This fixed the drawUnderline and drawRightToLeft auto tests in
tst_qglyphrun.

Change-Id: Iace46fc27ff156c07fb4d08a145269fad36e9fdb
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-30 16:34:25 +02:00
Casper van Donderen 60fb770fa7 QDoc: Add support for 'all subfolders' in dependant modules.
It is now possible to use '*' when specifying the 'depends' qdocconf
variable, this will automatically load all index files found in
subdirectories of the index dirs.

Change-Id: I94b140df27da8d987824005a1dcf2a9348d5cd9e
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-05-30 11:13:55 +02:00
Casper van Donderen 28ae5aa332 QDoc: Force writing \n before a snippet in DITAXML.
Previously the snippet text would be indented, which causes an XSLT to
render the first line of a snippet at the indentation level of the .dita
file.

Change-Id: Iead8d07277f83ca5ccbf463f1cdb1c8210459d56
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-05-30 11:13:46 +02:00
Samuel Rødal 4f539b2671 KMS platform plugin: Introduce default cursor for better usability.
Similar to the default cursor in eglfs, not having it makes it hard to
interact with Qt applications using the evdevmouse plugin.

Change-Id: I9638267c7d790d91b66620e4a82d86f299061922
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
2012-05-30 11:11:02 +02:00
Girish Ramakrishnan e18569ee1d eglfs: keep context active only during flush
The OpenGL context needs to be current only while flushing
the backing store.

Change-Id: I4d6a10f22bcfe04f35a14a690180237f6c691829
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
2012-05-30 11:10:42 +02:00
Girish Ramakrishnan 0cb7dac534 Add minimalegl QPA platform plugin
The EGLFS platform plugin was originally meant to be an example
and thus to be kept simple. However, EGLFS is becoming more
and more complex with the addition of hooks for board support,
cursor integration, built-in evdev support etc.

minimalegl is a new platform plugin that intends to follow
the original intentions of EGLFS.

The code is an adaptation of EGLFS as of f913859f8

Change-Id: I3d4cf84cde380cdcc7e0e8bfefff4df6be731b8d
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-05-30 08:30:42 +02:00
Holger Hans Peter Freyther 9e424adbdd directfb: Allow a window subclass to allocate a different kind of surface
A subclass of QDirectFbWindow might need to allocate a window with
different surface flags. This is the case for the DirectFB EGL plugin
and QSurface::OpenGLSurface type of surfaces. Add createDirectFBWindow,
make it virtual and call it from the platform integration classes. Add
an assert to verify that this method is only called once. Remove the
pre DirectFb 1.1 code as it was never really tested.

Change-Id: Icf3d262f40bca70e376043935eeb292958f6df5d
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-05-30 08:30:42 +02:00
Girish Ramakrishnan 56fca8ce14 Fix compile error in eglconvenience
Change-Id: Ic20d890a9c59e21a5f0c81f961074ab02083a266
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
2012-05-30 06:29:10 +02:00
Holger Hans Peter Freyther 717ca1a2a6 directfb: description.surface_caps was already assigned conditionally
We have already assigned this flag in case the IDirectFBSurfaceLayer
has the capability of premultiplied alpha. Do not set it unconditionally.

Change-Id: Id5f9bd6bdfa29dc9cd35d913b61fb55c09f54864
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-30 04:27:50 +02:00
Johannes Zellner e6a4d6054d evdev: Cleanup mouse and keyboard plugins
Remove fallback event0 device usage. All available devices should be
detected automatically from DeviceDiscovery either through udev or the
static fallback discovery method. This also removes the never used 'key'
argument, which was pulled over from Qt4.

Change-Id: Iffe8bd80f0770664024019a220cbbc6f98843340
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-30 04:25:48 +02:00
Morten Johan Sorvig a530ffd6de QtConcurrent: Remove QMutex kept for BC reasons.
Task-number: QTBUG-25052

Since upgrading to Qt 5 forces a recompile there
are no longer inline versions of the acquire/release
functions in play.

Change-Id: I6ce6abe0f16f810891f32c7e8c5c94726e5de873
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-05-30 01:54:45 +02:00
Morten Johan Sorvig 9ea919915d Make popup windows show on the correct desktop.
Set NSWindowCollectionBehaviorFullScreenAuxiliary
for Qt::Popup windows. This will make them show
on the same desktop as their parent full-screen
window.

Change-Id: Ice1bd50976ef0cd66b01a683a43e08e782573153
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-05-30 01:54:45 +02:00
Tasuku Suzuki 96c5b5ecf4 Fix compilation for QT_NO_CONTEXTMENU in QtWidgets
Change-Id: I05b23504549c0156ba5e72144674f843149932c0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-30 01:54:45 +02:00
Konstantin Ritt a9b30841b9 QTBF: fix the mandatory line breaks not being set in some cases
e.g. for the text "Aaa bbb ccc.\r\nDdd eee fff." the \r\n wasn't treated
as a hard line break or as a line break opportunity, ever.
Quite ancient bug...

Change-Id: I8d8497c55a3a4d51c27de99ccfe1e31f3bf4de77
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-30 01:54:45 +02:00
Konstantin Ritt 32c39330ef Introduce QUnicodeTools
Add QUnicodeTools namespace and rename qGetCharAttributes to initCharAttributes;

Make it possible to disable tailoring globally by overriding
qt_initcharattributes_default_algorithm_only value
(useful for i.e. running the specification conformance tests);

This is mostly a preparation step for the upcoming patches.

Change-Id: I783879fd17b63b52d7983e25dad5b820f0515e7f
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-30 01:54:45 +02:00
Konstantin Ritt c16455dbcf Re-generate the Arabic joining tables from UCD 6.1.0
Some names were fixed to meet their values in the Unicode data files (e.g. Zain -> Zhain);
Some other names were added as a value alias (Nya -> Noon) or deprecated
but retained as a value alias for BC (HamzaOnHehGoal -> TehMarbutaGoal);
Newly assigned Arabic characters were mapped into respective joining types and classes)

Change-Id: Ic4b4a6baf70f51fb5936f74fe9a173b8790dda11
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-30 01:54:45 +02:00
Lars Knoll de255a8caf Remove QUpdateEvent from the public headers
It's only used internally in qwidget, so it might as well
live in qwidget_p.h.

Task-number: QTBUG-25070, QTBUG-25373
Change-Id: I87770e0b49253b4bdebe90ce84dd42448d6175bd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-30 01:54:45 +02:00
Eskil Abrahamsen Blomfeldt 770e0bb756 Add some batching functions to QPlatformSharedGraphicsCache iface
This adds some pure virtual functions to the interface to enable
batching requests.

The interface functions no longer need to be invokable, as
invokeMethod() is too slow to be used at the required frequency
anyway.

Change-Id: I89b607de1a28f3f4b728c334c04bcd443d4366b4
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-05-30 01:54:45 +02:00
Jan-Arve Saether 7cdcc26722 Fix Qt 5 todo issues for QSizePolicy.
* Merge the two public ctors.
* Use bitflags instead of shifting bits (more readable).
* Add autotest
* Use int datatype for the "stretch setters". (values out of bounds are clamped)

Streaming to QDataStream will still use the Qt 4 format.

Task-number: QTBUG-25100

Change-Id: Iecb1e78cb12717e4d84448484c3ad8ca469d571a
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-05-30 01:54:45 +02:00
Samuel Rødal ef204659b9 Fixed KMS y-invertedness.
Upgrade to new gbm_surface API which lets us use eglCreateWindowSurface.

Change-Id: I4af86d442375017ae3b4744e7b3bdebf3b496b6e
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
2012-05-29 23:48:29 +02:00
John Layt 44f7df439f QtPrintSupport - Add QPrinterInfo api for more printer details
A previous commit changed the Mac behaviour for printerName()
from returning the CUPS Description to returning the CUPS Name.
In case anyone was relying on this for a human-readable name
add new api to return the CUPS Description.  Also add the
Location and Make and Model which will be used in the Unix
print dialog instead of directly calling CUPS.

Change-Id: I9901bf8d6368466adf111580f5db5a3f01ca9170
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2012-05-29 23:48:15 +02:00
Holger Hans Peter Freyther b7104d6645 Document QWindow's setSurfaceType and setFormat update behavior
QWindow::setSurfaceType and QWindow::setFormat do not re-create
the QPlatformWindow. Attempt to document this behavior and point
to the documentation of destroy() and create().

Change-Id: Idf7eb343d4918a45b5a701effe3263145a33790a
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-29 23:38:13 +02:00
Girish Ramakrishnan d460f089e5 eglfs: Don't update screen for non mouse-move events
Change-Id: I7df089a9dc87396e19c08cef3d76c7c7f95a8fbf
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-29 23:37:51 +02:00
Girish Ramakrishnan a72f64f1c1 Add q_printEglConfig to qeglconvenience
The code was initially part of eglfs.

Change-Id: I8aa6e77edec85ab2b23765ca04e4416757f3bed6
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-29 23:37:47 +02:00
Girish Ramakrishnan e973d0965c eglfs: remove support for widget rendering using opengl paint engine
The eglfs backing store code can render either using the raster paint
engine (through QImage) or using the opengl paint engine. Rendering
quality using the opengl paint engine is pretty poor so remove
it.

Change-Id: I64061ceb3a480049cfebe61aaf172ad1f1da7042
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-29 23:37:43 +02:00
Girish Ramakrishnan d324019913 eglfs: release shader program after use
Change-Id: Ibe89de88c6c01d182a240def92eb78c0cc896463
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-29 23:37:40 +02:00
Girish Ramakrishnan 42f4fa60f3 eglfs: rename QEglIntegration to QEglFSIntegration
Change-Id: Ifa096537d417571ed660a63a501fed188186f400
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-29 23:36:49 +02:00
Thiago Macieira 095000c898 Fix shadow build compilation with MSVC
\#include "foo" in MSVC does not search the output path, so we need to
pass the proper -I flag to find the build dir's src/corelib/global.

Change-Id: I546051c99fd29d7734f8bf35d058ea283ec9bca7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-05-29 20:24:23 +02:00
Miikka Heikkinen 618ea643ca Fix some painting issues with native widgets
QWidgetPrivate::drawWidget was missing an important line about marking
native widgets dirty compared to 4.8, which caused all other widgets
besides the native one to not repaint unless window was resized in such
a way that the widgets would get hidden and then re-exposed.

The above didn't fix repainting issues when moving native widgets
(e.g. widgets in QMdiArea subwindows or just calling QWidget::move()).
Added setting widgets dirty to QWidgetWindow::handleExposeEvent to
address this issue.

If there is one native widget, Qt enforces that all widgets in same
parent hierarchy are native - presumably to get overlapping widgets
drawing correctly. However, qapplication_qpa.cpp set the attribute
Qt::AA_DontCreateNativeWidgetSiblings for all applications, which
caused only the parents of native windows be forced native, leading to
drawing artifacts related to siblings of native widgets (e.g.
overlapping QMdiArea subwindows). I don't see a reason for setting this
flag indiscriminately for all applications, so removed it.

Also added setting newly created QWindow visible if associated
widget is already visible, which can happen if regular widgets
are shown before the first native widget is shown and retroactively
forces other widgets native.

Task-number:QTBUG-25805
Change-Id: Ib133dae9b13cc6e7155e7cae00fc1339d3b5ae86
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-29 20:13:11 +02:00
Lars Knoll 4d0424b671 Ask the platform drag for the correct default drag action
This fixes a remaining feature regression from Qt 4.x, where the
dragmanager also determined the default action for a drag given
the set of supported actions and the keyboard modifiers.

Task-number: QTBUG-25373
Change-Id: I80b23b135ba218eb5b7ccc692f12140477bc7809
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-29 20:13:03 +02:00
Thiago Macieira a4ca3280c0 QApplication::activeWindow is replaced by QApplication::focusWindow
Change-Id: I28ec9b59171fbacbe5c7c0dd1cc998d75538545f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-29 20:12:53 +02:00
Friedemann Kleint a09c20f19b QWidget::grab: Add a default value for the QRect parameter.
The documentation is misleading in that a default-constructed
rectangle that has size = 0 causes the entire widget to be
painted; this happens only if the one of the size values is
 < 0.

Add a default value such that size < 0 and the entire widget is
painted based on the rationale that a size = 0 might be the result
of some calculation and it would be unexpected to get a pixmap
containing the entire widget in that case.

Change-Id: I2a5fb38cd407b4b64348213101d8196b2c40ad9a
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-29 20:12:39 +02:00
Friedemann Kleint 65a264c4a1 QWidget::grab(): Do not call adjustSize() unconditionally.
This breaks the combo dropdown animation on Windows as it
uses special layout tricks and potentially other (unlaid-out)
widgets.

If the size is unknown, call prepareToRender instead.

Reverts d6f971c854.

Change-Id: If44e2a7e7fb134c228674cf228bbee0d5520e04f
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-29 20:12:32 +02:00
Friedemann Kleint 97659d87be Windows QPA plugin: Add \internal to class documentation.
Prevent the classes from appearing in the Qt documentation.

Change-Id: I62abff0c57effdf16629f9d5a0dc384ea2c43d5a
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-29 20:12:24 +02:00
Holger Hans Peter Freyther 486f0e93de Only build devicediscovery on linux systems
libudev and linux/input.h are Linux specific. Instead of add a !*bsd*
to the pro line I have decided to only check for linux-*. This is fixing
the compilation on FreeBSD.

Change-Id: If59481421e811eca205407031db593e00b6e8534
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-29 19:54:25 +02:00
Laszlo Agocs 243a0660e1 Make qWaitForWindowShown more robust on X
Try ensuring the window has received its valid position from the WM.

Change-Id: Ibd75bc19ae820765bfaadd30c22e77a19cd28849
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-29 11:37:35 +02:00
Eskil Abrahamsen Blomfeldt 2e6b8b4734 Disable GSUB feature when text contains surrogates
This is a work-around for a feature missing in Harfbuzz that
can make a text run that contains a surrogate and a ligature
crash. This will potentially cause the ligatures to break up
if you combine them with a surrogate, causing visual changes
to the text, but the scripts that require GSUB should not be
affected by this, since they will not use surrogates. Still,
it's not a permanent fix, but will serve as a bandaid for the
crash until the underlying problem has been fixed.

Task-number: QTBUG-22275
Change-Id: I90c37fba76bc7d1f369f3afddd1bd0dc306f5750
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-05-29 11:35:21 +02:00
Bradley T. Hughes 19e2b4d6eb Remove unnecessary forward declaration in std namespace
qiterator.h doesn't use std::bidirectional_iterator_tag or
std::random_access_iterator_tag, so remove the forward declarations.
(These actually confuse clang when building with C++11 support enabled).

Change-Id: Idd0daa0840a0995e6e5b0ffc01ddcdf06f048149
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-29 11:35:21 +02:00
Thiago Macieira fad1fa65ed QtDBus: compile with QT_STRICT_ITERATORS
Unlike most other modules, QtDBus in its use of QVector also needs to
check if the item isn't null, which makes for some special changes.

Change-Id: Ia22ad2a6b26c9c34dc09ab882d81323a941d166a
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-05-29 11:35:21 +02:00
Thiago Macieira 395f7579c0 Make qdoc compile with QT_STRICT_ITERATORS
Change-Id: I2923315678d1aef516b35a8c83fe734367723a28
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-29 11:35:21 +02:00
Giuseppe D'Angelo 779e2f38ea QtOpenGL: remove \link usages
Change-Id: I34509eaf87a91bf31a78b08c91d9a57e704d8989
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-29 11:35:21 +02:00
Giuseppe D'Angelo 5343ec6cff QtXml: remove \link usages
Change-Id: Ifcf1e66bad04e312c29de623fee47fabb91cc108
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-29 11:35:21 +02:00
Giuseppe D'Angelo 3471e2de78 QtWidgets: remove \link usages
Change-Id: I9887a24485233f29d07054b3110d4db9e499b9f4
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-29 11:35:21 +02:00
Giuseppe D'Angelo 358f78f215 QtGui: remove \link usages
Change-Id: Ib8cca14a8fa35fbc631bfea9b4873225eac3677f
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-29 11:35:21 +02:00
Giuseppe D'Angelo 2c49ea852f QtCore: remove \link usages
Change-Id: I0de764b51a972de0b6eb2bf3c04d2b190f581f52
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-29 11:35:21 +02:00
Bradley T. Hughes 88da8b4878 QMutex: de-inline lock(), unlock(), and tryLock()
See the discussion of this topic on the mailing list:
http://lists.qt-project.org/pipermail/development/2012-May/003943.html

The consensus is to not have these methods have inline code to actually
acquire the lock (i.e. no atomic test-and-set or similar). QBasicMutex
is unchanged, and continues to have inlined lock(), tryLock(), and
unlock(). QMutexLocker has been changed to always call QMutex::lock()
(even though the constructor takes a QBasicMutex parameter).

Change-Id: Ic7d2d9d581e6b254c84fdfdd8ce6c425535a8078
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-29 07:35:31 +02:00
John Layt 5bd5f6ae69 QtPrintSupport: Change QPrinterInfo::defaultPrinter() behaviour
In Qt4 QPrinterInfo::defaultPrinter() has inconsistant behaviour
depending on the platform.  On Mac and Unix if no default printer
is set in the system then the first available printer is returned.
but on Windows it returns a null QPrinterInfo.

Currently Qt5 returns the first printer on all platforms, but this
causes an inconsistency if you call isDefault() on the returned
QPrinterInfo.

The apidox is slightly ambiguous, but does seem to imply no printer
will be returned if no default is set.

The only place in Qt the public api is used is in QPrinter which is
coded expecting that defaultPrinter() may return null but for there
still to be availablePrinters().

Change-Id: I1bbef8cba259b7d51980a0199e9fd6d5466d921f
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2012-05-29 00:41:46 +02:00
John Layt d9a7f9488f QtPrintSupport: Fix QPrintDialog assert
Fix an assert that wasn't changed when the "Print to PS" option was
removed

Change-Id: Ife7350976707059861660a74dc2f89d302d861f0
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2012-05-29 00:41:43 +02:00
Jiewen Wang 3be6ca3ee8 Eliminate QTreeWidget drag crash
In QTreeViewPrivate::adjustViewOptionsForIndex() wrong index had been
used when referencing to array of viewItems. Variable row is set to the
index of the QModelIndex, however it is not as same as the index in
viewItems[] when there was hidden item in treeWidget. Index of viewItems[]
should be used here. Unit test is added as well.

Change-Id: Idc7eda979e7d09c5a07bd6dffd92b7abbac10e67
Task-Id: QTBUG-25333
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-05-28 16:49:56 +02:00
Jędrzej Nowacki db06953ca1 Replace QVariant::typeToName usage by QMetaType::typeName call.
Type information is kept in QMetaType class. QVariant is delegating
operations, so it is better to use QMetaType directly.

Change-Id: I91209fa1c9dc4303d6bd47c96824d3cd64ce5291
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-28 03:30:21 +02:00
Simon Hausmann 709111e920 Fix compiler warnings when simply including qgraphicsscene.h
Commit 02b80ebb52 marked itemAt(x, y) and
itemAt(point) as deprecated, causing a warning when code calls the function.
Unfortunately the itemAt(x, y) overload calls the itemAt(point) overload,
causing a compiler warning even when not using any functions from
qgraphicsscene.h at all.

This commit fixes itemAt(x, y) to not call itemAt(point) but use the
non-deprecated items() function directly.

Change-Id: I9c4d3a070d65f3406cdab00345c56d4fc62e76c1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-27 21:50:30 +02:00
Gatis Paeglis 02b80ebb52 Fix To-Do's in QGraphicsScene.
Mark obsolete functions with QT_DEPRECATED.

Task-number: QTBUG-25092

Change-Id: I89d9e508479b75ad2d8bf131c69f6158b71fcda8
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-26 10:15:36 +02:00
Gatis Paeglis 2defa750b7 Qt 5 to-do in QXcbKeyboard
Rescheduling to Qt 6 since Qt 5.0 was decided to have as little source incompatible changes as possible.

Change-Id: I47cd3e236dd90717efb287aef8fbbedacea1bc0f
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
2012-05-26 10:14:23 +02:00
Gatis Paeglis 9b7b90cf55 Fix Qt 5 to-do's in QGraphicsProxyWidget
Task-number: QTBUG-25091

Change-Id: Ic4160f90f69167d40ee1e569562d25eb009615aa
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-26 10:14:12 +02:00
Mitch Curtis ccd56e9844 Clarify QByteArray::size() documentation.
QTBUG-25438

Change-Id: I8cf9bfb295195548b6f7d4410682e4d675181a65
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
2012-05-26 02:47:01 +02:00
Johannes Zellner 9a17206b5c devicediscovery: add more sophisticated discovery
Detect devices based on bit testing through evdev ioctl api. As this is
for the udev replacement, the bit testing is done similar to what udev
does. The current keyboard detection is based on testing if the KEY_Q is
available. This might be adjusted in the future.

Change-Id: I3f4176681a351e33d90a1425f1afedc8ce3640b8
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-26 02:47:01 +02:00
Sean Harmer 48768ab433 QNX: Adding native file dialog support for Blackberry
This patch enables use of native file dialogs in the application
modal case.

The native file open dialog is reasonable but the native file save
dialog could do with some improvements to make it more usable.
Perhaps providing our own "native" dialog UI would be an option
once the widget style is finished.

Change-Id: If5fb7cf73d27e52db7bfa6d97d8f8fb7912960bb
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-26 00:34:40 +02:00
Thiago Macieira c4fbe872be Itemviews: compile with QT_STRICT_ITERATORS
Just a few mixed up iterators.

Change-Id: I19f62457ee24bc844fadd182ba61866e259e9636
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-05-26 00:34:40 +02:00
Tasuku Suzuki 576d4a1cce Fix xcb plugin compilation for -qconfig large
Change-Id: I1ee1fb9c140396e83272d607ee4dd63ce2c50b8d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-26 00:34:40 +02:00
Konstantin Ritt ad7d953963 Declare typeinfo-s for QLatin1String, QStringRef, and QCharRef
Change-Id: I05e0f866c632f2a7e966e6bae9c73eeb77d99217
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-25 21:49:35 +02:00
Konstantin Ritt 10da6417ee Replace `const QCharRef &` with `QCharRef` where appropriate
in order of consistency with QChar

Change-Id: I8a7cf8960eb64ef177113d4569f1c49ae31c828e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-25 21:49:27 +02:00
Konstantin Ritt 09f20e75a4 Replace `const QLatin1String &` with `QLatin1String` where appropriate
Task-Id: QTBUG-24502

Change-Id: I360dee4dc68c165de0631ce4cf34e76fd873080e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-25 21:49:21 +02:00
Konstantin Ritt c31681ab62 Move QLatin1String up to QString
This is needed for the change that follows

Change-Id: I05611defe422fa4bbb5be27b102e39b1f61a1cbc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-25 21:49:15 +02:00
Konstantin Ritt f728afcd85 Centralize C-string and QByteArray string length calculation
QString::from{Ascii|Latin1|Utf8|Local8Bit} does the string length calculation for us,
so let's use that and don't repeat the copy-paste bugs like the previous commit has fixed.

Change-Id: If0bced3ebaf75b56dde6be1266c47c3fbf89dab0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-25 21:49:05 +02:00
Konstantin Ritt e96e80687e QString: get rid of public qStringComparisonHelper()
Unify all it's overloads into a single private helper functionand use this new helper
where possible - so we could optimize all those operators in one step some later
(this also fixes `QBytArray("a\0b") < "a"` didn't respect the \0 while operator==
handles nul(s) correctly);
Add operators <,>,<=,>=(const char*) to QStringRef so that they doesn't create a temporary QString object;
Add missing QT_NO_CAST_FROM_ASCII

Change-Id: I8b6562a92fdb96e67aadee181f23f823d206f5fd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-25 21:48:55 +02:00
Konstantin Ritt 2b15c1b30f Move ScriptSentinel enum from header to .cpp
Change-Id: Ic74e8e2471e92aa2014735f6ab0bb4f3b88de206
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-25 21:48:44 +02:00
Thiago Macieira 7c1e0fef8e Gestures & events: compile with QT_STRICT_ITERATORS.
There are a few mixed up iterators that needed cleaning up. We're
missing a constUpperBound and constLowerBound function, though...

This commit sneaks in one change to qtextformat related to
QT_STRICT_ITERATORS but not to gestures and events.

Change-Id: I8c7c840fb5f46c790adbf52952c6009c5b5f2f43
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
2012-05-25 21:46:55 +02:00
Jiewen Wang 7381328bcc QStatusBar::showMessage will always take new timeout
There is a message check in QStatusBar::showMessage causing the call exits
early if the new 'message' is the same
as the current message. The check has been removed, and new timeout will
always take effect. Unit test is added as well.

Change-Id: I3a03c6842835824caba4adc37c3ed834952c4bb2
Task-Id: QTBUG-25492
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-25 21:41:42 +02:00
Friedemann Kleint 2848395b50 XCB/EGL: Free display.
Fix valgrind reporting resource leaks.

Change-Id: I4c2038f61b63dc5b6bc0c7eca43f0f339ddf723a
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-25 17:23:20 +02:00
Friedemann Kleint 9015e479db Fix warnings about unused variables.
Change-Id: Ie95f032981d2ce68b1193725ab55ac207d187525
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-25 17:23:20 +02:00
Tarja Sundqvist 7266e11297 QTBUG-16850: QLineEdit::setSelection removes blank characters
Changed checking of the start position so that it does not call d->control->text() because this removes blank characters when an input mask is used. Thus the
selection fails. Instead d->control->end() is used for checking the start position.

Task-number: QTBUG-16850
Change-Id: I62992fb81bd47d432bade9f219782d48eb309956
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
2012-05-25 17:23:20 +02:00
Konstantin Ritt 79ab7c170d Fix potential access beyond the array end
addNextCluster() advances position up to "end" that equals to
eng->layoutData->string.length() if current script item is the last one

Change-Id: I173286f3002c9c64dd1a89b902958699b6273d68
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-05-25 17:23:20 +02:00
Martin Smith a755049931 qdoc: Fixed pure doc parser
This parser was meant to parse any file for
qdoc comments only, ignoring everything else
that is not inside a qdoc comment. But it
wasn't doing that. It was parsing all code,
regardless of the language, using the C++
parser. Now it has been corrected to look
at qdoc comments and skip over everything
else.

Note thast this means qdoc will expect a
qdoc topic command in each and every qdoc
comment in the file. The posiution of the
qdoc comment with respect to the code it is
meant to document is not taken into account
in the pure doc parser. This is in contrast
to the QML and C++ parsers which do take
comment location into account in some cases.

Change-Id: I0804a4149baa942b463e0b6990c71e4039ac1a50
Reviewed-by: Keith Isdale <keith.isdale@nokia.com>
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-05-25 17:23:20 +02:00
Tasuku Suzuki 4830bcc962 Fix QtCore compilation for -qconfig large
Q_UNUSED(encoding) line removed because the variable is not declared.
translate() removed because the function is previously implemented.

Change-Id: I24da0105d72635ea19b26439776416655f3213df
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-25 17:23:20 +02:00
Girish Ramakrishnan b8420c9fc2 eglfs: use GL API directly in QEglFSCursor
The upcoming hardware cursor support for pi requires the cursor
code to render with it's own context. This is because the cursor
rendering happens in the input event (gui) thread which may be
different from the the scenegraph thread.

Currently, Qt can be informed about the current opengl context by
using QOpenGLContext::makeCurrent(). All of Qt's helper OpenGL
classes complain if that function has not been called. Usage of
makeCurrent API requires a QSurface. A big rewrite of EGLFS is
needed to make such a QSurface (QEglFSWindow) available to the
cursor code. There is no other way around this since Qt
has no other API to inform it that an opengl context is active.

The solution is not use Qt's OpenGL helper classes and use GL API
directly.

Change-Id: If47030d9a289686ebf2e758f90445323d1733dc0
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
2012-05-25 17:23:20 +02:00
Sean Harmer 49b12d8236 QNX: Rationalise the usage of qDebug() to remove lots of #ifdef's
Change-Id: I097e4af86a6a0941f4fd7e122970f88ba536ab38
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Reviewed-by: Andriy Golovnya <andriy.golovnya@googlemail.com>
2012-05-25 14:46:04 +02:00
Morten Sorvig df1fc82e23 Add Mac OS 10.8 QSysInfo enums
Change-Id: I79ce06ead836478ff6816e6631742db91ba256fe
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-25 13:52:08 +02:00
Stephen Kelly 5c632708da Fix comments to refer to the root, not the top level.
Change-Id: If0fc8a18973a2fe15197437734f15f3d445d1b6c
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-05-25 13:45:07 +02:00
Stephen Kelly c8028844ee Fix some spelling errors.
Change-Id: I1f730c843e77d68ab17715175af53da577cb3695
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-05-25 08:01:55 +02:00
Thiago Macieira 220f791f9a Make QLocale "unload" the ICU libraries upon exit
Right now, valgrind reports that there is some reachable memory in
QLibrary because we don't call unload() in the libraries we loaded. So
do unload() them.

Unfortunately, ICU seems to have some global statics it doesn't free. If
we really unload the libraries, valgrind will report a leak. So use the
PreventUnloadHint, which causes libdl to not actually unload the
libraries.

Change-Id: I273f09627e27b9116366ddc427e1f3f53ea0f61a
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-24 20:20:52 +02:00
Corentin Jabot ce3d1a153a Implement QWindow::setWindowIcon
Since QIcon has been moved back to QtGui, QWindow::setWindowIcon can
use it. That way, the api is exactly the same as in QWidgets and one
can deal properly with multi-sized icon.
I added a getter so the api is consistent with QWidget
(Maybe there should be properties for windowIcon and windowTitle)

Change-Id: I2f463dbe39673f41a3201ef8fed27b3fcac2125f
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-24 20:20:52 +02:00
Rafael Roquetto df7a1a28aa Implementation of the Blackberry bearer engine.
An implementation for Blackberry devices based on the BPS netstatus APIs.

Change-Id: I2c019efecb7296b6db626b626d4618ded4d3df37
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-24 17:59:07 +02:00
Miikka Heikkinen 3c3e938c82 Windows: Fix verbose debug output
The isEmpty() check for environment variable contents was inverted.

Change-Id: Ic220f4eed9e45539d6e89fe1e0d37976f7757eda
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-24 17:52:52 +02:00
Friedemann Kleint d74c45a95b QtWidgets: Fix QT_FLUSH_UPDATE for Windows.
Change-Id: I09fd1ca6e7691b326760b83aad612e9a26717379
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-24 17:51:47 +02:00
Sean Harmer 66e68b79c2 QPA: Refactor QFileDialogPrivate::qt_clean_filter_list for QPA
Allows QFileDialog and QPA plugins to access this helper function.

Needed by the Cocoa and QNX plugins. This commit fixes up the
Cocoa plugin. The QNX support will be in a follow-up commit.

Change-Id: I8dd08a9f3dc27d85edd0dc9dad9629406c1e677a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-24 17:46:15 +02:00
Kevin Ottens 425c902ed0 QNX: Recreate EGL surface when the window geometry changes
Change-Id: Ic578e9c3f4d8f70bcac0d95f59942cd2724aee51
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-24 14:47:20 +02:00
Kevin Ottens b283213712 QNX: Make sure calls to (create/destroy)Surface are symmetric
As a matter of fact also reduces state duplication with QQnxWindow
by getting rid of m_surfaceSize.

Change-Id: I47f5af0f00a317d3bb246c0c9161e2219fbd3263
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-24 14:47:14 +02:00
Kevin Ottens 20a52687ec QNX: Advertise geometry changes to Qt event system
Some QWindow subclass rely on those events to be sent to know when
the window geometry changes (e.g. QQuickCanvas).

Change-Id: I16d3928803d09761f265544fdf10a5d080fccc17
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-24 14:47:08 +02:00
Kevin Ottens 2ee67d3826 QNX: Force windows resizing when the screen orientation changes
Change-Id: I82e464df86b55f04498a8f6f5c1cc5011cac0bd6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-24 14:47:02 +02:00
Kevin Ottens 600eee0481 Provide convenience method to resize maximized windows
Maximized/fullscreen windows geometry should follow screen geometry,
so provide a convenience method implementing this behavior. It is
meant to be used in platform plugins where the platform doesn't
automatically resize said windows on screen geometry changes.

Change-Id: Id9128fee1ddf587a7d96aa294d2d1e6eb6d6d11b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-24 14:46:48 +02:00
Morten Johan Sorvig 48e104aa1d Add QMacPasteboardMime::count(QMimeData*).
As QTBUG-25076 points out, the ### comment indicates
that we want to add virtual function to
QMacPasteboardMime.

The default implementation returns 1. Reimplement 
for QMacPastebardMimeUrl and return the url count.

Change-Id: Ie300574eab9991af625986805d2b030914291cc0
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-05-24 14:20:11 +02:00
Samuel Rødal 4b4975ceae Compile fix for kms platform plugin.
Change-Id: Ieed141c390920d118f8bb34fa884574ba308d23e
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
2012-05-24 14:06:12 +02:00
Thiago Macieira 2e4e283d41 Use the QT_STRINGIFY macro
This macro is now left defined from qglobal.h, so we don't need to
redefine it everywhere (and risk getting it wrong).

Change-Id: I2a11d10fe0434b85e79d0dda5f11fa90e2edc431
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
2012-05-24 13:30:44 +02:00
Kent Hansen 662c0a722a Populate MetaData:Keys for compat plugins
QFactoryLoader::indexOf() expects the meta-data to contain a Keys
entry, if there were any keys. For compat plugins, the result of
the plugin's keys() function should be stored here.

Change-Id: Ifd04f90cbfce2598d71548c469baa55ca6b0b338
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-24 09:48:27 +02:00
John Layt 36f469bdb1 QtPrintSupport - Modify Platform Plugin QPrinterInfo api
Change the way the printsupport plugin creates QPrinterInfo
objects, provide platform api to return a named printer, and
expose this as static public api in QPrinterInfo.

Only the Mac plugin used the old api, the other plugins will
have direct support added in separate commits, but will use
the default implementation for now.

Change-Id: I7d6b6556eb39919cfb15bc0e814afbaf13c5712c
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-24 09:48:27 +02:00
Johannes Zellner ce5c1db2d3 udev: UDevHelper becomes DeviceDiscovery
Rename QUDeviceHelper to QDeviceDiscovery and add a static device
discovery fallback in case we dont have udev. The fallback so far only
scans /dev/input/event* and /dev/dri/card* at startup and detects device
nodes only by device path.

Change-Id: I7a423910b30ae16a10d8f1f47b86c6b4d2c2ec36
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
2012-05-24 07:15:02 +02:00
Pekka Vuorela 7dd64fd2bb Initialize member variable in QXcbWindow
Change-Id: Iddf3f70ae2cb7be0703c0084da87e41412ad1d06
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-24 07:14:58 +02:00
Martin Petersson 26583f3777 QNetworkReplyHttpImpl: code cleanup
When the QNetworkAccessHttpBackend was merged into the
QNetworkReplyHttpImpl there was some code and comments comming from the
backend that was left in the new class. This removes some of these
leftovers from the QNetworkAccessHttpBackend.

Change-Id: Ifa118160438e2740fb9bf52907066096d8de9ae7
Reviewed-by: Markus Goetz <markus@woboq.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-24 07:14:54 +02:00
Friedemann Kleint 0a290318fb Fix compiler warnings in QtGui, QtWidgets.
- Unused variables.
- Deprecated headers.

Change-Id: I8fb5d5f2cc02aca145a8c857358527592b7491ec
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-23 23:55:43 +02:00
Friedemann Kleint 47e8352a00 QEGLPlatformContext: Add accessors for display and config.
Change-Id: I4a7c033691ed83698ac161c034f795f1ac3b0ade
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-05-23 23:55:43 +02:00
John Layt f3ad57e90e QtPrintSupport - Fix Mac printerName() use
Mac in Qt4 and 5 has been using the PMPrinter Name for the QPrinter
and QPrinterInfo printerName() value, but this is incorrect. This
is in fact the CUPS Description field, is in human readable form
and is not guaranteed to be unique. The CUPS Name field is the
PMPrinter ID value and should be used as the unique identifier
when accessing printers. This has worked up to now due to an
undocumented feature in the OSX api that accepted the Name when
the ID should be used.

Changing all uses of PMPrinterGetName to PMPrinterGetID fixes this
and allows the QPrinterInfo test of names to pass without
munging the names.

Change-Id: I25322aa1a924bed9f67f4ad5e208274c8b700e17
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2012-05-23 23:55:43 +02:00
Kevin Ottens e9d20b1951 QNX: Post orientation change events
Change-Id: I4dc13e5388e065c2425641c7efabcdee8f94800e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-23 23:55:43 +02:00
Girish Ramakrishnan 375b464db4 remove exec-bit from qplatformmenu.h file
The file was added with 'x' bit incorrectly in 1f55af8.
It was then changed to the correct mode in 6af65edcb.
But it got back the 'x' bit again in 98dbaec.

Change-Id: I55f267935c17e133ad593f027f795a9ec381fcaa
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-23 20:18:46 +02:00
Laszlo Agocs cd8ff4fa8f Fix wrong local positions in mouse events when no tlw was given
Calling handleMouseEvent() with w == 0 implies that the local position
is bogus and instead it should be calculated from the global position
once the target window is known.

Change-Id: If173d0570f6dcc8b7bc5d6f21fa1f69d06d9d702
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-05-23 19:22:34 +02:00
aavit b5a11a7be5 Allow QHash randomization to be disabled by environment variable
The new randomization of QHash is enabled by default. There may be cases
where you need deterministic behavior, e.g. for debugging or regression
testing. This patch disables randomization if QT_HASH_SEED is defined.

Change-Id: Idfad55ea7aba830add0a36334f0f763c62fdce13
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-23 14:21:47 +02:00
Shane Kearns 6a7dc02160 Fix deprecated API warning
Check for blacklisting in case the application has blacklisted
a cert before windows has (currently unlikely as the blacklist is
hardcoded in Qt)
Don't need to check for time validity because that's already checked
by the windows API.
Change-Id: I34da5c4a8a0f8851b9b7668fc421a93c360c8588
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-05-23 14:18:34 +02:00
Mitch Curtis bbafdf5812 Clarified code documentation for QFileInfo::operator==.
QTBUG-4031 mentions that canonicalFilePath() will cause the operator
to return true for the following comparison because it returns an
empty string if the path is empty or non-existant:

QFileInfo("") == QFileInfo("non_existant_file")

I'm assuming that the reason for not checking whether one of the files
exist is based on performance, and so I've updated the comments for the
operator to explicitly state that the result of the above comparison is
undefined.

Task-number: QTBUG-4031
Change-Id: I9b34f189f1628f9362b3604445706abd2342fd6e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-23 14:18:34 +02:00
Mitch Curtis 318d39ccaf Removed size comparison in QFileInfo::operator==.
QTBUG-4031 and QTBUG-4036 mention that QFileInfo::operator==
includes a size() comparison as part of its equality check. I've
removed this check as it doesn't seem to be integral to the comparison.

Task-number: QTBUG-4031
Task-number: QTBUG-4036
Change-Id: I5663ec0e1ac8f70e0a156357c284696779ecd380
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-23 14:18:34 +02:00
Jiang Jiang d74a246cc9 Fix font rendering gamma correction on Mac
It needs a 2.0 gamma (as in Qt 4) in platform plugin styleHint.

Change-Id: I2286532c607554c41baee4fa348cd7899bf010e1
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-23 14:18:34 +02:00
David Faure f06b629bfb Fix handling of invalid urls in QDataStream << QUrl
When given an invalid url, the output shouldn't be a valid url.

KDE's kurltest detected this regression compared to Qt4, where
all invalid urls were empty in toString() -- but we don't want that,
to give as much feedback as possible to the user.

Change-Id: Ie53e6e1c0a1d4bb9e12b820220dfb7e2f7753959
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-23 14:18:34 +02:00
Jocelyn Turcotte c283d78a1d Add a missing pointer initializer.
This causes a crash when using QGraphicsWebView with a GL viewport.

Change-Id: I64bdcfe8cd4d8ed7794188c1df08f9028479f8d4
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-23 14:18:34 +02:00
Bradley T. Hughes 19a6c50061 Cocoa: Handle keyboard dead keys correctly
Some keyboard layouts have physical dead keys (like the ¨ key on a
Norwegian keyboard). These do not send any text, so we should not use
[NSString characterAtIndex:0] if the string is empty. When encountering
an empty [NSEvent character] string, use Qt::Key_unknown and
QChar::ReplacementCharacter.

Change-Id: I7281aa9ea6005341c0dcfa5900bfe601e4eac6a9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-23 14:18:34 +02:00
Bradley T. Hughes 321a549510 Cocoa: Avoid UTF-16 to UTF-8 to UTF-16 conversion in key handling
When coverting NSEvent characters to a QString, use
QCFString::toQString(), which copies the UTF-16 characters out of the
NSString into a QString (instead of converting to UTF-8 and back again
on each key press).

Change-Id: I78f7c46e75283b7b51c762fd7f22e351ac068072
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-23 14:18:34 +02:00
Bradley T. Hughes 2d05d3bd28 Cocoa: don't send input method events for basic text input
When receiving keyDown events on the Mac, we pass them to NSView's
interpretKeyEvents method, which ends up calling our insertText method.
This means we end up sending input method events for most text input
(instead of normal key events). While this is not wrong, it is
unexpected, and different form how Qt 4 works.

Change insertText to do nothing if no preedit string has been set when
handling a key event. For normal text input that does not need input
method handling, we can simply return and let handleKeyEvent send key
events instead.

Our insertText implementation has to take care to not ignore calls from
outside key event processing (such as the user input characters with the
Character Viewer). As a result m_keyEventsAccepted changes to
m_sendKeyEvent to let insertText know whether or not insertText was
called via handleKeyEvent.

Change-Id: Ie8c2eb67f6a8438f08442f9ff48f2027a041ca23
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-23 14:18:34 +02:00
Jiang Jiang b4aa5d970d Fix surrogate pair handling in QCoreTextFontEngine
The number of glyphs returned should take surrogate pairs into account.
The glyphs array and advances array as well. This follows the approach
in QFontEngineFT in general.

Change-Id: Ic53faa5e38c2219b987d76aec434558dad92015a
Reviewed-by: Zeno Albisser <zeno.albisser@nokia.com>
2012-05-23 14:18:34 +02:00
Shane Kearns 9149aebac9 Fix compile warnings with MSVC
Calling a static function non statically causes an unused variable
warning for the optimised away d pointer.
sscanf causes an insecure functions warning. (Even though it was used
safely in this case)

Change-Id: I07700e2155284ef3ebbe7d604ed59b2e61ee7f95
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-23 14:18:34 +02:00
Sean Harmer 856ca268f8 QNX: Implementing QPlatformScreen::refreshRate() for QNX QPA
Change-Id: I777ebd2c1ca51d244de714eb5b235d931df044d6
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-23 10:52:11 +02:00
David Faure e0cf8cf5f1 Fix crash when using QCoreApplication::applicationName in a global static
e.g. when a global-static configuration object uses QTemporaryFile
for saving to disk (via QSaveFile).

Change-Id: I532aec6de7411e10e4461d5a4ac60686e2f482df
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-23 10:13:43 +02:00
Morten Johan Sorvig 98dbaecf7f Minor QPlatformMenu API cleanup.
Make the QPlatformMenu* classes abstract with
pure virtual functions. Delete qplatformmenu_qpa.cpp.
QtGui no longer has to carry the empty implementations.

Change the inheritance tree - Make QPlatformMenu
and QPlatformMenuBar inherit QObject instead of
QMenuItem. Add (now) missing virtual functions to
QPlatformMenu. The effect of this change is to 
reduce the number of pure virtuals the platform 
has to implement.

Change QPlatformMenuBar::syncMenu to take a
QPlatformMenu pointer instead of a QPlatformMenuItem*
pointer.

Fix a couple of header/unused variable
compiler warnings.

Change-Id: I77450e40c6aae26f3e1aca204603acebd242c036
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-05-23 10:02:11 +02:00
Debao Zhang 62fafaf16a Don't use deprecated QPixmap::grabWindow(),grabWidget().
Change-Id: I5d0ffb17d60ad53822d537b9c736307486823d45
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-23 09:44:21 +02:00
Sean Harmer 03392e1edf QNX: Register for navigator events before any window creation
This prevents a possible race condition in which the nvaigator service
notices that we have created a window and starts sending us messages
possibly before we have registered with bps for navigator messages.

This resulted in applications sometimes missing navigator messages at
startup.

Change-Id: I362fd782d7798990bc196f23e07b58293b13275d
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-23 03:15:18 +02:00
Tasuku Suzuki 3a14f0301c Fix QtGui compilation for -qconfig large
Change-Id: I118a9b40c9eef821b326ee9dabbb9765d65277b7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-23 01:11:34 +02:00
Tasuku Suzuki 4d238a5684 move inputMethodQuery() to public in subclasses of QWidget
QWidget::inputMethodQuery() is public.

Change-Id: I6d290e911854937f32fa6984329b56571feb6872
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
2012-05-23 01:11:30 +02:00
Tasuku Suzuki 8b78b3a620 Fixed QLineEdit::inputMethodQuery() for Qt::ImHints
It should return QWidget::inputMethodHints() instead of QVariant()

Change-Id: I01f5de8f2087ac67d125f54f08abed523653eb92
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
2012-05-23 01:11:27 +02:00
Friedemann Kleint 6ee1c645ac QtNetwork: Fix mingw-warnings.
Constructor order, use Q_OS_WIN.

Change-Id: Ie45aa9c3aed45437feb66d8ddcfb22530c441435
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-23 01:04:40 +02:00
Tasuku Suzuki d3e3404d57 Fix QtWidgets compilation for -qconfig large
Change-Id: I90ea78944546e93debb41c901d9f128a7b29b1f4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-23 01:03:30 +02:00
Holger Hans Peter Freyther 30cf695e7a bcm97425: Enable the egl mode directfb QPA platform plugin
The directfb_egl mode of the directfb QPA platform plugin was never
enabled. Modify directfb.pro to check for directfb_egl inside the
QT_CONFIG variable. This issue was introduced when moving the config
from the CONFIG variable to QT_CONFIG.

Change-Id: Ia86ec48475ac037d05282e69ee6324969054e186
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-22 20:56:38 +02:00
Girish Ramakrishnan 6af65edcb6 qpa api: replace QPA headers with something more benign
The current 'we mean it' headers are considered too aggressive for QPA.

Replaced using the following script.
for file in `find -type f -name "qplatform*.h" -and -not -name "*_p.h"`; do
    LINE_NO_1=`grep -n -m 1 "W A R N I N G" $file | awk -F ':' '{print $1}'`
    LINE_NO_2=`grep -n -m 1 "We mean it." $file | awk -F ':' '{print $1}'`
    if [ -z "$LINE_NO_1" ]; then
        LINE_NO_1=`grep -n -m 1 "#define " $file | awk -F ':' '{print $1}'`
        LINE_NO_2=$((1+$LINE_NO_1))
    else
        LINE_NO_1=$(($LINE_NO_1-2))
        LINE_NO_2=$(($LINE_NO_2+2))
    fi
    head -n $LINE_NO_1 $file > $file.new
    cat >> $file.new <<EOF
//
//  W A R N I N G
//  -------------
//
// This file is part of the QPA API and is not meant to be used
// in applications. Usage of this API may make your code
// source and binary incompatible with future versions of Qt.
//
EOF
    tail -n +$LINE_NO_2 $file >> $file.new
    mv $file.new $file
done

Change-Id: I8a974c9bf8942647b7ad950afb372c1f738aa725
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-22 20:56:38 +02:00
Thiago Macieira ec2245158f Remove -Winline from the build of SSE2/AVX/etc. sources
If anything, those are development flags. Normal users of Qt should not
be bothered by the lengthy output this flag produces

Change-Id: Iaa629d3f01ddc88e0775f62ffbb96fa734e3247f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-22 20:56:38 +02:00
Thiago Macieira 6499701bd6 Make sure we are using the proper -mXXX options
If $(CXXFLAGS) contains -m options (-march or -msse2, for example),
those would override the options we had set. It's amazing no one has run
into this problem before.

Change-Id: Idc765cb2dafd1381357da15593b2fe94a30e0857
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-22 20:56:38 +02:00
Thiago Macieira 9b94570fdf Add AVX support for the painting and image code.
There are no new routines, this is just the old SSE2 and SSSE3 code
compiled in AVX mode, meaning the instructions use the VEX prefix.

Change-Id: I79a8bfaf6b30a050618db899f5a3bbc220449f0b
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-22 20:56:38 +02:00
Jan-Arve Saether 018cb899d4 Replace (un)checkAction with toggleAction (3/3)
Remove all references to (un)checkAction.
This commit finalizes the intended change.

Change-Id: I79d3b30b5c3d9fbe276c2c94fed5971bb21d6c02
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-22 20:56:38 +02:00
Konstantin Ritt 25f40b2de2 replace remaining "const QChar &" with "QChar"
QChar is actually a ushort and passing it via const-ref is suboptimal

Change-Id: Ib806b90397de6a816142ed130a22c0fe10a85d79
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-22 20:56:38 +02:00
Tasuku Suzuki 7e6cd359af Remove STL from qfeatures.txt
QT_NO_STL is now no longer available

Change-Id: I645a45e4b47539c936ef458b5c616c02f7097ca4
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-22 20:56:38 +02:00
Thiago Macieira 2c9228973f Deprecate {QString,QStringRef,QChar}::{to,from}Ascii
Make them call exactly their Latin 1 counterparts.

For the QString functions that take a single char, also use fromAscii
directly.

Change-Id: I87645aba6ab9cde34c1df3cbc3a979fbd9e91f9d
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-22 20:56:38 +02:00
Thiago Macieira 1ca791faf5 Add the QUrl::FullyDecoded flag to the component formatting
This allows the QUrl component getters to return fully decoded data,
like they did in Qt 4. This is necessary for some use-cases where the
component like the user name, password or path are used outside the
context of a URL. In those contexts, the percent-encoded data makes no
sense, and the loss of data of what could be represented in a URL is
acceptable.

Also take the opportunity to expand the documentation of those getter
methods, explaining what the options argument does.

Discussed-on: http://lists.qt-project.org/pipermail/development/2012-May/003811.html
Change-Id: I89f743cde78c02f169c88314bff0768714341419
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-22 20:56:38 +02:00
Thiago Macieira 53d0624403 Add QUrl::ParsingMode to the component setters in QUrl
This allows one to instruct QUrl to ignore the percent-encodings and
interpret the data exactly as provided. This is useful in certain
use-cases where the data comes from a non-URL context.

The strict-mode checking of the components is not implemented
yet. Currently, the behaviour is equal to that of TolerantMode.

Discussed-on: http://lists.qt-project.org/pipermail/development/2012-May/003811.html
Change-Id: Ia5abe045a8ce7f9b50cbce3b5a7e3735e068d03a
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-22 20:56:38 +02:00
Thiago Macieira 239dd9fef1 Add the QUrl::DecodedMode parsing mode
This mode will be used to support parsing of URL components in their
fully-decoded forms. It is not permitted when parsing the full URL, as
that would be ambiguous.

Change-Id: Id8d39a740845ae8d1efef894085280b322e39c0a
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-22 20:56:38 +02:00
Thiago Macieira f0ec001242 Port away from QUrl::MostDecoded
Since we're about to introduce QUrl::FullyDecoded, this
QUrl::MostDecoded value would be confusing. Replace its uses with what
was intended at the point in question.

Change-Id: Iefd87bc33d37bace507c5cb0f206fa902e08e2df
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-22 20:56:38 +02:00
Thiago Macieira 6049f67eb4 Fix compilation on Linux: link to zlib in the bootstrapped tools.
That "else:" with no first condition is probably throwing qmake
off. The condition was removed in
ad2930f825.

Change-Id: I6af36e3f673a65a6152fb467162c25afc13b4196
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-05-22 20:56:38 +02:00
Laszlo Agocs 0390b02a7f Add mouse event internal members needed by declarative
In order to remove QQuickMouseEventEx we have to be able to store
touch-related data, like capabilities and velocity, also in mouse
events. However they should not be exposed through the public API in
any way. (at least not in 5.0)

Change-Id: I7774b9ea00074950208559463249fbdcaeeaefbf
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-22 20:56:38 +02:00
Jan-Arve Saether c47f220f1a Replace (un)checkAction with toggleAction (1/3)
Add toggleAction to QAccessibleActionInterface.

This change is split into separate modules, thus we have to be careful
of not breaking qtdeclarative, which currently depends (un)checkAction.
Therefore we apply the patches in this order:
1. Add toggleAction to QAccessibleActionInterface (in qtbase)
2. Replace all references to (un)checkAction with toggleAction
   (in qtdeclarative)
3. Remove all references to (un)checkAction (in qtbase)

Change-Id: Ib00fee3139eeabbece97295bc3d713ab119c92e6
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-22 09:54:18 +02:00
Konstantin Ritt a40e0f6c7a QTextEngine: minor clean-up
Change-Id: I7e21d5cf0130b412f8053b35abdd3420ed006c1c
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-05-22 09:17:34 +02:00
Bradley T. Hughes 9428481bca QWidgetWindow: handle ShortcutOverride events
ShortcutOverride events sent to the QWindow should be handled by the
QWidget.

Change-Id: Icec504db1066871b02dec639e4c1c624b0afeaa8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-22 09:04:57 +02:00
Holger Hans Peter Freyther bb2ea689ab directfb: Handle focus, close and geometry change events
Report the focus, close and geometry to Qt.

Change-Id: I059fef5aba5f0e5c0654ba11b0615bc0f5ac50aa
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-22 05:09:07 +02:00
Holger Hans Peter Freyther 6956ce0912 directfb: Expose the window when it becomes visible
This change is required to make DirectFB windows appear on the
screen again.

Change-Id: Ib00d3fa597bc23879b5646bddd6cbb5c627b0edf
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-22 05:09:07 +02:00
Donald Carr 707fc2bb00 Clean up Raspberry Pi spec
Introduce platform libs hook to handle/allow device specific initialization and the associated symbol resolution

Change-Id: I098b07dcb581390d369d9165c6cedc7ace1e088a
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-22 05:09:04 +02:00
Shane Kearns 63e9962002 Prevent infinite loops by handling all ZLIB errors
In case the HTTP server returns more data after the end of the
compressed data stream, inflate will return Z_STREAM_END, which
is a normal informative error code.
This was handled in 4.8, but lost in 5.0.
Also catch all ZLIB negative error codes rather than only three.

Task-number: QTBUG-25823
Change-Id: Ibdbbd3dd6fa81a0880c477cb080ad35f2d7116f0
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2012-05-21 16:03:41 +02:00
Friedemann Kleint 41b18267a1 Windows/MinGW: Fix warnings about missing enumeration values.
Change-Id: I8fa6456e517d670a4d463fdc589cb32e4f79843c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-21 16:02:06 +02:00
Sean Harmer 0b97f55530 QNX: Take orientation into account when reporting physical size
Previously landscape orientation was assumed in the QQnxScreen ctor. We
now calculate the initial physical dimensions correctly.

Change-Id: I6c434eaba1f931c769f343671fb80052287b51e5
Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-21 16:02:06 +02:00
Sean Harmer 9be17aa468 QNX: Implement the QPlatformScreen::orientation() function
Also removed some invalid TODO comments.

Change-Id: I470a9a6538ce10a3a14df14faa641d7be7f18a74
Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-21 16:02:06 +02:00
Johannes Zellner 39c5bad574 input: Synchronize multiple mice handled through evdevmouse plugin
EvdevMouseManager now receives relative pointer coordinates from each
connected mouse and is then responsible for clamping and forwarding them
to the QWindowSystemInterface. This avoids jumping cursors when multiple
pointer devices are connected. This does not change behavior together
with devices handled through the evdevtouch plugin.

Change-Id: I7feb358f68c3b3ebd138116224b4747c88c6761f
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-21 16:02:06 +02:00
Friedemann Kleint 33fb856a6d QCssParser: Remove temporary structure storing QIcon data.
This is no longer needed after QIcon moved to QtGui. It is a
revert of 5a0eb4e768, compile
fixes and uncommenting of commented-out code.

Change-Id: I6cfe6d2582b3e37161862a28e55cc3b010e18a8b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-05-21 16:02:06 +02:00
Friedemann Kleint 061968d082 QWindowsBackingStore: Implement scroll.
Similar to XCB.

Task-number: QTBUG-24299
Task-number: QTBUG-24296 (partially fixed)

Change-Id: I4c9d813d9645f957f2caad0c4e395ce0d3d222cc
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-21 16:02:06 +02:00
Thiago Macieira 09c90c9fc3 Make QStringLiteral always choke on non-literals
The fallback implementation of QStringLiteral did not (up to now)
enforce the need to use a literal. So it was possible to write:

  const char *foo = "Hello";
  QString s = QStringLiteral(foo);

Which would do the wrong thing and create s == "Hel" on 32-bit
platforms (sizeof(foo) == 4) or, wrose, s == "Hello\0XY" on 64-bit
platforms (sizeof(foo) == 8, X and Y are garbage).

This change enforces the need for a literal by producing errors on the
above cases, as well as when foo is a char array variable.

GCC:
error: expected ‘)’ before ‘foo’

Clang (abbreviated):
error: expected ')'
namespace X { QString x() { const char foo[42] = "Hello"; return QStringLiteral(foo); } }
                                                                                ^
note: to match this '('
                                              ^

ICC:
error: expected a ")"
  namespace X { QString x() { const char foo[42] = "Hello"; return QStringLiteral(foo); } }
                                                                   ^

The first C++11 error currently is:
error: expected primary-expression before ‘enum’  (GCC)
error: expected a ")"   (ICC)

Change-Id: I317173421dbd7404987601230456471c93b122ed
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-05-21 16:02:06 +02:00
Tasuku Suzuki 5486091a94 Fix QtDBus compilation for -qconfig large
Change-Id: I016dd3cdab10136af04bd10605efe0a665490d8e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-21 16:02:06 +02:00
Laszlo Agocs 40a96e136c Remove a line of garbage
Change-Id: Iae931b4a944abe29097dc30f97099e9aeaa9387c
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-05-21 13:00:53 +02:00
Friedemann Kleint 81c53721d0 QRegularExpression: Fix warnings about deprecated tr()-function.
Change-Id: I2325bcab9bb80e5507f53887b282a859d0fdb58c
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-21 13:00:38 +02:00
Martin Petersson bd86c4d089 QNetworkReplyHttpImplPrivate::migrateBackend
If the QNetworkSession change while we are handling a QNetworkRequest
we should try to resume this request if possible. In that case we set
the offset for where to continue the request. Abort the operation
in the http thread. And then post the request again. The offset will
then be set using the range header in postRequest() so that the
operation is resumed.

Task-number: QTBUG-25762
Change-Id: Ib7946905bcc633f8cc3dd7a7ad1ae74579e6bf56
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-21 13:00:34 +02:00
Morten Johan Sorvig f5641c503b Cocoa: Fix memory leak in the accessibility code.
QCocoaAccessibleElement takes ownership of the
QAccessibleinterface pointer. Delete it in dealloc().

Change-Id: I45a5540b9cf564c639bfa119ff4882008d63fd96
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-05-21 13:00:29 +02:00
Jonas M. Gastal 2c790b251d Fallback to IPv4 when IPv6 is not present.
In tests when IPv6 is not present QSKIP IPv6 tests.
Task-number: QTBUG-23660
Change-Id: I02abc7322d765a93cbf661e53c76257f03dca73e
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-21 13:00:27 +02:00
Tasuku Suzuki 63ed8bf07e Fix QtNetwork compilation for -qconfig large
Disables two variables completely in QNetworkProxy

Change-Id: I76483310b37032c44a25e05fb879de1e9d5282f5
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-21 13:00:23 +02:00
Girish Ramakrishnan ca86d1e8c3 Don't create QBackingStore for QDesktopWidget
QDesktopWidget doesn't need a backing store since it
cannot be painted on. Since the QDesktopWidget is
always created, this change avoids any resources
created in the QPlatformBackingStore contructor.

Change-Id: I33679c98363f9c0d7ea64d9c5e27327679ad92a0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-21 13:00:20 +02:00
Friedemann Kleint 53a1e74009 Fix MSVC warnings about struct/class mismatch for dynamic metaobjects.
Change-Id: I263f25161fa1861ca5e7da9440214fd3ba6e944e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-21 12:58:54 +02:00
Leonard Lee 24395a02c9 Elaborate QUrl::toString() documentation.
Change-Id: If2d726e7b4e8d408312fcb138c3dd146926bfd9a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-21 12:58:47 +02:00
Jan-Arve Saether a55bc3da20 Get rid of ambiguous overload for xgetbv.
The patch that broke this was assuming the signature of xgetbv was
_xgetbv(int). This lead to that there were no exact match for the
function resolver, thus the ambiguity.

Apparently, the signature of _xgetbv is _xgetbv(unsigned int).
Changing the static xgetbv to uint makes the match exact, thus no more
ambiguity.

Change-Id: I8db95e00a9fef264d7a1f84d02bb929db84e6e5a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
2012-05-21 12:54:48 +02:00
Martin Smith c2ffcfbf13 qdoc: Write <qmlinheritedby> before <qmlinstantiates>
The order of these two elements has been switched
in DITA XML files for QML types. <qmlinheritedby>
now comes before <qmlinstantiates>.

Change-Id: I1a041c087351734d20629336bbc1c136e04d345a
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-21 09:16:20 +02:00
Johannes Zellner 278e9cb65d Input: evdevmouse plugin cleanup
Remove unused code and variables from the evdevmouse plugin.

Change-Id: Id7881bc726b5ffb2fa452e4d4dd082fe70f7ed28
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-21 03:10:49 +02:00
Martin Jones 11fa02c5cd Move rarely used QObjectPrivate data to extraData
Move runningTimers, eventFilters and objectName data members to
ExtraData.  Saves 12 bytes per QObject for 95% of use cases
(QObjectPrivate goes from 76B -> 64B).

Change-Id: I5648c89f65a7be3ea51bd703ee8a9dcff6222c3c
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-21 03:10:45 +02:00
Richard Moore 0b8021f5cb Change QSslCertificate::toText() to return a QString.
A couple of people reviewing the toText() method (which is new in 5.0)
have said that since the string returned is human readable it should
be a QString not a QByteArray. This change follows their advice.

Change-Id: Ibade9a24870805f7fbe2d299abeb9c6e964f0cf4
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-21 03:10:43 +02:00
James Turner b8246f08e4 Cocoa implementation of QPA menu interface.
Implement the QPA platform menu interface for Cocoa,
including native menubar support and merging with the
predefined menus created from the bundled .nib. Cleanup
code previously used to maintain the menus, and add
a manual test of the menus code.

Change-Id: Ia99267ddb6485e18e05c540eb32c5aee6cbb85db
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-19 10:18:21 +02:00
James Turner 1f55af8e54 QPA menu abstraction, originally based on Morten's work
Create a QPA abstraction for native menus, derived from the
Cocoa support in 4.8, but with the expectation to support
other platforms too. Update the QtWidget QMenu and QMenuBar
code to maintain their QPA equivalents if they exist.

Change-Id: Id605de3da8811dc832bf48b35f9107778ad320ff
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-19 01:45:04 +02:00
Tasuku Suzuki 864e996384 Fix QtNetwork compilation for -qconfig large
Change-Id: I231272e59101e9492a7a1edbacab165b96927877
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-19 01:45:04 +02:00
Sean Harmer b16a307dbc Adding QPlatformTheme support for Blackberry devices.
Starting off simple with fonts that follow the Playbook guidelines.

Change-Id: If772f9a20c5e7566543be6bba47b49cdf3bf1524
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-19 01:45:04 +02:00
Sean Harmer b09d601261 QNX: Special case z-ordering of the QDesktopWidget window
The assumption that window creation order implies correct initial
z-ordering is broken when dealing with certain window types. In this
commit we special case the QDesktopWidget's window which maybe created
after normal application windows yet still need to be layered below
them.

Without this fix we may accidentaly activate the Desktop window when the
blackberry navigator service sends an event to activate the window
group. That results in broken focus handling.

Change-Id: I42dfde2efb4a0011e37e7bd2e7c5442590606a24
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-19 01:45:04 +02:00
Jan-Arve Saether 55d7e5f18b Compile fix: Do not rely on __cpuidex() for msvc2008
Since its hard to detect if __cpuidex() is actually available at
compile time, we'll add a function overload that will be chosen if the
intrinsic __cpuidex() is not available.

Note that the QtXgetbvHack that was used for _xgetbv did not really
work (MS compiler will bail out because of ambiguous overloads if the
intrinsic _xgetbv existed).

Therefore, we apply the same workaround for _xgetbv.

Change-Id: Iee3bf8bc6352ba0861b05d779f1f001d4eb013ff
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-19 01:45:04 +02:00
Giuseppe D'Angelo 281771ee20 QRegExp: fix usage of uninitialized values
A (probable) typo was causing the code dealing with anchors
to use uninitialized values. This used to work by chance, but was
indeed detected by Valgrind f.i. when running tst_qregexp --
the indexIn test on anc11 data reported:

    ==3015== Conditional jump or move depends on uninitialised value(s)
    ==3015==    at 0x514B4EA: PeppeQt::QRegExpMatchState::testAnchor(int, int, int const*) (qregexp.cpp:1813)
    [...]
    ==3015==  Uninitialised value was created by a stack allocation
    ==3015==    at 0x514B3EB: PeppeQt::QRegExpMatchState::testAnchor(int, int, int const*) (qregexp.cpp:1803)

Fixing the code also makes the aforementioned test to succeed.

Change-Id: If7b3e518c1bbfcf12573d2637c33ef2eca27c4d5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-19 01:45:04 +02:00
Lars Knoll 7968543bb0 Don't use the deprecated translate() method anymore
The Encoding argument of QCoreApplication::translate()
is deprecated and source code is always assumed to be
encoded in Utf8. Simply remove the encoding argument
from the generated .ui.h files.

Change-Id: If6c40f6df13abd45a0303c863077972c3d1fb685
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-18 22:38:55 +02:00
Olivier Goffart 8df298665a Move QIcon metatype handlers back to QtGui
QIcon has been moved back from QWidget to QtGui, so the QIcon QVariant
and QMetaType handler can now be moved back to QtGui.
Also we can give back QIcon its old number, allowing to get rid of some
compatibility hack when unstreaming QVariant

Change-Id: I439d5c2987c06ecd619f394407850f678164afb8
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-05-18 21:42:58 +02:00
Olivier Goffart 6c06e14a49 QIcon: move back to QtGui
-  Move the files and tests
git mv src/widgets/kernel/qicon* qrc/gui/image/
git mv tests/auto/widgets/kernel/qicon/ tests/auto/gui/image/

 - update the include of QIcon
git grep -O"sed -i s,QtWidgets/qicon,QtGui/qicon," "QtWidgets/qicon"
git grep -O"sed -i s,QtWidgets/QIcon,QtGui/QIcon," "QtWidgets/QIcon"

 - Adapt QIcon \ingroup documentation
sed -i s/QtWidgets/QtGui/ src/gui/images/qicon*

 - Adapt export macro
sed -i s/Q_WIDGETS_EXPORT/Q_GUI_EXPORT/g src/gui/image/qicon*

 - Update .pri and .pro files

 - Remove the use of QStyle::alignedRect by copying its content (and
   adapt slightly

 - Use QGuiApplication::palette() instead of QApplication::palette()

 - Add a hook in QGuiApplicationPrivate to call the
   QStyle::generatedIconPixmap() from QtWidgets

Another commit follows to adjust QMetaType::Icon and move the QVariant
and QMetaType icon handler back in QtGui

Change-Id: I1b63759f892ebc02dfc30f41bb6e76e0b7451182
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-18 21:42:38 +02:00
Lars Knoll 83645377e9 Make QCoreApp::translate and related methods use UTF-8
Deprecate the Encoding enum in QCoreApplication and the
trUtf8() methods. Qt now assumes that source code is
always encoded in UTF-8 to be consistent with QString.

Change-Id: Ic62d6947046dee9be0cbd37f2d2f6976b9e572a7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-18 21:38:35 +02:00
Jędrzej Nowacki 5159379c10 Use QMetaType API directly instead of going through QVariant.
Change-Id: I418ccca7cb6e2aa1ba678e24dd36b39ebecadcbe
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-18 20:25:11 +02:00
Miikka Heikkinen 5a110517bb Fix backingstore crash with QAxWidgets
The crash was caused by the fact that backingStore parameter is always
null (there seems to be no call in codebase that uses anything else but
the default values for this function).
Using "store" member variable instead of "backingStore" parameter gets
rid of the crash, and it is how it was in Qt4 - probably the bug crept
in when the paremeter and member variables were renamed in Qt5.

Task-number: QTBUG-25803
Change-Id: I4b1ccf540fddd6baa1dffa7f8165272b54caf238
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-18 15:33:43 +02:00
Girish Ramakrishnan dd699d5ea5 eglfs: hooks can never be null
e60ca0de60 reworked the hooks design.
hooks is initialized with a stub pointer if we don't have a platform
hook.

Change-Id: Ia60facfebd9e4d9c08d237c6d49793efb598130f
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-18 15:28:32 +02:00
Girish Ramakrishnan 5672cbf131 eglfs: Add support for cursor hotspots
Cursor information is now loaded from cursor.json.

Done-with: Johannes Zellner

Change-Id: I093cf8e944d495269973e777d0b444ae4ececee1
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-18 15:28:09 +02:00
Martin Smith f3a0422acb qdoc: Report multiple QML property docss
Documentation authors sometimes make the mistake of
documenting a QML property more than once. Here, we
refer to cases where a C++ class is documented in a
.cpp file as a QML type. In this context one QML
property might be documented in two qdoc comments,
because the author of the second comment does not
search the file for an existing qdoc comment for
the property before adding the second one. When DITA
XML is generated for this case, the QML type element
will contain two <qmlproperty> elements with identical
id attributes, which is invalid XML. id attributes
must be unique within an XML document.

qdoc now reports an error for this case, indicating
that the QMLN property has been documented multiple
times.

This problem can't occur when documenting QML in a
.qml file because in .qml files, each comment must
appear directly above the thing it applies to.

Change-Id: I3a22650a58371fbda2ac7a5429fc036f41750423
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-05-18 15:22:39 +02:00
Tasuku Suzuki bdc28e3580 Merge two simple version of translate() functions for QT_NO_TRANSLATION
the commit 53a420a4d1 merged translate()
functions. The simple versions need to be merged too.

Change-Id: Ie873483beb8ed0b911ae0568e97b427f4c6b74e3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-18 15:22:22 +02:00
Shane Kearns dbcbd4708b Make the windows socket handle non inheritable
This is for behaviour consistency with Qt on unix, as well as the
socket close issues described in the task.

Task-number: QTBUG-4465
Change-Id: Ida95650d8a9bd7b5bc3d3926d22e20a6d7eeb30b
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-18 11:08:06 +02:00
Jiang Jiang a56ee60791 Fix FreeType glyph caching for high resolution
For high resolution or extremely large font sizes, the advance
cached here is likely to overflow, since FreeType returns 26.6
fixed point value and we only take signed char here for advance.

In those cases we should skip caching because there won't be
that many big glyphs after all.

Also move the metrics caching block a bit down to take glyph
embolden and oblique into account.

As a result we also don't need to increase the linearAdvance
size because any linearAdvance less than 128 should fit in
the old 10.6 fixed format.

Change-Id: Ic4920ada49954ce1e0a8673c9f33f30e385e3046
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-05-18 10:39:49 +02:00
Aaron Kennedy a605d25ae2 QMetaObject::activate() overload that doesn't require a metaobject
This allows QML to emit signals without having to built lazily created
metaobjects.

Change-Id: If8068fb3cb35d79dc8f3ef79253d9c2eb7c93205
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
2012-05-18 10:37:41 +02:00
Aaron Kennedy a5972f8ec3 Avoid qobject_cast
This is slightly faster, and also avoids accessing the object's meta
object that would cause any lazily created meta objects from being built.

Change-Id: I0a78e09511c120bdbe707a1efc91ba480ab7680c
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
2012-05-18 10:37:33 +02:00
Aaron Kennedy 276a86592a Encapsulate the dynamic meta object pointer
This change allows us to delay creating the actual meta object
until it is actually required.

Change-Id: I1c4a4226bd82fa606b206dd60322f49b49c32463
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-18 10:36:42 +02:00
Thiago Macieira 6d7b003ac8 Clean up some QT_HAVE_xxx macros in qcompilerdetection.h
We no longer have code doing MMX or 3dNow! on Qt 5, so nothing defines
those macros. If nothing defines them, we don't need to undef
them. Note that the SSE case is a mislabel: the old "SSE" code on Qt 4
wasn't real SSE, it was MMX with some instructions added at the same
time as SSE was added. It's MMX that Windows 64 doesn't support.

As for QT_HAVE_ARMV6, this macro is replaced by the sub-arch detection
in qprocessordetection.h.

Change-Id: Ic3b00e1533e6b4cea32ba7824233de0a5c0fb32b
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-18 10:33:56 +02:00
Rohan McGovern f12ef7d0b1 testlib: added missing newline to error message
Change-Id: I8b205da4d225d99f8505a46d8d78ad302cb2b9e3
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
2012-05-17 23:52:17 +02:00
Konstantin Ritt 8babea35dd add some more widely-used QChar::SpecialCharacter enum values
Change-Id: Iad58f4366ba6cd6da29a268c56c8a4bc4cf0329c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-17 05:14:36 +02:00
Girish Ramakrishnan 601a707f66 eglfs: Allow cursor atlas to be specified using an env variable
The atlas it assumed to have 8 cursors per row. All cursors have
to be square.

Change-Id: I7ffbad4662be450b146f84032bb26187894d528f
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-17 05:14:34 +02:00
Girish Ramakrishnan 40583c3d31 eglfs: delete cursor textures in the destructor
Change-Id: I7e86313134c428bacda41f5e5401ebc392ceecd8
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-17 05:14:31 +02:00
Girish Ramakrishnan ff3a081827 eglfs: remove multiple references to qeglfshooks.h in HEADERS
ce2b46daea introduced the mistake.

Change-Id: Ifbd276dc24138dfb771d0cb14cb5d18dfa7beb2d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-17 05:14:31 +02:00
Robin Burchell 1ff5a776e8 Remove src/widgets/kernel/x11.pri.
Presumably, this was set for QSound, which has since moved to QtMultimedia (and
no longer uses nas, anyway).

Configure also no longer seems to have logic for setting nas, as of
4535913c4f.

Change-Id: Ie5b351844bd169ad0548b0d29513adbf6f5d9a12
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-17 05:14:28 +02:00
Lars Knoll 2b21dd69d6 turn off exceptions by default where they aren't required
This significantly reduces the size of the generated code
in places where we don't need exceptions.

The -(no-)exceptions configure flag has been removed in the
process, as there is now a fine grained way to control this
on a per module level, and Qt is being compiled without
exceptions in most places.

Change-Id: I99a15c5d03339db1fbffd4987935d0d671cdbc32
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-17 05:14:26 +02:00
Andrew den Exter d07982b104 Fix cursorToX for right to left text with trailing whitespace.
QTextLine::cursorToX returned the line width for cursor positions
outside the width of a wrapped right to left line because the
leading space width was always calculated as 0.

Returning a non-zero width for the leading space does cause
problems for other uses of QTextEngine::alignLine() though
as the textAdvance already doesn't include the leading/trailing
space so subtracting it there double accounts for it.

Task-number: QTBUG-24801

Change-Id: I56cbb139814c32813bebb49de8c045b29154a958
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-05-17 04:47:32 +02:00
Casper van Donderen 438787b0ca QDoc: Generate correct relative paths and links when using -installdir.
This change will generate working links between all modules in qtbase.
Some testing needs to be done on the other modules.

Change-Id: Ic65a9c753f891ac51427ca7c1cdcab13611d2f5b
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-05-16 22:04:47 +02:00
Carl Schumann a70b8d407e Fix bug when destruction fields in QWizard
Maintain the consistency of QWizardPrivate's two members:
    QVector<QWizardField> fields;
    QMap<QString, int> fieldIndexMap;
during and after calls to QWizardPrivate's
void _q_handleFieldObjectDestroyed(QObject *)
member function.  The failure to maintain this consistency
caused an out of bounds access and core dump in
QWizard's field(const QString &name) member function.

QWizard's field(const QString &name) member function expects
the values in the QMap fieldIndexMap to be indexes into the
QVector fields.  Prior to this change
_q_handleFieldObjectDestroyed only removed the appropriate
entry from the map and erased it from the vector.  It did
not decrement by one all the indexes greater than the index
that was removed from the map and erased from the vector
in the rest of the map.

For example ...
So if initially have the following mapping ...
"field0" -> 0,
"field1" -> 1, and
"field2" -> 2
with fields of size 3. After destruction of "field1" have ...
"field0" -> 0, and
"field2" -> 2
with fields of size 2.
Now attempts to look up "field2" using QWizard::field will
have an out of bounds error and possibly core dump or trigger
an internal Qt assert because an attempt to access
this->fields[2] will be made.   It should be accessing
this->fields[1], but does not because the map is no longer
consistent with the vector.

This change adds a decrement by one for all the indexes
greater than the index that was removed from the map and
erased from the vector.

Task-number: QTBUG-25691
Change-Id: Ia2a41027628a65faec4ecdd5da235ddd19746a57
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-16 22:03:30 +02:00
Konstantin Ritt 279562172d enable the text layout's cache where it is seems to be missed
e.g. in QStaticText, the data is used just to get the line's y-position
and re-calculates just after the loop to determine the bounding rect and to draw the text;

in QWidgetLineControl, the data re-calculated over and over while the result
is seems to remain the same; probably the caching is needed here too

Change-Id: I0f7eb291532f63eccb9c5f749daebb73ff90632f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-05-16 19:38:01 +02:00
Martin Smith 6eae3e1da3 qdoc: Include QML type name in method quid
A case was found where a method inherited from a
QML type marked abstract had the same name as a
method in the inheriting class, and these two
methods received the same quid. This was fixed
by including the QML type name in the guid for
QML methods.

Change-Id: I110eb254b3c6be014cb67fdc5b57b5aa2f575220
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-16 19:37:44 +02:00
David Faure 348c3966a0 Add header qtest_widgets.h, similar to qtest_gui.h, but for QApplication.
The current alternative is to define QT_WIDGETS_LIB before including
qtest.h, but this is not convenient/intuitive when using other build
systems than qmake. If one forgets the define, crashes happen when
using QApplication-related code.

Use <QTestWidgets> in one of the widgets autotests, for testing.

Change-Id: Id96be4976723aea3e8a28c9d0d594daab25a6d90
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-05-16 19:37:33 +02:00
Zeno Albisser 7701d8dc64 Populate the font database when calling fallbacksForFamily().
The Mac platform requires populating the font database to build the
fallback list for font families.

Change-Id: I5bd63cd3c5fa6216c312d439390681f160a716fb
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-05-16 19:37:09 +02:00
James Turner 617c026d65 Add focusWindowChanged signal to QGuiApplication
Required for Cocoa platform menus support, we need a
way to update state after focusWindow() result changes.

Change-Id: Idc573888c3d75bcbff2252e243c4b57b15fc2fcd
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-16 19:36:48 +02:00
Samuel Rødal 9487acb9d2 Handle EglDisplay and EglContext in the native interface of eglfs.
Change-Id: I793176204f12eea9d915fb7fe489bd3450a283cd
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-16 19:36:27 +02:00
Girish Ramakrishnan ce2b46daea Add eglfs cursor support
cursor-atlas.png was generated from existing cursor images
(qttools/src/shared/qtpropertybrowser/images/)

Change-Id: Ic4b396590eaec93e14a4b0915b15f735f5b1a5f5
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-16 19:36:19 +02:00
Friedemann Kleint 420b62f202 QCoreApplication: No longer hardcode arguments to be filtered out.
On Windows, Unicode command line arguments are re-created from
the original command line filtering out the known arguments.
To avoid having to hard-code all arguments of derived application
classes, keep the original argv-array and use that to verify if
an argument is still present.

Task-number: QTBUG-25724
Change-Id: I5d7bbd9530b1b74e1dcd22a0edc4f323ef687d23
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-16 19:35:51 +02:00
Thiago Macieira 83f796d273 Correct a mistake about non-characters in the documentation.
The Unicode non-characters are 32 characters, from U+FDD0 to
U+FDEF. The code matching these comments was fixed in
9327bc87c3, but the comment wasn't
fixed.

Change-Id: I5bde0ab9d70c1c6623893de36d31235cbd9fb152
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-16 19:35:29 +02:00
Friedemann Kleint 078ba2d0a2 qdoc: Fix some QString usage issues (Krazy warnings).
- Avoid single-character constants.
- Use QString() instead of "".

Change-Id: If04eff389e7b6d4a18201365b711708fdf545d00
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-16 12:30:32 +02:00
Friedemann Kleint cd9be96b1e qdoc: Fix warnings about unused variables.
Change-Id: I2052da55022334362efb5765335f00692f4c65fa
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-16 12:30:24 +02:00
Stephen Kelly a4bcdde5c7 Remove duplicate include for the macros.
The basic config file includes the macros file already if needed.

Change-Id: I8b03360ce1e9fff4a3be5270f659dbe22fc1b295
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-05-16 12:04:18 +02:00
Stephen Kelly a49a92bd9d Properly quote all variables which are paths.
This is required if Qt is installed into a directory with spaces.

Change-Id: I1d6874265558d712ac98a3aef670c2934a632ab1
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-05-16 12:03:54 +02:00
Thiago Macieira 2ec089bbc8 Add a non-implicit copy constructor to QEvent
Copying events is a bad idea but it is permitted, used at least in the
state machine framework and QApplication, which somehow found it
amusing to clone events. We can't forbid it because it would be
source-incompatible with Qt 4, and other ill-advised developer may be
doing this.

In the new copy functions and in the destructor, ensure that the d
pointer is null. We can't copy it if it isn't. The exception is for
DeferredDelete events, which use the d pointer to store the loop level
count. Such value must not be deleted.

In the future, if QEvent::d is used at the QEvent level, make sure to
adapt QCoreApplication::postEvent to store the counter somewhere else.

Task-number: QTBUG-25070
Change-Id: I1f2d3f3cfc891ec216df2e8b7dbe531524d21b26
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-05-16 07:00:31 +02:00
Lars Knoll b25b3a9f8b Avoid using iconv for text conversion where possible
Try to use a builtin codec as codecForLocale() if possible
first. Fall back and instantiate the iconv codec only
if that failed.

In addition, make sure we initialize the locale correctly
before we try to setup the codec.

Change-Id: I86d635f9d11e8ff93093f162e79fb37f3d85731b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-16 04:25:14 +02:00
Lars Knoll 1756a84756 Limit the nesting depth of the Json parser
The parser is recursive and too deeply nested json would
cause it to exhaust the available stack space leading to
crashes.

We now abort parsing with a DeepNesting parse error if the
document is too deeply nested. The current nesting limit
is set to 1024, which should be more then enough for any
real JSON data set.

Change-Id: I4adea3fd727149f7342536d73cf4530361a0a3a1
Reviewed-by: Jamey Hicks <jamey.hicks@nokia.com>
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
2012-05-16 04:25:11 +02:00
Arvid E. Picciani d5000e82e3 QElfParser: double check section size before using it.
In rare cases, if the section is empty, we're reading the whole object
into memory because size -1 = UINT_MAX.

Change-Id: Ibf9a1534159ce626e4f2327536076d0cc1ebf0ba
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-16 04:25:07 +02:00
Damir Tatalovic 7f3f3a0858 MIPS DSPR2 optimization of routine fetchUntransformedRGB16
Change-Id: I109deb969009214c4d81677e127f50120443acd2
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-16 04:25:04 +02:00
Eskil Abrahamsen Blomfeldt 4959e6af8e Support specifying fallbacks in font request on QPA
Because the QPA font database would query fallback families inside
findFont(), support for requesting multiple font families in order
of preference (like QFont("Times New Roman, Arial")) did not work,
because the Arial fallback was never attempted. To fix this, we
pass in the queried fallbacks and make sure they are tried before
any platform specific fallbacks.

Task-number: QTBUG-20986
Change-Id: Idb2b717856f013ce2874f00a8debaff60176d2fc
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-05-16 04:24:58 +02:00
Konstantin Ritt ba300f42bd QChar: add isSurrogate() and isNonCharacter() to the public API
+ QChar::LastValidCodePoint enum value that supercede the UNICODE_LAST_CODEPOINT macro
replace uses of hardcoded values with the new API; remove leftovers

Change-Id: I1395c9840b85fcb6b08e241b131794a98773c952
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-16 04:24:56 +02:00
Konstantin Ritt e8199b599f QChar: add missing UCS-4 overloads, get rid of UCS-2 ones
inline all non-static members to a static ones (declared with QT_FASTCALL),
ushort converts automatically to uint and the conversion cost is minimal.

Task-Number: QTBUG-13052

Change-Id: I189a6f205736766adcd3de2d61cee71f30cc64f3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-16 04:24:53 +02:00
Konstantin Ritt 3cfcceae43 QJpegHandler: add an embedded text support
texts for the textKeys are stored each in a separate COM(ment) section
so that the maximum text's size is almost 65KB

Task-number: QTBUG-10568
Task-number: QTBUG-111

Change-Id: I7d693741e10e5d78d497cb0af448160077350bb2
Reviewed-by: aavit <qt_aavit@ovi.com>
2012-05-16 04:24:50 +02:00
Shane Kearns 2380765a2b Fix QFile::permissions for long filenames
When qt_ntfs_permission_lookup is used, QFile::permissions failed
for files with long filenames.
Also created a test case for this API, which revealed another bug.

Task-number: QTBUG-25629
Change-Id: I73b7676a9d059c0e782b3f701b2e6bbc92f671ed
Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com>
2012-05-16 04:24:43 +02:00
Martin Petersson 384c155627 QHttpNetworkReply:readBodyFast return early if nothing to read.
Incase there is no bytesAvailable on the socket there is no need to
try to read.

Change-Id: Ied9e4b8d86854b356a733fab4948739db206b6ad
Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-16 04:24:35 +02:00
Martin Petersson 7ba7dddffd QNetworkAccessManager: Read all from socket on remote host close
When we get a remoteHostClosed we should try to read everything from
the socket before we close the channel.

Change-Id: Iaa87d79ea16d69735f6ba3e8b3b4a0f86fbd5f73
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-05-16 04:24:32 +02:00
Andy Shaw cfb44c6528 Fix cases where functions are called with a drive and no slash
When a file is specified on a path that includes a drive letter
followed by a colon but no slash then it didn't always account
for the fact that this refers to the current path on that drive.
This fixes the problems in completeBaseName(), baseName() and
path().  Tests are also added for these three cases and some
others too.

Task-number: QTBUG-25353

Change-Id: I47a197c6af066f532442ad269be57597ec61303a
Reviewed-by: Irfan Omair <irfan.omair@gmail.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-16 04:24:29 +02:00
Johannes Zellner fb6d83cca5 udev: improve device discovery with udev for add/remove
As the udev device tree structure varies between distros and udev
versions, first probe the actual leaf node for device properties.
If leaf does not contain needed properties, walk up the tree to the
next node matching the queried submodule.

Change-Id: I09329d5a76a1a2a797513f4a787cb27fed5293c7
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-15 23:03:23 +02:00
Teemu Katajisto 385e584926 printsupport: set duplex setting correctly to CUPS printer
If CUPS printer default is not DuplexNone then setting duplex
to None for printer did not have any effect on duplex setting.

Change-Id: Ifdd82241952c9a63cdf9b53fe787f7503b8049bd
Reviewed-by: John Layt <jlayt@kde.org>
2012-05-15 23:03:23 +02:00
Johannes Zellner 7a304015bd input: Use UDev or specific device paths
Keyboard,mouse and touch plugins using evdev now either
use udev for device discovery or the plugin arguments
for fixed device paths.

Change-Id: I72606ad48c15c55a49724a82f7bc285dd3984c43
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-15 20:44:36 +02:00
Thiago Macieira 44724508c9 Restore the QEvent::d pointer to null after we're done using it
Change-Id: I2fd6ebd80bf47456d74e939d49bff4ac9f199e8b
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-05-15 20:44:36 +02:00
Pino Toscano 77b179689b QElfParser: fix type of sh_size
The type of the sh_size field of a section header is either Elf32_Word or Elf64_Xword,
so the type used cannot be qelfword_t (always 32 bits) but qelfoff_t.

Change-Id: Ia380b6823913fee7a96b39f742630ae3a9ca0cb8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Arvid Picciani <arvid.picciani@nokia.com>
2012-05-15 20:44:36 +02:00
Alessandro Portale 8a0f48ab65 qdoc: Improve fileToOpen detection for examples manifest
When looking for a suitable "fileToOpen", do a case insensitive
file name comparision. So that it also works in this scenario:
  AnExample/anexample.qml

Change-Id: Ic4cd1d59a7a35e534bfd26cd174a3c2ab5383025
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-15 20:44:36 +02:00
Friedemann Kleint 5031aee972 Windows: Trim filter specification of the native file dialog.
In the event customer code (namely Qt Creator) does not pass a
clean specification (corresponding to 4.8 behaviour).

Change-Id: I8271e3a45bea4bea912fcdf0b7c0aae6c022c6a8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-15 18:08:11 +02:00
kb 4c3a35adec Do not limit mingw mkspec to "win32-g++" only.
The Qt configure script and various qmake project files interpret
mkspecs with a win32-g++ prefix as needing special mingw treatment.
This patch corrects one instance of the too-specific "win32-g++"
qmake platform scope and broadens it to "win32-g++*" -- bringing
it in line with the rest of the Qt project files -- thus re-enabling
custom mkspecs for crosscompilation.

Change-Id: I8c5107053ce9e0c499002b1990b492bda0eec52b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-15 14:34:23 +02:00
Friedemann Kleint 8b4bf5f816 Fix font printing on Windows using the native engine.
- Add HFONT, LOGFONT, trueType as properties of the
  Windows font engine, make it a real Q_OBJECT.
- Query properties in the Windows print engine and use the HFONT,
  LOGFONT there.

Change-Id: I5c35275b32ef6580d7fa15ed83c6e79e33dc3334
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-15 14:34:04 +02:00
David Faure c241d8921e Rename QMimeDatabase method for consistency.
Name is about mimetype names, while FileName is about, well, file names.

Task-number: QTBUG-25748
Change-Id: I34a9ac1a5fc06dc3e3855365e19c4dc7a1aa2671
Reviewed-by: Wolf-Michael Bolle <wolf-michael.bolle@nokia.com>
2012-05-15 14:25:37 +02:00
Martin Smith f3476d3ae2 qdoc: Don't include internal QML properties in output
QML properties marked internal were still appearing in the
the HTML output. Also, the title for QML type pages was not
correct in the help project writer.

Change-Id: Icaad7cefce77a4af70796bc185c99a3035fb17c8
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-15 14:01:58 +02:00
Casper van Donderen b690f5b89e QDoc: Use capitalized navtitles in ditamap.
The auto-generated ditamap used titles like "articles", this now becomes
"Articles".

Change-Id: I32fa6353443aaa66cbfc2b2fea1fea26e3e33684
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-05-15 04:57:49 +02:00
Martin Smith e776a50a11 qdoc: Fixed some terminology output by qdoc
There were still a few places where qdoc
generated "element" instead of "type" or
"class" instead of "type." These have been
fixed.

Change-Id: Id75156810212edb468198b6f269e3a91c55ac22c
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-15 04:57:46 +02:00
Girish Ramakrishnan b048b7ea18 Fix include path to fb_base.pri
Also fixes a typo in fb_base.pri.

Change-Id: I4fae156640325a7a2894ea0d1fbe96936f190bdb
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-15 04:57:44 +02:00
Girish Ramakrishnan 32c517c990 Fix QPA files inclusion headers
find . -name "*.h" | xargs sed "s/^#\(.*\)_QPA_H/#\1_H/" -i

Change-Id: Ifa96f8cfcb67070a961c7e5f05719b82653a1174
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-15 04:57:40 +02:00
Kent Hansen f544d7189e Remove const char *-based connectNotify() API
This completes the transition from connectNotify(const char *) and
disconnectNotify(const char *) to the new QMetaMethod-based
functions.

Removed the old connectNotify autotests and renamed the
connectNotifyMethodXXX autotests to connectNotify, since there is
no longer any ambiguity about which overload is being tested.

Change-Id: Icf108a80177155f21bb73c165fb8ab5d4e997bc2
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-15 04:57:37 +02:00
Thiago Macieira 57c755fef0 Deprecate the ability to change the FS encoding separate from the locale
Changing the encoding used by filenames separately from the locale
encoding is a broken concept and cannot work properly. This creates
ambiguity depending on the data source and how it's being treated.

Instead, enforce that the locale encoding is the only possibility to
deal with file names.

The QFile::encodeName and decodeName functions are retained due to the
Mac-specific issues and due to the sheer number of current
uses. There's no point in deprecating them and moving away from them.

Change-Id: Iedb2d8715d166a59a824f05bc11d107fd44f9c17
Discussed-on: http://lists.qt-project.org/pipermail/development/2012-May/003782.html
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-15 04:57:29 +02:00
Frederik Gladhorn 49e7ff443b Enable Gtk file icons
This needs some build system fixes to let widgets depend on
the platform support library (and be built after it).

Change-Id: I6f5b878971d1002a18e2fd66db4f34ffd0ac939a
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@nokia.com>
2012-05-15 04:57:15 +02:00
Thiago Macieira f31b324a24 Use org.qt-project for the QFactoryInterface's IID
Task-number: QTBUG-23273

Change-Id: I935d2e20a4905121ca226f052528fa7c9d80e88b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-05-15 04:57:05 +02:00
Bradley T. Hughes e1cee9222d Split Q_COMPILER_DEFAULT_DELETE_MEMBERS
Based on reviewer comments on
https://codereview.qt-project.org/#change,25992, split
Q_COMPILER_DEFAULT_DELETE_MEMBERS into
Q_COMPILER_DEFAULT_MEMBERS and Q_COMPILER_DELETE_MEMBERS. Clang provides
2 separate feature checks for these, all other compilers always define
both.

Keep the Q_COMPILER_DEFAULT_DELETE_MEMBERS define, though, for any
existing code that may be using it.

Change-Id: I8969e10989c776a822da153152cfecb99dda8cb9
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-15 04:57:05 +02:00
Shane Kearns 3976339ca9 Properly handle unexpected EOF in QHttpThreadDelegate
This prevents http POST/PUT from hanging if the QIODevice being uploaded
returns -1 from read.

Task-number: QTBUG-24738
Change-Id: I76500cc4f0101cc8e5da5f1dc105508b3f519a3c
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2012-05-15 04:57:02 +02:00
Glenn Watson 87362f3f58 Add private API for finding symbols on Linux
Add an API for use by declarative that allows searching for a
symbol that has been loaded, without opening a specific library.
This makes it possible for declarative to determine if the
profiling library has been preloaded, and to call functions on
it that enable / disable / save the current profile.

Change-Id: I2ec12d9babea2a152990c19735e98d4d7c10a062
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-15 04:55:47 +02:00
kb cff6e39cd1 Remove capitalization when specifying include-libraries.
MinGW installations on case-sensitive filesystems expect
lowercase names of include-libraries and (usually) include
files.
When crosscompiling on Debian 6 (targeting MS Windows) linking
fails because mingw is looking for non-existent include-libraries.
Using lowercase names solves this.

Change-Id: Id3454f4ed8ba42b6ea93d65d9c0ce567db6712df
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-14 21:34:08 +02:00
kb 9bd24b6edc Do not override CO_E_NOT_SUPPORTED
Change-Id: Id0cb9e1dca67400a2e3a02da663d810b06bdb6ec
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-14 21:33:58 +02:00
Friedemann Kleint 61ebcc3ae7 Windows: Query mouse double click interval from system.
Change-Id: I6bfd19a76bf3fde1344760d7f216a2dffa4b9018
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-14 21:33:48 +02:00
David Faure 5764f5e6ea QUrl: using sectionIsPresent in operator== broke for local files.
QUrl::fromLocalFile("/foo") doesn't set Host, but QUrl("file:///foo")
does (to remember that it saw a Host section, even if empty, which is
useful for urls like "remote://"). So ignore the Host flag in operator==.

Change-Id: I4322b4a75420c4e42766c0d65c1b121f28028a76
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-14 17:36:57 +02:00
David Faure feb212e1e5 QUrl: a url with a fragment or query, and one without, are different.
Fix operator== and operator< so that a URL with an empty fragment
or query, is not treated as equal to a URL without any fragment or query.
This restores the Qt4 behavior on this particular issue.

Change-Id: Ie989f37353fb13c791b1d558d638d2e8a5b5d1b8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-14 17:36:50 +02:00
kb dfd9ef3469 Add missing include library to prevent link failure
When cross-compiling the uuid library needs to be included
explicitly so the linker has access to _IID_IUnknown et al.

Change-Id: I713af426357603c08eef55857be20105e5aa6eba
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-05-14 09:14:05 +02:00
Bradley T. Hughes fe5d5fdaf1 clang: Use __has_feature() to detect C++11 features
Apple's clang version is often reported as the next official clang
version, but Apple clang does not support all the features that the
final official clang does. Instead of using version based feature
detection, use the __has_feature() built-in instead, so that we
correctly #define the various Q_COMPILER_* macros.

Task-number: QTBUG-25554
Change-Id: I2195401dbf6cd8574c30aa1bd6f7cf1cf537dae7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-14 08:10:29 +02:00
Stephen Kelly c18a41197f Find Qt5 modules automatically in the qt5_use_modules function.
This ensures that we only find Qt5 modules from the same directory
as modules we have already found, not from multiple different
directories which may be incompatible.

Change-Id: I7ad1d81ec41bba2e543130740041338ba44a6c3b
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-05-14 04:35:01 +02:00
David Faure 5ab700f639 Restore QUrl::setEncodedQuery(QByteArray()) to the Qt4 behavior.
Null bytearray means no query, and QString::fromLatin1(QByteArray())
doesn't give a null string, but an empty string.

Same for setEncodedFragment(QByteArray()).

Change-Id: I992e9253e35941d66886456872ea06aa2ae92450
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-13 11:06:18 +02:00
Casper van Donderen b587da56b9 QDoc: Also use the CppCodeMarker for .qtx and .qtt files.
Change-Id: Iff44975bc17fbf1158b373ecd967782b6cb5a3c1
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-05-12 23:48:14 +02:00
Thiago Macieira 1ea3c22e66 Add a QStringBuilder::toUtf8() function
Just to match the ones that are already there.

Change-Id: I25acc2391feded4cac79ebf65a6bc72176f5f931
Reviewed-by: hjk <qthjk@ovi.com>
2012-05-11 23:11:08 +02:00
Andreas Holzammer 6e6b74c0c7 Use WChar method for reporting for Windows
Switch to Unicode reporting, as Windows CE does
only support UTF-16 functions and to not open
up some other ifdefs just switch to unicode.

Change-Id: I82613a131313235e313cecd315bf6d1488af0532
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-11 19:41:25 +02:00
Thiago Macieira 61a3615c46 QGuiApplication::activeWindow() is deprecated
Change-Id: Id66740eb42fdaa86807222fbebc148de9434fa6e
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-05-11 19:41:25 +02:00
Shane Kearns 6abc66e076 Fix sending UDP packets to link local addresses
When the scope ID is not set, Mac and Windows will not transmit
packets to link local addresses. This patch implements setting
the scope in the native socket engines and adds a test case.
(it was partially implemented already, though UDP specific code
paths were missed in the unix engine)

Task-number: QTBUG-25634
Change-Id: I23300bdc9856e38458078e913daaa59cd05a74b5
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2012-05-11 17:39:13 +02:00
Shane Kearns b72c8dd8a2 Include scope ids in QHostAddress from QNetworkInterface
The scope ID is a required part of the address for link local
addresses (to solve the problem of the same link local address
being created by two machines on different networks).
It is required to send packets to a link local address on Mac and
Windows, although Linux multicasts if scope is missing.

Task-number: QTBUG-25634
Change-Id: Ie2bb09df8d261eefcb81716bafeb1475f0bed5fe
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2012-05-11 17:39:13 +02:00
Casper van Donderen 653bca19c7 Doc: Add a default license footer.
The CSS for the footer is not completely correct, but at this
time it is better to have something than nothing.

Change-Id: I7371e1e458a2abafcdb0fca5564ad73e209d64c3
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-05-11 17:39:13 +02:00
Jiang Jiang 01650d0dc7 Fix font engine dependent text transformation
The font engine used in supportsTransformation() should be the same
as the one used in drawCachedGlyphs. If it's a multi font engine we
should check the primary font engine inside it.

Change-Id: I384aab3c58edfe2e7ae6fe7fe96bef766053d3ef
Reviewed-by: Yoann Lopes <yoann.lopes@nokia.com>
2012-05-11 17:39:13 +02:00
Christoph Schleifenbaum 358fd91951 Make QFileOpenEvents delivered again.
Create a FileOpenEvent within QWindowSystemInterfacePrivate and handle
it in QWindowSystemSystemInterface and QGuiApplication

Change-Id: Ie777c923958d83d56e8648c9bfb1f9dcb985654d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-11 15:11:20 +02:00
Friedemann Kleint e3bbfe00d1 Windows: Compress Window Activation events.
If the next active window is already known at the time a focus
out is received, pass it to QWindowSystemInterface.
Fixes a test and Qt Creator's locator bar.

Task-number: QTBUG-24186
Task-number: QTCREATORBUG-1

Change-Id: I0aed4c386c08ed182555c95640e1637c5b67f5ce
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-11 15:11:20 +02:00
Martin Smith 0909c01b2f qdoc: Fixed a regression bug caused by fixing error messages
The C++ code marker is the default code marker. The default
code marker was being called for .qdoc files. But when the
tree nodes were each assigned a location object based on
the location in the source file where the node was built,
the default code marker was no longer used. Instead, the
plain code marker was used. This was wrong. qdoc now knows
to use the C++ code marker for all .qdoc files.

Change-Id: I15a58168db74cc5aa82a1fbccc5b7ece219ec297
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-11 15:11:20 +02:00
Martin Petersson 417fc1f759 qhttpthreaddelegate: check that we have a reply set when reading.
Make sure that we always have a reply set when we try to read.

Change-Id: Ib3ce9063bffc9810fc2a4fb52ee1a65b7f8cdfa0
Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com>
2012-05-11 15:11:20 +02:00
Giuseppe D'Angelo 28dc0a0fa1 QtNetwork: remove \link usages
Change-Id: I3f804a31eb9f623fb884052b4892fd45cdcdd126
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-11 12:52:21 +02:00
Giuseppe D'Angelo deceb70173 QtSql: remove \link usages
Change-Id: I9723c34184b298e8b0a2be7185416b9e911f948e
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-11 12:52:21 +02:00
Casper van Donderen d4672da264 QDoc: Return correct path when quoting example files.
When the exampledirs qdocconf variable is . the first 2 characters of
the file to quote from were being cut off, since there was a string
comparison between the size of the strings with and without './'

Change-Id: Iede54b5f77ec8a7530c608908f08e7eb4351f0f1
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-05-11 12:52:21 +02:00
Martin Petersson a050bba2f0 QNetworkReply::setReadBufferSize fix for threaded http
Added the setReadBufferSize functionallity again by limiting the
amount that the delegate read from the channel. Each time that data is
fetched from the reply buffer, we communicate back to the thread so
that more data can be fetched.

Task-number: QTBUG-25327
Change-Id: I2f9950196e64acd09bc8da50c1116f2c9deacad4
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-11 10:38:25 +02:00
Kai Koehne 390291047e Logging: Show pattern warning also on Windows GUI apps
Change-Id: Ibbeb606469e7cec5aa68525b05714453151ee066
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-11 10:38:25 +02:00
David Faure 3247f2ece9 Fix -Wlogical-op warning in qtestmouse.h
error: logical 'or' of collectively exhaustive tests is always true
[-Werror=logical-op]
Indeed these asserts do not test anything, given that MouseButtonMask is
0xffffffff

Change-Id: I33cf59d3e77d9c644fc307de36f4e0ab1bea80f8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-11 08:37:11 +02:00
Shane Kearns d3781ab09c Don't return http proxy for server usages
Http proxy cannot support server sockets or udp sockets, so don't
offer it as the system proxy (in the generic environment variables
implementation)

Change-Id: I234ab1024952b2630e668ddc35c665efade8e2b9
Reviewed-by: Adrien Bustany <adrien@bustany.org>
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2012-05-11 01:42:02 +02:00
Marius Storm-Olsen ad97aba452 Doc: Fix \sa usage
Ensure comma between elements (757 missing), single space and curly-
braces around title elements, etc.

Change-Id: Id16c3fda7fc47a12a0682f8720214f4990609a97
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-11 01:42:02 +02:00
Aron Rosenberg 87d21127de Add Windows NTLM Sign-Sign-On / Integrated Proxy Authentication
- Adds support for doing NTLMv2 integrated authentication via logged in
users domain credentials using the Windows SSPI api.

Task-number: QTBUG-17332
Change-Id: I4e840f7fb54ce1ace8a6151868f59f413d232295
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-11 01:42:02 +02:00
Jiang Jiang 2b39093d2f Do not use charset loaded by fontconfig
The only use for storing charset loaded by fontconfig in font engines
is for determine if a font supports certain codepoint, however FreeType
already does that. The charset loaded is sometimes not complete, for
instance in fontconfig 2.9.0 it removed Apple Roman platform support
for cmap loading, thus results a regression in common symbol fonts
(Wingdings, Webdings) rendering. Because those symbol fonts produced
by Monotype only contain two cmap tables: Apple Roman and Microsoft
Symbol, since the Microsoft Symbol table has a weird 0xF000 offset,
we always fallback to the Apple Roman cmap table.

Removing freetype charset cache also make each font engine consuming
less memory.

Change-Id: I88f3f44981f3a1c517b84809a3f5b834ffff7681
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-05-11 01:42:02 +02:00
Olivier Goffart f92fdd190d Implement the move constructor for containers.
This changes all the containers that uses QtPrivate::RefCount
(QMap already had one), and QVariant

In Qt 4.8, it was pointless to have the move constructor because we did
not have quick way to re-initialize a null container. (shared_null still
needed to be refcounted)
But now that we have RefCount, and that the shared_null do not have
reference count, we can implement a fast move constructor that do not generate
code to increment the reference count.

Change-Id: I2bc3c6ae96983f08aa7b1c7cb98d44a89255160b
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-05-11 01:42:02 +02:00
Gunnar Sletta 7226361aed Make sure animation drivers knows about the temporal offset after a pause
Change-Id: I932e469389241f6a12816b52180936f061cd78f8
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@nokia.com>
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
2012-05-11 01:42:02 +02:00
Thiago Macieira b6e4c859d3 Change to/fromAscii to to/fromUtf8 in the QString conversions
This commit matches the previous documentation commit that says that
the conversions are applied using to/fromUtf8.

Change-Id: I304e4d866ddedac5094fef8500cbeba299a02cb5
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-11 01:42:02 +02:00
Konstantin Ritt 3f9b508652 fix QString::isRightToLeft() for SMP code points
Change-Id: Ib8afc932d9566df1a8922da9a75b9f9cbbdd321d
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-11 01:42:02 +02:00
Stephen Kelly c2f8fe64f1 Make the qt5_use_modules public API.
This cmake function handles all of the necessary logic for using the
include directories of Qt modules, linking to Qt modules, adding
the required definitions, and most importantly, adding the position
independent flags required on UNIX systems to use Qt by default.

The function relies on functionality available in CMake 2.8.8, so it
is only available if that version of CMake or greater is used.

Change-Id: Ibe698e06819129479348c240844264c41553b5fb
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-05-10 23:15:56 +02:00
Friedemann Kleint 78b9de746c Keep object name of QWidgetWindow in sync with the widget.
Use new objectNameChanged() signal.

Change-Id: I247566bd51d23ec65ff74ba9ac7be0d18e8ff160
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-10 22:59:25 +02:00
Morten Johan Sorvig fe59f15a5b Compile.
gtkstyle depends on x11.

Change-Id: Ia056b5e63c1f1eedfa107f7622226e6a59dae894
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-05-10 22:58:15 +02:00
Friedemann Kleint 8b9668c633 Fix deprecation warnings in QtGui, QtPlatformSupport.
Change-Id: I355a059c5311928301907d5d1e3ecce00a94341d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-10 22:56:52 +02:00
Bjoern Breitmeyer 9b9895de8d Fix for windows platform plugin to work with WINCE.
Made opengl optional.
Made Clipboard and Accessability optional.
Moved internal mime data into its on source file,
was implemented in the clipboard source
which is just strange.

Change-Id: I6ddf0c656533bd45e22e24492fc2254d15b7822f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-10 22:56:25 +02:00
Stephen Kelly 00373840db Remove the HAVE_DECLARATIVE define.
It is unconditionally defined.

Change-Id: I8961805eab984dd7331b7ce3dc228a031193892b
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-10 18:02:29 +02:00
Friedemann Kleint 39b4e528e1 Fix warnings in evdevkeyboard-plugin.
- Fix warning about set-but-unused variable in case QT_NO_LIBUDEV.
- Compile with QT_NO_CAST_FROM_ASCII, string usages.

Change-Id: Ie98f1b4283919be878f8bbfc6e7378ad655152f8
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-05-10 17:08:46 +02:00
Andreas Holzammer 163cb111f8 Change Wince functions definition
Use inline functions, instead of defines for global
functions. As the defines will break member functions
that have the same name. As inline functions are only
available for C++, just define them for C++. This will
only effect 3rd party dependencies, but they don't need
them anyhow.

Change-Id: I929562401e03f08b068edba107a3f67a585952a2
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-10 13:52:48 +02:00
Lars Knoll 1f9a958e36 Correctly parse json documents with a leading BOM
A leading byte order mark is valid in utf-8 and we should
parse documents starting with those correctly.

Change-Id: Id85398ff6e05b93ceefbaf4a6de5571d5e61ca13
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
2012-05-10 13:50:35 +02:00
Casper van Donderen f6bd10b8ff QDoc: Generate images inline for \inlineimage
Change-Id: I1ee001870ac1289a8b0340707f62c7cc3fb84492
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-05-10 13:50:35 +02:00
Martin Smith d2456798c6 qdoc: Removed some obsolete ifdefs
Also removed a few useless comments.

Change-Id: I62a52bb826c1299ea9da3f0f3c23f267703c6509
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-10 13:50:35 +02:00
Friedemann Kleint 9ffd616332 Fix warnings about unused variable d.
Change-Id: I8fc204928699c5a5821f9381e08b52fa2bc74fbf
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-05-10 13:50:35 +02:00
Bradley T. Hughes 8b668180ca Compile with -qtnamespace on Windows
qatomic_msvc.h declares some Windows intrinsic functions which should
not be in the Qt namespace.

Change-Id: I1b2f91798159c08cf167ee3d1ed2818c12c9b833
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-10 13:50:35 +02:00
Albert Astals Cid 07f3c1e26a XShaping drag and drop fixes
No shaping rectangles means no interaction with the window
The shaping rectangles are based on the window coords, so need to substract the window coords when checking for the point

Change-Id: Ic9004a8ec0f447cddcd1b4324d9fd60a94787cb9
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-10 13:50:35 +02:00
Martin Smith 3b6b8a0f74 qdoc: Fixed a qdoc error problem
When a page exists in more than one file,
qdoc was reporting this sometimes without
reference to the locations of the files.
This has now been fixed.

Change-Id: I0697acc170b94a74b15fb384556dd76f764f7792
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-10 11:34:25 +02:00
Simon Hausmann 47e6ec0736 Avoid trying to load libthai again and again if it's not present
Change-Id: I3bcbde7bbb307fb27c36709c33c8ff5cd09ab7f8
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-10 11:34:25 +02:00
Konstantin Ritt cbfdec6603 move the default text breaking algorithm impl from HarfBuzz to Qt
there are several reasons to do this:
* text breaking is not a shaper's job;
* since the text breaking rules are bound to a specific Unicode version,
  updating Qt's internal unicode data would require updating the data in HB as well;
* makes porting to HurfBuzz-NG some easier

Change-Id: I0bbf8e8a343bc074696f4ddf2ae4e7fa32a61629
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-10 11:34:25 +02:00
Konstantin Ritt 8c0048a377 add some useful methods to QUnicodeTables::
in order to reduce code duplication and prepare the ground for upcoming changes

Change-Id: I980244149f65384c9484bbec4682de8b7b848b08
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-10 11:34:25 +02:00
Marius Storm-Olsen 2d23374a6f Merge "Merge branch 'docs-refactoring' into master" into refs/staging/master 2012-05-10 11:34:25 +02:00
Marius Storm-Olsen 9456528aac Merge branch 'docs-refactoring' into master
Change-Id: Iebd1966abace3cdf7f9428dcfc1ded5b124ab113
2012-05-10 09:11:23 +02:00
Marius Storm-Olsen ee38dec6f3 Don't add C-style copyright headers to qmake project files
Leads to parse errors, and we don't really put copyrights into these
files anyways.

Change-Id: I4b423b3f4f5c4f1f5051d8e3613133c4f1df342a
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-10 09:07:14 +02:00
Bradley T. Hughes 5f43422ddf qpa: Remove QPlatformDialogHelper::deleteNativeDialog()
This function isn't really needed. The QDialogPrivate destructor deletes
the platform helper, so the QDialog destructor does not need to do it.
Subclasses of QPlatformDialogHelper are now responsible for deleting any
native resources they create.

The one place in QFileDialog that needs to recreate the native dialog
can simply recreate the helper. QDialogPrivate::deleteNativeDialog() now
becomes QDialogPrivate::deletePlatformHelper(), which resets all state
to allow the platform helper to be recreated.

Change-Id: I58adfe8801e02e63b3cb4a9a3a0b8cb5b3c7b161
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-10 06:56:20 +02:00
Bradley T. Hughes d223b30c42 qpa: Clean up QPlatformDialogHelper API
Remove the _sys suffix from all members of QPlatformDialogHelper and its
subclasses. The QPlatform* class prefix already implies that these
methods are system specific, we don't need the method suffix as well.

Change-Id: I5ad1f928fab3a989992951acc244915e7fa48d32
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-10 06:56:04 +02:00
Thiago Macieira 75552c8f62 Fix a crash when parsing a URL with username and port, but no password
This was crashing because the ':' was found past the end of the
username, causing the recoder to run from position 22 to 11, via the
long way around the memory.

Change-Id: Ic1ae596f34f7db857fb4210294974fb5a6adf691
Reviewed-by: Alexis Menard <alexis.menard@openbossa.org>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-10 02:39:30 +02:00
Eskil Abrahamsen Blomfeldt 602203cf06 Don't ignore default font's font capitalization in QTextDocument
The consequence of this was e.g. that it would be impossible to
set the capitalization of TextEdit elements (or Text elements
with RichText format) in QML.

Change-Id: Ie219fac7e4305efc59a4ac9da5b06c25ff3ac9ac
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-05-10 02:39:30 +02:00
Michael Brasser c47c8ba59e Remove QAbstractDeclarativeData::objectNameChanged.
There is now an actual NOTIFY signal for this property, and the callback
is no longer necessary.

Change-Id: I664714e22e607c747f144250cfb78de8c1d28686
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
2012-05-10 00:20:43 +02:00
Casper van Donderen 47799adc0d Doc: Move some remaining files over for modularization.
The files in this change were still in qtbase/doc/src or required for
it. qtbase/doc/src should now only contain example documentation and
images for the example documentation.

Change-Id: Ia7ca8e7fd2b316e77c706a08df71303bc8294213
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-05-09 22:43:31 +02:00
Martin Smith 81c68fe029 qdoc: Fixed three qdoc error problems
1. For QML properties documented in a .qml file,
qdoc no longer prints the error message that it
can't detect whether the property is read-only.

2. For QML properties documented in .cpp files,
qdoc now includes the file path and line number,
when it prints the error that it can't detect
whether the property is read-only.

3. qdoc also includes the completely qualified
property name in the error messages described
in 2.

Change-Id: If88381783fd0f29271f579ae170a0a6f4b1a7344
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-09 20:10:44 +02:00
Casper van Donderen 66ca9382c9 QDoc: Remove generateQmlDesc and use generateApiDesc instead.
generateQmlDesc was basically a copy of generateApiDesc. Just using
generateApiDesc also fixes a bug with the generation of a <shortDesc>
inside an <apiDesc>

Change-Id: I129a24ab0244283cc394c2afacc0f8227e4e5a88
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-05-09 20:10:44 +02:00
Stephen Kelly bbe9b28c0b Remove garbage.
Change-Id: I0801932ee9ce7002fdf897354f9e6e6d3999c8c2
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-09 20:10:44 +02:00
Aron Rosenberg 6ccbfd6ca4 Fix various NTLM/Digest multi-threading and usage issues
- Fix multi-threading bug where NTLM/Digest auth would fail when
concurrent requests were on the wire. The fix for this is too not
internally share QAuthenticationPrivate pointers, since the challange
values would get overridden in different threads. This was failing
because the internal QAuthenticationPrivate members would have been
set with the status/values of the current request which would mess
up the state of the new request. As currently implemented, the helper
functions inside QAuthenticationPrivate can't call detach to implement
proper copy on write symantics.
- Fix issue where if user was set via constructor, the NTLM domain
parsing would not occur. Parsing of DOMAIN\user is now redone if
proxy type is determined to be NTLM.

Task-number: QTBUG-15472
Task-number: QTBUG-17322
Task-number: QTBUG-18794
Task-number: QTBUG-13063
Task-number: QTBUG-16585
Change-Id: I8a898c51fb04fab6fb08d96d88dd73be0c87af5d
Reviewed-by: Aron Rosenberg <aronrosenberg@gmail.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-09 20:10:44 +02:00
Alexis Menard 92d4e843bd Fix qDecodeDataUrl for already percentage encoded content.
If the url we pass as parameter already have percentage encoded data,
we don't want to decode it and call fromPercentEncoding. The test
coverage is not complete for qdataurl.cpp file but it is better than
previously and it will also protect us from future regressions.

Change-Id: I79f709f44bed1b7f274a3de639c7e291fa91a193
Reviewed-by: Thiago Macieira
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-09 20:10:44 +02:00
Martin Smith 4e9dc8b49d qdoc: Fixed a qdoc error problem
When an example was missing, qdoc printed
an error message without specifying the
location of the error. Now it includes the
file path and line number of the \example
command where the error can be fixed.

Change-Id: Ib75ffc467c0f266ed3939b8aa4b24800ec5eb92e
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-09 17:52:48 +02:00
Samuel Rødal 4ab7d53431 Compile fix for kms plugin.
Change-Id: I0ad9716273a7beb643fab5fafc7fcf4884c8a364
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-09 17:51:53 +02:00
Laszlo Agocs 52bc65dc8a Enable float coords in evdevtouch
There is no reason to truncate the touch position.

Change-Id: I2bdcd43d3bb06a664e909d92704a701ece603847
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-09 17:51:18 +02:00
Casper van Donderen 4f6b1cad56 QDoc: Use node name for page DITA title when name argument is empty.
When QML documentation is being generated from .qdoc files the 'name'
argument of the generateHeader() function is always empty, since the
plaincodemarker sets the plainFullTitle to "".

In that case the Node->name() should be used to specify the title of the
page, this will always be the first argument given to the \qmlclass qdoc
command.

Change-Id: If3e86ce59be1fdad608fab9f32fbe7bbca97aa93
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-09 17:30:14 +02:00
Friedemann Kleint 014ad6bf1b Windows: Disable Non-modal native file dialogs.
Disable dialogs, add explanatory comment. This is now
equivalent to Qt 4.

Change-Id: Ib6f4853d6f7ef1812bd5887d3ced8d7c8d1db5c8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-09 16:46:11 +02:00
Bradley T. Hughes ab947649eb QPA: Cleanup native dialog modal execution
Remove the _q_platformRunNativeAppModalPanel() function, together with
the launchNativeAppModalPanel() signal and
emitLaunchNativeAppModalPanel() slot, which were previously used to run
the modal loop inside the QDialog::exec() loop. This trick isn't
necessary anymore, so remove the mechanism and code related to it.

Rename QPlatformDialogHelper::platformNativeDialogModalHelp() to
exec_sys(). This function is now responsible for both showing the native
dialog and running the modal loop. QDialog:exec() now calls this
function if a native dialog is in use (it does not call
QEventLoop::exec() anymore).

The dialogResultCode_sys() function was unused, so it has also been
removed.

This commit also removes some unused private slots that were left over
from the port to QPA.

Note that the comments in the Cocoa plugin are still valid and relevant,
but this commit does not fix the scenarios mentioned. This will be done
in a future commit.

The Windows plugin needs minor changes. The QueuedConnections to
accept() and reject() cause the deliver to come too late, resulting in
crashes, hence the change to AutoConnection (which ends up being a
DirectConnection).

Change-Id: Ifc90325c945ca78737e60bf331929f03ecc52e0a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-09 13:42:03 +02:00
Bradley T. Hughes 9f2f7a8f72 Make sure QWidgetPrivate::hide_sys() really hides
When commit 55fa3c189f was merged from
api_changes, the conflict resolution left it possible for hide_sys() to
leave a visible window on screen. This happens when
Qt::WA_DontShowOnScreen is set on a visible widget. hide_sys() needs to
always hide the platform window if it is non-zero.

Change-Id: I3a1a882b66954e90d6ba80c657de69cae32e75a7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-09 13:41:54 +02:00
Bradley T. Hughes cebfd69ade Don't handle window events after Qt::WA_DontShowOnScreen is set
QWidget can set WA_DontShowOnScreen while visible, which generates
events when the QWidgetWindow is hidden. This causes
QWidgetWindow::handleExposeEvent() to clear the WA_Mapped flag which was
set by QWidgetPrivate::show_sys(). Once WA_Mapped is cleared, the
QWidget becomes non-functional, causing failures in at least
tst_QGraphicsProxyWidget::paintEvent(), since paint events are not sent
to widgets that don't have WA_Mapped set.

Change-Id: I2d3e5b3baffb07ab73f41520771866f181260bd2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-09 13:41:49 +02:00
Friedemann Kleint 4e4403d69c No longer use deprecated methods for plugin loading.
Change-Id: I19c66b1c41ea4dd236726c86d7d071b210ec9244
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-09 13:40:23 +02:00
Friedemann Kleint b316c3ac5e Improve widget geometry.
- Rename posFromMove to posIncludesFrame in Widgets and
  make the handling more fine-grained; try to clean it up
  as soon as the frame margins are known
  in QWidgetPrivate::fixPosIncludesFrame().
- Implement QWidgetPrivate::updateFrameStrut().
- Windows: Handle posIncludesFrame in window creation,
  notify changed geometry after setting window flags.
- XCB: Do not change the window gravity in propagateSizeHint()
  as this causes the window to jump around. Determine
  the gravity in window creation, leave it constant and
  fix the geometry when setting instead.
- Store the normal geometry when maximize/fullscreen
  state change events are received.
- Remove xfails from fixed tests

Task-number: QTBUG-25331
Task-number: QTBUG-24905
Task-number: QTBUG-24294

Change-Id: I89c7229d86aaf88f02247d63915da7905e4a27ea
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-09 13:40:16 +02:00
Stephen Kelly 465c9f4a7e Use bool for the template argument.
It is only ever called with 'true' or 'false'.

Change-Id: Ibaba1c964cebb3ac75a230471a7a6547c2245039
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
2012-05-09 12:54:08 +02:00
Eskil Abrahamsen Blomfeldt 4b09230d97 Avoid assert in QTextLayout for certain strings
As in other shapers, we need to make sure that the default
attributes of the first character is set before doing the
greek-specific composition (which will set the attributes
for characters > 0). The effect of this would be that
the clusterStart did not default to true in the start of
the string, and we would get an unexpected situation
in addNextCluster() in QTextLayout which would cause an assert.

The example in the task, which combines a greek polytonic
(dasia-oxia: u1FDE) with a regular combining diacritic
(asterisk under: u0359), is not a correct string, but should
not cause an assert.

Task-number: QTBUG-22864
Change-Id: Ieaff3cccbd10abc634e95e9a79dcde4c48504a3c
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-09 12:07:58 +02:00
David Faure 677858ad9e Fix QUrl::StripTrailingSlash for the case of no path at all.
Change-Id: I1fd0fe4b9b67996732c85c1792415e371e865595
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-09 12:07:33 +02:00
Casper van Donderen a4d07f6c0b Doc: Add "make docs" targets for libraries.
Change-Id: I249c238f4986f443f84aaa6a3ac4ce102abff4db
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-05-09 08:37:35 +02:00
Casper van Donderen 6d4f2486d5 Doc: Modularize QtTest documentation.
This change moves the snippets to the modularized directories.

Change-Id: I917dd1dae5ee5d4b6bd5a0390783a8b9a99edc06
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-05-09 08:37:21 +02:00
Casper van Donderen 1794c3b7a1 Doc: Modularize QtPrintSupport documentation.
This change moves the snippets and images to the modularized
directories.

Change-Id: Ib8f8556bcef13593ee40ac1122d765ed307ecb93
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-05-09 08:37:10 +02:00
Casper van Donderen 03d81b0100 Doc: Modularize QtOpenGL documentation.
This change moves the snippets to the modularized directories.

Change-Id: Ifcf22fa3f234681f851d1e7eed5fe44e2e223ffd
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-05-09 08:36:59 +02:00
Casper van Donderen 97b5b80092 Doc: Modularize QtWidgets documentation.
This change moves the snippets and images to the modularized
directories.

Change-Id: Idec1afb9db7ea6add1ca4cf25ec4019d8bce0c4d
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-05-09 08:36:46 +02:00
Casper van Donderen cfdc5628b1 Doc: Modularize QtGui documentation.
This change moves the snippets and images to the modularized
directories.

Change-Id: I5f86f598fbe7c47d632c613b85d94ced89ba2c29
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-05-09 08:36:34 +02:00
Casper van Donderen 3b8e6027c2 Doc: Modularize QtDBus documentation and add missing file to QtNetwork.
This change moves the snippets and images to the modularized
directories.

Change-Id: Idacff866735d00b048d65318bc4c3ee1dfa16310
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-05-09 08:36:17 +02:00
Casper van Donderen 4548022ee2 Doc: Modularize QtConcurrent documentation.
This change moves the snippets and images to the modularized directories.

Change-Id: If52f69c0f8bb4d2df4ee46f5524a82047ec214de
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-05-09 08:36:06 +02:00
Casper van Donderen a409cebe3d Doc: Fix typo in QtNetwork qdocconf.
Change-Id: I759e8a77b0471d380ffd9f893ae5bb5ed0c5c992
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-05-09 08:35:55 +02:00
Casper van Donderen 7eca53b51a Doc: Modularize QtNetwork documentation.
This change moves the snippets and imagesto the modularized directories.

Change-Id: If14912692a7f72d7de345eaf88d9ec9752310fca
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-05-09 08:35:43 +02:00
Marius Storm-Olsen 9fde9ab167 Properly implement a 'make docs' target for subdirs and apps/libs
Only call qdoc for projects which sets the QMAKE_DOCS variable to
point to a qdocconf file.

Exclude examples/ and tests/ from the qdoc run, by adding
    no_docs_target
to CONFIG for those projects.

Change-Id: Ic856c8f19db59309302d0602b3e99735609e525a
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-09 08:34:42 +02:00
Marc Mutz b58b777cb3 QtDBus: add member-swap to shared classes
Implemented as in other shared classes (e.g. QPen).

Change-Id: Ic827540b535fc5506165b5395b796a53a00bb096
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-09 02:39:08 +02:00
Konstantin Ritt 7fbc80f0eb QTextEngine: simplify the code a bit
by using QVarLengthArray so we can avoid the manual clean-up code.

Change-Id: I35e2f7150d777c1760f722553e6fe7a20f6ecc46
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-05-09 02:28:49 +02:00
Martin Smith 025d544caa qdoc: Fixed qdoc error messages
qdoc prints many error messages without including the
source file path and the line number for where the error
occurs. This makes it difficult to find the place to
fix the error. This update corrects some of those error
messages. Further updates will fix the others.

Change-Id: I9c0eed96482c61643a2d83c5135368413e63ae52
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-09 02:28:44 +02:00
Lars Knoll 3db8f5fbb3 Remove qplatformdrag.h dependency in qguiapplication_p.h
Including a qpa/ header here doesn't really work very well
for other modules using qguiapplication_p.h.

Change-Id: I7620b40bc4731d5a74fe11537637f376c578a786
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-09 02:28:39 +02:00
Lars Knoll 2cc0598f99 Divehi is written right to left
QLocale::textDirection() was missing Divehi as a
right to left language.

Change-Id: Ib2395afe0e1dfbac23cb607dbf7833e6c12b2ce9
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
2012-05-09 02:28:34 +02:00
Friedemann Kleint e996009eb7 QPA: Add a themeHint for the animations.
Introduce a flag matching the Qt::UI_Effect enumeration and
return it as hint.

Replace the separate boolean flags in QApplication by a single
integer using the flags.

Change-Id: I29e33d4d23d13723ddb1b3f62fe781b9c0747572
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-09 02:28:31 +02:00