summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Speed up printing when drawing opaque primitives.Jan Arve Saether2015-09-232-3/+13
| | | | | | | | | | | | | | | We only need to merge the rectangles into a region if we are painting a non-opaque a primitive with alpha. Performance measurements QT_print_speed_bug.zip: Excluding patch: 244686 ms Including patch: 5070 ms This is an improvement of 48x (for debug build) Task-number: QTBUG-48334 Change-Id: I03684c6e7d8a5fb039ea6477ed1a860f09e1b08c Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
* Synchronize QInputDeviceManager touch device count with QTouchDeviceRomain Pokrzywka2015-09-238-34/+120
| | | | | | | | | | | | 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>
* Add code to perform overflow-checking additions and multiplicationThiago Macieira2015-09-232-0/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most processors have carry flags which they set on addition overflow, so it's a good idea to access them whenever possible. Most of them also have widening multiply instructions that can be used to detect overflow of the non-widening version. Tested to compile on: Architecture Compiler x86 GCC 4.9, GCC 5*, Clang 3.6*, ICC 16 beta x86-64 GCC 4.9, GCC 5*, Clang 3.6*, ICC 16 beta x86-64 ILP32 GCC 4.9, GCC 5*, Clang 3.6* IA-64 LP64 GCC 4.8 ARMv7-A GCC 4.9, Clang 3.6* AArch64 Clang 3.6* MIPS GCC 4.9, Clang 3.6* MIPS64 GCC 4.9, Clang 3.6* PowerPC GCC 4.9, Clang 3.6* PowerPC 64 GCC 4.9, Clang 3.6* SPARC Clang 3.6* SPARCv9 Clang 3.6* [*] supports the intrinsics If the compiler does not offer a way to detect an overflow, we do it by hand. For unsigned additions, that's easy, since the C++ language specifies the behavior of the overflow. That's also the reason why this code is implemented only for unsigned integers. For the multiplication, if the compiler does not support widening multiplications, we do it with a division instead. This is necessary for GCC < 4.5 and compilers not compatible with GCC or MSVC. Change-Id: I049a653beeb5454c9539ffff13e637de0f1338c1 Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com> Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Mention that calling parent class event() is importantAlbert Astals Cid2015-09-232-0/+34
| | | | | | | If you don't deleteLater and more won't work Change-Id: I47cbb24f8e22a7f269a0297410e4163878819f82 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* windows: Improve error handling with EGLLaszlo Agocs2015-09-231-12/+31
| | | | | | | | | | | | | | | | | | | | | | | | | When disabling the graphics adapter, things start failing with context lost and then bad_alloc and bad_access failures when creating contexts/window surfaces. Swap buffers now handles context loss. This makes it possible for Qt Quick to act when the graphics adapter goes away. Similarly, the window surface creation failure EGL_BAD_ACCESS is treated the same way as context loss. Note that this will not really help the main issue, because rendering is not possible without a GPU (reinit attempts will fail either at context creation or window surface creation), but proper logging and context loss reporting improves the situation somewhat. Also unify and prettyify the warning and debug prints. This makes it easier to understand what is going on. Change-Id: Iec3a9b54f1134e78e87eefcf938525283ec9412a Task-number: QTBUG-48095 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Close QWidgetWindows by closing the windowMorten Johan Sørvig2015-09-231-2/+2
| | | | | | | | | | Close the window instead of closing the widget. This will run the QWidget close implementation followed by the QWindow close implementation. Change-Id: Iaba3cf0359410def858363a02fceaeddb7095aaa Task-number: QTBUG-43344 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* QWidgetWindow: call base class close event implMorten Johan Sørvig2015-09-231-0/+1
| | | | | | | | | Call the QWindow close event handler when processing close events in QWidgetWindow. Change-Id: I2b8691735962f6a222a30a847bb18cc6c86b55d4 Task-number: QTBUG-43344 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Implement the QImageIOHandler::ImageFormat option for ico files.Serge Lysenko2015-09-231-4/+22
| | | | | | | | We need a method to check image format of .ico with QImageReader loader. That is very useful to filter out low resolution icons. Change-Id: I2dfe3aa49cbc1e05836be846ae3da30786b98ff4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* QDateTime: Remove redundant check.Christian Kandeler2015-09-231-15/+13
| | | | | Change-Id: I1a027526f24707f9431fe60ad08e41b5b07ffea3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Mark QHostAddress relocatableThiago Macieira2015-09-221-0/+1
| | | | | Change-Id: Iee8cbc07c4434ce9b560ffff13ca3fb80be56be6 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Fix some -Wcast-qual warningsThiago Macieira2015-09-228-15/+15
| | | | | | | | | | | This is happening in code I don't usually test (32-bit, non-ICU, etc.) KeccakF-1600-opt32.c:481:22: error: cast from type 'const unsigned char*' to type 'UINT32* {aka unsigned int*}' casts away qualifiers [-Werror=cast-qual] KeccakF-1600-opt32.c:217:62: note: in definition of macro 'extractLanes' Change-Id: I42e7ef1a481840699a8dffff140209823301a07a Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Richard J. Moore <rich@kde.org>
* Auto-detect whether 64-bit std::atomic really worksThiago Macieira2015-09-222-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | The C++ standard says it must, but some badly-configured toolchains seem to be lacking support. In particular, for some 32-bit platforms without native support for them, GCC implements 64-bit atomics via out-of-line functions in libatomic. If that library is missing... well, then std::atomic 64-bit doesn't work and we mustn't try to use it. This was found when trying to compile Qt 5.6 for MIPS 32-bit: Linking library libQt5Core.so.5.6.0 .obj/qsimd.o: In function `std::__atomic_base<unsigned long long>::load(std::memory_order) const': /opt/poky/1.7/sysroots/mips32r2-poky-linux/usr/include/c++/4.9.1/bits/atomic_base.h:500: undefined reference to `__atomic_load_8' .obj/qsimd.o: In function `std::__atomic_base<unsigned long long>::store(unsigned long long, std::memory_order)': /opt/poky/1.7/sysroots/mips32r2-poky-linux/usr/include/c++/4.9.1/bits/atomic_base.h:478: undefined reference to `__atomic_store_8' Yocto bug report: https://bugzilla.yoctoproject.org/show_bug.cgi?id=8274 Change-Id: I42e7ef1a481840699a8dffff140224d6614e5c36 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Implement sessionId/key generation on WindowsSamuel Gaist2015-09-221-0/+13
| | | | | | | | | | | | | | | | 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>
* QFontEngine: Read minimum left and right glyph bearings from 'hhea' tableTor Arne Vestbø2015-09-221-19/+55
| | | | | | | | | | | | | | 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>
* QGraphicsProxyWidget: forward touch events to QWidgetRafael Roquetto2015-09-221-0/+13
| | | | | | | | | | | | | | | | When working with QGraphicsView/QGraphicsScene, touch events are sent to QGraphicsView's viewport() event handler, which then dispatches it to the corresponding QGraphicsItem, if any. In the case of QGraphicsProxyWidget, we need to forward these touch events to the encapsulated QWidget, otherwise it will never receive them (i.e. the event chain for touch events terminates at QGraphicsProxyWidget). This also enables QWidgets associated with QGraphicsProxyWidget to grab gestures. Task-id: QTBUG-45737 Change-Id: Ia441d3576afb6c97376be6f2ff073901e6e928a5 Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
* Silence the _COMPIZ_TOOLKIT_ACTION warning.Gatis Paeglis2015-09-223-2/+5
| | | | | | | | | | It is still unclear how to act on those messages. We are already doing this for other Compiz messages -_COMPIZ_DECOR_*. Change-Id: I45f76b5f56ee1b07eb4c7398cc85b5d7bed86c4c Task-number: QTBUG-46954 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Windows: Add checks to usages of QWindow::screen().Friedemann Kleint2015-09-224-19/+21
| | | | | | | | | Default to primary screen and handle situations where the screen is null consistently. Remove unused QWindowsScreen::screenOf() method. Task-number: QTBUG-48288 Change-Id: I91b3c2331521d9d3be8ac77606ee820cd35ebb0f Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Windows: Disable Windows input context when another context is used.Friedemann Kleint2015-09-224-31/+48
| | | | | | | | | | | | | | Remove QWindowsContext::instance() method and use QPlatformIntegration::inputContext() with proper check instead. Extract static method to disable Windows IME on a window by associating a null context from QWindowsInputContext and use that to disable the IME if another context is in use. Amends change b46fe39d940712c5d401e731e171a7ccfadfe648. Change-Id: Icaad99d390cea5559167602ffbf994660d4717a5 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* QAbstractSpinBox::inputMethodQuery(): Consider input method hints set on the ↵Friedemann Kleint2015-09-221-1/+10
| | | | | | | | | | | | | | | spin box. The derived classes (QSpinBox, QDoubleSpinBox, QDateTimeEdit, QTimeEdit) set various input method hints on the spin box in the init() methods of their private classes which did not have any effect since QAbstractSpinBox::inputMethodQuery() was implemented to return the hints of the embedded QLineEdit only. Change it so that hints set on the QAbstractSpinBox are also considered. Change-Id: I76b7c4d3e0869589c110cf3a0b2c3f94201db5d5 Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com> Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
* xcb: Compress mouse motion and touch update eventsGatis Paeglis2015-09-223-134/+208
| | | | | | | | | | | | | | | | | | | | | | The current version of the mouse motion event compression algorithm does not work with certain configurations - situations where we get one XCB_GE_GENERIC event between every XCB_MOTION_NOTIFY event. The new implementation tries to be less fragile. The previous approach checked "is *the next* event the same type as the current event", the new check asks "have we buffered more events of the same type as the current event". We buffer events of the same type only when the main thread is unresponsive. This patch adds event compression for XI_TouchUpdate in addition to the fix for motion even compression. Change-Id: Ie215eb5969e2060e463ebe48e3d3007390a30deb Task-number: QTBUG-40889 Task-number: QTBUG-47069 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* xcb: Always send dnd events to the proxy window if it existsAlexander Volkov2015-09-222-6/+13
| | | | | | | | | The standard http://www.newplanetsoftware.com/xdnd/ says: "The only place where the proxy window should be used is when checking XdndAware and in the calls to XSendEvent()". Change-Id: I62e504ba52ec7ec2a941c53a84889bb3eb4b4cc1 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Add getter and setter for qt_qhash_seedGabriel de Dietrich2015-09-222-1/+52
| | | | | | | | | | | | | | | | | | In some cases it's not possible to use QT_HASH_SEED, specially when we need to set the environment variable from inside the application, as dynamically loaded libraries or plugins may create static QHash instances. That would set qt_qhash_seed to a value different from -1 and skip the env var value. For those cases, and when we still want to set qt_qhash_seed, we provide a way to enforce its value. Auto-tests accessing qt_qhash_seed directly have been updated accordingly. Usage in qdoc, uic and rcc has been left as is for the time being. Change-Id: I3b35b4fa0223c83b1348a6508641905a2a63266f Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* eglfs: Create input handlers only when screens are availableLaszlo Agocs2015-09-221-3/+4
| | | | | | | | Some code may rely on the primary screen geometry for example. Task-number: QTBUG-47002 Change-Id: I42fc1ccf0c1d91beb5d8e9691ac6ec4e7400e567 Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
* Null out QOpenGLContext::screen upon screen disconnectLaszlo Agocs2015-09-223-2/+18
| | | | | | | | | 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>
* Make QWidget::grab work with graphics effectsPaul Olav Tvete2015-09-221-1/+1
| | | | | | | | | | | | | | | Change 071098b08b12fc1af6341ff6d7ba6713e5de1481 changed QWidget::render to work with all paint devices. Before that change, QWidget::grab would effectively call QWidgetPrivate::render(), since the QWidget::render overload was just a direct call to the private class implementation. This change fixes the regression by calling QWidgetPrivate::render() directly from QWidget::grab(). Task-number: QTBUG-43968 Change-Id: I1aa2fa91c722374612b6cfa76fd0891d168ecac9 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Add an option to skip the generic bearer engineTimur Pocheptsov2015-09-221-2/+10
| | | | | | | | | Add an option to skip a generic bearer engine if needed (by testing environment variable QT_EXCLUDE_GENERIC_BEARER). Task-number: QTBUG-41866 Change-Id: I1b53ed1d22a7b34de5c6f6d0386ed242b2ca5e00 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* Expand reporting of the Intel instruction set extensionsThiago Macieira2015-09-222-13/+155
| | | | | | | | | | | | | | | Detection for most of them is free because we're loading the entire registers anyway. The only exception is AVX512VBMI, which is in a new register we hadn't yet read from. I've also added the new GCC names so they can be used with QT_FUNCTION_TARGET. The only two exceptions are "movbe" and "popcnt", which are extremely restricted in use and we are not likely to have code dedicated to using them. Change-Id: Ib306f8f647014b399b87ffff13f1d8fd29e58be0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Reorganize the bits for the CPU feature detectionThiago Macieira2015-09-223-89/+159
| | | | | | | | | | | | | | | 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>
* Windows: Return accepted state of XBUTTON mouse events to the OS.Friedemann Kleint2015-09-221-1/+4
| | | | | | | | | | 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: Id2c8005ee992b0abd8af2aacbcb97c4eedcfa32f Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
* Ensure the accepted state of mouse events is passed to QWindowSystemInterface.Friedemann Kleint2015-09-222-0/+2
| | | | | | | | | | 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>
* Clean up some Apple-related includes and declarations.Jake Petroules2015-09-227-35/+7
| | | | | Change-Id: I92db9691c2243ae72ecd4e11dd4640afaf4bf822 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* Modernize and unify filesystem code on Apple platforms.Jake Petroules2015-09-226-116/+94
| | | | | | | | | | | | | | | Replace deprecated File Manager APIs with modern equivalents. Change some Q_OS_MACX to Q_OS_DARWIN in file system related code. All of these apply to iOS as well as OS X, and were ifdef'ed for OS X only primarily due to legacy reasons - carryovers from Qt 4 or Carbon APIs which have since been refactored into using CoreFoundation. This also makes the code consistent with the documentation. Change-Id: I414e9bdfffff731413ddf16171b1317027d87caf Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
* QLineEdit: Don't include left and right minimum bearing when drawing textTor Arne Vestbø2015-09-221-12/+6
| | | | | | | | | | | | | | | The naturalTextWidth() of the QTextLayout already includes the left and right bearing of the actual text in the line edit, there's no need to shift the text based on the minimum left and right bearings as well. This may result in text that is closer to the edges of the line edit on platforms that relied on this flawed logic, but that should be adjusted back using the corresponding style hints. Change-Id: I1d5edbeda7afe3e69b972841d280eb9e573675f5 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* Set the source for a detached mouse button eventAlexander Volkov2015-09-211-1/+1
| | | | | | | | | | 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>
* xcb: Use the correct property type when requesting virtual rootsAlexander Volkov2015-09-211-2/+2
| | | | | | | | | Virtual roots are windows, so we should request XCB_ATOM_WINDOW instead of XCB_ATOM_ATOM. Change-Id: I59558b1a3c37cb9bcad42bc0695d420f59088eb9 Reviewed-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* QtNetwork documentation: Emphasize QTcpServer::addPendingConnection().Friedemann Kleint2015-09-212-1/+6
| | | | | | | | Add note mentioning it to QTcpSocket::incomingConnection() and update SSL socket server code snippet accordingly. Change-Id: I9d228dabde76f9e9cd5140edf08be09a588066c8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QPlatformWindow: Extract static method for closestAcceptableGeometry().Friedemann Kleint2015-09-213-4/+10
| | | | | | | | | | | | | | | | | | | 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>
* Fix build error with ICC 16 on WindowsThiago Macieira2015-09-212-0/+8
| | | | | | | | | | | | This is a repeat of acf80b9a2b913e898ed4c4ed14d4ea79401484fe, 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>
* Pretend the X11 "compose" platform input context plugin to be "xim" tooThiago Macieira2015-09-212-2/+3
| | | | | | | | This is for compatibility with old Qt versions that had this. Task-number: QTBUG-48360 Change-Id: I42e7ef1a481840699a8dffff1405c0a348e32e27 Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
* Fix QtCore compilation with clangThiago Macieira2015-09-212-6/+37
| | | | | | | | | | | | | | The .altmacro is not supported with Clang's integrated assembly. The worst part is that I had this fixed, but apparently I never pushed the update to Gerrit and then we staged the old version. This commit brings back the fixes. Incidentally, it also makes things work with freebsd-clang. Change-Id: Id2a5d90d07d7ee470fcb9ad9696a9a0f9ced7ea7 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Fix evdevtouch coordinates when high DPI scaling is in useMitch Curtis2015-09-211-2/+4
| | | | | | | | Report coordinates in the native coordinate system. Change-Id: I1bfc495dd02e9a6033707bccb11066732d6cc0da Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* Fix QImageReader::size() to return correct size for .ico files.Serge Lysenko2015-09-171-13/+8
| | | | | | | | | | | | | | According to MSDN, the zero value of ICONDIRENTRY bHeight and bWidth fields mean a maximum icon size 256 pixels. So QtIcoHandler::option() should return 256 instead of 0 pixels for such icons. Also there is fixed wrong seek offset at the second call on this method. http://blogs.msdn.com/b/oldnewthing/archive/2010/10/18/10077133.aspx Task-number: QTBUG-48103 Change-Id: I99f0c9720fd58889045b0c73c51498f2065b0b91 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
* Serialize the capitalization value of QFontAndy Shaw2015-09-153-3/+9
| | | | | | | | | | | | | | | | 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>
* Android: Always queue calls from Qt to Android.Christian Strømme2015-09-151-5/+7
| | | | | | | | | | | | | | Calling runOnUiThread() only queues calls that comes from a different thread then the UI thread. The problem with the current solution is that we can't promise or rely on the calls being delivered in the same order they were called. Another consequence of the old behavior is that we potentially cause long lasting synchronization points, which can cause the application to become unresponsive or in worst case result in a deadlock. With this change all calls to runAction() will be queued on Android's main message queue (aka the UI thread) and return immediately. Change-Id: I50a4273ae9ba8ad17fb2c50ccd57449e4fbc12f9 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* Document QGuiApplication::primaryScreen propertyAleix Pol2015-09-151-18/+13
| | | | | | | | | 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>
* Use the proper macro to detect the compiler as part of the NDKAleix Pol2015-09-151-1/+1
| | | | | | | | | | The correct macros can be easily checked by running: .../arm-linux-androideabi-gcc -E -dM - < /dev/null | grep -i ANDR Otherwise we're just relying on the user to set up explicitly the toolchain to target Android Change-Id: I7b68521f43031c13da99b07626360d0702bff4ca Reviewed-by: BogDan Vatra <bogdan@kde.org>
* Fix QT_NO_ACCESSIBILITY build on windowsLiang Qi2015-09-151-0/+2
| | | | | Change-Id: I30b9477596696e3f4b5b51f2d5b201fe4efbdef4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Add a method to detect when the state-machine can exit.Erik Verbruggen2015-09-152-0/+9
| | | | | | | | | | | According to the SCXML specification, the state-machine can exit the interpreter loop when a final state has been reached. This happens after finishing a macro-step or when it ends up in a final state right after startup (e.g. when the only state is a final state). This patch adds a virtual method which can be used to detect this reliably. Change-Id: I594e952a4972dd70d4089a2c4ce1c86880568eb9 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Replace direct QPA access in tst_qguiappliction with testlib wrapperTor Arne Vestbø2015-09-151-1/+7
| | | | | Change-Id: I698aa9d7633992d257296759f5e04307ff0d8331 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Merge two more QDBusConnectionPrivate members into a unionThiago Macieira2015-09-152-15/+18
| | | | | | | | | | | QDBusConnectionPrivate can only be a client or a server, not both, so the DBusServer and DBusConnection pointers can be shared, like the QDBusConnectionInterface and QDBusServer pointers in the other anonymous union. Change-Id: I9a75ad8521ae4e5cbbe5ffff13d1baa8ab83c42f Reviewed-by: Albert Astals Cid <aacid@kde.org> Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>