Commit Graph

13369 Commits

Author SHA1 Message Date
Gabriel de Dietrich
a006ede6e7 Mac style: Get proper ThemeButtonKind for QDateTimeEdit
When it gets 'calendarPopup' set, that is.

The reason lies, indirectly, in the extra margins we add to
QComboBoxes and other QPushButtons in the Mac style. However,
these extra margins do not apply to spinboxes, which is what
QDateTimeEdit is.

In particular, this causes Designer to show QDateTimeEdit at
the wrong size when it's not in a layout.

Task-number: QTBUG-38615
Change-Id: I3dd52e10db8c8970a6dc40b39fbe29dd86167daa
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-05-02 17:36:45 +02:00
Fabian Bumberger
637b6e1097 Ignore the fullscreen state of a QMdiSubWindow
On some platforms all windows are by default forced into fullscreen mode when show() is executed.
In QMdiSubWindow we cannot handle the fullscreen state and should ignore it. Otherwise
the window will be forced in "normal" state and ignore any previously
executed geometry changes.

Change-Id: I09ce6507a1eac6a0adb3405ca3f423642d30f801
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
2014-05-02 17:36:45 +02:00
Thiago Macieira
2567b35a5e Don't set the window title for a Qt::Desktop window (QDesktopWidget)
The desktop doesn't belong to this application, we shouldn't be setting
it (assuming it is even possible). On X, for example, it's possible to
set the name and you end up with the root window having _NET_WM_NAME
pointing to the last application that created a QDesktopWidget.

Change-Id: Ib62d0a4d56a4d2a74afc6b33fa607867343e7aba
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-05-02 17:36:45 +02:00
Frederik Gladhorn
bdcd86c03e Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2014-05-02 17:36:45 +02:00
Andy Shaw
da888ba539 Only query for the theme if it is available in the GTKStyle
If the theme is not available then it should not try to use it when
getting the file system icon as it will cause a number of messages to be
outputted to the console as it is an invalid call.

Change-Id: I33003568f6785ee423c4a6e079a6c62c95145cbc
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2014-05-02 12:16:07 +02:00
Kati Kankaanpaa
aef82ebe15 Fix override cursor issue with QtQuick2ApplicationViewer.
If the override cursor was set before
QtQuick2ApplicationViewer was shown then the cursor
was the default cursor and not the override cursor.
The new cursor was applied only if the window was
visible and the cursor has been set. Now the cursor
is applied also if override cursor is set.

Change-Id: I88618c719e43b2802e209bef440461c532d19f48
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-05-02 12:16:00 +02:00
Jędrzej Nowacki
9ae89313e4 Add a comment about not obvious code in VariantData.
Change-Id: I943af28c47b396aa35173da2a1294b86c8a522fa
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-05-02 07:18:19 +02:00
Alan Alpert
3db5e58dd3 Revision new signal
As it's meant for QML anyways, this allows it to coexist peacefully with
existing code.

Task-number:  QTBUG-29806
Change-Id: Ib04993f47eb2f9f7fc49c4a5400f18f9682a7aaa
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-05-02 07:17:18 +02:00
Jean-Philippe Proulx
d17e48108d Fix more double release in QTimeZone on Mac
Several objects are released without being retained.
This causes double free crash.

Task-number: QTBUG-37582
Task-number: QTBUG-35890
Change-Id: Ic64419c22ab555ba77ada1864feaff247798d3ad
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-05-02 07:16:16 +02:00
Gabriel de Dietrich
8605f44097 Cocoa QPA Menu: Clear menu items' Cocoa ancestor on destruction
Valid for both the item and the menu destructions.

Task-number: QTBUG-38685
Change-Id: I024b93c8bb8facefeaad5e8b6c7be6bf049898ea
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-05-02 07:16:06 +02:00
Louai Al-Khanji
948fa572de Direct2D QPA: Add handlers for individual primitives
Directly handling primitives is faster than using the catch-all fill
function which converts arbitrary paths into a direct2d geometry. So do
so.

Change-Id: I71ce73dbe75aa9b61e741c358d8787d0ea48ee46
Reviewed-by: Risto Avila <risto.avila@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-05-01 18:23:28 +02:00
Frederik Gladhorn
ccc6efb6e9 Merge remote-tracking branch 'origin/release' into stable
This merge adds the opengl rename.

Change-Id: I84ea0b6abee9780ebb2cf3f64ab9e3fdf2acab3e
2014-05-01 13:08:42 +02:00
Eskil Abrahamsen Blomfeldt
7eae50a52d Fix assert on justification of QTextLine with only spaces
In the justification code, we unconditionally subtracted one
from the line_length, but then compared the result to 0 afterwards,
so we did not support when the line_length is 0 initially, which
can happen if it only consists of spaces (in which case
trailingSpaces will be non-zero and line_length will be zero.)
The fix is to bail out for both strings of length 1 and length 0.

[ChangeLog][Text] Fixed an assert when justifying a QTextLine
which only contains spaces.

Task-number: QTBUG-38520
Change-Id: Ib04993f47eb2f9f7fc49c4a5400f18f9682a72f2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-30 18:23:33 +02:00
Simon Hausmann
12eb3b51c4 Fix incorrect repaints with plain text edit
The plain text edit's smart repaint logic in
QPlainTextDocumentLayout::documentChanged assumes that during a change inside
just one block, the block is in the state before the edit and a call to
layoutBlock() is going to bring it up-to-date. Then only a comparison of the
bounding rect - before and after - is going to allow for smart repaints.

The assumption of the layout being in the same state as before the edit got
broken by commit cc57a2e90f, which introduced
code to use a QTextCursor within a slot connected to QTextDocument's
contentsChange signal. The usage of the QTextCursor there ends up updating the
layout of the block ahead of time, breaking the assumption and therefore the
optimization, in the sense that during changes in the preedit that cause a
change of height / line count, the old bounding rect in
QPlainTextDocumentLayout::documentChanged and the new bounding rect will be the
same. This causes a repaint of only the edited block, missing repaints of the
following blocks, even though the line count effectively changed.

So what's causing QTextCursor to mess with the layout is the attempt of
updating the vertical movement x property. This patch inhibits the update,
marking it as dirty for initialization later. This means that slots connected
to this low-level signal cannot rely on the cursor's visual x position, but
that doesn't seem useful anyway and isn't required for commit
cc57a2e90f.

Task-number: QTBUG-38536
Change-Id: I5fae12d646a4b2d2cc22b9f2d021e5dc8cfdda94
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-04-30 18:23:23 +02:00
Richard Moe Gustavsen
88756dc46f printsupport: only build cocoa backend for OS X
Cocoa is not available on iOS, so the plugin should not be
built. But recent build system changes exposed that we did.

Change-Id: I000d54b330a075abb8f4a8b28a970bb5b5edfeb5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-30 18:23:12 +02:00
Jan Arve Saether
92d289aba8 Widgets going "undercover" should also undercover the QWindow
Sometimes Qt wants to hide a widget without calling setVisible(false).
This is usually done by setting the widgets geometry outside the
parents clip rect (and usually by setting its y coordinate to a
sufficiently negative y coordinate). QSplitter uses this when it needs
to collapse its children.
Previously the QWindow was just moved straight above the QWidget it was
hosted in.

Task-number: QTBUG-38475
Change-Id: I154dd4d13f108c3d34c64eadb41dd6b477dc5c4e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-04-30 12:38:42 +02:00
Frederik Gladhorn
fd644f3bd0 Improve accessibility event failure output
Simpler code and more information ;)

Change-Id: I5ca6b2ee88e51dbbd3ec2f08c4ea79bc11b649fa
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-04-30 09:05:19 +02:00
Louai Al-Khanji
0edb21df15 Direct2D QPA: Pixel-align aliased drawing
Aliased drawing has so far not been perfectly pixel aligned, resulting in
less than stellar output in some instances. Although a little hacky,
adding 0.5 to all coordinates when in aliased mode fixes things up nicely.
There doesn't appear to be a better way to get d2d to cooperate as we
would like it to.

Change-Id: I10ee494d2f576bfd0eca6d4429095a3726c0bf14
Reviewed-by: Risto Avila <risto.avila@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-04-30 08:23:39 +02:00
Thiago Macieira
090124eab6 Remove duplicate symbol name: QTest::currentAppName
It's declared in qtestcase.h as a function, so let's not declare the one
in qtestresult.cpp as a static variable. None of the variables in
qtestresult.cpp need to be in the QTest namespace, but we don't need to
change them now.

Change-Id: If6cc34642fdfe3ccda3b8cea7d053ead0db9ccbd
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-04-30 01:40:39 +02:00
Kai Koehne
ee85cdee67 Logging: Mention 'best practices' for using QLoggingCategory
QLoggingCategory objects are meant to be mere 'handles' for the
registry. It's therefore not recommended to
- manipulate them directly (via setEnabled()), except in a filter
- export them across module boundaries
- subclass them

Subclassing QLoggingCategory also breaks compilations in a certain
circumstances (no variadic macros).

Task-number: QTBUG-37283
Change-Id: Ib12fb43d955902c7fa4583296d64afc5eca01200
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-04-29 16:26:25 +02:00
Kai Koehne
159465536f Allow building against static ICU libs also on Unix
For dynamic builds of ICU, libicudata is an implicit dependency. Anyhow,
it doesn't harm to explicitly link against it, either. So let's do
this everywhere ...

Task-number: QTBUG-38445
Change-Id: I420ba096e2ce5e1b8d81814ffb4aa7b300143b01
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-04-29 14:42:26 +02:00
parihaaraka
f1eefd6cf9 Fix PSQL column's metadata
Fixed libpq's PQfmod() interpretation inside QPSQLResult::record()

Task-number: QTBUG-12477
Change-Id: I0e4c94ca1b06fd6a8e5b5702235cdd6d9736f8bf
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2014-04-29 14:42:26 +02:00
Andrew Knight
eb211d74cc Add missing QT_NO_NETWORKPROXY guards around HTTP connect statements
Without these, a spew of connection warnings will occur when using HTTP
on Qt builds with QT_NO_NETWORKPROXY.

Change-Id: I330f6d98d1abdbadc57768dc48b8fab0ee1f6655
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2014-04-29 12:01:29 +02:00
Richard Moe Gustavsen
2d019ddc93 iOS: scroll screen after hiding keyboard programatically
When the keyboard is told to hide, we resign first responder. If this
is done programatically on touch press, this will make the "hide keyboard
gesture" receive a touchesCancelled instead of a touchesEnded. Since we
didn't catch this from before, the gesture was left in a mixed state causing
the screen not to scroll when later showing the keyboard.

Change-Id: I70ed59710128a912097cd5bfbdd8f49b20b7934c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-04-29 11:59:18 +02:00
Louai Al-Khanji
195c070adf Direct2D QPA: Correctly set active state in paint engine
Change-Id: I4eea073ad11ba8684212258b344c1f237598a9c5
Reviewed-by: Risto Avila <risto.avila@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-29 11:59:18 +02:00
Louai Al-Khanji
81fde3a976 Direct2D QPA: Speed up widget painting
By only starting/ending drawing once in the backing store, we can avoid
multiple start/ends and thus flushes of the direct2d device context. This
can potentially be much faster with some drivers when many widgets that
draw to the same backing store need to redraw. Because starts/ends of
QWindowsDirect2DDeviceContext are already refcounted this works out of the
box.

Change-Id: Ib48edceef6a1041ae0509587c77ac0caa8b29fc6
Reviewed-by: Risto Avila <risto.avila@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-29 11:59:18 +02:00
Morten Johan Sørvig
27ea8fa99f QCocoaPrintDevice: Compile on Mac OS 10.6
MAXPATHLEN is not defined, use PATH_MAX.

Change-Id: I5a8febce66584c15bdfe81df64fe3f1954972a47
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-04-29 08:25:26 +02:00
Thiago Macieira
774082e2ee Doc: QSize::isValid does >= 0 instead of > 0 comparisons
The member function documentation was correct, just the class
description was off.

Task-number: QTBUG-38535
Change-Id: I55dded9d5ea79d93ce4984911acbeec8bbe6884a
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-04-29 03:27:26 +02:00
Thiago Macieira
eaffcab287 Doc: add info about the -perf benchmark switch to QtTest's manual
Change-Id: I923dcf4f59db8281800950684fdd6dcc6715508e
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-04-29 03:27:26 +02:00
Timur Artikov
4833e5080c Allow to control animations frame rate from a custom QAnimationDriver
Don't use time from the global timer (QUnifiedTimer::time.elapsed()) for
animations updating when an user overrides QAnimationDriver::elapsed()

Task-number: QTBUG-38390
Change-Id: Ic1470b43d8bbc0ee0a2bbb87f7173f97ba03f852
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-04-29 03:27:26 +02:00
Friedemann Kleint
9f6a0300a5 Observe case insensitive file systems in QFileDialog::selectFile().
When stripping the root path from a file name that cannot be found
in the model, use case sensitive comparison depending on
file system.

Task-number: QTBUG-38162
Change-Id: I28e28973fca2da35a5768fdd00cc258b9669a15a
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-04-29 03:27:26 +02:00
Frederik Gladhorn
386292837b Add press action to QAccessibleCombobox
VoiceOver expects press to open the combobox.

Task-number: QTBUG-37922
Change-Id: Iee7b7974db097e4e2444202c703bd587e1576fe0
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-04-28 22:25:50 +02:00
Tor Arne Vestbø
a3634e4b2b iOS: Send updated expose events on application background/foregrounding
When an application has background processing enabled, for example for
communicating with an external accessory or getting location updates,
it might trigger code that does UI updates, which will kill the app as
doing UI in the background is not allowed on iOS.

We guard against this by propagating the backgrounding as updated expose
events with a non-exposed region and isExposed() returning false. This
means clients who correctly use QWindow::isExposed() to guard their
drawing code (including the scene-graph), will live to see another day.

Task-number: QTBUG-36956
Change-Id: Ib708394d33093affe68c9f2c7abde7e54be5ec74
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-04-28 19:52:25 +02:00
Liang Qi
b619c35d85 Revert "Mac: fix bugs for font selection in QFontDialog"
This reverts commit 3c09f6bc9a.

After fbaa6d3ca6, OS X/iOS no longer
uses localized font names.

Task-number: QTBUG-38548

Conflicts:
	src/gui/text/qfontdatabase.cpp

Change-Id: Id7f7e1976e4ffc30c5c18cf57e2acb3aebafc301
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-04-28 19:52:11 +02:00
Jean-Philippe Proulx
55e430a3b3 Fix double release in QTimeZone on Mac
m_nstz is released in the destructor but
not retained when using the QTimeZone(QByteArray)
constructor.

Task-number: QTBUG-35890
Task-number: QTBUG-37582
Change-Id: Ia569830bcd3c2f2cea04ad6696e681c4f2a3c137
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-28 19:50:32 +02:00
Simon Hausmann
40b195d0f9 Fix font fallback handling with Harfbuzz and CoreText
Comparing CGFontRefs is not reliable it seems, CFEqual on them appears
to compare pointers and there's no guarantee that CTFontCopyGraphicsFont
returns the same pointer all the time.

So instead let's compare CTFontRefs, which we keep around and also provide
as input to CoreText shaping.

Task-number: 38363
Change-Id: I6073ea88f0c9f5ebf49d17cba0d76041ade32570
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-04-28 19:49:56 +02:00
Oswald Buddenhagen
9ab4142551 centralize auxiliary lib creation
this covers convenience libraries which are linked into dlls (if we are
not building statically) and "proper" (installed) builds of 3rdparty
code.

Change-Id: I2f00248c0baa0e73346e477724bf49bbc62ba925
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-04-28 19:49:44 +02:00
Laszlo Agocs
485b7424df Avoid reentering processMouseEvents on embedded
Task-number: QTBUG-38597
Change-Id: I168c9401863bace711d0d8409bf3da30a34185bd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-04-28 19:49:26 +02:00
Topi Reinio
2222fdf330 Doc: Remove Qt Core documentation dependency to Qt QML
When generating documentation, the Qt namespace declared in Qt Core
collides with the Qt global object declared in Qt QML. This caused
the C++ Qt namespace documentation to go missing.

This change works around the issue by removing the dependency
between Qt Core and Qt QML.

Task-number: QTBUG-38630
Change-Id: Ifd250a19c476bc30e2a2ed561573c8b6b3b2dba5
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-04-28 19:49:12 +02:00
David Faure
62a436cf3b Fix QFileDialog::viewMode() when using a native file dialog.
It should return the view mode that was set in setViewMode() and
stored in the options.

Change-Id: Iaaa94a201a25baa251446688bf5bdaca5cf3373b
Reviewed-by: Mark Gaiser
Reviewed-by: Dominik Haumann <dhaumann@kde.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-04-28 13:59:24 +02:00
Friedemann Kleint
d7d12bc1eb Fix crash when accessing QFileDialog::selectedFiles() before widgets exist.
Discovered while investigating:

Task-number: QTBUG-38414
Change-Id: I764195254ba4b54c86079c6e8ef750d6249960d9
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-04-28 13:47:40 +02:00
Tor Arne Vestbø
143eab8711 iOS: Send application state changes synchronously
The user might have a limited time to react when the application is
suspended, so we need to send the event as soon as possible.

Change-Id: Ib6c342f5426cf15e36ba4ef57edf30878f86d1c9
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-04-28 11:29:43 +02:00
Gunnar Sletta
049fa03c2f Check the right object's height in qCompare for QImage and QPixmap.
Fixes http://www.viva64.com/en/b/0251/, Typo No. 3 and 4

Change-Id: Icbd33534dbf424e00e4c351ae5ee0e3daa99e7b9
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-04-28 09:34:06 +02:00
Mark Brand
373d858812 [QtSql][QSqlTableModel] fix failure to refresh in selectRow()
Caused by missing braces, leaving the break outside the scope of the if clause.

Task-number: QTBUG-38509
Change-Id: I6b0a7f34512a3a9b0fbd790116f81f54f4a91cf0
Reviewed-by: Tobias Koenig <tobias.koenig.qnx@kdab.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-04-27 20:39:11 +02:00
Israel Lins Albuquerque
3e6e70bddd [QSqlQuery] misbehavior of seek in special query positions
When QSqlQuery::at() == QSql::BeforeFirstRow and seek(1, true) (seek to
next record) is called the expected result is go to first row.
When QSqlQuery::at() == QSql::AfterLastRow and seek(-1, true) (seek to
previous record) is called the expected result is go to last row.

But in all cases the first and last are skipped.

Change-Id: I584138b3d397ce1c790bf89688ee92289a99611c
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2014-04-26 20:22:42 +02:00
Konstantin Ritt
1d372eddbe Fix identical sub-expressions in comparison
Found by static analyzer (see http://www.viva64.com/en/b/0251/).

Change-Id: I611def790a98abf7574e96e6039f10714316d81e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2014-04-26 09:10:03 +02:00
Laszlo Agocs
8ddf76989c Remove old symbols from QOpenGLContext
Task-number: QTBUG-38564
Change-Id: I39a0482e4411cdc644ed34813626c39dacb5b6af
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2014-04-26 09:09:54 +02:00
Thomas Perl
a2ad5cf1aa Fix build error when targeting Blackberry Playbook
The emitSignals() slot is only implemented/used in the file
qqnxfiledialoghelper_bb10.cpp, not in <...>_playbook.cpp.

Change-Id: I068e843be74ec9639d889b87caa016c8506ec905
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-04-25 15:18:29 +02:00
Fabian Bumberger
3e596ffa00 QNX: Do not crash if physical screen size is not set
If the QQNX_PHYSICAL_SCREEN_SIZE is not set or set incorrectly the application
exits with a qFatal. This patch replaces the qFatal with a qWarning
and sets the physical screen size to 15cm x 9cm.

Change-Id: I9e1a36414289c9e9676ef550eac5c1d7be974553
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-04-25 15:18:29 +02:00
Joerg Bornemann
ca85cc620e remove superfluous include
Change-Id: Ie6f52595b84d1383dc64b016dbff9eebe6a5539e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-25 15:18:29 +02:00
Laszlo Agocs
4ff4935ed4 Document setUniformValue limitations wrt non square matrices
Task-number: QTBUG-37012
Change-Id: Ife4f16eef22090ae4f6fdc24b69a45142a10d9c9
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-04-25 15:18:29 +02:00
Friedemann Kleint
ff77621469 Windows: Reject focus-in caused by reparenting Windows.
Calling WinAPI SetParent() causes the window to be activated, which
is not desired for native child widgets.

Task-number: QTBUG-32867
Change-Id: Idf61931bc425a043a4b7a98eec9ae122e234dc37
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-04-25 15:18:29 +02:00
Fabian Bumberger
d032ff6388 QNX: Don't create a platform window for a desktop widget
As I understand it the QDesktopWidget does only serve the purpose of
returning the screen size and number. It does not need a real platform
window.
This removes some overhead, because a desktop widget is always created.

Change-Id: I8c0d86bbb46b1f32094fda1592df795af6bb423f
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-04-25 15:18:29 +02:00
Gabriel de Dietrich
c7ed644fd1 QMenu: Add support for QWidgetAction on Mac
The implementation follows a similar logic as in Qt 4
making sure we properly interface with the QPA backend.

We also make sure to delay moving the action widget to
the QPA menu until it's about to show. We still don't
support moving the action widget back from QPA world
into Qt, as explained in the QWidgetAction documentation.

Task-number: QTBUG-19840
Change-Id: I47f6359b0806f967d80c67fbb1f36c3d5ec8603e
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-04-25 15:18:29 +02:00
Milian Wolff
4ba57a0590 Use showNormal() instead of show() in QToolTip.
Even on platforms that use the QPlatformIntegration::StyleHint
ShowIsFullScreen we do not want to show tool tips fullscreen which
would happen if we just call show().

This is also required to fix somewhat random crashes on QNX when
browsing a website and hovering links that would trigger a tooltip to
be shown. There, we could end up with nested calls to
QToolTip::showText when the tooltip was shown full-screen. Since
QToolTip is not reentrant that can lead to crashes since
QTipLabel::instance could be deleted/invalidated inbetween.

Change-Id: I335fcd10cb6d4cffeb622ed8e0caf17f6413d62d
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-25 15:18:29 +02:00
Frederik Gladhorn
57f8fba4cb Accessibility Mac: implement min/max value
This commit fixes QProgressBar reading by VoiceOver.

Task-number: QTBUG-38272

Change-Id: I549fbebe1aff599e53b14685c1bde6c9fb98aa21
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-04-25 15:18:29 +02:00
Frederik Gladhorn
8abf98345a Accessibility Mac: Make value interface settable
This will let VoiceOver announce QLineEdit as editable text.
It also implements setting of values for value interfaces (eg sliders).

Task-number: QTBUG-38258

Change-Id: Ic30c10abc4dc0c4f3c5fe922ac5b0a4bbf4b1e5f
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-04-25 15:18:29 +02:00
Frederik Gladhorn
aa920e6274 Accessibility Windows: Improve Menus
This would especially trigger when moving the focus between menus - after
the right menu got the focus we would send another event for the QMenuBar,
preventing the screen reader from reading the actually selected menu,
announcing the menu bar instead.

[ChangeLog][QtWidgets][QMenu] Accessibility: Menus are read by screen
readers with more reliability.

Task-number: QTBUG-38498
Change-Id: Ie4028120b234949380315296bf07ca53863d0ad8
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-04-25 15:18:29 +02:00
Frederik Gladhorn
58e48831f1 Accessibility Mac: Fix reading of empty lines in text edit
startOffset is already one char past the newline.
By adding +1 we would skip one newline if the text was \n\n.

Task-number: QTBUG-38257
Change-Id: Ida49a4b690bfa71f134e9be46126f418783a3c97
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-04-25 15:18:29 +02:00
Allan Sandfeld Jensen
fab46b1c6f Avoid a double memory copy during bindTexture
If a painter is active on a QPixmap being uploaded, it will be copied
twice, first to create a QImage and then from QImage into a texture.

The first copy is unnecessary since the QImage is only temporary, so
we can force it to be created as a reference instead of a copy.

Change-Id: Iabcfb514a634446a01f1c4031349c185ec09290b
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-04-25 15:18:29 +02:00
Allan Sandfeld Jensen
8ab1323842 Don't use GL_REPEAT for image-brush drawing on OpenGL ES2
Backport of commit 8dfeb1c374 in QtGui
to the same class in the QtOpenGL module.

OpenGL ES2 doesn't support NPOT textures in combination with GL_REPEAT,
so for OpenGL ES2 we use a custom program that emulates repeat by taking
the fractional part of the texture coordinates.

This is not enough though, as merely setting GL_TEXTURE_WRAP_x to GL_REPEAT
with a NPOT texture is an error in some implementations, so we have to
guard the call to updateTextureFilter() in updateBrushTexture() with
a check for OpenGL ES2 and use GL_CLAMP_TO_EDGE instead.

Change-Id: Icbdd784c2c6d562849679f87da18b20d5441f389
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-25 15:18:29 +02:00
Morten Johan Sørvig
079f2bf5d8 Cocoa: Fix crash on Combobox popup close.
Regression caused by 0be1c4899c.

The calls to handleCloseEvent/flushWindowSystemEvents
may result in popup window deletion and a stale/null
pointer access.

Get the window type before closing it.

Task-number: QTBUG-38418
Change-Id: I212a56979e0248076e1eb5bf9ede1ff0d424e041
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-25 14:04:42 +02:00
Allan Sandfeld Jensen
55d1aa3121 Use runtime detection of XInput 2.1 to disable legacy wheel events
Ensure we fall back to using wheel button events if xinput 2.1
scroll events are not available. Handles lack of xinput 2.1
support in the server or in the input devices drivers.

Task-number: QTBUG-38169
Change-Id: Ie4ad9069f648d0ab02d8f9540ed01ad58fd9e9d8
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-25 14:03:55 +02:00
Jędrzej Nowacki
0e99bd1990 Build fix with defined DEBUG_MOC
Change-Id: I365feceda20625e95503eb5acfa58fc89bd3720a
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-04-25 10:55:31 +02:00
Friedemann Kleint
6ddcfcdcbe Update tooltip palette when receiving a theme change notification.
Task-number: QTBUG-38183
Change-Id: Ia86ae698ae4afcf9d5c361f178f3ca44ae9a3ee5
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-04-25 10:55:31 +02:00
Friedemann Kleint
9fc0c54662 Windows: Add missing colors to tooltip palette.
Task-number: QTBUG-38183
Change-Id: Ic3581cc87c0d61140624ddaf6fa85d682120ad4f
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-04-25 10:55:31 +02:00
Jani Heikkinen
16501e32eb Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2014-04-25 10:55:31 +02:00
Olivier Goffart
c1d41b42a1 Document that the connection stay active when objects used in a lambda are destroyed
Task-number: QTBUG-37472
Change-Id: I44a6d7f8bf6928cd99a05d1b00fe36313cb18ffa
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-25 10:55:31 +02:00
Bernd Weimer
3f4c8293f2 QNX: Fix geometry change handling
QWindowSystemInterface::handleGeometryChange has to be called with
proper geometry whenever it changes.

Change-Id: I691b85467a815ed21bce2bb64b33fa297c16f809
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
2014-04-25 10:55:31 +02:00
Laszlo Agocs
f9d323279a Rename new QOpenGLContext APIs
isES() becomes isOpenGLES(). The library type enums are changed
DesktopGL -> LibGL and GLES2 -> LibGLES. This removes the now
unnecessary version number, the confusing "desktop" term and provides
better readability.

The old function/values are kept until the related qtdeclarative
changes are integrated.

Task-number: QTBUG-38564
Change-Id: Ibb0a1209985f1ce4bb9451f9b7b093c2b68a6505
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2014-04-25 10:07:45 +02:00
Louai Al-Khanji
cc15a20d03 Direct2D QPA: Improve software fallback mechanism
Improve the way we fall back to the raster engine by forwarding painting
state. Amongst other things this makes perspective transforms appear
correct.

Change-Id: I729de56ef3112bbc01516fc11c295f33a2aada0d
Reviewed-by: Risto Avila <risto.avila@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-04-25 08:52:57 +02:00
Louai Al-Khanji
1467b63b06 Direct2D QPA: Fix paint engine state handling
Fix the paint handling to support QPaintEngineEx style state updates. This
fixes most of the outstanding issues, as QPainter save and restore were
essentially broken before

Change-Id: I477d8acfd71bba32dfac4c491bc5bbaad1804ec5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Risto Avila <risto.avila@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-04-25 08:52:57 +02:00
Louai Al-Khanji
5611b66c90 Direct2D QPA: Optimize Clipping
Use axis aligned clips when possible instead of layer-clipping. This can
be much faster when a lot of clipping operations take place.

Change-Id: I6865d69fc917a7da858033b4c362b307724d9006
Reviewed-by: Risto Avila <risto.avila@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-04-25 08:52:57 +02:00
Louai Al-Khanji
42bc626e4e Direct2D QPA: Disable vsync
We shouldn't block the whole gui thread for vsyncing. This can slow things
down a lot if a lot of drawing happens.

Change-Id: Ie459f9dee2271e7908e2b7f56873393c67f82836
Reviewed-by: Risto Avila <risto.avila@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-04-25 08:52:57 +02:00
Friedemann Kleint
817fe67839 Improve COM error handling in the Windows platform plugin.
Add error strings, print warning if OleInitialize() fails.

Task-number: QTBUG-38398
Change-Id: I37f6b7003fd1cf524ce69d6843891943402b27a1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-04-25 06:58:27 +02:00
Thiago Macieira
93c6976a39 Un-export QSignalBlocker: it's all inline
Change-Id: I0fb5a30eebd9edba853b7e4bd74cc7e9b06da486
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-04-25 06:44:47 +02:00
John Layt
58bb42dc2c QPrintEngine - Fix alpha engine state sync
Move the copy of the paint engine to after the engine state has been
synced, otherwise the transform is incorrectly applied after the new
page.

Task-number: QTBUG-38329
Change-Id: I2e134889b3ef10f6e3dce42edac2a58e78c66c30
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-25 06:43:42 +02:00
Olivier Goffart
89ecac4607 QSqlError: Mark deprecated functiond with QT_DEPRECATED
And move the default argument from the deprecated constructor to
the new one

Also make sure that the error number is consistent across the
two constructor

Change-Id: I3721266b39ab493f0add35b2d1f892b2f6094992
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-25 06:37:06 +02:00
Morten Johan Sørvig
c0825cbfc0 Cocoa: Make Qt::Tool windows hide on deactivate
This is a regression from 5.1.

Task-number: QTBUG-37706
Change-Id: Ib28eead869dde37ded37397a89a94b67fb150cca
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Liang Qi <liang.qi@digia.com>
2014-04-25 06:34:23 +02:00
Oswald Buddenhagen
06fef71775 document new QTPLUGIN magic
Change-Id: Ia12f55a3e6bd670cb95c21c8f896b0451dd63693
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-25 06:34:13 +02:00
Paul Olav Tvete
7e071cebaa Android input method fixes for SwiftKey
Try to conform to the input method protocol in the way that
SwiftKey expects (and the way that the stock android
components actually do).

* Refactor cursor position logic
* fix getExtractedText() so it includes preedit text
* ignore the hintMaxChars parameter to getExtractedText(), since
  it looks like everybody else does
* fix setComposingRegion when preedit is active
* track the start of the preedit and the preedit cursor position,
  since the Qt input method query does not give us this information

Change-Id: I2ed8797abacd97ca749ca152fab2a2d5446ef603
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-04-25 06:34:08 +02:00
Peter Hartmann
d29a750c0c QAbstractSocket: enable read notification for unbuffered sockets
This restores behavior for UDP sockets as it was in 5.2.1. Change
13c246ee11 introduced a behavioral
change / regression in that respect.

Task-number: QTBUG-37489
Change-Id: I8f0b26d763dd66ea6edcc343e91ff5c9c7bdc0f2
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-04-25 06:34:04 +02:00
Lars Knoll
eb1325047f Don't crash on broken GIF images
Broken GIF images could set invalid width and height
values inside the image, leading to Qt creating a null
QImage for it. In that case we need to abort decoding
the image and return an error.

Initial patch by Rich Moore.

Task-number: QTBUG-38367
Change-Id: Id82a4036f478bd6e49c402d6598f57e7e5bb5e1e
Security-advisory: CVE-2014-0190
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-04-25 01:43:21 +02:00
Albert Astals Cid
08edb8742c Remove unneeded ;
Warnings returned by pedantic

Change-Id: I501621df6e9f39b18576625b321714a862dc971a
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-24 17:42:40 +02:00
Thiago Macieira
e57b521d95 Deprecate setSharable in Qt containers
The ability to set a container to be unsharable has very little use and
it costs us an extra conditional for every refcount up and possibly
down.

This change is a no-op for current Qt 5. It shuffles a few things around
just so Qt can compile if you define QT_NO_UNSHARABLE_CONTAINERS. That
is done to ease the fixing of the code in Qt 6 and to make my life
easier: I'll keep that defined in my local Qt build so I can catch any
misuses of this deprecated API.

The newly deprecated methods are not marked QT_DEPRECATED because the
bootstrapped tools wouldn't build -- they're built with QT_NO_DEPRECATED
defined, which causes build errors.

[ChangeLog][QtCore] The setSharable() and isSharable() functions in Qt
containers has been deprecated and will be removed in Qt 6. New
applications should not use this feature, while old applications that
may be using this (undocumented) feature should port away from it.

Discussed-on: http://lists.qt-project.org/pipermail/development/2014-February/015724.html
Change-Id: I789771743dcaed6a43eccd99382f8b3ffa61e479
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-24 10:49:10 +02:00
Morten Johan Sørvig
cafa3848e2 QOpenGLFunctions: Compile on Mac OS 10.6
The 10.6 OpenGL headers have "GLenum" as the type
for the 3rd argument. The OpenGL standard has "Glint",
which is also what Qt expects.

Work around this by casting the pointer type.

Task-id: QTBUG-38406
Change-Id: I6d820f41e0d14cbc2d50d91997b6c40b626b159f
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-24 10:48:39 +02:00
Thiago Macieira
bbf37b61d0 Document QString's UTF-8 conversion behaviors
We haven't handled the Unicode non-characters specially since Qt 5.2
(since commit 9327bc87c3), so this part of
the documentation was stale.

Since Qt 5.3 (since 8dd47e34b9), QString
will insert one replacement character for each byte that can't be decoded
properly.

[ChangeLog][Important Behavior Changes][UTF-8 decoding] The QString
UTF-8 decoder changed behavior slightly: when it encounters invalid
sequences, it will insert one replacement character per byte that is
invalid, instead of one replacement character for the whole invalid
length.

Change-Id: Ia4ec78afded9445bbe937311d6be80f71bd1a55f
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-24 10:48:03 +02:00
Thiago Macieira
f56ef579ba Restore handling of BOMs in QString::fromUtf8
8dd47e34b9 removed the handling of the
BOMs but did not document it. This brings the behavior back and adds a
unit test so we don't break it again.

Discussed-on: http://lists.qt-project.org/pipermail/development/2014-April/016532.html
Change-Id: Ifb7a9a6e5a494622f46b8ab435e1d168b862d952
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-24 10:47:49 +02:00
Oswald Buddenhagen
cae970c686 doc fixes
Change-Id: I77da456b89accd7fc363471fe8e370da17e2fdcc
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-04-24 10:46:17 +02:00
Oswald Buddenhagen
bbcdccd676 deprecate import_qpa_plugin and qpa_minimal_plugin
they have been fully superseded by 4255ba40ab.

Change-Id: If7ac14c8b7d3cf00fb0cb916036b62eb86c9cee0
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-24 10:45:55 +02:00
Laszlo Agocs
f9d7f85079 Fix up EGL config selection comments
After cross-checking with the spec and some embedded devices providing
both 888 and 565 configs, it turns out the behavior and the old legacy
comments are correct. Rephrase and extend the comments a bit to make
it maintainable.

Change-Id: If6043a39ca0129cfd075c997f362891f0c28dc2c
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-04-24 10:37:19 +02:00
Bernd Weimer
d5a4732c1a Allow logging to stderr
Introduced a new environment variable "QT_LOGGING_TO_CONSOLE".
When set on QNX for instance, log output is directed to the console
instead of slog2. This can be more convenient when working on the
command line. Besides, many declarative auto tests expect that,
as well.

Marked QT_NO_JOURNALD_LOG and QT_ANDROID_PLAIN_LOG as deprecated,
to be replaced with QT_LOGGING_TO_CONSOLE.

Change-Id: I7329fa2d10d31506eff145e956eaaa45d94f8e20
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-04-24 10:15:24 +02:00
Louai Al-Khanji
a564b4e70a Direct2D QPA: Do not attempt to create swap chain for desktop widget
We can't and don't need to create a swap chain for the desktop widget.

Change-Id: I84cd5c753710af09bab5c7afc27e202e661343db
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Risto Avila <risto.avila@digia.com>
2014-04-24 07:58:02 +02:00
Sergio Ahumada
f0e8f9c4de Bump Qt version to 5.3.1
Change-Id: Ie84329ab67143c3a8560bc49c4f0f8e0c423bdfc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-24 07:56:50 +02:00
Jani Heikkinen
54c1e5ed22 Merge remote-tracking branch 'origin/release' into stable
Change-Id: Id13b4a3803664692f32f9d57549be8a0c4a08567
2014-04-23 12:42:48 +03:00
Friedemann Kleint
1cb0cd9e7a Windows printer support: Fix linking problem when built with -no-opengl .
Add missing libraries that were otherwise pulled in by opengl.prf.

Task-number: QTBUG-38431
Change-Id: I1705d432088a47b5a202595e818e9efcd5f6a4cf
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-04-23 06:31:04 +02:00
Konstantin Ritt
aeb0d58782 Fix warning with -Wswitch-enum
> warning: enumeration values 'Joining_None', 'Joining_Left', and 'Joining_Transparent'
> not explicitly handled in switch [-Wswitch-enum]

Change-Id: I314b486462451e7d62980b6185b46cd115be1547
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-23 06:31:00 +02:00
Andrew Knight
c97edb2579 WinRT: Handle back button as press or release
Earlier, only the back press was checked for acceptance. By also checking
the release event, this makes the backstepping behavior consistent with
Qt for Android, and fixes the expected behavior found in our demo
applications.

Task-number: QTBUG-35951
Change-Id: I9c2f18816b838d57713ba4dd3624e2f3f1ac40ac
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-04-22 13:54:42 +02:00
Andrew Knight
878da15f2c ANGLE WinRT: Call Trim() when application suspends
This is required by Windows Store Apps to pass certification.

Task-number: QTBUG-38481
Change-Id: I6dc00431ee5f6c7d4c64111ccc38f46483d3b9a8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
2014-04-22 13:54:38 +02:00
Andrew Knight
078c71ac8f WinRT: Fix TCP socket reads
All read calls are now pulled from an intermediate buffer which is
populated from the asynchronous callback (this was a TODO previously, and
was breaking downloads of large requests). As a side-benefit, the use of
only async callbacks ensures fewer first-chance exceptions appear in the
debug output.

Task-number: QTBUG-30196
Change-Id: I5653742d8d94934a4b4a4227298865d20518bc4c
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-04-22 13:54:34 +02:00
Richard J. Moore
207598fd8e Fix copy-paste error.
Fix an error identified by static analysis from
http://www.viva64.com/en/b/0251/

Change-Id: I3b69f8eb8c9e10772d5ca2afad75582e8a54beb7
Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-04-18 14:26:26 +02:00
Richard J. Moore
22bb244d6d Fix copy-paste error.
Fix copy-paste error identified by static analysis at
http://www.viva64.com/en/b/0251/

Change-Id: I214d6bf8494a946a6c772b6dca1395e4140a471f
Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-04-18 14:26:26 +02:00
Richard J. Moore
4a28205bed Fix copy-paste error.
Fix copy-paste error identified by static analysis at
http://www.viva64.com/en/b/0251/

Change-Id: I2e454c2e7535924dd533c0ceb4fd2283a8f9862f
Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
2014-04-18 14:26:26 +02:00
Gabriel de Dietrich
c7bd85e97d Cocoa: NSMenu views never get viewDidUnhide called
This is the case for QWidgets added as native menu items with
QWidgetAction. According to Cocoa's documentation [1], we should
rely on -[QNSView viewDidMoveToWindow] instead.

On 10.9 however, we receive NSWindowDidChangeOcclusionStateNotification
from the NSMenu window, which is preferable to using -[QNSView
viewDidMoveToWindow] as it guarantees the view is actually visible.
We do runtime symbol lookup to get this to work on 10.9 regardless
of the build SDK version.

[1] https://developer.apple.com/library/mac/documentation/cocoa/Conceptual/MenuList/Articles/ViewsInMenuItems.html

Task-number: QTBUG-19840
Change-Id: If4676df5d79c359965f09ef2e5eddf4c925e3533
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-04-18 11:05:25 +02:00
Morten Johan Sørvig
13e3f269fd QPrintDialog - Fix Mac reference counting error.
"key" is accessed with a "Get" function and should
not be released. Switch from using QCFString to a
CFStringsRef.

Change-Id: Id4eecc642de8698314fc57d44af05c202966b11c
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: John Layt <jlayt@kde.org>
2014-04-18 07:45:19 +02:00
John Layt
4e4b2d6701 QPrintDialog - Fix mac change of printer name
If the user changes the printer name in the Mac print dialog then
update the print device in QPrint to reflect this.

Task-number: QTBUG-37808
Change-Id: I3aaf27e2db7277ab083dc8f8d59f0f80ecd424f1
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-04-18 07:45:11 +02:00
Paul Olav Tvete
6e26bd5fa2 Android input method fix
Let textBeforeCursor return the text immediately before the cursor,
and not the text at the beginning of the paragraph, even if that is
also technically before the cursor. (Apparently I do not know the
difference between left and right.)

Change-Id: I6043ebe53838e68880b6407dbb9e5370bc785c1b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-04-18 07:45:04 +02:00
Oswald Buddenhagen
dcfd36c268 Revert "Automatically link printsupport plugins to static applications."
It has been fully obsoleted by 4255ba40ab.

This reverts commit 99eecab83d.

Change-Id: Id7b8d3bba27ff43e38e4fe32a4f2950de9ced493
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2014-04-18 07:44:57 +02:00
Gabriel de Dietrich
454dc332b3 QPA: Adding API to support QWidgetAction on Mac
Includes the Cocoa implementation.

Task-number: QTBUG-19840
Change-Id: Id33bc8053b82116cf76ed591b6df823df3aef9bc
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-04-17 18:56:27 +02:00
Gabriel de Dietrich
5ad594a061 QMacNativeWidget: Fix background rendering
The widget's background is transparent, but Qt is not owning the
backing store in this case, so we must make sure it gets properly
cleared and flushed.

Task-number: QTBUG-19840
Change-Id: I1087ce80aae3620d64a8c180129d79b5b022750b
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-04-17 18:56:27 +02:00
Joerg Bornemann
c4c9883d13 fix read notification in QWindowsPipeReader::waitForPipeClosed
In QWindowsPipeReader::waitForPipeClosed we must check for available
bytes in the internal buffer and trigger the notified signal.

This fixes tst_QLocalSocket::writeToClientAndDisconnect on Windows.

Change-Id: I0f4d6cd73a0a8eac5b438b82984457068a9551d1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-17 18:56:27 +02:00
Shawn Rutledge
d449c0e0e4 When a window loses focus to a popup, event has PopupFocusReason
Followup to debe31e047 : a popup
window can have focus, but a QQuickWindow needs to know why
it loses focus when a menu is opened, so that for example
copy/cut/paste Actions can apply to the text which did have
focus before the menu opened.  The event's focus reason provides
enough information to deal with this situation.

Task-number: QTBUG-36292
Task-number: QTBUG-36332
Change-Id: Ifae999a364a61b125a4764c9db204a167bddf0b7
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-04-17 10:59:47 +02:00
Laszlo Agocs
4dbef58c3d Restore Qt 4 behavior in default double click handler
Revert 3bb9024952. That fix was an attempt
to handle the issue that has been fixed in 5.3 by
9063edef79 and should have been reverted
when the new approach, that restores Qt 4 behavior for widgets, was
introduced.

Task-number: QTBUG-38242
Task-number: QTBUG-36423
Change-Id: I8f8a82da22605fac90543492e9b2cd2b568544e7
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-17 10:59:13 +02:00
Laszlo Agocs
7aac93b6ce Remove internal public function from QOpenGLFunctions
QOpenGLContext uses glGetTexLevelParameteriv on desktop OpenGL and so it
got recently added to QOpenGLFunctions as part of the dynamic GL loading
support.

This is unnecessary since such desktop-only code can use the versioned
wrappers (QOpenGLFunction_1_0 for example). In related upcoming changes
in 5.4 the function is removed. This change has to be backported to 5.3
to prevent introducing this public API unnecessarily.

Change-Id: I6fc331091e4e6416e430bf985afcc17a392fc2e3
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-04-17 10:59:03 +02:00
Sze Howe Koh
329752517c Doc: Improve docs for file permission checking on NTFS
- Reduce verbosity in qfiledevice.cpp
- Copy to qfileinfo.cpp

Task-number: QTBUG-35232
Change-Id: I4b0de36bdf266ebf486f73daecec8fbb74fa1d4c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-04-16 18:21:36 +02:00
Gabriel de Dietrich
efa7a5a659 Cocoa: Force menubar update after inserting a new menu
Task-number: QTBUG-38135

Change-Id: I7bb9f41789cc77c26a9623d69c28e3ad1607bb9c
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-04-16 15:21:50 +02:00
Stephen Kelly
154b35e8c0 CMake: Include the definition of the Qt5::AccessibleFactory target.
The file will not exist if the accessible plugin is not built.

Task-number: QTBUG-37849
Change-Id: I2983d01a085b11737bf49805edab5ca33fb5174a
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2014-04-16 15:21:50 +02:00
Stephen Kelly
a420c6e838 CMake: Include the CMakeParseArguments module for dbus macros.
The cmake_parse_arguments macro is used already in the file. The
module happens to already be included via Qt5CoreMacros, so the
existing code is not currently a problem.  Add the include to
comply with 'include what you use' and to ensure that it continues
to work even if Qt5CoreMacros is changed in the future.

Change-Id: I7369261bce9d0e58488e584ef0743e33e9f9ec9e
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2014-04-16 15:21:50 +02:00
Bernd Weimer
2ba9a2584f Fix polling file system watcher addPaths
Fixes QFileSystemWatcher::addPath() auto test when polling file system
watcher is in use: adding the same path twice should fail.

Change-Id: I2a0df3ffa587fa90fae744858f4471d667443e6f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
2014-04-16 15:21:50 +02:00
Louai Al-Khanji
d0cf69eaff Direct2D QPA: Fix text drawing with brush but no pen
We were incorrectly bailing out early in the text drawing code when there
was no pen. This is incorrect as drawing with only a brush should be
possible.

Change-Id: I94eaadd3cf6c4d82033b5d74d7ca47a05601083f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-16 15:21:50 +02:00
Louai Al-Khanji
0c95332f8f Direct2D QPA: Refactor code to reduce code duplication
Refactor duplicate logic in painterPathToPathGeometry and
vectorPathToID2D1PathGeometry into one utility class. At the same time
make the naming of the two functions consistent with each other.

Change-Id: I03c8fc183863473b7337223e51835cf080914a41
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-16 15:21:50 +02:00
Louai Al-Khanji
7d0f4dde06 Direct2D QPA: Optimize rectangle fills.
Detect rectangle hints in the QVectorPath and react accordingly.

Change-Id: Ic72ce0c46d10e995c0824972854e2d88162eae45
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-16 15:21:50 +02:00
Louai Al-Khanji
f961425256 Direct2D QPA: Improve gradient support
This change adds support for those gradients which can be expressed using
Direct2D. At the moment this means linear and radial gradient with pad
spread only.

Change-Id: Ib1b1bc38a793dd826a259bbf8a7b31c25906dd59
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-16 15:21:50 +02:00
Tasuku Suzuki
cd21b56c9d remove context unmatched warning in QOpenGLTexture
destroy() or destructor complain when QOpenGLTexture is not created or
it is already destroyed.

Change-Id: I6b3135849e3ba2ce35678fcdbf1c9b6e588a063c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2014-04-16 13:29:12 +02:00
Andrew Knight
8b0fd78caa WinRT: Don't use the native thread handle for waiting
There is no guarantee that the handle from std::thread will be valid
when a wait is made. Instead, simply use an elapsed timer and check
if the thread is finished. This prevents an exception from being thrown
when a bad handle is encountered.

Task-number: QTBUG-31397
Change-Id: Ie2a7e6cbfbb27bf1baff779322670d85e92e10dd
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-04-16 12:26:43 +02:00
Richard Moe Gustavsen
839c54e070 iOS: fix crash in auto correction when using unknown font family
If QFont reports a family name that cannot be used to instanciate
a UIFont, we end up trying to insert a nil object to an
NSDictionary. This will raise an exception.

This patch will check that we have a valid UIFont before using it.

Task-number: QTBUG-38018
Change-Id: Id8a2e4afea8c915ff43a7e4680304ba19328f9c2
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-16 12:26:43 +02:00
Jorgen Lind
50b8506eac XCB: fix that modal dialogs can go behind other process windows
Task-number: QTBUG-35302
Change-Id: I1ad7a66e530710d5338a15057254360dae676451
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-16 09:30:32 +02:00
Paul Olav Tvete
3f9ad1efd6 Android: Reset input method when focus changes
Qt Quick does not have the widgets workaround of explicitly hiding
the input method on focus out. This fix copies what happens in
the iOS port: Commit the current preedit and reset the IM when we
see that the focus object changes.

Task-number: QTBUG-38047
Change-Id: I30805265286dc650b3734e2a24807cdc8bfbcd16
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-04-16 07:29:22 +02:00
Konstantin Ritt
fec19027a5 Fix font merging for complex scripts on Windows
As long as QWindowsFontDatabase::fallbacksForFamily() does not take script
parameter into account, we should prefer QFontEngineMultiQPA's loadEngine()
implementation for complex scripts; otherwise we could fall into a situation
where reported fallback fonts doesn't support the requested script at all.

This finishes c3b2425791.

Task-number: QTBUG-37836
Change-Id: I2c43d97f1331ad05116856f9fe77560ed4dd02c7
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-04-16 07:29:03 +02:00
Oswald Buddenhagen
ffc0e68a16 fix debug_and_release builds
Task-number: QTBUG-38358
Change-Id: Idb02fd845c1f36b963150cc150dd2ee5bdd7bc4a
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-04-16 07:28:33 +02:00
Leena Miettinen
454ebcac45 Doc: recommend using QLocale for loading translations
Users can choose to use different UI languages and regional settings on
their devices. QTranslator::load(const QLocale &) function uses
QLocale::uiLanguages() and not to the locale name, which refers to the
formatting of dates and numbers.

Change-Id: Iec6327dd1e91d913176499b23482d725b9d0a8aa
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-16 07:28:00 +02:00
Friedemann Kleint
3536823c7f QCollator: Add note about ICU dependency.
Task-number: QTBUG-28766
Change-Id: If661915457c4874a72e1111b85897aea596362bf
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-04-16 06:28:43 +02:00
Allan Sandfeld Jensen
fb7da5cc8c Reload lastScrollPosition on window enter
We need the lastScrollPosition position to calculated scrolling deltas
on scroll events. Since the position is tied to the device and might
have changed while scroll events were send to other applications we need
to reload the value when mouse focus reenters our application.

Task-number: QTBUG-38274
Change-Id: Ic166648f8e7ae486288cbed339a057e3faa1ef2d
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-04-15 14:37:01 +02:00
Allan Sandfeld Jensen
3fdf53786f Unite the documentation for qmath.h functions
Some functions in qmath.h was documented under QtMath, and some under
QtCore/qmath.h, the latter does not appear to lead to functional links
in the function list, so we should move them all to QtMath.

Task-number: QTBUG-37799
Change-Id: I3118c65ccbfb2401bdc324dbef2885d4e7d1c8f6
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
2014-04-15 14:24:13 +02:00
Friedemann Kleint
ff2dbe609e Fix crash when deleting top level windows embedded into QGraphicsProxyWidget.
Clear proxyWidget pointer in slot
QGraphicsProxyWidgetPrivate::_q_removeWidgetSlot().

Task-number: QTBUG-29684
Task-number: QTBUG-33213
Change-Id: Ibdbd52aa810ca908e3d98daa00954345e7a93a48
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
2014-04-14 22:25:08 +02:00
Thiago Macieira
387f75c39b Disable C++11 initializer lists and rvalue refs for old libstdc++
This can happen if you're using a recent compiler other than GCC (that
is, Clang or Intel) and using an older version of the GCC headers.

The check is not strictly correct: we're disabling for libstdc++ that
came with GCC 4.2 and enabling for everything afterwards, even though
both of those features were not present in GCC 4.3. However, the
__GLIBC_LIBSTD__ macro only exists on Apple's patched version of
libstdc++ and they're not going to update it anyway.

libstdc++ does not provide a version macro that we can use.

Task-number: QTBUG-38193
Change-Id: I34d38a2f2e5b4ac51bce35c30ec0fcf19de9cdf4
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-04-14 20:56:06 +02:00
Thiago Macieira
070e1637eb Disable all C++11 rvalue refs with Dinkumware C++ library too
Our code assumes that Q_COMPILER_REF_QUALIFIERS implies
Q_COMPILER_RVALUE_REFS. Technically, it should check both macros, but
the only point of ref qualifiers is to have both lvalue- and rvalue-
reference member functions. We might then use std::move without a check
to see if the standard library does provide it.

Change-Id: Ia3eedd298c2218f100aee2e41bdea6e2c5c07a15
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-04-14 18:41:02 +02:00
Thiago Macieira
94742faece Remove the #ifdef check just before #undef
No warning is printed anyway. This code is only for one compiler (GCC on
QNX, a.k.a. QCC).

Change-Id: I28d085c72ab5a957146efab0a36c72f213d9d2c3
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-04-14 18:40:55 +02:00
Bernd Weimer
aee59f06e0 QNX: Fix QDir::entryInfoList()
If D_FLAG_FILTER is set, duplicate name entries are filtered out, so
this flag has to be set along with D_FLAG_STAT in the call to dircntl.

Also releaved dependencies between defines__EXT_QNX__READDIR_R,
__EXT_QNX__READDIR64_R and _POSIX_THREAD_SAFE_FUNCTIONS

Task-number: QTBUG-38189
Change-Id: I4e620cb9967e3d1baf6f2109a7c83703702f805b
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2014-04-14 16:47:51 +02:00
jkobus
38aba919ac Fix documentation of QRegExp
Change-Id: I6c9083941eb791eb34ce982986e3e04ac5a765ad
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
2014-04-14 16:47:51 +02:00
Fabian Bumberger
bfb25c0352 Restrict QFontComboBox's popup width to screen width
Change-Id: I5a92308beb2f245d9f031918bb8154757316ef56
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-04-14 16:47:51 +02:00
Martin Gräßlin
53a5dd28c7 Handle parent is None from query_tree_reply in QxcbWindow::frameMargins
None is a valid return value for parent in xcb_query_tree_reply_t.
If that is used as the new parent the next call to
xcb_query_tree_unchecked will fail with a BadWindow error.

Change-Id: Iafe29b223ca65c86ecfd40fe51e67d4bd7abc1ce
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
2014-04-14 14:39:36 +02:00
Sérgio Martins
ff9afeed51 Fix build against older OpenSSL.
The declaration of q_SSL_ctrl is ifdefed, so ifdef it's usage too.

Change-Id: I99a53af6f4f24ed991d39ab89f18e03b8f38c617
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-04-14 11:30:57 +02:00
Ulf Hermann
6977700bed Disable threaded rendering if Mesa is used
Mesa and xcb show some bad interaction which leads to frequent crashed
on multithreaded access. Also, the selective approach to blacklisting
only specific chipsets isn't feasible, given the resources available.

The client glx vendor string is used to identify mesa instead of the
server GL vendor and/or renderer string as that is much more reliable.

Task-number: QTBUG-38221
Change-Id: I2d8c037aa4fd9c38eb9537452a5e7e62f72a081d
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-04-14 06:44:00 +02:00
Konstantin Ritt
0ec07b68ad Improve the Unicode script itemization implementation
Make it closer to the Unicode specs (UAX#24):
* Common now inherits the preceding character's script, if any;
* In a combining character sequence, if the base character is
  of Common script, the entire sequence is treated like if it were
  of the first non-Inherited, non-Common script in the sequence.
See http://www.unicode.org/reports/tr24/tr24-21.html for more details.

[ChangeLog][QtGui] Fixed regression in arabic text rendering.

Task-number: QTBUG-28813
Task-number: QTBUG-29930 (related)
Task-number: QTBUG-35836
Change-Id: Id85761965b08ca94c674d5f3613fe58b82b2ce9c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Ahmed Saidi <justroftest@gmail.com>
2014-04-14 06:43:57 +02:00
Konstantin Ritt
ef77c16cb0 Make HarfBuzz-NG the default shaper on Mac
For AAT shaping support, we need either the pre-QPA shaping trick
or the new HarfBuzz on Mac; prefer the latter.
Disable some test cases aimed to test the HB-old behavior; enable ones
that should guarantee shaping-unaware behavior.

[ChangeLog][OS X] Use CoreText text shaping engine for support of
complex scripts. If required, the shaping engine used in previous
versions can be preferred by configuring Qt with -no-harfbuzz.
Alternatively, the QT_HARFBUZZ environment variable could be set to "old".

Task-number: QTBUG-18980 (relates)
Task-number: QTBUG-38246
Change-Id: Iee6fe4f5bc047e77259182b8585385c5febd02b3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-04-14 06:43:54 +02:00
Shawn Rutledge
3a4bd21db5 docs: Q_CLASSINFO is used in a couple more places besides ActiveQt
Change-Id: I000f538dc11477224efbf2edc91873822eb9fef2
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-04-14 06:43:51 +02:00
Morten Johan Sørvig
0be1c4899c Cocoa: Don't consume events when closing tool tips
With change acebf677 we treat Qt::ToolTip similar
to Qt::Popup and close them on a mouse click on the
parent window. This mouse click is not forwarded
to the standard mouse event handler.

Add an exception for Qt::ToolTip.

Task-number: QTBUG-38267
Change-Id: Ie3121f651a6ccc2427040e61db4f63967467604d
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-12 06:37:16 +02:00
Marc Mutz
9216bfbcb1 Doc: document QTimeZone::swap()
Change-Id: I80d55df65546b671772ed93cb852e88ee040114a
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-10 12:52:56 +02:00
Marc Mutz
20c4b797a1 Doc: document obsolete QApplication::setGraphicsSystem()
Change-Id: I5a87564d2dbfa5e739d1ca40db480e8e0c1b7fdf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-10 12:52:20 +02:00
Gabriel de Dietrich
a9cbddf473 Cocoa: Post event to "show()" a modal window
The way we were doing it, we may have interferred with other
events in the CFRunLoop source and call processEvents() at
the wrong moment or for the wrong reason. By using a posted
event, we make the notification channel unambiguous.

This ammends ff3dcc49c4.

Task-number: QTBUG-38214
Change-Id: I94f7e89cf4c9803289749394f85119cba62ef0e7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-04-10 12:52:09 +02:00
Morten Johan Sørvig
bab494e4d0 Cocoa: Send expose event on screen change.
Required to repaint OpenGL content properly.

Task-number: QTBUG-38105
Change-Id: Ie9441d56bd9d1a4eb399210369592f03e19c4929
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-04-10 05:39:03 +02:00
Gabriel de Dietrich
78af725907 Cocoa: Set the COCOA_MENU_ANCESTOR() also when sync'ing
Task-number: QTBUG-38044

Change-Id: I2769bf2f4beec058c15ba1d126e59106f41dab37
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-04-10 05:38:11 +02:00
Uli Schlachter
b1afb91ffe XCB: Print error code on Xlib I/O errors
When Xlib detects that its underlying XCB connection got into an error
state, it calls its I/O error handler. However, the default
implementation doesn't print the error code from XCB which might be
useful for debugging.

This commit adds an I/O error handler which prints the error code from
XCB with a string describing the error and then calls Xlib's default
error handler.

Change-Id: I7f1fb3f1e8d0fdc3ac9db03ae7d154330c31db0c
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-04-10 05:33:38 +02:00
Eskil Abrahamsen Blomfeldt
05cfb6cd09 HB-NG w/CoreText backend: Fix clustering of neutral characters
Say you have a string with logical contents "abc ABC, " where
lowercase is LTR and uppercase is RTL. In this case, the UBA
will give "abc " LTR direction, and "ABC, " will get RTL.

However, our itemization currently divides "ABC, " into two
script items: "ABC" and ", ". CoreText will return glyphs in
visual order, so for the first we will get "CBA" and for the
second we will get ", ". But as the ", " item has an adapted
directionality of RTL in the context of the full paragraph, it
should actually be " ," visually.

This caused a mismatch which broke the tst_QComplexText test
with HB-NG using CoreText backend. As a temporary fix for this,
we check whether the directionality of the first run in the text
is different from the directionality expected by HB-NG. If this
happens, it means the order of the glyphs produced by CoreText
will be the reverse order of what is expected by HB-NG, and
we therefore need to reverse it.

Task-number: QTBUG-38113
Change-Id: I9f5a041791e4529a14041a362b2d5dd00490a38b
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-04-09 20:53:06 +02:00
Morten Johan Sørvig
000693018b Cocoa: Fix DnD when using native widgets.
Adding a native widget such as QGLWidget often causes
other widgets to become native, through native ancestor
and sibling propagation.

This includes QFocusFrame, which typically sits on
top of item views. QFocusFrame is mostly transparent
(except for the frame) and also has the WA_TransparentForMouseEvents
flag set. Its window has the corresponding
WindowTransparentForInput flag set.

Cocoa does not know about WindowTransparentForInput.
Forward the drag calls to the correct window.

Task-number: QTBUG-37077
Change-Id: I02201c7027915b1e82d0cd7e9c2e787ca6b2338b
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-09 20:53:06 +02:00
Morten Johan Sørvig
1a6011e09f QTextImageHandler: Load @2x images on retina
Look for and load "@2x" image versions. Adjust
getPixmap/ImageSize to take the image devicePxielRatio
into account.

Use doc->documentLayout()->paintDevice() to get the
target window devicePixelRatio (like the existing
DPI-based scaling). In practice this pointer may/
will be null, fall back to qApp->devicePixelRatio
as usual.

Task-number: QTBUG-36383
Change-Id: Ib5e113b67242b5a9b3410272f2183a76a60bc773
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-09 20:53:06 +02:00
Morten Johan Sørvig
63e33bfdab OS X: Add more text editing key bindings.
ctrl + K : Cut
ctrl + Y : Paste
ctrl + F : Cursor right
ctrl + B : Cursor left
ctrl + N : Cursor down
ctrl + P : Cursor up
ctrl + V : Cursor next page
ctrl + O : Insert line separator

(ctrl as in the key, not Qt::CTRL)

These are low-priority (0) key sequences. Add them to the
end of each StandardKey range and change the priority
of an existing item to 1 where it makes sense.

Task-number: QTBUG-32837
Change-Id: Id321e6c6ad4277d729b27297a1de66c4628e4201
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-09 20:53:06 +02:00
Morten Johan Sørvig
3876a05adf Mac: Implement unified toolbar look for QTabBar
Extend the unified title and toolbar gradient to 
tabs in document mode that are adjacent unified
tool bars.

Change the updateMacBorderMetrics() function to
register the tab bar geometry and visibility status
with the Cocoa platform plugin. The Cocoa platform
plugin will then merge this area with other registered
areas if possible.

Add QCocoaNativeInterface::testContentBorderPosition(). 
This function tests whether the given point is within 
the unified title and toolbar area.

Use testContentBorderPosition() in QMacStyle to enable 
code paths that skips drawing the QToolBar bottom 
separator line and paints the active tab background 
with transparent pixels to make the background gradient 
visible.

Change-Id: I2b70f9bb0c2c59af053a691a7df538f958783dab
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-09 20:53:06 +02:00
Morten Johan Sørvig
0f2acaf1cb Cocoa: Update unified toolbar area on toolbar hide
Add setContentBorderAreaEnabled() which us used to
enable or disable an area. Used together with
registerContentBorderArea() this allows changing the
border area geometry and enabled status independently.

Add section to the QToolBar show/hide event handler
which calls setContentBorderAreaEnabled().

Make sure QToolBar and QToolBarLayout uses the same
identifier - the QToolBar object pointer.

Rename enableContentBorderArea -> setContentBorderEnabled.
The "ContentBorder" is now the entire unified toolbar
area while "ContentBorderArea"s are the sub-areas
covered by toolbars.

Change-Id: I339f381a50856e048ae40e7ffadd6a8a510c4994
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-09 20:53:06 +02:00
Oswald Buddenhagen
08672adb97 make cmake registration of qt plugins make use of PLUGIN_EXTENDS
instead of assigning plugins to the first module which claims the whole
type, try to assign it to a module which the plugin claims to extend.

as we are getting stricter in that go, somebody needs to claim the
'generic', 'platformthemes', and 'platforminputcontexts' plugin types.
the natural claimant is QtGui. however, as we don't want to auto-link
any of these plugins, make them all claim that they extend a
non-existing module.
QtGui also claims 'iconengines' plugins.
the 'printsupport' plugins are also claimed by the respective module.

Change-Id: I7af7c16089f137b8d4a4ed93d1577bd85815c87b
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-09 20:53:06 +02:00
Oswald Buddenhagen
4255ba40ab automatically link plugins belonging to qt modules when building static apps
the plugins already declare which modules they belong to.
additionally, we allow plugins to declare which modules they "extend" -
e.g., while the Quick accessibility plugin belongs to Gui's 'accessiblity'
type, it makes no sense to link it unless Quick is actually linked.
finally, it is possible to manually override the plugins which are linked
for a particular type, by setting QTPLUGIN.<type> (to '-' if no plugins
of this type should be linked at all).

Task-number: QTBUG-35195
Change-Id: I8273d167a046eb3f3c1c584dc6e3798212a2fa31
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-04-09 20:53:06 +02:00
Jędrzej Nowacki
8a96e0d83c Fix a typo in QBitArray documentation
Task-number: QTBUG-37839

Change-Id: Id55d2d606b93f7f9e58ef423544e42b548035ee3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-09 20:53:06 +02:00
Richard J. Moore
814a1c7b2b Support for DH and ECDH key exchange for QSslSocket servers
Despite supporting DH and ECDH key exchange as a client, Qt did not provide
any default parameters which prevented them being used as a server. A
future change should allow the user to control the parameters used, but
these defaults should be okay for most users.

[ChangeLog][Important Behavior Changes] Support for DH and ECDH key exchange
cipher suites when acting as an SSL server has been made possible. This
change means the you can now implement servers that offer forward-secrecy
using Qt.

Task-number: QTBUG-20666
Change-Id: I469163900e4313da9d2d0c3e1e5e47ef46320b17
Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2014-04-09 20:53:06 +02:00
Frederik Gladhorn
71de8c0df5 Only define Q_COMPILER_INITIALIZER_LISTS for MSVC 12 SP 2
Nested initialization is broken before SP2, so just disable the whole
feature as tst_qvector crashes(release)/fails(debug)
Done-with: Jedrzej Nowacki

Task-number: QTBUG-38186

Change-Id: I9c5c9e55c75854fc1f05a59fab2ac7dce9b37fbb
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-09 20:53:06 +02:00
Friedemann Kleint
e38ad94550 Fix crash when trying to place toolbar into zero-height window.
Change QToolBarAreaLayout::item() to return a pointer
and check return values in plug().

Task-number: QTBUG-37183
Change-Id: I7029eb9739cbe603460e87d3e5493f116bdb3a89
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2014-04-09 20:53:06 +02:00
Friedemann Kleint
229c98abf0 QWindowsOpenGLContextFormat: Default to version 2.
glGetString() returns NULL when no current context exists.

Task-number: QTBUG-38063

Change-Id: I5cdb265fb2d74bbc5f3e2c34528909323573b2e1
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-09 20:53:06 +02:00
Friedemann Kleint
61541404bc Fix crash in qt_try_modal.
Task-number: QTBUG-34580

Change-Id: Idc549116fa99aa49ac7c67dcfc76d32ca71f3c76
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-04-09 20:53:06 +02:00
BogDan Vatra
449a0a2868 Add unhandled Android keys.
Sort case values.

The following new keys were added:
KEYCODE_F1 -- KEYCODE_F12
KEYCODE_NUMPAD_0 -- KEYCODE_NUMPAD_9
KEYCODE_AT
KEYCODE_PAGE_UP
KEYCODE_PAGE_DOWN
KEYCODE_ESCAPE
KEYCODE_CTRL_LEFT
KEYCODE_CTRL_RIGHT
KEYCODE_CAPS_LOCK
KEYCODE_SCROLL_LOCK
KEYCODE_META_LEFT
KEYCODE_META_RIGHT
KEYCODE_SYSRQ
KEYCODE_BREAK
KEYCODE_MOVE_HOME
KEYCODE_MOVE_END
KEYCODE_MOVE_INSERT
KEYCODE_FORWARD
KEYCODE_MEDIA_PLAY
KEYCODE_MEDIA_PAUSE
KEYCODE_NUM_LOCK
KEYCODE_NUMPAD_DIVIDE
KEYCODE_NUMPAD_MULTIPLY
KEYCODE_NUMPAD_SUBTRACT
KEYCODE_NUMPAD_ADD
KEYCODE_NUMPAD_DOT
KEYCODE_NUMPAD_COMMA
KEYCODE_NUMPAD_ENTER
KEYCODE_NUMPAD_EQUALS
KEYCODE_NUMPAD_LEFT_PAREN
KEYCODE_NUMPAD_RIGHT_PAREN
KEYCODE_BOOKMARK
KEYCODE_BRIGHTNESS_DOWN
KEYCODE_BRIGHTNESS_UP
KEYCODE_MEDIA_AUDIO_TRACK

Change-Id: I599e9e46ea720e52004a53747d6b21fc7a44262e
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-04-09 20:53:06 +02:00
Bernd Weimer
4af257eb3c QNX: Work around dlclose issue
"Shared objects still referenced" dlerror should actually be treated as
"for your information" only, not as an actual error.

Change-Id: Ie02bd1db0dd2dc93bb759f8b6c7e825070e17bb9
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
2014-04-09 20:53:06 +02:00
Maurice Kalinowski
670ebed121 Fix out-of-range shifting
offsetHi needs to be casted first before shifting.

Change-Id: I29c773dd13d5b16042629604015bbf5645fab861
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-04-09 12:51:06 +02:00
Gabriel de Dietrich
9ee07d5544 QComboBox: Set the proper font after a MacSizeChange event
Change-Id: I5c90817e52a3e87d9b06b2bb670d69a6953efd47
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-04-09 12:48:55 +02:00
Gabriel de Dietrich
624df9cf7f Cocoa: Use private property to enable NSWindow child windows
Enabled for QToolBar to allow it to overlap OpenGL widgets when
expanding.

Task-number: QTBUG-33082
Change-Id: I76dc8da52bc04eedc6d6779c48753da100ed1c9f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-04-09 12:47:26 +02:00
Marc Mutz
323ce42de6 QPageSize: remove QPageSize:: overqualifications
This is not Qt style, not needed, and clutters the code, so remove
QPageSize:: qualifications where they're not needed.

Change-Id: Ia93ac9523ef43a40cf4dab3bcb383a54af666c96
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-09 12:40:58 +02:00
Morten Johan Sørvig
c92fead433 Cocoa: Fix possible printing memory leak.
The created page format must always be released,
even if one of the subsequent PM* functions fails.

Change-Id: If42aaeccd6bdb51ba53444f491ca2878783d0678
Reviewed-by: John Layt <jlayt@kde.org>
2014-04-09 10:47:26 +02:00
Morten Johan Sørvig
0e62671bc0 Cocoa: Fix crash when creating printer object.
Fix reference counting error in QCocoaPrintDevice::
createPageSize(). "key" is accessed with a "Get"
function and should not be released. Switch from
using QCFString to a plain CFStringsRef with manual
ref counting.

Task-number: QTBUG-38023
Change-Id: I04d661bffeb5b3122b0c3c8eaaffdd1af51842fd
Reviewed-by: John Layt <jlayt@kde.org>
2014-04-09 10:47:21 +02:00
Laszlo Agocs
adde66f0dd Update qtgui.qdoc regarding OpenGL
Change-Id: Ibda6987d005a1e42ebaef23b41ef18ae0b7ffa66
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-04-09 10:47:09 +02:00
Jocelyn Turcotte
04f6dffbf9 QOpenGLWidget: Avoid crashing if updateGL is called before the first resize
Change-Id: I9e7788334de98b35dc5d6beee97a63783a1fe267
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-09 10:47:02 +02:00
Frederik Gladhorn
ccdfe354a6 Accessibility Mac: Cache Accessible Elements and Notify about changes
The big change is that we now keep the id objects representing accessibles
around so that they are persistent for ATs.
This improves performance of Mac accessibility significantly.

This is required for notifications which are now sent so that many things work much better,
for example the VoiceOver focus follows the keyboard focus.

The parent element in QCocoaAccessibleElement was removed, we can
dynamically access it more reliably.

Change-Id: I686d212f40d28b392dcc22f16f3c3430f08bdc98
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-04-09 10:46:02 +02:00
Laszlo Agocs
7537a4605a Correct QOpenGLContext::versionFunctions() docs
The example is incorrect: no context parameter is needed.

There was also no mentioning of the fact the the context must be
current at the time of calling initializeOpenGLFunctions(). This
is corrected too.

Change-Id: If8695140096e4b4f84927579c099b0af80750703
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2014-04-09 10:45:36 +02:00
Tomasz Olszak
041c4d9c0b Forward "_q_platform_*" QWidgets's properties to QWindow.
This way we can customize QPlatformWindow by using
dynamic "_q_platform_" properties in corresponding
QWindow.

Change-Id: I987b7a17d252541fe766af6aa37a6cffb67f1807
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-04-09 10:45:15 +02:00
Uli Schlachter
e215aba4aa XCB: Only use the XFixes extension if available
Commit 0d4918950e added a new place
(QXcbWindow::setTransparentForMouseEvents()) where requests from the
XFixes extension are generated. However, this wasn't checking if the
extension is actually supported before using it.

Fix this by turning QXcbWindow::setTransparentForMouseEvents() into a
no-op if the XFixes extension isn't available.

This means that the window in question won't be transparent for mouse
events, but we cannot do much about that if the X server doesn't support
the required extension.

Task-number: QTBUG-38109
Change-Id: I2931481eb71bab990f2dcf0ec600b9e62d3d799c
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-04-09 10:38:46 +02:00
Marc Mutz
6b2b0cd41b QPageSize: clean up operator==
Recognize that the d-pointer can never be nullptr and drop the
nullptr checks.

The d-pointer can never be nullptr as there's no move ctor and all other
ctors create a QPageSizePrivate.

Change-Id: I6c4e165949ed55510aefbc2d933f20fc8e624333
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-04-08 22:07:16 +02:00
Marc Mutz
1baf8e9ad7 QPageLayout: clean up operator==
The old code always compared the Private classes, unless one of them
was nullptr (which it never was, as there is no move ctor and all
other ctors create a QPageLayoutPrivate.

The new code compares the dpointers, and only if they differ, the
Private classes. It also drops the nullptr checks, as they cannot
trigger.

Change-Id: I523c3503e2edb520f98f9b4e2e3bdaf28a9a355d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-08 22:07:08 +02:00
Marc Mutz
c7dd6006b9 QPageLayout: provide op!=
For consistency.

Change-Id: I20fb70999785e2c1947f033d63367a2f6746990a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2014-04-08 22:07:01 +02:00
Marc Mutz
4bed03eb85 QPageLayout: make op== non-member
Better style, since it treats the left-hand and right-hand size symmetrically,
e.g. for implicit conversions.

Change-Id: Ib5d39b1ebffffcb664ee2f72c756702469e32d3b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-04-08 22:06:55 +02:00
Marc Mutz
0de0f494bd QPageLayout: use QExplicitlySharedDataPointer
Many setters check for an actual change before making changes to
data members, but because of QSharedDataPointer, the detach had
already happened by the time the comparison returned false.

Change-Id: I320806e74de4a64fa3a340831621c1f5120ebb0f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2014-04-08 22:06:50 +02:00
Marc Mutz
7b3d9bbdf2 QPageLayout: remove QPageLayout:: overqualifications
This is not Qt style, not needed, and clutters the code, so remove
QPageLayout:: qualifications where they're not needed.

Change-Id: I62f90c29bcb9f3c137d319051ac79e081fe5fb69
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2014-04-08 22:06:44 +02:00
Marc Mutz
22afdaa2da QPageSize: provide op!=
For consistency.

Change-Id: I4375a6f8c2514479a7479c735d397bf8a9876db1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2014-04-08 22:06:38 +02:00
Marc Mutz
9f924338a8 QPageSize: make op== non-member
Better style, since it treats the left-hand and right-hand size symmetrically,
e.g. for implicit conversions.

Change-Id: If1ffa9dc2a018e402c884f60bfbc82e799daeb92
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-04-08 22:06:31 +02:00
Marc Mutz
6115ba4f4e QPageSize: mark ctors explicit
A QSize or QSizeF is not an accurate representation of a QPageSize, so
the corresponding constructor should be explicit.

Change-Id: I6b1808e5f93e3caef948c0e5300bd3c20e3c4210
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2014-04-08 22:06:25 +02:00
Gatis Paeglis
c2b2ef32ca Don't access null pointer
Change-Id: If9ac712543f7c7fd85d877bba76e67ce89c60c61
Reviewed-by: Michael Brasser <michael.brasser@live.com>
2014-04-08 16:26:17 +02:00
Michael Brasser
5fe98ebb37 Prevent QUnifiedTimer from ticking backwards.
This could happen in the following situation:
* a custom animation driver with fixed delta
* a triple-buffering scheme (rendering ahead a frame)
* a second animation timer starting while a first was active

This would cause QUnifiedTimer::startTimers() to trigger
QUnifiedTimer::updateAnimationTimers(-1), and use the current time from
the QElapsedTimer rather than the animation driver. This time could be
less than the last reported time from the animation driver.

Change-Id: Ibf1796fcb99f288d4946b30e5e7225695aa61781
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-04-08 10:57:56 +02:00
Richard J. Moore
f41418aeb2 Ensure we initialize things before checking the openssl version.
Task-number: QTBUG-37783
Change-Id: Ie276e597062d8bfc74ef57251ed21a94020e030f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-08 10:40:50 +02:00
Shawn Rutledge
3a100edc4f QTestCase: fix macros taking expressions to avoid clang warnings
They were of the form "warning: using the result of an assignment
as a condition without parentheses [-Wparentheses]"

Change-Id: I049bf0f67073bf41310ca5ee73f17e5e69de569f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-04-08 10:39:13 +02:00
Jason Haslam
53c8a687b4 Fix xcb plugin backing store byte order issue
The image format of the backing store should use the byte order of the
machine where the application is running, not the native format of the
X server. Then, if the byte order of the backing store image differs
from the X server's native format, it needs to be converted before
being sent across the network.

Task-number: QTBUG-29898
Change-Id: Ic91c8ffb814c6beeb9f1d9195174a47d8bd94a90
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-04-08 09:54:16 +02:00
Bernd Weimer
c6720d8721 QNX: Destroy window buffers when resized
QNX version of screen doesn't reallocate window buffers dynamically.
The buffers have to be destroyed and recreated when a window is resized.
As the overhead is minimal this will be done on BlackBerry, as well.

Change-Id: I488942879822c64a6ab1871ebf5d6da9aec144d6
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
2014-04-08 09:50:08 +02:00
Eskil Abrahamsen Blomfeldt
118494aeda HB-NG on Mac: Fix PDF in end of string
The CoreText engine will remove the PDF token from the end of
the string (instead of producing a zero-width glyph for it),
thus the output will be different from the OpenType backend
and Qt will get confused. To fix this, we emulate the expected
behavior by molding the output in a special case.

This is a port of e45c4387ae16627d61e30a58ae901d888d375aa7 from
Qt 4.

Task-number: QTBUG-38113
Change-Id: Ia0a078e3a60317981d4d5a4ee7e575a1714a1d75
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-04-08 09:49:04 +02:00
Gabriel de Dietrich
30e6d442ff Mac style: Fix one-pixel offset for combo boxes in small size
Change-Id: I744c102bd086742b1052ed547e50037dddff4654
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-04-08 09:34:47 +02:00
David Faure
d2f5fdb20d QCUPSSupport: fix misuse of QDateTime::addDays()
QDateTime::addDays() is a const function and returns a new QDateTime with
the given days added, thus the current statement had no effect.

Found by applying Q_REQUIRED_RESULT in dev branch.

Change-Id: I1b061619d45d7806feaa2bf9fb6d9f0b43d63def
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-04-08 05:16:58 +02:00
David Faure
6ea574d446 QNetworkReplyHttpImpl: fix misuse of QDateTime::addSecs()
QDateTime::addSecs() is a const function and returns a new QDateTime with
the given seconds added, thus the current statement had no effect.

Found by applying Q_REQUIRED_RESULT in dev branch.

Change-Id: Id712334f91e0adb40bafc23470bf46479334c81a
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-04-08 05:16:58 +02:00
Thiago Macieira
fbeb43135f Mark Variable Length Arrays as a TS feature for C++14
The feature was removed from the C++14 draft standard and moved instead
to a Technical Specification. Since we don't know how to enable TS
features in GCC 4.9 yet, remove it from the definition.

The Clang definition is probably safe, since it is behind an #if
__has_extension.

Change-Id: Ibc32b35657b046680078b39a7678bd8e1e5395d2
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-04-08 05:16:58 +02:00
Richard J. Moore
0ed1042092 Fix QNetworkRequest::setRawHeader() for QT_NO_CAST_FROM_BYTEARRAY
Avoid the implicit conversion in the doc snippet.

Change-Id: Iacec6dab371a22c16f537af471f6653d9c5ad43d
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-04-08 05:16:58 +02:00
Thiago Macieira
c33849d0cb Don't redefine dynamic_cast if it's already a macro
Redefining macros is always a bad idea. On top of that, MSVC doesn't
like when we #define dynamic_cast, even though the C++ standard
explicitly allows it.

Task-number: QTBUG-29093
Change-Id: I6e33d609ce213cf6a9085faa3f991a873d825dc6
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-04-08 05:16:58 +02:00
Yoann Lopes
d03cc17a6c Android: use glyph cache resizing workaround with Vivante GC1000 GPU.
Task-number: QTBUG-38102
Change-Id: I9f423e15b9cbc3d2f424871f47795052b1f53e09
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-04-07 23:56:18 +02:00
Marc Mutz
5110831721 QPageLayout: use existing qBound()
instead of rolling our own qt_clamp().

Change-Id: I2729ae3ff98e8c29c66f0f5c792b1bc7bf586f06
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-07 23:42:09 +02:00
Peter Hartmann
9c2ecf89eb network: finish all pending replies upon error
... and not only one. This was a problem e.g. when there were several
requests to the same host and the host was not reachable; only one
reply would get an error signal in case we suppressed other errors in
"happy eyeballs" host lookup style.

Task-number: QTBUG-36890

Change-Id: I1b5757498bd644b0d773cf6c43e4950620949c5c
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-04-07 17:57:42 +02:00
Gabriel de Dietrich
1a4fc0a129 QStyle: Add new SH_ComboBox_UseNativePopup style hint
If the style hints it, QComboBox::showPopup() will try to
show a native popup instead. This is currently undocumented
and an opt-in feature (typically by using a proxy style).

Works only on Mac so far.

Task-number: QTBUG-32731
Change-Id: I4447e884cbd6b490f3039c7a95168698c0bed16e
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-04-07 17:33:51 +02:00
Gabriel de Dietrich
abbdb4d98d QComboBox: Use native popups on Mac
This remains an opt-in solution bound to the usage
of SH_ComboBox_UseNativePopup in a proxy style. The
midterm goal is to make this option on by default,
possibly in 5.4. This solution is and will remain a hint
in the sense that some exotic use cases of QComboBox
(e.g., when setting its view) are inherently incompatible
with the native popup idea.

Task-number: QTBUG-32731
Change-Id: I2a3d780795c22f9989e44325fcaf314538b1de49
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-04-07 17:33:41 +02:00
Richard Moe Gustavsen
b8d0fac5a9 QGuiApplication: fix crash caused by posting fake mouse event
Since Qt expects a mouse press/release event to not change
mouse position in the same event, QGuiApplicationPrivate::processMouseEvent
will detect if a QWindowSystemInterfacePrivate::MouseEvent
tries to do this and convert it to two events; one move
and one press/release.

The problem is that the extra mouse event gets posted. So if
delivering the first event causes a flush in the event queue
(which can easily happen if e.g calling processEvents), the
second event will be processed before the first returns.

On iOS we see a crash with DnD as result of this, since drag
data gets deleted on mouse release, and returning back to a mouse
move after that will cause dangling pointers.

This patch will instead of posting the event, call the
event handler recursively with the faked event as argument.
That way a flush will not cause the "pending" event to be
delivered.

Change-Id: Id9d88053b4859083fedd666584815016d67ac51b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-07 11:07:31 +02:00
Joerg Bornemann
e30ae1268f fix build for MSVC 2010
The Windows version for QS_TOUCH and QS_POINTER was slightly off.

Change-Id: Idb8a8219e09c6aa1a1b24e45b9da640c8d4b7161
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-04-07 11:02:57 +02:00
Jocelyn Turcotte
f4f1f597d4 Fix a crash on startup with QOpenGLWidget
After c4aabeb2b8 we now try to access
q_ptr in QWidgetPrivate::setRenderToTexture. QOpenGLWidget needs to
delay this call after the QObject constructor is done to make sure
that setTextureChildSeen doesn't dereference q_ptr before it has
been initialized.

Change-Id: Icaee82c8b806f42bc7614b0ac6fe4e6026331750
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-07 10:58:24 +02:00
Shawn Rutledge
b5eb850e0d OSX: add several menuitem roles to support menu shortcuts in dialogs
Now menu items and key shortcuts for Cut, Copy, Paste and Select All
work in the standard ways in dialogs such as the file dialog, provided
that the corresponding QActions have been created and added to the menu.
This depends on new roles to identify each menu item which is so
broadly applicable that it should work even when a native widget has
focus; but the role will be auto-detected, just as we were already
doing for application menu items such as Quit, About and Preferences.
When the QFileDialog is opened, it will call
redirectKnownMenuItemsToFirstResponder() which will make only those
"special" menu items have the standard actions and nil targets.  When
the dialog is dismissed, those NSMenuItems must be reverted by calling
resetKnownMenuItemsToQt(), because to invoke a QAction, the NSMenuItem's
action should be itemFired and the target should be the
QCocoaMenuDelegate.

Task-number: QTBUG-17291
Change-Id: I501375ca6fa13fac75d4b4fdcede993ec2329cc7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-04-07 08:30:24 +02:00
Frederik Gladhorn
a7f98a7ac0 Mac Accessibility: Make more widgets name/description work
Change-Id: I0abe17a59f95818939d6b82500d2463c3f135989
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-04-05 21:48:42 +02:00
Frederik Gladhorn
cc57a2e90f Accessibility text updates for QTextEdit
For Mac this makes QTextEdit work nicely with VoiceOver.

Task-number: QTBUG-37204

Change-Id: I1326d24ca6a932ad667ee395f62881b6ec64e892
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-04-05 21:48:31 +02:00
John Layt
bc46b591b2 QPagedPaintDevice - Move QPageLayout methods
The new QPageLayout methods weren't originally added to QPagePaintDevice
as no new virtuals can be added, instead static polymorphism was used to
add the methods directly in the derived classes QPdfWriter and QPrinter.

This however means that classes like QTextDocument with print() methods
that take a QPagedPaintDevice are unable to access the QPageLayout
methods. To fix this, instead make the QPagedPaintDevicePrivate a
virtual class and have QPdfWriter and QPrinter implement derived
private classes that are called by the non-virtual QPagedPaintDevice
base methods.

Change-Id: Ieb6e513b1fa05f5ae76ea1f9156b0b1a053089eb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-05 21:47:46 +02:00
Thiago Macieira
d84da39964 Use the new 3-operand testAndSet functions in QMutex
This allows us to get the current value of the QMutex / QBasicMutex
after the testAndSet operation failed. It saves an extra load from
memory.

Change-Id: I4922a8b3df15e342b177b13f56cf4f1184314520
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-04-05 21:47:09 +02:00
Alejandro Exojo
0ebfd0866d Use category names when logging to the journal
Use the custom field QT_CATEGORY to store the name of the QLoggingCategory used
when writing to systemd's journal. To pass custom fields sd_journal_send() is
needed, and is used in combination with #define SD_JOURNAL_SUPPRESS_LOCATION to
store the metadata that is already in the QMessageLogContext.

Change-Id: I6a120701f7012aaa46451dd3d91586a419c5f803
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2014-04-05 13:27:05 +02:00
Morten Johan Sørvig
687fbc1152 Improve QWidget::metric for PdmDevicePixelRatio.
Use QWindow::devicePixelRatio() which is the most
accurate devicePixelRatio accessor since it can ask
the platform native window directly

Fall back to qApp->devicePixelRatio() if the window
pointer is not valid.

Task-number: QTBUG-37606
Task-number: QTBUG-38078
Change-Id: Ief1468a0c6ced07439f55329ab056883016241cc
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-05 08:16:23 +02:00
Morten Johan Sørvig
2884d7c9aa OS X: Improve QLibraryInfo app bundle testing.
QLibraryInfo::location() paths are relative to
"myapp.app/Contents/" when the application has a
bundle and relative to the executable when not.

However CFBundleGetMainBundle() can and will return
a valid CFBundleRef even if the application is built
as a standalone executable.

Add a test that verifies that the path constructed
with "/Contents" exists on disk. Fall back to the
non-bundle code path if it doesn't.

This bug was hit in cases where a qt.conf file was
present side-by-side with the app binary, for example
in qtbase/bin.

Task-number: QTBUG-38039
Change-Id: Id993599208fe94fff283c725778f8ad47b610ba7
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-05 08:16:19 +02:00
Morten Johan Sørvig
840a665017 Cocoa: Don't beep on maximize.
Use zoom instead of performZoom: Does not beep if
there is no Zoom button, and is what Qt 4 did.

Task-number: QTBUG-37716
Change-Id: Iaa85d55a449744c38b260cf79745a433e0e3272f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-05 08:16:16 +02:00
Morten Johan Sørvig
a7e8b400d1 Cocoa: Make backing store flush accurate.
Flush the individual rects that make up the region
instead of the bounding rect. This is required for
correctness since then areas not included in the
region might not have valid backing store content.

The bondingRect() usage here had its roots in an
optimization in Qt 4, where it was observed that
flushing the bounding rect was more efficient than
flushing (many) individual rects.

Task-number: QTBUG-37918
Change-Id: Ib805f6713523f9895be24c48466870efaaf89c02
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-05 08:15:43 +02:00
Morten Johan Sørvig
bd2ec12a7b Cocoa: Make QScreen::topLevelAt() work correctly
The QPlatformScreen::topLevelAt() default implementation
is flawed in that it does not check z-ordering but
simply returns the first window in the window list
that contains the test point.

Add QCocoaScreen::topLevelAt(). Use [NSApp orderedWindows]
to iterate through the window list in z order. Add
a NSWindow->QCococaWindow mapping hash to QCocoaIntegration
for getting the corresponding QWindow once a NSWindow
is found.

Task-number: QTBUG-37597
Change-Id: I7af70163a32528cb56f8d6caa037b98f580ee191
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-05 08:15:24 +02:00
Morten Johan Sørvig
bb73d8d070 Compile: isChildOfQMdiSubWindow may be unused.
[-Werror,-Wunused-function]

Change-Id: Icf1e60ce3c5dadb96272453583d1cd03379eb73b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-04-05 08:14:49 +02:00
Morten Johan Sørvig
d24ada47b4 Cocoa: Support pasting rich text to Qt apps
Native Mac OS X apps uses Rtf as the rich text format
while Qt uses html. Add QMacPasteboardMimeRtfText
which supports converting from public.rtf to text/html
(but not the other way around, since we want to keep
posting our html as html).

The QMacInternalPasteboardMime API does not support
the concept of a one-way handler. Skip the Rtf handler
in QMacPasteboard::setMimeData().

Task-number: QTBUG-37188
Change-Id: Ibe29997a038bbb64da24b961e84a5f60133074e0
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-05 08:14:06 +02:00
Thiago Macieira
f1540a2966 Fix capacity reservation for shared QByteArray
We can squeeze, but not by discarding elements. Make sure the size of
the object stays intact after changing the reserved capacity.

I've also added unit tests for other containers, just to be sure.

Task-number: QTBUG-37750
Change-Id: I5135b095943b7589423c51cebcb52af792468e61
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-04-05 05:23:07 +02:00
Thiago Macieira
3e930baa98 Use Q_STATIC_ASSERT to check that the array has the right size
No need to sprinkle the code with Q_ASSERT. We don't want this to fail
to the user anyway. By using a Q_STATIC_ASSERT, a failure will be
immediately reported to the developer.

This also solves a warning found by Clang 3.4:
error: unused variable 'pageSizesCount' [-Werror,-Wunused-const-variable]

Change-Id: I79cf72c64242ad395276ce4360c59ad81112d9eb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-05 05:23:03 +02:00
Thiago Macieira
6c8ecf1000 Consistently hide the parts that require xcb-xkb
It was inconsistent. This also solves a warning from Clang 3.4:
error: private field 'vmod_masks' is not used [-Werror,-Wunused-private-field]

Change-Id: I6be9f7ef56dffe6df2be3beb984c2d82d3808403
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
2014-04-05 05:22:58 +02:00
Fabian Bumberger
8d83562c1f QNX: Surpress manual window activation during showFullScreen
When a window is shown, libscreen will give it keyboard focus.
Requesting the activation right after the window is created (and
before libscreen activated the window) causes problems on some devices
e.g. Q10.

Change-Id: I29f7a38990ea4259a8b0c6624f70e31d7291af00
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
2014-04-05 02:27:31 +02:00
Samuli Piippo
1a6d7b6e93 Fix neon image scaling function declarations
Change on the image scaling functions did not update the neon function
declarations.

Task-number: QTBUG-35927
Change-Id: Ia1e7428953aa140cad36e1cf26a18bfefc2267e7
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-04 22:05:57 +02:00
Sergio Ahumada
2343b74193 Doc: Fix documentation warning in qstylehints.cpp
warning: Command '\snippet (//! [6])' failed at end of file 'code/src_gui_kernel_qguiapplication.cpp'

This change amends 56cd9cc2b0

Change-Id: I63a2f086fc582d3a9c8b60f1ef94ccb537b0d3a5
Reviewed-by: Samuel Gaist <samuel.gaist@edeltech.ch>
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-04-04 22:05:57 +02:00
Oswald Buddenhagen
a4ec90175c purge vestiges of opengl es 1 support
amends 0d5170256c.

Change-Id: Ifa178d38f602bb7c66ef13334673ff47e332af5b
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-04 19:32:21 +02:00
Thiago Macieira
964ac38fb0 Don't read before the beginning of the string
The code did discard the the data, so it wasn't affecting the comparison
result (tests added anyway), but it could cause crashes if the pointer
to the beginning of the data in the first 8 bytes of a page.

Change-Id: I618e68de329b65de34ef8c934934c3e631cc6c9f
Reported-By: Erik Verbruggen
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-04-04 19:32:21 +02:00
Konstantin Ritt
330f6e3598 QTextLayout: Fix cursor movement from invalid position
Actually guarantee cursor doesn't move in this case for both logical
and visual modes (just what the documentation says we already do ;)

Change-Id: Iabdca7aa1d205672386a0095e3487e585611cdb5
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-04 19:32:21 +02:00
Konstantin Ritt
47056e78d3 Optimize QTextEngine::insertionPointsForLine() a bit
Reserve the insertionPoints vector capacity prior to multiple append()-s.

Change-Id: I97ab5b2a1add9f2e87c04ad0707bf516c13ff4d7
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-04 19:32:21 +02:00
Konstantin Ritt
0b5911f376 QTextLayout: Fix visual cursor movement in some cases
To guarantee proper positioning at the end of the last line in a
bidirectional text we have to insert the eol position into the
insertion points vector, accordingly to the visual ordering.
Detection of the last *logical* item in a *visual* line is unrelaed
to the text direction, it is simply `iterator.item == iterator.lastItem`.

[ChangeLog][QtGui][QTextLayout] Fixed visual cursor movement
in bidirectional text.

Task-number: QTBUG-18060 (partially related)
Change-Id: I53b6ab889ef580ab0560b620b808b1e09efc0fbd
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Ahmed Saidi <justroftest@gmail.com>
2014-04-04 19:32:21 +02:00
Konstantin Ritt
d828672945 QTextEngine: Fix visual position movement for tab and object cases
QTextLineItemIterator::next() was never updating itemStart and itemEnd
for QScriptAnalysis::TabOrObject, thus producing incorrect
insertion points for the line that contains tabs and/or objects.

Change-Id: Ia964c663cc0636ba6be4500702656f989b252fba
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-04 19:32:21 +02:00
Konstantin Ritt
6d39e87f34 [HB] Ensure we always working with non-multi font engine
Change-Id: If88385d4cecdc527b7952d34e48f7ba889173c6c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-04 19:32:21 +02:00
Jocelyn Turcotte
495c4d501e Make it possible to render QtWebEngine in QOpenGLWidget
Setup the GL context as shared with the Qt global share context.

Change-Id: I199cfc7d290466d0ad99294bcffcd738b615862b
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-04 16:55:08 +02:00
Friedemann Kleint
19ff7d038f Increase tolerance for warning about QTest::qSleep() for Windows.
50% is too strict, it clutters the logs.

Change-Id: Ib391064f32e39a1192e77d872cd99b7f95a5065a
Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
2014-04-04 16:31:27 +02:00
Martin Koller
f0dbc6b37e Fix: Initialize all needed member vars
Change-Id: I74b71d93e25e4b3b0c1a5766f2fbc4f71aebecbb
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-04-04 15:47:55 +02:00
Jorgen Lind
7d005c502b Add isCreated to QOpenGLTextureBlitter
Change-Id: Icb1a0354ac1caee38e3cb0cba6d7daec99d66c54
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-04 10:50:48 +02:00
Shawn Rutledge
ba2ea6da29 Don't assume qt_tablet_target widget exists from one event to the next
In this scenario there is a widget with a button inside, and you click
the button with the tablet.  The target of the event is the button,
but when you click it, the parent (or ancestor) is destroyed.  Commit
2bac49265e took care of the case when
the parent is a window, but it is not always a window which is being
destroyed.  So the approach of using a QPointer is better because it
should take care of all the cases when the qt_tablet_target is
destroyed during the course of a tablet event sequence.

Task-number: QTBUG-36848
Task-number: QTBUG-38040
Change-Id: Ia0e861f2cb2fbc30234aa596f3a36ddd0835a9af
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-04 10:46:21 +02:00
Jorgen Lind
82d2d9b3cc Fixup QGuiApplication::sync to flush the QWSI queue
Change-Id: If4cedeb886e912f622a66b2b3374d6260cffc32a
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-04 10:35:23 +02:00
Mark Brand
00d5e3c917 update bundled sqlite to 3.8.4.3
The "Fixed CE build of sqlite3" patch is preserved in this change.
(ea70ec8711)

Change-Id: I163a4bcc92f47838c8203d8f5d78bbdcb0c1fd84
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-04 09:28:51 +02:00
Morten Johan Sørvig
078f83a761 Compile: remove "register" keyword in MD5Transform
"register" is usually ignored by the compiler and
is deprecated in C++11

[-Werror,-Wdeprecated-register]

Change-Id: I3a10f2128e4a4574b2cd3861bddbbd4ba6a3683f
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-04-04 01:29:35 +02:00
Joerg Bornemann
10a0ac759e Windows XP target support for MSVC >= 2012
To enable windows xp support, we must do two things:
1. linker flag must be /SUBSYSTEM:CONSOLE,5.01 or
   /SUBSYSTEM:WINDOWS,5.01. For x64, the version is 5.02.
2. Do not use Windows Kit 8. Win SDK v7.1A is recommended. Prepend the
   right include paths and lib paths to INCLUDE and LIB before
   building.

The Windows XP target support is enabled by passing "-target xp" to
configure.

Task-number: QTBUG-29939

Change-Id: I84c8439606cc2a9d27d64947702846faa4f1e4a2
Reviewed-by: Lucas Wang <wbsecg1@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-03 18:31:45 +02:00
Gatis Paeglis
6ad458bc93 Fix regression in key handling.
libxkbcommon 0.4.1 added two new functions, xkb_state_key_get_utf{8,32}(). They
combine the operations of xkb_state_key_get_syms() and xkb_keysym_to_utf{8,32}().

The xkb_state_key_get_utf{8,32}() functions now apply Control transformation: when
the Control modifier is active, the string is converted to an appropriate control
character. This matches the behavior of libX11's XLookupString(3), and is required by
the XKB specification:

http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Control_Modifier

Task-number: QTBUG-36281
Change-Id: Ib45f45d801291c171640600384107a35d7d56b9b
Reviewed-by: Ran Benita <ran234@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-03 14:20:25 +02:00
Gatis Paeglis
bd40a7cc44 Update bundled libxkbcommon version to 0.4.1
This is the latest version, released on Mar 27 2014. It includes:

https://bugs.freedesktop.org/show_bug.cgi?id=75798
https://bugs.freedesktop.org/show_bug.cgi?id=75892

Required for fixing input when running Qt application on Mac OS X
with XQuartz and for fixing QTBUG-36281.

Change-Id: Idc4d3c99a4008a10b91ab51c8910b36909974703
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-03 14:20:19 +02:00
Laszlo Agocs
581d10bdf2 Avoid recreating the underlying context in QGLContext wrappers
QGLContexts created from a QOpenGLContext get their valid flag reset,
resulting in creating a totally new underlying context. This is wrong
and becomes visible when sharing is expected between contexts (since the
QGLContext's underlying QOpenGLContext will not have sharing).

Task-number: QTBUG-37893
Change-Id: I8cb37c11dfb400a77e510bf4c8219bedc742309e
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-04-03 14:18:41 +02:00