Commit Graph

3901 Commits

Author SHA1 Message Date
Tor Arne Vestbø
126c2cb8fb Clean up cancel operation handling on OS X
The logic for handling cancel operations was spread out through
the code base and sometimes hard-coded to only include the Escape
key shortcut, missing the Command+. shortcut.

We now intercept both attempts at cancel operations from the system
through cancelOperation, which we forward as normal key events.

A new QKeySequence::StandardKey has been added for the Cancel sequence,
which maps to Escape on all platforms, and Command+. in addition for
OS X. The hard-coded logic in QWidget and subclasses for dealing
with closing the dialogs has been replaced with this key sequence,
which allows clients to override the behavior. Note that the widget
code is not wrapped in checks for QT_NO_SHORTCUT, as we don't care
about keeping widgets building and working under that define.

The logic in QCocoaWindow to bypass windowShouldClose when delivering
IM events has been removed as we now handle that specific case by
also forwarding Escape as a cancel operation.

Task-number: QTBUG-47557
Task-number: QTBUG-45771
Task-number: QTBUG-44076
Change-Id: Ibe0b3a4819f8659d246a2142dd7d9cd3a826ef78
Reviewed-by: Tim Blechmann <tim@klingt.org>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-09-27 20:44:17 +00:00
Thiago Macieira
d90536787b Work around GCC thinking that a variable could be clobbered by longjmp
It can't be. The block in which the variable "s" exists makes no call
to any function that takes the setjmp buffer. This is not a false
positive warning: it's an incorrect warning.

qjpeghandler.cpp:878:6: error: variable ‘s’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]

Change-Id: I42e7ef1a481840699a8dffff140681a3d7e34493
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-09-25 20:24:31 +00:00
Nico Vertriest
58664dbeb3 Doc: fixed links to qmake documentation
Task-number: QTBUG-43810
Change-Id: I56676d6f6f95ed79bd1719404b4e48c26490eea6
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-09-25 10:57:51 +00:00
Allan Sandfeld Jensen
c9697677f4 Use a power of two division factor
Using a power of 2 instead of power of 10 means the result of the
division can be accurately represented as a floating point instead of
being an approximation that could lead to rounding errors.

Change-Id: I8910c06113ec6b69c60ff95d59894bfb56133186
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-09-24 23:35:11 +00:00
Thiago Macieira
d427417c74 Print one warning for the new high DPI variables, not four
For people with non-empty QT_MESSAGE_PATTERNS, the multiple lines would
be unreadable.

This is what it showed for me when starting Qt Creator:

[1442136.587] qtcreator(82762 82762)(?libQt5Gui.so.5?|QGuiApplicationPrivate::createPlatformIntegration|QGuiApplicationPrivate::createEventDispatcher|QCoreApplication::init|QCoreApplication::QCoreApplication|QGuiApplication::QGuiApplication|QApplication::QApplication|?qtcreator?|?qtcreator?|__libc_start_main):
        Warning: QT_DEVICE_PIXEL_RATIO is deprecated. Instead use:
[1442136.592] qtcreator(82762 82762)(?libQt5Gui.so.5?|QGuiApplicationPrivate::createPlatformIntegration|QGuiApplicationPrivate::createEventDispatcher|QCoreApplication::init|QCoreApplication::QCoreApplication|QGuiApplication::QGuiApplication|QApplication::QApplication|?qtcreator?|?qtcreator?|__libc_start_main):
            QT_AUTO_SCREEN_SCALE_FACTOR to enable platform plugin controlled per-screen factors.
[1442136.592] qtcreator(82762 82762)(?libQt5Gui.so.5?|QGuiApplicationPrivate::createPlatformIntegration|QGuiApplicationPrivate::createEventDispatcher|QCoreApplication::init|QCoreApplication::QCoreApplication|QGuiApplication::QGuiApplication|QApplication::QApplication|?qtcreator?|?qtcreator?|__libc_start_main):
            QT_SCREEN_SCALE_FACTORS to set per-screen factors.
[1442136.593] qtcreator(82762 82762)(?libQt5Gui.so.5?|QGuiApplicationPrivate::createPlatformIntegration|QGuiApplicationPrivate::createEventDispatcher|QCoreApplication::init|QCoreApplication::QCoreApplication|QGuiApplication::QGuiApplication|QApplication::QApplication|?qtcreator?|?qtcreator?|__libc_start_main):
            QT_SCALE_FACTOR to set the application global scale factor.

(and imagine it line-broken in a terminal 140 columns wide)

Change-Id: I42e7ef1a481840699a8dffff1406f73dc4d44a41
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-09-24 19:46:32 +00:00
Laszlo Agocs
b46ffbca0c Fix up QOpenGLWidget transparency support
The glColorMask call was troublesome. In addition, the Qt::WA_TranslucentBackground
was misinterpreted and recommended misleadingly in the documentation. The hellogl2
example's --transparent argument was disfunctional in practice.

Replace glColorMask with glBlendFuncSeparate. The hellogl2 example and the docs are
now corrected wrt enabling semi-transparency in a QOpenGLWidget that is not a top-level
(which is the most common case).

Task-number: QTBUG-47276
Change-Id: I6f40e732d455f5efcf158649ac9a52ff9f240e85
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-09-24 12:51:37 +00:00
Friedemann Kleint
bf2c9fd2fd Guard against empty keys in QPlatformInputContextFactory::create().
The code relied on QStringList::split() returning a list
consisting of one empty string when passing an enpty string.
Add a check to prevent the plugin loader from trying to load
in this case.

Change-Id: Iadb418d32fdea1d472d6c00726ad039b4afbf409
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-09-24 12:35:01 +00:00
Ulf Hermann
1765046730 Deliver mouse press and release events on X11 also when dragging
We generally assume that for every mouse press we also get a mouse
release eventually. The event filter installed by QBasicDrag broke this
assumption as it didn't take care of filtering mouse press and mouse
release events symmetrically. We cannot immediately pass on the release
event as that would mean a release event is generated from a press
event (via the blocking drag call), which breaks assumptions in other
places.

Change-Id: If7e48c7dc0ef5265bed4f9a9366a7606ec875d93
Task-number: QTBUG-46361
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
2015-09-24 12:16:50 +00:00
Romain Pokrzywka
68ea2f7e9b Synchronize QInputDeviceManager touch device count with QTouchDevice
This ensures that the values and signals reported by QInputDeviceManager
for touch devices always have corresponding entries in the list returned
by QTouchDevice::devices().
It also adds proper QTouchDevice unregistration when the underlying
input device gets removed by the evdevtouch QPA plugin.

Change-Id: I7bdf2f7435c775d15bddce8ba1e731afdc1d948a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-09-23 16:29:30 +00:00
Samuel Gaist
847d5d1309 Implement sessionId/key generation on Windows
sessionId and sessionKey generation on Windows was lost in the
transition of Qt 4 to Qt 5. During the reimplementation of the
QSessionManagement feature, that part has been missed. This patch fixes
that.

Based on Qt 4

[ChangeLog][QtGui][Windows] Fixed a regression where both
sessionId/sessionKey were empty

Task-number: QTBUG-47690
Change-Id: I17b5fbee9d0979d292d30b94b3a2cc3107fc54fd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-09-22 21:40:21 +00:00
Tor Arne Vestbø
9c71f55ef9 QFontEngine: Read minimum left and right glyph bearings from 'hhea' table
This table has values precomputed based on every single glyph in
the font, not just the subset we use as a fallback, which should
improve both performance and correctness.

The fallback codepath of computing the minimum values based on a
subset of the characters in the font is left in, as we still need
that for bitmap fonts, and some font tables that have invalid
values.

Change-Id: I71aac1e09c9f9de80446b023ba15a9e2afe7d226
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-09-22 21:19:12 +00:00
Laszlo Agocs
eecc351c5d Null out QOpenGLContext::screen upon screen disconnect
Returning a dangling pointer is no good. Do what QOffscreenSurface does:
just null it out.

Task-number: QTBUG-42803
Change-Id: I01a6db9ae8974a1c78157ebc67097c8dac3a6b6e
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-09-22 14:15:29 +00:00
Thiago Macieira
6a8251a89b Reorganize the bits for the CPU feature detection
Instead of trying to detect one bit and set another, let's just use the
bits from the x86 CPUID instruction on x86. This makes use of the full
64-bit space now.

Since MSVC doesn't like enums bigger than 32-bit, we have to store the
bit number instead of the actual bit value in the constant. For that
reason, I also renamed the constants, to catch anyone who was using them
directly, instead of through qCpuHasFeature.

Change-Id: Ib306f8f647014b399b87ffff13f1d587692d827a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-09-22 06:22:07 +00:00
Friedemann Kleint
1af2b861d8 Ensure the accepted state of mouse events is passed to QWindowSystemInterface.
On Windows, Qt needs to return false in case it does not handle the "extra"
buttons (like WM_XBUTTONDOWN) which causes Windows to send the
corresponding WM_APPCOMMAND message (like APPCOMMAND_BROWSER_FORWARD).

Task-number: QTBUG-48117
Change-Id: I093cd2d8205a39c3a042dd8a0d19c7229003761f
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
2015-09-22 06:19:24 +00:00
Alexander Volkov
a0aad95f5a Set the source for a detached mouse button event
If a mouse event from the window system changes both position and buttons
at the same time, then it's split by QGuiApplication into a mouse move
event followed by a mouse button event. Propagate the source of the
original mouse event to the mouse button event.

Change-Id: I075fb4ad9e4338bf8ec170630ce270b38d8682d9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-09-21 20:12:10 +00:00
Friedemann Kleint
42c6ea4f6c QPlatformWindow: Extract static method for closestAcceptableGeometry().
On Windows, some messages occur before a QPlatformWindow is actually
created, for example WM_WINDOWPOSCHANGING, which is handled in
QWindowsWindow::handleGeometryChangingMessage().

Extract a static function QPlatformWindow::closestAcceptableGeometry()
from QPlatformWindow::windowClosestAcceptableGeometry() and use
that in QWindowsWindow::handleGeometryChangingMessage().

This fixes a regression crash occurring in Qt 5.6 when running
the example from QTBUG-48201.

Task-number: QTBUG-36220
Task-number: QTBUG-48201
Task-number: QTBUG-46615
Change-Id: I86b8f923447c8e447382427cf5795628ef1c9717
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-09-21 16:41:24 +00:00
Thiago Macieira
ae880beb7d Fix build error with ICC 16 on Windows
This is a repeat of acf80b9a2b, but this
time it appears ICC 15 works and ICC 16 doesn't. ICC doesn't like
polymorphic, exported classes with inline constructors.

qsvgiconengine.obj : error LNK2001: unresolved external symbol "const QIconEngine::`vftable'" (??_7QIconEngine@@6B@)

Task-number: QTBUG-48062
Change-Id: I82493c0f52084e0588352cd0c26e1293b0727242
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-09-21 16:39:36 +00:00
Andy Shaw
d36a1dfb51 Serialize the capitalization value of QFont
By serializing the capitalization value of QFont, it ensures that it is
correctly preserved when QPicture streams it and later plays it back.

Subsequently the QDataStream version has been bumped up to account for the
change of the data format for serializing QFont.

[ChangeLog][QtGui][QFont] QFont now serializes the capitalization setting.
[ChangeLog][Important Behavior Changes] QDataStream version bumped up to
17 to account for changes in the serialization of QFont.

Task-number: QTBUG-15214
Change-Id: I042680760e5a69d18d41e786b7500a3eebbe562f
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
2015-09-15 13:30:09 +00:00
Aleix Pol
3601d6d7e3 Document QGuiApplication::primaryScreen property
It was just documented as a method and signal so far, even though it
already was a property. This patch merges both documentations into one.

Change-Id: I3fb4090b773ba8762ad9e830303812887b75add3
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-09-15 13:17:10 +00:00
Ulf Hermann
65efeb6f9d QImage: Inline constScanLine call in pixel()
Calling constScanLine() is an extra function call, just for doing
"data + y * width". Also, we are checking d again, even though we
already know it's there.

The constScanLine() call is responsible for up to 15% of the total
CPU time spent in pixel().

Change-Id: Ia7a8e0a6d62fb257d1b22d91f062b66e9cfd349a
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
2015-09-14 09:30:09 +00:00
Ulf Hermann
2e8bec9e4b QImage: Use d->height directly for checking dimensions on pixel()
Calling height() causes an additional function call and check for d
which sums up to more than 25% of the total CPU cost of pixel() if
the format is simple.

Change-Id: I449a3a17dc031e607e40dc1577a5553e7490de76
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
2015-09-11 09:12:47 +00:00
Friedemann Kleint
a96c98fc61 Fix qdoc warnings of QRgba64.
qtbase/src/gui/painting/qrgba64.h:107: warning: No documentation for 'QRgba64::isOpaque()'
qtbase/src/gui/painting/qrgba64.h:112: warning: No documentation for 'QRgba64::isTransparent()'
qtbase/src/gui/painting/qrgba64.h:121: warning: No documentation for 'QRgba64::setAlpha()'
qtbase/src/gui/painting/qrgba64.h:119: warning: No documentation for 'QRgba64::setBlue()'
qtbase/src/gui/painting/qrgba64.h:118: warning: No documentation for 'QRgba64::setGreen()'
qtbase/src/gui/painting/qrgba64.h:117: warning: No documentation for 'QRgba64::setRed()'
qtbase/src/gui/painting/qrgba64.h:163: warning: No documentation for 'QRgba64::operator=()'

Change-Id: Ic6f6a8415b8ad33917e460737824fc8856776de1
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
2015-09-11 07:41:46 +00:00
Friedemann Kleint
47b3e7d130 Fix some doc warnings.
qtbase/src/gui/text/qzip.cpp:797:warn:Cannot find 'FileInfo::d' specified with '\variable' in any header file
qtbase/src/opengl/doc/src/qtopengl-index.qdoc:28:warn:Can't link to 'Qt Gui'
qtbase/src/opengl/doc/src/qtopengl-module.qdoc:28:warn:Can't link to 'Qt Gui'
qtbase/src/widgets/widgets/qcombobox.cpp:3033:warn:Cannot find base function for '\reimp' in showPopupFromMouseEvent()
qtbase/src/corelib/plugin/quuid.cpp:849: warning: Can't link to 'variant()'
qtbase/src/corelib/plugin/quuid.cpp:863: warning: Can't link to 'variant()'
qtbase/src/widgets/dialogs/qsidebar.cpp:72: warning: Cannot find base function for '\reimp' in mimeTypes()
qtbase/src/widgets/dialogs/qsidebar.cpp:80: warning: Cannot find base function for '\reimp' in flags()
qtbase/src/widgets/dialogs/qsidebar.cpp:98: warning: Cannot find base function for '\reimp' in mimeData()
qtbase/src/widgets/dialogs/qsidebar.cpp:134: warning: Cannot find base function for '\reimp' in dropMimeData()
qtbase/src/widgets/dialogs/qsidebar.cpp:151: warning: Cannot find base function for '\reimp' in setData()

Change-Id: I39d6494eb8179f0f7532f99458736fa5e30cdc25
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
2015-09-11 07:41:39 +00:00
Tor Arne Vestbø
30335364a1 Update QPA handleExtendedKeyEvent to return the accepted state of the event
Change-Id: Ie85a4e987eb069d4dd0dbd39860f299a7204b585
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-09-10 22:56:22 +00:00
Tor Arne Vestbø
c22eceb7d0 Deduplicate some code in QWindowSystemInterface
66050f2a changed a few exported functions used by testlib so that they
sent events synchronously, by calling QGuiApp processWindowSystemEvent
directly.

The same effect can be achieved by setting setSynchronousWindowSystemEvents
to true before calling the normal QPA functions.

Change-Id: Id4c67f7d315a5607885c738ca54516434125b24e
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-09-09 17:18:31 +00:00
Aleix Pol
8cbaea441a Notify when the primary screen changes
Makes it possible to notify that the QGuiApplication::primaryScreen has
changed.
XCB backend adopts the new API, as it was accessing QGuiApplication private
API directly.

Change-Id: Icde05c44138265f865fa42d2cd6974c552fdc5e2
Task-number: QTBUG-38404
Task-number: QTBUG-40659
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
2015-09-08 08:16:51 +00:00
Friedemann Kleint
4bbdfaa8ff Fix some qdoc warnings.
qtbase/src/corelib/io/qdebug.cpp:698: warning: Class QDebugStateSaver has no \inmodule command; using project name by default: QtCore
qtbase/src/gui/opengl/qopenglframebufferobject.cpp:1138: warning: Can't link to 'takeTextures()'
qtbase/src/gui/opengl/qopenglframebufferobject.cpp:1159: warning: Can't link to 'takeTextures()'
qtbase/src/gui/opengl/qopenglframebufferobject.cpp:953: warning: No such parameter 'height' in QOpenGLFramebufferObject::addColorAttachment()
qtbase/src/gui/opengl/qopenglframebufferobject.cpp:953: warning: No such parameter 'width' in QOpenGLFramebufferObject::addColorAttachment()
qtbase/src/gui/opengl/qopenglframebufferobject.cpp:953: warning: Undocumented parameter 'size' in QOpenGLFramebufferObject::addColorAttachment()
qtbase/src/gui/painting/qpaintdevice.qdoc:80: warning: Undocumented enum item 'PdmDevicePixelRatioScaled' in QPaintDevice::PaintDeviceMetric
qtbase/src/testlib/qbenchmarkmetric.cpp:154: warning: Invalid use of '\relates' (already a member of 'QTest')
qtbase/src/testlib/qbenchmarkmetric.cpp:81: warning: Invalid use of '\relates' (already a member of 'QTest')
qtbase/src/widgets/dialogs/qdialog.cpp:152: warning: Can't link to 'QCloseEvent::ignore()'
qtbase/src/widgets/dialogs/qdialog.cpp:557: warning: Can't link to 'QApplication::quit()'
qtbase/src/widgets/kernel/qwidget.cpp:8326: warning: Can't link to 'QCloseEvent::accept()'
qtbase/src/widgets/kernel/qwidget.cpp:8326: warning: Can't link to 'QCloseEvent::ignore()'
qtbase/src/widgets/kernel/qwidget.cpp:9300: warning: Can't link to 'QWheelEvent::accept()'
qtbase/src/widgets/kernel/qwidget.cpp:9300: warning: Can't link to 'QWheelEvent::ignore()'
qtbase/src/widgets/kernel/qwidget.cpp:9321: warning: Can't link to 'QTabletEvent::accept()'
qtbase/src/widgets/kernel/qwidget.cpp:9321: warning: Can't link to 'QTabletEvent::ignore()'
qtbase/src/widgets/kernel/qwidget.cpp:9373: warning: Can't link to 'QKeyEvent::ignore()'

Change-Id: I97ae85398181645c1054c303e5c8a87deb619409
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-09-07 11:58:04 +00:00
Tor Arne Vestbø
54dbdc26ba Move min left/right bearing calculations to QFontEngine baseclass
The logic used in the FreeType font engine can be generalized
and move to the QFontEngine baseclass. This allows the CoreText
font engine to correctly report the minimum left/right bearings,
which decreases the chance that an optimization in QTextLayout's
line breaking algorithm will produce wrong results.

The calculation of left and right bearing has been moved to the
glyph_metrics_t type to reduce code duplication. This allows us
to use the with and height of the bounding box to determine if
the glyph has any contours.

Change-Id: I864697d3f31ed56f22f04666199b6c5023c5e585
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-09-02 09:11:31 +00:00
Samuel Nevala
8c1fcbcd83 Declare StandardButton & ButtonRole types for cross-thread use.
On windows phone native dialog interaction is handled from
XMAL thread. Declare and register dialog helpers StandardButton
and ButtonRole for cross-thread usage.

Change-Id: Ic1842a5af8a1122fdffb766b4f723d272bdbcac2
Task-Id: QTBUG-47941
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2015-08-31 11:57:48 +00:00
Morten Johan Sørvig
c4015f13f3 Document handleWindowSystemEvent()
Document asynchronous and synchronous mode behavior.

Change-Id: I2dc1256af5b3a8014025c89c65d41480f18f0701
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-08-27 21:58:49 +00:00
Morten Johan Sørvig
ee767c838a Implement threaded synchronous WS events
Make handleWindowSystemEvent() support being called
from secondary threads in synchronousWindowSystemEvent
mode.

This is implemented by posting the event to the Gui
event queue (which will wake the Qt Gui thread), and
then calling flushWindowSystemEvents which will block
the calling thread until the event has been processed.

Change-Id: I7e8e68c1e0290c17105563268e316b0f8205b3ce
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-08-27 21:58:39 +00:00
Morten Johan Sørvig
ac9643c85f Make flushWindowSystemEvents return ev. accepted
flushWindowSystemEvents() now returns whether the
most recent event added to the queue was accepted
by Qt or not.

Use QAtomicInt to store the accepted state in order
to avoid a data race on it between the Gui thread
and the event poster thread.

Change-Id: I6c111fdaecda5c514307ca0749a54075fe8e872f
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-08-27 21:58:24 +00:00
Simon Hausmann
6d51697f1d Merge "Merge remote-tracking branch 'origin/5.5' into 5.6" into refs/staging/5.6 2015-08-27 22:29:28 +00:00
Allan Sandfeld Jensen
3fe645ecc9 Optimize set color component in RGBA64
After the removal of direct access through type punning,
the direct color setters can be better optimized.

Change-Id: Icaa5b1f8c8fe90863dd42fa4dfb5a2998c273465
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-08-27 20:02:34 +00:00
Friedemann Kleint
2117a76136 QPlatformFileDialogHelper::cleanFilterList(): Allow for ',' in glob.
RCS files (text/plain) have the glob pattern "*,v", which caused
the regular expression match to fail.

Task-number: QTBUG-47923
Change-Id: I7d8682ef51306cb4da58a2b3880842bd99892ea3
Reviewed-by: David Faure <david.faure@kdab.com>
2015-08-27 19:27:26 +00:00
Liang Qi
afab1546a7 Merge remote-tracking branch 'origin/5.5' into 5.6
Conflicts:
	qmake/doc/snippets/code/doc_src_qmake-manual.pro
	qmake/doc/src/qmake-manual.qdoc
	src/corelib/io/qstorageinfo_unix.cpp
	src/corelib/tools/qbytearray.cpp
	src/widgets/kernel/qwidgetwindow.cpp
	tests/auto/corelib/io/qprocess/tst_qprocess.cpp
	tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp
	tests/auto/network/access/qnetworkreply/BLACKLIST

Change-Id: I9efcd7e1cce1c394eed425c43aa6fce7d2edf31c
2015-08-26 20:06:57 +02:00
Topi Reinio
a5f46bc647 Doc: Fix QDoc warnings for QOpenGLFunctions and QOpenGLExtraFunctions
- Use \a commands when listing the arguments for OpenGL methods
    - Document functions taking a single argument of type 'void'
      verbatim. Otherwise, QDoc refuses to generate their docs
    - Add constructor docs for QOpenGLExtraFunctions (copied from
      QOpenGLFunctions).

Change-Id: I64a436365572a80319ba0a8eaba2f5d9b751e84d
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-08-26 09:46:01 +00:00
Sérgio Martins
df276787d5 QRasterPaintEngine: Don't detach QImage
Caught being detached a few thousand times per second.

Change-Id: I6dd5fd69d7d4f32048cdb7e4ac707f24df6c15f8
(cherry picked from commit 2a81516835)
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
2015-08-25 11:12:19 +00:00
Bernd Weimer
b46fe39d94 Harmonize input context selection
Input context selection works differently across platforms. On some
platforms it is not possible to request a specific context at all
(e.g. Wayland). This will be unified, depending on the environment
variable "QT_IM_MODULE", you will get:
- null:  default (platform) context, if defined (otherwise no context)
- empty: no context
- set:   set one, if it exists and is valid (otherwise no context)

[ChangeLog][Platform Specific Changes] Haromnized input context selection.
QT_IM_MODULE environment variable will be taken into account.

Change-Id: Ic8f826fbc6ace25941cd19b9b086943e848fbe01
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Nedim Hadzic <nedim.hadzic@pelagicore.com>
2015-08-25 07:04:19 +00:00
Louai Al-Khanji
31fb4379c8 Fix module reference in license header
Change-Id: I8efa30869e716d827e8463ef4285f8ff9357cc0e
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-08-25 06:01:31 +00:00
Allan Sandfeld Jensen
2f43ac9dcd Fix double initialization of QRgba64 with C++14
Use constructors with C++11/C++14 where it is allowed to avoid hack
that caused double initialization and thereby performance regression
with C++14.

Change-Id: I7ae86df8aa34000b2c186e22bd9917303354b794
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-08-24 08:36:50 +00:00
Shawn Rutledge
bd2ebbdb9a QInputEvent: document that timestamp() is in milliseconds
Task-number: QTBUG-39459
Change-Id: Ie76f3c2f6fe81746d3ea646f0c2f0d47ec3ef252
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-08-24 07:28:40 +00:00
Andy Shaw
d99c9bcf2c Fix regression in reading certain compressed bmp images
For BITFIELDS compressed images, the image data may be preceded by
bitmask fields. The file positioning code that should make sure those
were read correctly was erroneously included in the block of code that
was moved in 6f1b82fccd.

Task-number: QTBUG-45559
Task-number: QTBUG-40890
Done-with: Eirik Aavitsland
Change-Id: Id2b3ce078f67ac6ebf75ab0cc463dc719af83393
Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
2015-08-20 11:25:19 +00:00
Topi Reinio
e525d1f44d Doc: Remove invalid uses of \relates command
A function cannot be both a member and a non-member of the same class.

Change-Id: I07d1e04c09fea2ba1171b3692e716660044cd37a
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-08-19 12:06:05 +00:00
Julien Brianceau
6a57a260fc Doc: remove type() reference from QApplication and QGuiApplication
QApplication::type() is gone since Qt 5.0.

Task-number: QTBUG-28093
Change-Id: I8700c69a42271e8b99f3e86a5014c8abf7711f53
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-08-18 14:59:39 +00:00
Joni Poikelin
fae725d451 Fix potential SIGFPEs in QRasterizer::rasterizeLine()
Task-number: QTBUG-46985
Change-Id: If9897a6d4014dbcbc1f6cac1c6dd5dc648694b96
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-08-18 09:31:14 +00:00
Alexander Volkov
be18d6fb01 Fix shortcuts with keypad keys
The way of searching a shortcut match for a key without the keypad
modifier introduced in 547a1bea49 is
not correct. QKeyEvent::setModifiers() doesn't change native scan code
so we get the incorrect QKeyEvent object which is eventually passed to
the implementation of QPlatformIntegration::possibleKeys().
And then QPlatformIntegration::possibleKeys() returns the same result
as for the original QKeyEvent object.

So to fix it we have to remove Qt::KeypadModifier from keys after
calling the implementation of QPlatformIntegration::possibleKeys(),
as it was before 547a1bea49.

Task-number: QTBUG-33093
Task-number: QTBUG-44577
Change-Id: I5b33c9b6cf2c06b133166a31eba9aff9181c9483
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-08-18 06:27:30 +00:00
Oswald Buddenhagen
5a039bf53e Merge dev into 5.6
Change-Id: I061f2513ef58f696e75b11928d89aaaf059659a3
2015-08-17 19:55:41 +02:00
Laszlo Agocs
08150122aa Do not add GLSL line statements for old drivers
Older VMware virtual machines do not like the #line statements. These
were introduced in 5.5.0, meaning that when upgrading from 5.4 in such
a VM, shader compilation via QOpenGLShaderProgram stops working. This
should be avoided.

Task-number: QTBUG-47598
Change-Id: I8cccd76119350e7ce40da96d24a7a6e9eb399052
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2015-08-17 13:17:51 +00:00
Sérgio Martins
385202c27c OSX FreeType: Add support for sub pixel font rendering.
Task-number: QTBUG-42839
Change-Id: Iea4552d766936a55fd177e4287591d2715202d9c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-08-14 23:34:26 +00:00