Commit Graph

12632 Commits (ff7f3aba39e69465caeea2f6fff0f41ec86fdb44)

Author SHA1 Message Date
Gatis Paeglis 9580f3484d Append additional compose file search paths
On FreeBSD Compose files are stored in different place than on Linux
distributions, this patch adds new search paths.

Change-Id: Ic1e745801a2f9a53d1af058be8a1dfaced5032a7
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-03-06 12:21:14 +01:00
Laszlo Agocs 1f802afc49 Clean up proxy leftovers in gui/opengl
Change-Id: I24d10dab121c23b0683fa99bd309cf557c3ddffb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-03-06 12:21:14 +01:00
Oswald Buddenhagen 19501b0731 Fix win32 mkspecs
Instead of checking for dynamicgl in QT_CONFIG, which is apparently
not possible, revert them and do it in opengl.prf instead.

Dynamic GL is Windows-only for the time being so this should be sufficient.

Change-Id: If293ea4c9b024df52257086c8b6250602a44724d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-06 12:21:14 +01:00
Albert Astals Cid af113cfc0f Use None instead of GLX_NONE
GLX_NONE is not 0, so it doesn't work as end-of-list marker
The documentation explicitly mentions to use None or NULL

Fixes valgrind warning

==22686== Conditional jump or move depends on uninitialised value(s)
==22686==    at 0x78949AF: glXCreatePbuffer (glx_pbuffer.c:709)
==22686==    by 0xDD7F0E1: QGLXPbuffer::QGLXPbuffer(QOffscreenSurface*) (qglxintegration.cpp:515)
==22686==    by 0xDD624B0: QXcbIntegration::createPlatformOffscreenSurface(QOffscreenSurface*) const (qxcbintegration.cpp:259)
==22686==    by 0x4F1D6A2: QOffscreenSurface::create() (in /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.2.1)
==22686==    by 0xDD80248: QGLXContext::queryDummyContext() (qglxintegration.cpp:454)
==22686==    by 0xDD803F0: QGLXContext::supportsThreading() (qglxintegration.cpp:488)
==22686==    by 0x5BD9927: QSGRenderLoop::instance() (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.2.1)
==22686==    by 0x5BF969E: QQuickWindowPrivate::init(QQuickWindow*) (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.2.1)
==22686==    by 0x5C97BFC: QQuickView::QQuickView(QWindow*) (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.2.1)
==22686==    by 0x40636F: startShell(int, char const**, void*) (main.cpp:91)
==22686==    by 0x407125: main (main.cpp:193)

Change-Id: Ib4f5ae50f7e31d3fbeb5acf67753e1d8b9e434b0
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-06 12:21:14 +01:00
Jędrzej Nowacki bc361899f2 Remove unused and unlinked qdocconf file from src/plugins.
Change-Id: Ie6fd3f9fe7d5bbbe948dd3d38d2be835fd92834d
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2014-03-06 12:21:14 +01:00
Jędrzej Nowacki 742e0fb560 QDoc: Do not warn about a file overwritting while writing to /dev/null
Change-Id: I7d23edf5a73d521bad361f1007be0750acd4c1e9
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2014-03-06 12:21:14 +01:00
Laszlo Agocs efbea58665 Make QOpenGLFunctions able to resolve everything
At least if the platform plugin's QPlatformOpenGLContext implementation
supports it.

This completes the QOpenGLFunction changes necessary for dynamic loading
of the OpenGL implementation. Everything else is up to the platform plugin.

Change-Id: I710e6fbee3005360ecf02bc6ef976e1beb513819
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-03-06 12:21:14 +01:00
Laszlo Agocs e9ebb43419 Dynamic GL: Query gl handle and type via the native interface
Change-Id: I7ca5beaeb57ee2e4e9c175f53ac32371d1f6b5ed
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-03-06 12:21:14 +01:00
Shawn Rutledge 2bac49265e Tablet target widget isn't always the same as its widget window
In this scenario there is a widget with a QPushButton inside, and you
click the pushbutton with the tablet.  The target of the event is the
pushbutton, but when you click it, the window is destroyed.  The
widgetwindow destructor cannot check the pushbutton's window() because
it has already been destroyed.  So it seems we have to store both
widgets: the actual target and the parent widget which has the window.

Task-number: QTBUG-36848
Change-Id: I37d8fb03743f3e501d695342edc42de104777b18
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-06 12:21:14 +01:00
Sze Howe Koh b83dc929ec Complete QJsonValue::fromVariant()
- QVariant can store (U)Int, (U)LongLong, Float and Double numbers.
  Previously, QJsonValue::fromVariant() converted Floats into Strings
  while converting the others to Doubles.
- Add unit tests for QJsonValue::fromVariant()

[ChangeLog][QtCore][JSON] QJsonValue::fromVariant() will now convert
single-precision Floats into Doubles instead of Strings

Change-Id: I457adbe29c37ada611d1c6d711c42866d63d4024
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-03-06 12:21:14 +01:00
Thiago Macieira 0aba7fbb58 Always initialize integer types in D-Bus demarshalling
If you tried to demarshall in a write-only QDBusArgument, the class
would print a warning, but will continue running nonetheless. So instead
just initialize everything, despite the warning.

qdbusargument.cpp:1138:30: error: ‘d’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
qdbusargument.cpp:1165:33: error: ‘s’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
qdbusargument.cpp:1301:15: error: ‘y’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
etc.

Change-Id: I6d713b4a7b7639e31f3b39bb488ad3ed3ab3fa4a
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-03-06 12:21:14 +01:00
Samuel Gaist 736d7a26cd Avoid creating a new QMimeData each time the Android clipboard is used
This patch aims to fix a memory leak that occurs when the platform
clipboard is used on Android. The QMimeData from the clipboard is
recreated each time mimeData is called

[ChangeLog][QtCore][QPA/Android] Fixed a memory leak in the clipboard

Task-number: QTBUG-36025
Change-Id: I241f586589ff256885caee5e5f737313d24d942d
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-03-06 06:09:57 +01:00
BogDan Vatra c5b2425e8e Fix compile
Move Q_Q(QGLContext); inside #ifndef block, otherwise q varialble
remains unused and it breaks the compilation.

Change-Id: Iebef9a45930fd4f7783eb983b55bf6b5e0b94cf4
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-06 06:09:17 +01:00
BogDan Vatra 1f695a31e2 Pass the APPLICATION_PARAMETERS variable if defined.
Change-Id: I2a3c049db43bbd0a2c373dae9e9ac1395c099b74
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-03-06 06:08:58 +01:00
BogDan Vatra 5ab630f8be Android: Display HTML text correctly on Android native dialog.
Task-number: QTBUG-35687

Change-Id: I3a298b7f4c5f9608537b1afdb994d76ef3abb706
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-03-06 06:08:37 +01:00
J-P Nurmi 134527162a Update QStyle::sizeFromContents() docs
Task-number: QTBUG-37125
Change-Id: Id220312dab6b7e3e7de4932fd377f8850fe86e84
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-05 22:49:22 +01:00
Tor Arne Vestbø 3fec94fd07 Prevent repeated and unnecessary font population QCoreTextFontDatabase
The platform font database is populated from QFontDatabase, through the
static initializeDb() function, whenever the font database determines
that the platform database has not been initialized (by checking if the
font database is empty).

There are other clients of QPlatformFontDatabase though, such as QFont,
which uses the platform font database to check for the default family.
The CoreText implementation of determining the default family relies
on data that is computed during font population, and hence does an
internal (self-triggered) populate.

To prevent repeated populates as a result of calling QFont::defaultFamily()
we guard the populate by a similar isEmpty() check as QFontDatabase does,
but to ensure that this check works in the case of an invalidated font
database, we need to propagate the font database invalidation down to
the platform font database.

Change-Id: I8d06c6f6fc5da6353c087335859eaca008c2f6a6
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-03-05 13:55:35 +01:00
Konstantin Ritt 9f1089531d Make QFontEngine::type() non-virtual
Change-Id: I24ece90d6d8f96dad0c41a474a491b4ea96d97c3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-05 13:46:15 +01:00
Konstantin Ritt e69284db08 Get rid of QFontEngine::name()
It was only used in QFontCache debug output,
and some engines weren't even report a name.

Change-Id: I6cec4b75f105f5a4e1405f50188bebb3a3f04e33
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-05 13:46:09 +01:00
Konstantin Ritt 34e560fc92 Optimize QFontEngineMulti::stringToCMap() in case of missing glyphs
Use recently introduced glyphIndex() method and only recalc advances
if the glyph is present in the font. This allows to avoid restoring
the old advance when the glyph was not found in the fallback fonts.

Change-Id: I3e0aa549961767e5448816327328101cf6a78873
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-05 13:45:54 +01:00
Konstantin Ritt f697f3ceb6 Optimize glyph lookups with QFontEngine::glyphIndex(uint)
Change-Id: I56c7e727f3d9b08195f38939106620c744c6eaf0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-03-05 13:45:44 +01:00
Tor Arne Vestbø f99fd06d7d Merge qfontdatabase_qpa.cpp with qfontdatabase.cpp
There's no point in separating them anymore, and it just makes editing
and reasoning about the QFontDatabase code harder.

Change-Id: I6bc8cb5e5daac26293e75553639e4a4d34eba3bd
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-03-04 15:59:05 +01:00
Laszlo Agocs 1e18df9c73 Extend QOpenGLFunctions with GL1 functions
This introduces the ability to indirectly invoke all common GL1-GLES2
functions via QOpenGLFunctions. The GL1 functions are not yet resolved,
since this would not work anyway when linking to an OpenGL implementation
directly. However this may change later but that will be a completely
internal change without affecting any public APIs.

Also migrate some of the opengl examples to use QOpenGLFunctions for
everything. Once dynamic GL loading becomes available on some platforms,
these examples should continue to function without any changes since they
do not anymore invoke any OpenGL functions directly.

Task-number: QTBUG-36483
Change-Id: Ie630029651e5a4863a480aac5306edd67ee36813
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-03-04 15:59:05 +01:00
Tor Arne Vestbø 565f39aad1 Don't assume a QBasicDrag will start and end over a QWindow
A QBasicDrag is started from QBasicDrag::drag() through the drag manager,
which may happen from e.g a widget. The event filter needs to look at
events to more than just QWindows, otherwise the filter will miss eg.
mouse release events that are sent to QWidget and not to the QWindow
handle, and the drag goes on forever, causing invalid internal state
when a new drag is then started.

Change-Id: I5cee250e2c7552817bda0895d4c5794e12d26592
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-03-04 15:59:05 +01:00
Andy Shaw f07841bc7c Revert path() behavior to not expand a current path on a drive
In the original change - cfb44c6528 - when
querying for the path of a file that did not contain a slash after the
drive indicator it would get the current path and return that as the path
that the file resided on.

However this meant that it would take the current path at that time which
may not be the actual path that was expected. So it was decided that
it should revert back to the original behavior which was to just return
the drive letter followed by the colon which would thus indicate still
that it represented whatever the current path was on that drive.

Change-Id: Ic57ae9227882a66e9a4c4d6537d7f2cae829165a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-03-04 15:59:05 +01:00
Laszlo Agocs 4b2f35d04c Dynamic GL: remove exporting symbols
Remove the opengl proxy for now. Later it will either be moved into
a separate library or replaced by a QOpenGLFunctions-based approach.

This means that the -opengl dynamic configuration is not usable
for the time being. The rest of the enablers remain in place.

The convenience function QOpenGLFunctions::isES() is now moved to
QOpenGLContext and is changed to check the renderable type. This is
extremely useful since besides supporting dynamic GL it solves also
the problem of GL_ARB_ES2_compatibility (i.e. it triggers the real ES
path when creating an ES-compatible context with a desktop OpenGL
implementation).

Task-number: QTBUG-36483
Task-number: QTBUG-37172
Change-Id: I045be3fc16e9043e1528cf48e6bf0903da4fa7ca
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-03-04 15:59:05 +01:00
Sze Howe Koh 10ad84d223 Doc: Mention that QSortFilterProxyModel::lessThan() handles floats
Change-Id: Iaf97d22fad3724d1910b18b6d38a06eae4c909ca
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-03-04 15:59:05 +01:00
Sze Howe Koh 276d633626 Doc: Clarify QJsonValue::fromVariant() type conversions
It wasn't obvious before that many QMetaType types get converted to the
same QJsonValue type.

Change-Id: I7bb02cb10b6c8a873e291cdf1e16c6c821d51208
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-04 15:59:05 +01:00
Tor Arne Vestbø 02b18343e1 Fix crash in QSimpleDrag if drag wasn't started over a QWindow
The code in QSimpleDrag::startDrag() checks for the validity of the
current window before passing it on to QWindowSystemInterface::handleDrag(),
and so should QSimpleDrag::cancel().

Change-Id: I2228d86ede2a0b8379a55000a5c1d830cab44d45
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-03-04 15:59:05 +01:00
Gabriel de Dietrich 14aae25d03 Vista Style: Fix menu item checkmark offset for QQuick Controls
Change-Id: I8d4a8f0d3a079a5569f9442f8d6d523f05daca60
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-04 15:59:05 +01:00
Richard Moe Gustavsen 903953d69e iOS: prevent crash on iOS 5
For some reason, the [] access into NSDictionary causes
a crash on iOS 5. So instead use the API as listed in
the documentation: objectForKey.

Task-number: QTBUG-36532
Change-Id: I19fdf0f4ba1aebaf9477e2bd45040c389923605d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-03-04 15:59:05 +01:00
David Fries d32a80dbee QTouchDevice Documentation grammar correction.
Change-Id: I3b378f1c3df7210029cf82208c23b67b75c47021
Signed-off-by: David Fries <David@Fries.net>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-04 15:59:05 +01:00
Jens Bache-Wiig 2a6c50aa26 Fix QDateEdit popup appearance on mac
The WS/OS was obviously incorrect and the hack seems not to be
needed any more.

[ChangeLog][QtWidgets][Mac] Fixed incorrect appearance
of QDateEdit with calendarPopup enabled.

Task-number: QTBUG-36692
Change-Id: Ic62c9993dc13e783c00fcb56f75d92967eb5074d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-03-04 15:59:05 +01:00
Chris Colbert 6060dab13a Fix issue where revealed widget children do not receive paint event.
When a child of a widget is spontaneously revealed due to a call to
the parent 'resize' method, the child will not receive a paint event
if it has the WA_StaticContents and WA_OpaquePaintEvent flags set.

This is caused by the backing store being pre-emptively resized by the
call to setGeometry_sys, which causes QWidgetBackingStore::sync to skip
the block which handles the static contents.

There doesn't appear to be any reason to preemptively resize the backing
store, since it is always resized as-needed during the the 'sync' method.
This change-set removes the code which preemptively resizes the backing
store.

Task-number: QTBUG-35282
Change-Id: Ie9942854ca5322dfe0f98ed8100810161576be80
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-04 15:59:05 +01:00
hjk 26cf0f0d5a xcb: Rename main.cpp to xcbmain.cpp
Files with same base name cause extra trouble for debuggers.
It can be avoided here.

Change-Id: I1b7a6f28ac41bacbfd2603feb8b786c31d3769e3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-03-04 15:59:05 +01:00
Friedemann Kleint 21114bcc1f Support QQuickWidget on Windows.
Task-number: QTBUG-36887

Change-Id: Ifb03804e21fd82d7eae2942b9e8ca83f1bdb776c
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-03-04 15:59:05 +01:00
Marc Mutz f0d411cfbb Doc: fix warning: No documentation for 'QApplication::palette()'
Hide the forwarder function from QDoc.

Change-Id: I2ea5cce0e68a5803cd4a24cefbbd50fc6c5ffb94
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-03-04 15:59:05 +01:00
Marc Mutz 57fbb550b1 Doc: fix documentation for QGraphicsScene::focusItemChanged()
The name was misspelled in \fn.

Change-Id: I09824b72423b116612ee6e1069793de95d76f883
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-03-04 15:59:05 +01:00
Konstantin Ritt 003a52cc4d Disable 'gsub' table check for AAT fonts on Mac
In AAT fonts, 'gsub' table is effectively replaced by 'mort'/'morx' table.

Change-Id: Ifa044c8e28c3f2aab0f57ba5e3e6b99ada84d37c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-04 15:59:05 +01:00
Eskil Abrahamsen Blomfeldt 0b4ea1ca9c Revert "Propagate synthesized mouse events in parallel (lock-step) with touch"
This reverts commit 7808ec795c.

The commit interferes with the mouse event synthesizing which
was introduced in e50416066c, and
which claims to solve the same original problem: Synthesizing mouse
events should be moved out from the platform plugin.

The issue with 7808ec795c is that
mouse events which are stolen by event filters will never get
composed double click events (this is done in the QGuiApplication
code), so double clicking on item views does not work with
synthesized mouse events. This makes e.g.directory pickers
unusable on a touch display.

The test cases introduced in the original patch still pass.

Task-number: QTBUG-36974
Change-Id: I0ec7c65d2a77589e60408623c2c0b20d427f0cfa
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-04 15:59:05 +01:00
Eskil Abrahamsen Blomfeldt bd2ef8028d Android: Add commercial license to BSD-licensed files
These files should also be usable under the commercial license
terms as an alternative to the BSD license.

Change-Id: If211bb63789722f655843831073ed05ee69811ea
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-04 15:59:05 +01:00
Joerg Bornemann c852223040 Doc: fix Q_ASSERT example
Task-number: QTBUG-37162
Change-Id: Ifef8a976d29125251d7d87028c29deee4353e10a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-03-04 11:42:56 +01:00
Joerg Bornemann 10a5a0d777 Doc: fix documentation of QProgressDialog::open
The slot is connected to the canceled() signal and not to the
accepted() signal since the introduction of the open method.

Task-number: QTBUG-37210
Change-Id: I0604c612f6054611a69876d53908bb58ec048b09
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-03-04 11:42:51 +01:00
Gabriel de Dietrich e7874563e4 Windows Vista Style: Don't draw menubar item background for QQ Controls
In QtQuick Controls, we draw the full menubar background and the menubar
items on top. Unless in a particular state, there's no need to draw the
background or it may overlap with the menubar edge.

Change-Id: Ia35a73274cc10b3b5a3f55573c92919f99555db0
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-04 11:29:30 +01:00
Gabriel de Dietrich 28c9c2ea50 Cocoa: Keep child NSWindow alive while it grabs the mouse
Otherwise, Cocoa loses sight on which window to send the
dragging mouse event. If the window is kept alive (but hidden)
Cocoa will send the events to it, and we can forward them to
the actual QWindow.

This is the expected use-case:

  1. Start dragging a QWindow and change its flags.
  2. This triggers a call to QCocoaWindow::recreateWindow(),
     which will get rid of the old NSWindow and create a new
     one (the QNSView is moved to the new NSWindow).
  3. When we stop dragging, the NSWindow is finally destroyed.

QNSView Pointer References Remarks:

In QNSView, m_window points to the QWindow which remains unchanged
until deleted. Similarly m_platformWindow remains valid until
deleted, in which case we delete the QNSView, the NSWindow and its
helper (see QCocoaWindow destructor).

This fixes undocking QToolBars when they are a child NSWindow.

Task-number: QTBUG-33082
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Change-Id: I6fc53292cd96586cfdf401481c5442d759f1fae5
Reviewed-by: Liang Qi <liang.qi@digia.com>
2014-03-04 11:29:30 +01:00
Gabriel de Dietrich 018d1ca5f3 Cocoa: Use helper class for event handling in native windows
QNSWindow and QNSPanel duplicate some code when it comes to event
handling, which can be refactored. Also, it's currently not
possible to keep an NSWindow derived instance temporarily alive
as QCocoaWindow is not designed to keep track of more than one
NSWindow. Finally, we can reduce the size of (and eventually remove)
the QCocoaWindowCategory which polutes the NSWindow namespace.

We move QNSWindow and QNSPanel specific API into QNSWindowProtocol,
and define QCocoaNSWindow as NSWindow extended by that protocol.
This gives us a type we can refer to any of the native windows
QCocoaWindow instanciates.

We introduce QNSWindowHelper which gathers the common code between
QNSWindow and QNSPanel. This is a one-to-one mapping that keeps a
weak (non-retaining) reference to the NSWindow and a weak reference
to the QCocoaWindow. It has the same life span as its associated
NSWindow.

Task-number: QTBUG-33082
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Change-Id: I38d001bf13f64a1ba4f1439291c5103c3f755183
Reviewed-by: Liang Qi <liang.qi@digia.com>
2014-03-04 11:29:30 +01:00
Allan Sandfeld Jensen ce909a138a SPDY must handle destoyed QNetworkReply
A QNetworkReply may be deleted before it is closed by the protocol.
Since QSpdyProtocolHandler tracks pointers to QNetworkReplies it must
keep track of their destruction as well to avoid links to deleted
objects.

This fixes the last issue with SPDY access of Google Mail in QtWebKit.

Change-Id: I2c56dc080fdcb249b6ed9189fef84cbbc1220cbd
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2014-03-04 11:29:30 +01:00
Thiago Macieira a83498299a Remove the header precompilation for QtXml and QtOpenGLExtensions
Respectively, those modules have 2 and 1 source files. Precompilation costs
more than the benefit of using precompiled headers.

Change-Id: I15ababd9ba7cce2e1510454da49010456ff0597a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-03-04 04:36:00 +01:00
Allan Sandfeld Jensen bcf5ea28c1 Remove deleted QNetworkReplies from SPDY queues
We already remove QNetworkReply from most queues, but we also need
to remove it from the SPDY queue. Otherwise we might end up trying
to send an already deleted message.

Change-Id: Ib39bf8f26315b66179755a6f66dbd657576cbbe3
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2014-03-04 04:35:37 +01:00
Thiago Macieira e7f685002b Atomics: implement fetchAndSub on top of fetchAndAdd
Instead of looping unnecessarily on top of testAndSet.

Task-number: QTBUG-37031
Change-Id: I8120f8405eb76dccc9066749cee0a92b0f2da20e
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
2014-03-04 04:34:36 +01:00
Thiago Macieira 380de7f8e7 Fix use uninitialized, detected by GCC 4.8
If the widget \a field is not present on this form, getWidgetPosition
might not fill in the role variable. GCC is correct.

qformlayout.cpp:1690:19: error: ‘role’ may be used uninitialized in this function [-Werror=maybe-uninitialized]

Change-Id: Ia67991a71e8f1ceacb9d6370c7028c454ef630c6
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-03-04 04:34:15 +01:00
Sergio Ahumada 7e872de76e Fix some typos
Change-Id: I7dbe938bff5ac3ab50a0197f94bdb2f6c22fbd16
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
2014-03-03 18:24:29 +01:00
Konstantin Ritt 2b15c9c256 Introduce a generic QFontEngine::canRender() implementation
...which uses the recently introduced glyphIndex() method;
get rid of re-implementations that did almost the same.

Change-Id: I6d32d2cee6a31f57de6aee05ed8d120d4a1f4e9c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-03 11:11:27 +01:00
Konstantin Ritt af74201edb Introduce QFontEngine::glyphIndex(uint)
...an optimized drop-in replacement for the code like this:
`stringToCMap(&uc, 1, &g, &numGlyphs, QFontEngine::GlyphIndicesOnly)`
(aka "get the glyph index for exactly one Unicode character").

Change-Id: I22babf49f7cf28892d27533a5ac51ad449779f75
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-03 11:11:24 +01:00
Konstantin Ritt 78d115f8f2 Unify QFontEngine*::stringToCMap() behavior
Ensure the params are valid and make QCoreTextFontEngine::stringToCMap()
handle the unsufficient buffer case exactly like the other engines does.

Change-Id: I078af37da917cf2bac709b12aa827ed4128e5f30
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-03 11:11:20 +01:00
Konstantin Ritt 3567d62ed3 Get rid of unused variable
Change-Id: Ie90914c2110d32e573108a355a44dd459097a755
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-03 11:11:15 +01:00
Konstantin Ritt 5a7bf123ea Fix QFontEngineQPA::recalcAdvances() in case of missing glyph
Modifying the glyph indexes array in recalcAdvances() could lead
to undefined behavior.

Change-Id: Ibbb6642f381a5fe01b285dc8d2001c167dc66f46
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-03 11:11:09 +01:00
Konstantin Ritt fd498ad1c0 Make QGlyphLayout consume one byte less per glyph
Change-Id: Iddcc2e1f284dcf13ae98b57ea2d5854e57c83530
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-03 11:10:56 +01:00
Konstantin Ritt 25e34dadab Hide the justification algorithm implementation details
The justification "classes" stored in the glyph attributes
are actually a justification priorities suitable for a particular
language (script). The external API only uses the justification
metrics array calculated on top of these priorities.

Change-Id: I5b0a39e35954084c63a798b632fd6108f9ae7608
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-03 11:10:50 +01:00
Konstantin Ritt ead6cc40df Fix retreiving the 'head' table in QPAGenerator
The 'head' table is usually of 54 bytes length. Passing the buffer of
4 bytes capacity for the 'head' table is expected to return false,
thus skipping the FontRevision tag in QPAGenerator::writeHeader().

Change-Id: I02c0b13f3cbf13579a845fe78fcbc8a437ae22bf
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-02 23:26:51 +01:00
Konstantin Ritt 4c7082162d Unify QFontEngine::getSfntTableData() behavior on all platforms
Being a most significant method in the font API,
getSfntTableData() must behave in exactly the same way on all platforms.
Briefly, it must return true if the table exists in the font,
despite the other params, and always stores the table data length
in 'length' param, thus reporting the amount of bytes actually
needed to store the table data in a buffer.

Change-Id: I7a15465020c1ea818ea46a05ea3b9b7e1cd60d14
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-02 23:26:49 +01:00
Paul Olav Tvete 5cd7390ba9 QQuickWidget show/hide/raise fix
Make sure the alphamask in the backingstore is updated whenever the
state of a QQuickWidget/QOpenGLWidget child changes.

Task-number: QTBUG-37062
Change-Id: Iffa80fc8993499a15bc9e773a162a3f98b81ae03
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-03-01 09:04:10 +01:00
Paul Olav Tvete d307785381 Android: avoid crash with toplevel QGLWidget
Task-number: QTBUG-37096

Change-Id: I14db37a78314782d7b5897db946283bd0063e348
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-03-01 09:03:55 +01:00
Bernd Weimer e2d21a0483 QNX: Report if GL context is shared
This fixes the tst_qopengl sharedResourceCleanup auto test

Change-Id: I0ac6f45797f656b637254f01c2cb8073436b45b2
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-02-28 22:57:26 +01:00
Friedemann Kleint 58b928aca8 Windows: Fix return value of WM_QUERYENDSESSION for bogus messages.
LRESULT should be non-zero if the application can quit,
and it is always handled. Improves
97d8e3b200 .

Task-number: QTBUG-35986

Change-Id: I0ad95bc20a5d9e2a52c76bdcdfa986595f6a08d8
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-02-28 22:57:26 +01:00
Friedemann Kleint fdd8a1b42c Add source to debug output of QMouseEvent.
Change-Id: Ibf55a2697ca0ac85624097299be92c1055dcb8aa
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-02-28 22:57:26 +01:00
Jorgen Lind d4a4ef9e38 Make bool arguments to QWidgetBackingStore::markDirty enums
This is so we get some typesafty when refactoring, and I think it makes
the code more readable

Change-Id: Ia7531950d5f780dc98f4eb435c1e0050d76cdb5f
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-02-28 22:57:26 +01:00
Allan Sandfeld Jensen 4bf27a24c0 Do not upload on closed SPDY streams
We should never upload on a SPDY stream in a closed or half-closed
state. To avoid it we need to stop listening for readyRead on the
upload device, and ignore WINDOW_UPDATE on completed streams.

This fixes SPDY access of facebook.com.

Change-Id: Icad45ffc109b2c14b921f1571e114b70a30f40a9
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2014-02-28 22:57:26 +01:00
Laszlo Agocs 5119bbc642 Add core profile versions of the glyph cache shaders
The last step to make QOpenGLTextureGlyphCache working with
OpenGL core profiles.

[ChangeLog] Native (that is, not distance field based) text
rendering is now functional on OpenGL 3.2+ core profiles too.

Task-number: QTBUG-36993
Change-Id: Ic6c0db4806cea623ca7a19ab77b0329155824877
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2014-02-28 18:00:44 +01:00
Marc Mutz 4051914641 QPalette: optimize move assignment operator
Instead of assigning the various bit-fields manually, use the quint32
union field, which is already present to avoid slow bit-field operations
in the member-swap function.

Verifed that the generated assembly for move-assignment is
significantly better than before on GCC.

Change-Id: If4e0ef678bf3a496c6eb369ad3f639f5a9bc79fc
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-02-28 17:59:51 +01:00
Sergio Ahumada 24040ca43c SPDY: Fix compiler warning about unused variable
Change-Id: Ib3dcd8616ab8167de31a01b3e6f0188d384ff244
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2014-02-28 17:59:37 +01:00
Allan Sandfeld Jensen 474bf7b187 Protect against malicious SPDY messages
Add handling of invalid stream-ids and buffer overflow in header
parsing.

Change-Id: I712af189d72612639d25890a8861a8f4fe084ce3
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2014-02-28 17:57:13 +01:00
Adam Reichold 0d0fb04d50 Make QTreeView::expand/collapse check for ineffectual invocations
Added checks if item is already expanded/collapsed to
QTreeView::expand/collapse since the following computations
can be quite expensive. (This is useful when saving/restoring a
lot of item expansion state e.g. after a model reset.)

Task-number: QTBUG-35939
Change-Id: I82c4489f9fe0b8ac61994652a60312e34c46f628
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2014-02-28 07:47:16 +01:00
Allan Sandfeld Jensen 1e29bf5b07 Do not assume nice behavior in error handling
SPDY is currently assuming it will only receive RST_STREAM messages on
active steams. This is however not always a safe assumption.

Task-number: QTBUG-37100
Change-Id: Ied89a68a209891992ad72daa513066efc1d7c421
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2014-02-28 03:17:11 +01:00
Oswald Buddenhagen f8c5dd9857 automate handling of generated headers some more
let the syncqt + qt_module_header.prf pair handle generation of
forwarding headers.

in qtbase this is ineffective to some degree, as the need to create
QtCore's forwarding headers early for QtBootstrap requires qtbase.pro
already doing the real work, but at least we get the verification that
nothing breaks.
Other Modules (TM) will need the full functionality.

Change-Id: Ifd3dfa05c4c8a91698a365160edb6dabc84e553f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-02-28 03:17:11 +01:00
Thiago Macieira c8cde619a5 Fix ARM atomics for 8- and 16-bit types
This has apparently never worked for any negative value. That's because
the compiler sign-extends the incoming expectedValue to fill the 32-bit
register, instead of zero-extending it, and it also expects any returned
values to also be sign-extended.

Task-number: QTBUG-37031
Change-Id: I836eddba7b1acc56bb0ac1d41de7001d06255b9b
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
2014-02-27 22:46:00 +01:00
Simon Hausmann d2cb81f8d9 Add missing notify signal for the QWindow::title property
Similary to QWidget's windowTitleChanged, QWindow should also have a
windowTitleChanges signal that's emitted when the title changed and declared
as notify signal for the title property, so that QML bindings can be written
against it.

Change-Id: I6f107c6f0b43d6a959bc2ef96492e1f3e4c28bfe
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-02-27 18:27:42 +01:00
Frederik Gladhorn 01a1f87368 Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2014-02-27 18:27:18 +01:00
Friedemann Kleint 81698e5484 Widgets: Pass on mouse event source when translating mouse events.
Change-Id: I70dacc2f96552e08dd71d5cbd63fb4cf9916c11f
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-02-27 13:28:41 +01:00
Friedemann Kleint b3aed29c43 Windows: Set source of synthesized mouse events correctly.
The source was never set for OS-synthesized events, causing duplicated
touch clicks to occur in Quick 2 applications.

Task-number: QTBUG-31386

Change-Id: Ib6d1405815dfb8e57d6446c72a7d6e2a044281ea
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-02-27 13:28:31 +01:00
Friedemann Kleint cebdd91f8b Windows: Add platform plugin parameter for tablet absolute range.
Make the range for detecting relative (mouse mode) configureable
using  -platform windows:tabletabsoluterange=50

Task-number: QTBUG-36937

Change-Id: I44f928e53cb41b246c44554ec7f71bfbdf03c147
Reviewed-by: Arthur Krebsbach <Arthur.Krebsbach@Wacom.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-02-27 13:28:23 +01:00
Jorgen Lind bbc4cc4a47 XCB: update the platformwindows version of Qt::WindowState
when the event comes from the windowing system

Task-number: QTBUG-31117

Change-Id: Id136ad8c39c9284cbd6ad126ee71ac655f8f91ef
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-02-27 07:25:34 +01:00
Allan Sandfeld Jensen 1a6a763254 Handle multiple header values in SPDY
SPDY sends multiple header values for the same header key by null-byte
separating them.

This patch maps the multiple values the same way
qnetworkreplyhttpimpl.cpp
does. With this patch applied we can now log on to GMail using SPDY.

Change-Id: I03656ad1695d13b5c3ed252794dc6c89c67c7b97
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2014-02-26 20:32:05 +01:00
Morten Johan Sørvig 9d2d4ad483 Cocoa: Fix popup window positioning.
Popup window positions where offset on retina MacBooks
with an connected external monitor.

Fix this by cleaning up the coordinate conversion 
functions:
    
Remove the qt_mac_flipRect overload which tries
to position the window according screen size. This
functionality does not belong inside a coordinate/
type conversion function. Also, it was using the windows's
screen instead of the main screen which is incorrect.

"Y flipping": Use the height of the first screen in
[NSScreen screens], which is documented to always
be the screen that contains the coordinate system
origin. Remove the usages of QApplication::primaryScreen()
("Don't use Qt to implement Qt").

Task-number: QTBUG-36672
Change-Id: I2354d31361f5a4c2c80035cf4c7def939218406f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-02-26 12:58:00 +01:00
Jonathan Liu 66e5f8e9dc eglfs: Improve cursors and hotspots
Improvements
 * Cursor atlas has been recreated using 32x32 cursors which avoids
   artifacts introduced from downscaling of the busy cursor
 * A white outline has been added to the cursors to improve visibility
   on black backgrounds
 * Hot spot positions have been tweaked; in particular,
   Qt::PointingHandCursor now has a correct hot spot at the tip of the
   index finger instead of the center

The assert which checks that the number of hot spots equals the number
of cursors had an off-by-one error as the first cursor is
Qt::ArrowCursor which has an enum value of 0. To determine the number
of cursors, 1 needs to be added to Qt::LastCursor.

Change-Id: I266b6d4cc47d42219854aa5b7e2d8344eb3a920a
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-02-26 12:58:00 +01:00
Morten Johan Sørvig cea3f4d535 Cocoa: Set geometry for foreign views.
Make sure QPlatformWindow::setGeometry is called for
the QWindow::fromWinId() case where there is no
QNSView.

Change-Id: I72dd11a0eb0f3cfbd09b87ffeac86f2a826e0192
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-02-26 12:58:00 +01:00
Morten Johan Sørvig 98405c41c2 Cocoa: Remove tablet event warnings.
Qt warns on all touchpad evens when running in a VM.
This appears to be harmless. Remove the warning.

Also, qWarnings are ideally messages to the application
developer about incorrect use of Qt API. In this case
there is nothing the application developer can do
and a qWarning is not really appropriate.

Task-number: QTBUG-36484

Change-Id: I8a50f5a15010f1f064509b83ef4f239b008e0f2b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-02-26 12:58:00 +01:00
Morten Johan Sørvig eeb1fcd55c Cocoa: Don't crash at toolbar cleanup time.
Add missing iterator increment.

Change-Id: Id663c38859b89c29009f67205da0fdd404a455c0
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-02-26 12:58:00 +01:00
Friedemann Kleint 39346df12c Use Qt's RTTI setting when building ANGLE statically.
Prevent errors when building Qt statically with RTTI enabled:

warning C4743: 'const std::ios_base::failure::`vftable'' has different size in 'qtbase\src\3rdparty\angle\src\libGLESv2\Context.cpp' and '(...)': 16 and 12 bytes

Task-number: QTBUG-36951

Change-Id: Ie0501b986be8610c8293cd5c1aa42b502d7c27a1
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-02-26 12:58:00 +01:00
Laszlo Agocs f645dad757 Use a VAO in the texture glyph cache
Task-number: QTBUG-36993
Change-Id: Icc77035b582c804ed809ea3cd99c0048b34d41d2
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2014-02-26 12:58:00 +01:00
Laszlo Agocs f7f70c4a7a Fix glyph texture format on core profile
Native text rendering is now functional on core profile too,
as long as the driver allows compiling GL2-style shaders.

Task-number: QTBUG-36993
Change-Id: I83f3cafae714427dda807921ee79e5a64e55cc64
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-02-26 12:58:00 +01:00
Laszlo Agocs 357363dd51 Texture glyph cache: Use a vbo
It is not going to work with core profile otherwise.

This fixes one of the several problems that make native
text rendering in Quick impossible with OpenGL core profile.

The GL2 paint engine path is not changed, that continues to use
client side pointers.

Task-number: QTBUG-36993
Change-Id: Icfbd6efc894a79a3a84568fb792c1cb6692469cb
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-02-26 12:58:00 +01:00
Eskil Abrahamsen Blomfeldt a2f79b0d0f Android: Make default permissions less confusing
Add comments to explain the magic placeholders for default
permissions and features, and move the INTERNET and
WRITE_EXTERNAL_STORAGE permissions from the manifest so that
we use the same mechanism for all default permissions.

Change-Id: Ia62dd4314c1c10eb201b5203772ffe88b1ce7a04
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-02-26 12:58:00 +01:00
Eskil Abrahamsen Blomfeldt b79e734767 Android: Support pregenerated cache in assets file engine
This provides a way for androiddeployqt to pregenerate the
entry list cache for the assets file engine, greatly improving
performance the first time a directory is read. If the file
is not present, the cache will operate as before.

Some numbers from testing on Samsung Galaxy 2, doing
QDir::entryList() on a directory inside the assets folder:

10 files
--------
Before:
     280 ms for first read,
       5 ms for subsequent reads
After:
       2 ms for reading pregenerated cache
       5 ms for first read
       5 ms for subsequent reads

2000 files
----------
Before:
    1000 ms for first read,
     150 ms for subsequent reads
After:
       5 ms for reading pregenerated cache
     150 ms for first read
     150 ms for subsequent reads

4000 files
----------
Before:
     3000 ms for first read
      300 ms for subsequent reads
After:
        8 ms for reading pregenerated cache
      300 ms for first read
      300 ms for subsequent reads

[ChangeLog][Android] Speed up first time directory listing
in assets by using pregenerated entry list.

Task-number: QTBUG-33704
Change-Id: I3973a1d823b8b38e88a2cc7843326cbe885f8bc2
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-02-26 12:58:00 +01:00
Kai Koehne f3ed93e486 Logging: Change 'rules' section name to 'Rules'
This is more consistent with e.g. qt.conf, where section names also
start with an upper case character.

Change-Id: I9ddaf72baeb9334d081807412512242d5d46cbbf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-02-26 12:58:00 +01:00
Andy Shaw 5ce87f0782 Fix compile error when enabling the QHOSTINFO_DEBUG define
Change-Id: Id82b3aad3b2951e6d0dee57ac993535930db31fc
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-02-26 12:58:00 +01:00
John Layt f05e48381b QPrintEngine - Improve devMode handling
Improve the sharing of the devMode between the QPrintEngine and the
print dialogs, in particular start to change the dialogs from directly
accessing the QPrintEngine internals.

Change-Id: Ieb4649c19b936433c85207297a0b6e59356c3880
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-02-26 12:58:00 +01:00
John Layt 5ddc5df350 QPrintEngine - Remove Windows use of port and driver
The use of the driver name and port name in the DEVNAMES structure
is no longer required within the Windows print engine and dialogs.

The CreateDC docs clearly state any driver value passed in for a
printer is ignored.  The PRINTDLGEX docs also state only the name
is actually used.  The use of the port name is not required as the
DeviceCapabilities api works fine with just the printer name and
the FILE: port can be manually handled.

Change-Id: I7765d73d4a31b1a3c5dab55ee4cfd3580bcf9ad7
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-02-26 12:58:00 +01:00
Andrew Knight 7afd2ede79 WinRT: Fix backing store for latest ANGLE
Bump the ANGLE version and remove the extra info not required by
universal binaries.

Change-Id: I59983d28e1936fb42aa2def4ca785219b0c38996
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-02-26 07:56:56 +01:00
Andrew Knight efc79c6e91 ANGLE: Allow for universal program binaries
As a safety precaution, ANGLE writes the commit hash, optimization level,
and adapter ID to its binary format. However, this hurts portability
between systems by making shader pre-compilation/caching artificially
system-specific.

The shader compiler doesn't take the target adapter into account, and the
optimization level information discarded by ANGLE anyway. So, allow ANGLE
to bypass these checks on systems where precompilation is required (i.e.
WinRT). The default mechanism still applies unless
ANGLE_ENABLE_UNIVERSAL_BINARY is passed as a define.

Change-Id: Iec6d833fd7010ed163978557238f00e7ac6ae416
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-02-26 07:56:53 +01:00
Andrew Knight a7d093e740 Upgrade ANGLE to 1.3.5bb7ec572d0a
This brings Qt's copy of ANGLE up to ANGLE master, which contains a number
of bugfixes as well as restructuring for the upcoming ES 3.0 support. This
version brings considerable stability improvements to the D3D11 renderer.

The static translator project files have been merged to align with the
ANGLE source tree.

Two new patches have been applied to fix errors in upstream ANGLE:
- 0011-ANGLE-Fix-compilation-error-on-MinGW-caused-by-trace.patch
  The event trace header in ANGLE's third_party directory has an unused
  template which causes a compilation error on MinGW. Disable this part
  of the code.
- 0012-ANGLE-fix-semantic-index-lookup.patch
  The sorted semantic index table was returning a direct mapping to the
  new indices, instead of the old indices. This caused a mismatch in the
  GL type lookup for the translated attribute.

All other patches have been rebased, removed if no longer needed,
and renamed to clear up the application order:
- 0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch
  No changes.
- 0001-Fix-compilation-with-MinGW-mingw-tdm64-gcc-4.8.1.patch
  No changes. Renamed to 0002.
- 0001-Fix-compilation-with-MinGW-gcc-64-bit.patch
  No changes. Renamed to 0003.
- 0001-Make-it-possible-to-link-ANGLE-statically-for-single.patch
  Modified patch to adapt to new DLL loading structure. Renamed to 0004.
- 0005-Fix-build-when-SSE2-is-not-available.patch
  No changes.
- 0011-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch
  No changes. Renamed to 0006.
- 0006-Make-DX9-DX11-mutually-exclusive.patch
  Made the patch less invasive by allowing D3D9 code to run unless
  explicitly disabled (e.g. on WinRT, where it doesn't compile). This
  makes the patch smaller and allows Desktop Windows to compile both
  D3D9 and D3D11 codepaths. Renamed to 0007.
- 0015-ANGLE-Dynamically-load-D3D-compiler-from-a-list-of-k.patch
  No changes. Renamed to 0008.
- 0012-ANGLE-Support-WinRT.patch
  Made D3D11_level9 initialization only possible if D3D9 is disabled.
  This makes sure Desktop PCs use the old D3D9 codepath instead of
  the less-tested D3D11_level9 codepath. Renamed to 0009.
- 0013-Enable-D3D11-for-feature-level-9-cards.patch
  Conveniently smaller patch due to buffer implementation improvements
  upstream. Renamed to 0010.
- 0014-ANGLE-D3D11-Alwayls-execute-QueryInterface.patch
  This was a fix for patch 0009, so was integrated there. Removed.
- 0016-ANGLE-D3D11-Fix-build-on-desktop-Windows.patch
  This was a fix for patch 0009, so it was integrated there. Removed.
- 0001-ANGLE-Fix-compilation-with-MSVC2013.patch
  Fixed upstream. Removed.
- 0007-ANGLE-Fix-typedefs-for-Win64.patch
  Fixed upstream. Removed.
- 0004-Fix-black-screen-after-minimizing-OpenGL-window-with.patch
  The issue has been fixed in Qt itself. Removed.
- 0008-DX11-Prevent-assert-when-view-is-minimized-or-.patch
  The cause of the problem was the same as patch 0004, but for the
  D3D11 codepath. Removed.

Change-Id: Id69484ab3a3e013050741c462fb1b06dfb0fd112
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-02-26 07:56:50 +01:00
Rafael Roquetto 45e17d0cc7 QNX: Prevent desktop windows from becoming root window
If a QDesktopWidget is created before any other window, its underlying
QPlatformWindow will be granted the root window role. Windows created
afterwards will become children of the root window, preventing the app from
being rendered, since the Qt::Desktop windows never get posted and therefore
flushed.

This patch prevents a Qt::Desktop window (related to QDesktopWidget) from
becoming the root window. This does not affect QDesktopWidget functionality.

Change-Id: I02c9946a3979b2227afbd2e5d485ba80efa1b997
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
2014-02-25 21:51:07 +01:00
Giuseppe D'Angelo 97ed8f3c0f Fix a getProcAddress in QOpenGLDebugLogger under Win32 + Desktop GL + ATI
We can't resolve a "basic entry point" such as glGetPointerv on Windows'
Desktop GL. Apparently NVIDIA drivers let us do that, but ATI ones don't.

Change-Id: I8e8a54b5dcd3fe87f2bd677d1d0cf08b3e8c11c4
Reviewed-by: Thomas Steen
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2014-02-25 21:51:07 +01:00
Eskil Abrahamsen Blomfeldt e1fd82981c Revert "Fix application font removal when using FontConfig"
This reverts commit a4ff400e25.
The patch caused a regression for bold fonts which is currently
blocking the alpha of Qt 5.3, so lets revert it and try
resubmitting a fixed version later to avoid delaying any release.

Task-number: QTBUG-36929
Change-Id: I8d474b09b2270eb2f861853e60605429be08e2d9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-02-25 21:51:07 +01:00
Friedemann Kleint a0ebaca9cb Windows file dialogs: Use FOS_NOREADONLYRETURN only for mode AcceptSave.
Task-number: QTBUG-36886

Change-Id: I727abb92675187f15d1357b1df60f2fb609dc4d5
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-02-25 21:51:07 +01:00
Peter Hartmann 32794abe72 network: fix doc typo in QNetworkConfigurationManager
Change-Id: I6d3e7e4fb62dfc13f3cc156138604cabea119b75
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-02-25 21:51:07 +01:00
Sze Howe Koh b648195c31 Doc: Replace obsolete types with their newer counterparts
This patch ignores:
- Docs for obsolete types themselves
- Comparisons between new and obsolete types

Change-Id: Id9b1e628255113e7c44520abe0f8a4e0db4a283d
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-02-25 16:36:34 +01:00
Konstantin Ritt 6a7747f30c HarfBuzz-NG: Hide characters that should normally be invisible
These are non-ambigue NLF characters that should only imply the
sctructure of the document.
For details, see http://www.unicode.org/reports/tr13/ .

The issue could be reproduced with use of multi-line QML Text element.

Change-Id: Ibb4d5cd26bc0ac6b79a4cb549e6a3cd7633bd071
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-02-25 16:10:33 +01:00
Morten Johan Sørvig bb7bf6ca17 Make closeAllWindows() close real windows only.
QApplication::closeAllWindows() is documented to close
all top-level windows. If the widget has WA_DontShowOnScreen
set then that is a strong indication that this widget
is, in fact, not a top-level window.

[ChangeLog][QtWidgets][Mac] QWidgets embedded in
QGraphicsProxyWidget are no longer sent close events
when the app is closed.

Task-number: QTBUG-33716
Change-Id: I0925ed67a2d2088ca9f950a4a43bc2729b88a86c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-02-25 16:09:50 +01:00
Kai Koehne ee55244df4 Fix link to argument formats in QString::setNum documentation
Also drop mentioning of 'F', which is (though supported) not mentioned
in the linked section.

Change-Id: I9bf763f25b8b0309c338adbf3d63d94678ecee5e
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-02-25 16:05:23 +01:00
Kai Koehne 7129ec0f47 Document qPrintable encoding issues
Change-Id: I8936203afaa100ac4665ed668f7729fc8da1d445
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-02-25 16:05:14 +01:00
Morten Johan Sørvig 2f76a30ee1 Cocoa: Prevent "Invalid Drawable" GL warnings.
Worst case this can cause the various OpenGL
initialization functions to fail due to the lack
of a valid GL context.

Task-number: QTBUG-35342
Task-number: QTBUG-31451

Change-Id: I08256ad51acb5370c8c6d44b556572eadd6a9c1d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2014-02-25 16:01:43 +01:00
Morten Johan Sørvig 72ba4cd385 Cocoa: Clear GL context pointer on deletion.
The QGLWidget destructor sequence is such that the
GL context will be deleted before the window is hidden.
This would leave QCocoaWindow with a stale m_glContext
pointer.

Clear QCocoaWindow's context pointer on context
deletion.

Task-number: QTBUG-36820
Change-Id: I710e3813f9ce90ddd37ad7b406693f0c58a1436d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-02-25 16:01:22 +01:00
Morten Johan Sørvig f2ade01f4c Cocoa: QImage -> CGImage conversion cleanup
Move to one qt_mac_toCGImage function that has simple
semantics and properly retains a copy of the QImage
for the lifetime of the CGImage.

Remove the old qt_mac_toCGImage function which had
two problems:

1) It would not retain the QImage data (this was probably
ok for its original use case: creating short-lived
CGImages for the paint engine)

2) It had acquired a somewhat odd **datacopy out
parameter for the cases where you _do_ want to retain
the image data.

This makes the exported image conversion function
from QtMacExtras work: The CGImages it creates will
no longer reference free'd memory once the QImage
is deleted.

Change-Id: I583040d16aefb17fc3d801d6b047a0b2a76c7f74
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-02-25 16:00:03 +01:00
J-P Nurmi 51572d3d8f QAssociative/SequentialIterable: add missing \since 5.2
Change-Id: Ia78fa0d70c85f06f48c3bbab47370e15008abe03
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2014-02-25 15:50:38 +01:00
Laszlo Agocs 05ee0fcdc7 Properly migrate vao helper to dynamic GL
Remove the forced bail out when isES() returns true. This is not
necessary.

Change-Id: I5ee21fe1e66163e2391bd11b647827b3c0a020c1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2014-02-25 15:50:35 +01:00
Frederik Gladhorn bddf6d4359 Merge remote-tracking branch 'origin/release' into stable
Change-Id: I3199d47f7d450853032ea5aa38cd4c7c30b9a3d0
2014-02-24 19:53:25 +01:00
Friedemann Kleint 989d439d93 Windows: Clear transient relationship before destroying windows.
Windows differs from the other platforms in that transient
parent relationship is not just a window property but also
implies ownership; windows will destroy their transient
children in DestroyWindow(), which interferes with Qt.
Explicitly clear the relationship in QWindowsWindow::destroy()
to prevent this.

Task-number: QTBUG-36666
Task-number: QTBUG-35499

Change-Id: I5e72524ef57422831f60484993f6c8d7c80c8601
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-02-24 17:10:33 +01:00
Marc Mutz 9f983eac9f QJNI: optimize QSharedPointer creation
Instead of QSharedPointer<T>(new T), use QSharedPointer<T>::create(), since the latter
co-locates the refcount and the T instance in a single memory allocation, unlike the
first form, which uses separate memory allocations.

Change-Id: I5095ac43448aad9a7e3ec07ed4dcdca869bcd9e8
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-02-24 17:05:01 +01:00
Eskil Abrahamsen Blomfeldt 6813a21c52 Fix compilation on armv5
Two changes broke compilation on armv5, where we're currently
not CI-testing:

634f82f1f1 changed the signature
in a function definition without changing its declaration, while
it was actually intending to add this as a new overload.

bfe0db6fbe added an #error
condition without fixing compilation on armv5. I don't know
if the fix is correct, but at least it compiles.

Task-number: QTBUG-37034
Change-Id: If99142fafb9bd55afc20b17f8b3cce5ee0ffec13
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-02-24 16:12:41 +01:00
Marc Mutz f12b0f9a38 QByteArrayList: optimize op+
The old code creates a default-constructed QByteArrayList, then performed two
list-appends, the first one of which just performs assignment.

Optimize by replacing the default construction and assignment with a copy
constructor call.

Change-Id: I6d5bd14172798c925b05bd3602e6d1d037d90796
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-02-24 15:14:04 +01:00
Paul Olav Tvete 328a282ebd Compile fix for QT_NO_OPENGL
Change-Id: I5ea962b0d77198945a4f87ad821d3c3dcffd260c
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-02-24 12:59:47 +01:00
Kai Koehne 921bfe58c2 Fix potential null pointer access in qglx
This reportedly does fix crashes when running a Qt Quick 2 application
over remote X.

Task-number: QTCREATORBUG-11207
Change-Id: I6fa82420f9d12e56e52fa8efd263bf18d868d7d8
Reviewed-by: Ville Nummela <ville.nummela@parker.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-02-24 12:31:54 +01:00
Tor Arne Vestbø aac68a9ef3 Fix texture glyph cache setup in old OpenGL paint engine
Caused assert-crash reported on Windows.

Task-number: QTBUG-37027
Change-Id: If84b970a153570115afb344797728a0b1a04db5b
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-02-24 12:08:08 +01:00
Friedemann Kleint 74d4fcea4a Enable QMenu::setNoReplayFor(QWidget *noReplayFor) for all platforms.
This prevents a tool button menu from being opened by a replayed
click. This partially reverts
8301c0002280c10970cce1e17f634e74c61f2f5d .

Task-number: QTBUG-36863
Change-Id: I396e3694de8b3d4ca916457c2b2df39798502530
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-02-24 12:01:31 +01:00
Sze Howe Koh 0c9c43c148 Doc: Address some "No documentation for..." QDoc warnings
Task-number: QTBUG-36985

Change-Id: I8619fb77e7879399064281f7bbefe5f12d3849a2
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2014-02-24 11:56:54 +01:00
Thiago Macieira e85b4ed77a QtTest: Don't crash when -callgrind is used on QTEST_APPLESS_MAIN
If there's no qApp, then QCoreApplication::arguments() returns an empty
list (after printing a warning). That means the callgrind runner can't
get the arguments it needs in order to rerun the benchmark.

The crash happens because it always uses .at(0) to try and get the
executable's path. Even if we get the path from somewhere else, we still
need the arguments.

Change-Id: I5c74af4d96fc5824b2b7fd7a89648d78393016e2
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
2014-02-24 11:52:27 +01:00
Gunnar Sletta 12a7d23d52 Introducing QOpenGLShaderProgram::create()
Needed for QOpenGLShaderProgram to be usable with
GL_OES_get_program_binary and potentially other extensions.

[Changelog][QtGui] The function QOpenGLShaderProgram::create()
has been added. It is can be used to force immediate allocation
of the program's id.

Change-Id: I36b3f45b00e7a439df12c54af7dc06c0ba913587
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-02-22 14:35:33 +01:00
BogDan Vatra 26a5727f75 Make full use of QT_ANDROID_RASTER_IMAGE_DEPTH env variable.
If raster only apps set QT_ANDROID_RASTER_IMAGE_DEPTH to 16 (RGB16), we
should create also RGB16 native surface.

Change-Id: I82692ff34b0e604e627d1d86a437272e3700daf8
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-02-22 14:35:33 +01:00
Paul Olav Tvete 0febd75d52 QWidget: do not allocate a QOpenGLContext unless needed by QQuickWidget
Task-number: QTBUG-36871
Change-Id: I739f270e9344f888593e04c6221807dbcf6cb55e
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-02-22 14:35:33 +01:00
Sergio Ahumada acf1cb9458 Fix typo in QLibraryInfo::build()
before:

    Config: Using QtTest library 5.4.0, Qt 5.4.0 (Feb 20 2014), GCC 4.6.3, 32 bit, release build)

    <QtBuild>Qt 5.4.0 (Feb 20 2014), GCC 4.6.3, 32 bit, release build)</QtBuild>

 after:

    Config: Using QtTest library 5.4.0, Qt 5.4.0 (Feb 20 2014, GCC 4.6.3, 32 bit, release build)

    <QtBuild>Qt 5.4.0 (Feb 20 2014, GCC 4.6.3, 32 bit, release build)</QtBuild>

Change-Id: Ia4c9f994ef7e834831c78e8dbc00a52e06c0ed9a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-02-22 09:51:14 +01:00
Jason McDonald 3b1e9a7f9b Doc: Address some "No documentation for..." warnings in QTest
Task-number: QTBUG-36985
Change-Id: I811b4711edc3420911fcd706ecef2d090f41bc89
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
2014-02-22 09:51:14 +01:00
Friedemann Kleint 300be65b16 Windows: Use GetForegroundWindow() to check for active windows.
The previously used GetActiveWindow() returns the application's
window also if it is minimized.

Task-number: QTBUG-36806

Change-Id: I8ede3ea30e7b714aa1af85ed67e510e1692ebb8f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-02-22 09:51:14 +01:00
Thiago Macieira 8b54cfff82 Make D-Bus types without a matching Qt one prettier in qdbus
Print "QMap<QString,QString>" for "a{ss}" and print a nicer expansion of
other types.

Change-Id: I0a7a2ecf8f0a62bd97931f3c129cd4cb4f471ef1
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
2014-02-22 04:38:56 +01:00
Thiago Macieira c1d4a634cb Fix off-by-one error: the next ASCII character is next one
The bit scan function returns the index of the last non-ASCII
character. The next ASCII is the one after this. This means all the
benchmarks were made while reentering the SIMD loop uselessly...

Change-Id: If7de485a63428bfa36d413049d9239ddda1986aa
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-02-22 04:38:41 +01:00
Thiago Macieira 3a3a7f8842 Normalize signal & slot signatures in connection
Profiling showed that Qt Creator spent 2% of its load time normalizing
signals and slots. By pre-normalizing everything, we ensure that there
is no runtime cost. Profiling after this commit and the others in this
series shows that the cost dropped down to zero.

Change-Id: Ifc5a2c2552e245fb9a5f31514e9dd683c5c55327
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-02-22 04:38:37 +01:00
Thiago Macieira d7287f595a Make QTextDecoder use our qt_from_latin1 code
Disassembly shows the Intel compiler does expand to SIMD, but a much
worse code than ours. Clang 3.4 does generate a compact SIMD version,
probably of the same quality as our hand-written code. And GCC 4.7
through 4.9 don't generate SIMD at all.

So let's use the most efficient version.

Change-Id: I418e201a774ac0df1fb2b7a7d9589df7c9b655db
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-02-22 04:38:28 +01:00
Thiago Macieira 1c63909ad8 Make sure all containers compile in strict-iterator mode
Unit-test this by making the QList, QVector, QHash and QMap unit tests
be duplicated under strict-iterator mode. There's no test for
QLinkedList.

The tst_Collections test does not compile under strict-iterator
mode. It generated over 15000 errors when I tried.

The strict iterators required a small change: the difference_type
typedef needs to match the operators that get distances
(operator-(iterator)) and move the iterator around (+, -, +=, -=, etc.).

Task-number: QTBUG-29608
Change-Id: I834873934c51d0f139a994cd395818da4ec997e2
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2014-02-22 04:38:01 +01:00
Christian Strømme de5ae6917c Android: Enable text selection only when ImhNoPredictiveText is set.
Mouse selection does not work well with Android and text will be
randomly copied, pasted or deleted. This behavior is especially bad
when predictive text is enabled.

Task-number: QTBUG-34616
Change-Id: I732ad7db52169bfb5735c237cf24597a3d6d64ba
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-02-21 20:33:10 +01:00
Christian Strømme a03a69efb9 Android: Do not enable text selection in QTextEdits by default.
Text selection does not work correctly and is currently causing
selected text to be randomly copied, pasted or deleted.

Task-id: QTBUG-34616
Change-Id: I98678b7575034325dd8a4fa181ee4cb182783a3b
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-02-21 20:33:10 +01:00
Marc Mutz 208acff3fc QLibraryInfo: mark build() function as nothrow
Change-Id: Ie95fa52e4e00fd0747d3554c9f2a4d8076faaaf6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-02-21 20:33:10 +01:00
Marc Mutz d9ce5c35df QSslCipher: make QString constructor explicit
A QSslCipher is not an equivalent representation of a QString, so
the constructor that takes a QString should be explicit.

Change-Id: I4c1329d1eebf91b212616eb5200450c0861d900f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-02-21 20:33:10 +01:00
Marc Mutz f41d5ec626 QPainterPathStroker: make QPen constructor explicit
A QPainterPathStroker is not an equivalent representation of a QPen, so
the constructor that takes a QPen should be explicit.

Arguably, the named constructor idiom would be even better here:

    static QPainterPathStroker QPainterPathStroker::fromPen(const QPen &pen);

But QPainterPathStroker is non-copyable.

Change-Id: I3148dc0ee336026781d8bc1baf21c113c7b41ce8
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-02-21 20:33:10 +01:00
Jorgen Lind ae4e44644a Fix rounding error when creating QT_FT_Vector
This fixes a problem that QScanConverter::mergeLine didn't recognize
lins as being the same (when they where), causing aliasing effects

Task-number: QTBUG-36354
Change-Id: I29d92ddb4e867025541bdc6b294cfaca55c0d3e1
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-02-21 20:33:10 +01:00
John Layt 3aae3e81ef QMarginsF - Add new QMarginsF class
Add a new QMarginsF class to complement QMargins in the style of
QSize/QSizeF and QRect/QRectF.

[ChangeLog][QtCore] Added class QMarginsF to support handling margins
with floating-point values.

Change-Id: Iaaa95ec85f5d126d9d864fc4b607241a8c8a8f3a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-02-21 20:33:10 +01:00
John Layt c7aa3a6925 QRect - Add missing QMargins subtraction operator
[ChangeLog][QtCore][QRect] Added QMargins subtraction operator.

Change-Id: I64d449e2bae81a34df2cd019cff3fb186f8aaaae
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-02-21 20:33:10 +01:00
John Layt 9c6447e081 QMargins - Add missing operators
Add missing standard operators.

[ChangeLog][QtCore][QMargins] Added missing addition and subtraction
operators.

Change-Id: I6aeed39531a736c12d378a817a9431279da79bc4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-02-21 20:33:10 +01:00
John Layt db352e1e97 QRect - Move QMargins operators
Move QMargins operators to QRect file, change include sequence.

Change-Id: I0e2ad91859ae65eb67c6ece50f8e4037516b463e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-02-21 20:33:10 +01:00
BogDan Vatra b9feb88466 Start the chronometer.
Change-Id: Ia165ce4a79b108ddb0d74a7d8fccd4f48fe14442
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-02-21 20:33:10 +01:00
BogDan Vatra 388745ecc8 Sort include headers
Change-Id: I453a40d57a7c3d6062c23f6772de1b8330f61067
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-02-21 20:33:10 +01:00