summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* iOS: Refactor text input handling to standalone responderTor Arne Vestbø2014-09-208-246/+335
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of coupling the visibility of the virtual keyboard to the first-responder status of the currently active QUIView, we now treat first-responder as a separate state, tied directly to QWindow activation. This fits better with the concept of first-responders in iOS, as a UIView can become first-responder without dealing with text input, eg when dealing with touch events or menu actions. The decision point on whether or not to show the virtual keyboard is then handled by implementing the conformsToProtocol method and selectively returning YES for the UIKeyInput protocol. iOS internally calls _requiresKeyboardWhenFirstResponder on the UIResponder to determine this, but since we can't override a private method (like WKContentView in WebKit does) we have to rely on the fact that the implementation of the method uses the protocol conformance to make its decision. Once the virtual keyboard is up, we then need to react to changes to its configuration, such as keyboard type or the type of return key. Normally this would be a simple call to [view reloadInputViews], but iOS will not reload the built-in keyboards unless the UIResponder returns YES for _requiresKeyboardResetOnReload. Since we again can't override this private method (like WebKit does), we work around it by taking advantage of the fact that iOS will treat any change to the first-responder as a reason to do a keyboard reset. By using a stand-alone UIResponder for text input we can init and destroy these responders as needed, so that every call to reloadInputViews will trigger a reset, as the responder has not been seen before. We keep track of changes to the input-method-query, and detect whether or not we need to bring up a new UIResponder for text handling. As part of this refactoring we now tie the visibility of the virtual keyboard to the presence of a focus object that has input-methods enabled. This means that we automatically will track changes to input-elements through the focus changes, and reconfigure or hide the keyboard as appropriate. As a result the hide() method of QInputMethod becomes a no-op on iOS. Change-Id: I4c4834df490bc8b0bac32aeedbd819780bd5aaba Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Fix default implementations of raster opsEskil Abrahamsen Blomfeldt2014-09-202-2/+17
| | | | | | | | | | | | | | | | | | In the list of default implementations, the raster ops added in ae0ddb8c729c105a5b4f32a4f6765af8fe546333 were all offset by one composition mode because of a duplicate entry in the array. The effect would be, e.g. that using the NotDestination operator would resolve to the Set operator instead. Most users will probably not have experienced this since any of the asm-based functions will be preferred. [ChangeLog][Painting] Fixed some very rare cases of mismatched raster modes in QPainter. Change-Id: Ia242b54c78acbe1c89d9b4ecd10936564ec134b2 Task-number: QTBUG-41413 Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* a11y: Don't try to update accessibility if there's no interfaceTor Arne Vestbø2014-09-202-23/+18
| | | | | Change-Id: I970729e65ba0eb857e6974f9947f27ae8e6410c3 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* a11y: Make QAccessibleButton and friends resolve role dynamicallyTor Arne Vestbø2014-09-203-38/+49
| | | | | | | | | The role may changed based on the checkable state of the button, eg, so we need to resolve the role at runtime instead of hard-coding it in the constructor. Change-Id: I78faee08189c5510ca9964b07ad94bcf5d4fa11b Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* xcb: Fix memory leaks in DnDAlexander Volkov2014-09-191-3/+10
| | | | | | Change-Id: Ie19711c17769128db67a0b083ef72109f49bfe78 Spotted-by: Alexander Smirnov Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Keep a source of propagated mouse eventsAlexander Volkov2014-09-192-1/+3
| | | | | | | | | Synthesized mouse events should not cause mouse events which look like they were obtained from the system. So set the source of generated events from the original event. Change-Id: I862829446ac6ef664e1b8e4a5b54ed11926a1d4b Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Set a missing source for mouse events synthesized by QtAlexander Volkov2014-09-191-1/+2
| | | | | | | | Mouse events synthesized from touch events by Qt should be marked as Qt::MouseEventSynthesizedByQt. Change-Id: I73612621a0248440b3b773f1280395c05c55e4aa Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Windows qpa: fix minimum allowed fixed height, width on windowsDyami Caliri2014-09-191-2/+1
| | | | | | | | | | | | | A window width constraint coded in Qt4.8 was accidentally applied to the height in Qt5. Upon further review, it does not seem that this constraint is needed, in any case. Different versions of Windows have different minimum window widths (8.1 had 124px instead of 112), and setting a smaller value seems to cause no harm. Task-number: QTBUG-32820 Change-Id: I21ad6d406abf7344aff54d32b41974265aa9ea81 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Update widget winId when screen changesDyami Caliri2014-09-193-1/+38
| | | | | | | | | When a window's screen changes it may recreate the platform window. In that case, update the winId in the widget to keep it in sync. Task-number: QTBUG-40681 Change-Id: Iec815320214832bb63952de3a5bd1340a04dacd4 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* winrt: Fix gethostname linker error in qsqldatabase testsAndrew Knight2014-09-191-4/+6
| | | | | | | | | | | With VS2013 Update 3, Win32 sockets are now allowed in Windows Store Apps. Upgrading VS meant that gethostname was visible to the application, but failed to link as the mkspec doesn't link to ws2_32. Adjust the workaround not to call the newly visible symbol on WinRT. Change-Id: Ide6d8759cca7acab6c466a9bf4d6b876f6ca7605 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* Changed font-family to Times New RomanTomi Korpipää2014-09-191-1/+1
| | | | | | Task-number: QTBUG-40839 Change-Id: I3be6de829b6f26b26e7ec654ccb117bdb58cdf41 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* QPaintBuffer paints drawGlyphRun with wrong fontAllan Sandfeld Jensen2014-09-193-1/+11
| | | | | | | | | | | | If QRawFont and and drawGlyphRun is used on a QPaintBuffer it will lose the QRawFont and end up painting with primary font at the time. With this patch, QStaticTextItem can now indicate that they must be drawn using the supplied font-engine and that the font information is not enough. Change-Id: Id6bd376d797d2bfb457e7de55c48bdcf9f20ae38 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Restore -qt-block-indent on <li> elementsAllan Sandfeld Jensen2014-09-182-1/+14
| | | | | | Task-number: QTBUG-20877 Change-Id: If049065ed99eaf8ffc85c8ff54d3da892a095795 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* QOpenGLWidget: Play nice with empty paintGLLaszlo Agocs2014-09-181-0/+1
| | | | | | | | | | | Applications that do not override paintGL() (may happen in some test code) will not perform any GL rendering, not even clearing. This is fine, but to be safe we need to do a clear right after creating the FBO in order to prevent showing garbage. Task-number: QTBUG-38327 Change-Id: If062901bb18724f961e41856085470e37b49abbe Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Use metrics returned by GetGlyphOutline in GGO_METRICS modelasconic2014-09-181-3/+26
| | | | | | | | | | | GetGlyphOutline Windows API returns wrong values when used with an OpenType PS font and in GGO_NATIVE mode. It causes problem when exporting to PDF. The fix changes the GetGlyphOutline call to use GGO_METRICS instead. Task-number: QTBUG-12799 Change-Id: I47d6d16b6e7819b51bc444420ada4a47d5f24f4e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Cocoa: Always add Arial Unicode MS to fallback listEskil Abrahamsen Blomfeldt2014-09-181-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | The fallbacks on the platform should ideally contain all fonts that support the script passed in, but this would require populating the font database and checking the unicode ranges for all fonts, so it would cause a significant performance hit on Mac. What we do here instead is just return a set of default fonts as the fallbacks and disregard the requested script. The consequence of this is that some special unicode codepoints were not supported on Mac, because we weren't working with a full fallback list. To rectify this without breaking performance, we always add Arial Unicode MS to the end of the fallback list as a final fallback. This should always be present on the system and has a wide support of different scripts. [ChangeLog][OS X][Fonts] Fixed missing glyph box shown in place of some uncommon Unicode code points. Change-Id: I4fc8576bfddc8a73204aca2b16437d42c524bc79 Task-number: QTBUG-40986 Task-number: QTBUG-40549 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Add a note about winId() to QOpenGLWidget docsLaszlo Agocs2014-09-181-0/+3
| | | | | | Task-number: QTBUG-40765 Change-Id: I0dbb010bb96c6b41c67392b8846782a354481e5e Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Add a multiwindow manual test using QOpenGLWindowLaszlo Agocs2014-09-182-0/+181
| | | | | | | | | This is a very useful tool to test the behavior of a given platform when it comes to rendering on three contexts to three window surfaces from the gui thread and calling swapBuffers for each. Change-Id: If3abd055d0dee7cfb24098484326aa24261556bc Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Propagate swap interval from QOpenGLWidget to the tlwLaszlo Agocs2014-09-181-1/+15
| | | | | | | | | | | Otherwise it is impossible to set a swap interval different than the one set by QSurfaceFormat::setDefaultFormat(). Both windows and xcb will pick up the updated interval from the window on the next frame. Change-Id: I55a59f83a62d3adcea687adf28639646b576ed58 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* QCommonStyle: cache the xpm QPixmapsMarc Mutz2014-09-181-17/+28
| | | | | | | | | | | | | | | | | The QPixmap(const char* const*) ctor featured prominently in the callgrind trace of tst_qmdi*, with 23% of total time spent there in tst_qmdiarea before the change. Cache the results in the QPixmapCache. That's probably a good idea for all standardPixmap()s, but none other feature prominently in any of the widgets/widgets auto-tests, so there's no immediate need to do something about it. After the change, less than 3.5% of the total time is spent on parsing XPMs. Change-Id: Idfb6ffe0d0f7a4a1f71a7c26fc9ab0f42bdbd7a8 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Make qtconcurrent map example compile on exotic compilersAlex Blasche2014-09-181-1/+1
| | | | | | Task-number: QTBUG-9015 Change-Id: I1019765312c8d55728023642601199506269be6d Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
* Add missing period to QHeaderView documentation.Mitch Curtis2014-09-181-1/+1
| | | | | Change-Id: Ibf3fdb4e1c149b2dbee7bf3043cec9d3e167381d Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Improve documentation regarding moving item view columns.Mitch Curtis2014-09-182-0/+7
| | | | | | | | | The only way I was able to find information on this was through bug reports. Change-Id: Iac59a82fab9c216495860ad3b1efad1125130002 Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Fix menu mnemonic inside ligaturesAllan Sandfeld Jensen2014-09-184-131/+52
| | | | | | | | | | | The code to draw underlines on specific characters in widget menu could not handle ligatures. Instead of using special code to handle this case this patch changes the mnemonic underlines to use normal format-ranges making the text engine deal with splitting ligatures as necessary. Task-number: QTBUG-20960 Change-Id: I6159110eae7aa8c819af16ba4a393d758871e2e0 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* OS X: Add scan code mappings for Escape, Return and function keys.Dyami Caliri2014-09-171-16/+26
| | | | | | | | | | | | In OS X, certain keyboard layouts (such as Japanese) do not produce unicode character conversions for Escape and other keys. In these cases the code uses a fallback scan code check to map the key. The scan code mapping had the function keys, but there are several other important keys it can map. Task-number: QTBUG-41090 Change-Id: I624793c9bb28ae8c98b54539c277943905cac7e2 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Fix accessibilitylinux autotest failureJan Arve Saether2014-09-171-0/+6
| | | | | | | | | | | | | | Each test function is responsible for removing the children it added to m_window, since m_window is reused for each testcase. Due to this, the test QCOMPARE(children.length(), 2); failed, (it was 3). Change-Id: Idbd13214d2e841450800df0542fbdbcfaac85ce1 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Remove pointless check in QImageData::create()Maks Naumov2014-09-171-1/+0
| | | | | | | "height <= 0" already verified above. Change-Id: Ia2ab90a4cd5533f7b5101686876c2c2cc3e275ac Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove qtdemo from gitignoreRainer Keller2014-09-171-1/+0
| | | | | | | QtDemo was removed with a commit in qtdoc. Change-Id: I1803e041e7da57641148a37691ffdc6ae6c85ad9 Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* make it possible to suppress warnings of the vcxproj generatorJoerg Bornemann2014-09-173-2/+18
| | | | | | | | | | When the user adds a compiler option that qmake doesn't understand, a warning message is printed. One can suppress these warnings now by adding CONFIG+=suppress_vcproj_warnings to the project file. Task-number: QTBUG-37520 Change-Id: Ieb7ad2c900329e76636047dff85824ea0456f608 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fix cancel operation for example "Application"Mika Salmela2014-09-171-4/+4
| | | | | | | | | On the save dialog the cancel option is detected now from exec() method. Change-Id: I977626b83fe770ddc148b57551becd04e5fd9dd5 Task-number: QTBUG-41020 Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* copy qml files only once in debug-and-release buildsOswald Buddenhagen2014-09-171-1/+1
| | | | | | | | the condition is copied 1:1 from the BUNDLE_DATA logic in qt_module.prf. Task-number: QTBUG-41267 Change-Id: Ia80a9a29319f70017e090855cf8d35a77b9e727f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix saving handle width in QSplitter::saveState()Alexander Volkov2014-09-162-1/+38
| | | | | | | | | | | QSplitter::handleWidth() returns either a style dependent value if d->handleWidth is negative or the value of d->handleWidth itself. So to preserve this choice after calling saveState()/restoreState() we should save and restore the value of d->handleWidth rather than a result of handleWidth() which is non-negative. Change-Id: Idc11f8063d34b6c4a5f9b0a0032868679766dfb9 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Allow overriding standardIcon() in a proxy styleAlexander Volkov2014-09-165-22/+22
| | | | | | | [ChangeLog][QtWidgets][Styles] Allow overriding standardIcon() in a proxy style Change-Id: I3c7983a7e51a8b220a0ca8ead2b4d7b87a77d71b Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Fix QT_LINUX_ACCESSIBILITY_ALWAYS_ONJocelyn Turcotte2014-09-161-1/+1
| | | | | | | | | | | The current behavior was that accessibility is enabled if the variable is _not_ set, which causes accessibility to be enabled all the time even if a screen reader isn't present. Change-Id: I73286622fb5abe1cedce420e760306ab7f200e69 Reviewed-by: Adam Majer <adamm@zombino.com> Reviewed-by: Tomasz Olszak <olszak.tomasz@gmail.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Respect Qt::FontRole for QComboBox items.Mitch Curtis2014-09-161-3/+8
| | | | | | Change-Id: I810ae2d77109a36b457f07e4a7b0489c954279e8 Task-number: QTBUG-41131 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Fix Windows ICU build break in QCollator after commit c17563ec.Michael Brüning2014-09-161-1/+1
| | | | | | | | It used LCID without including qt_windows.h while QT_USE_ICU was defined. Change-Id: I3d4cf0e6bd0e299729d23d9a36c5a87adde774c9 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Change the state of only the left mouse button when sending fake mouse eventsAlexander Volkov2014-09-161-2/+3
| | | | | | | | Mouse events synthesized from touch events affect only the left mouse button. So preserve the state of other buttons. Change-Id: I628d41089db39f0c983aa95f311a842111b8c39c Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Rephrase sentence in QIntValidator documentation.Mitch Curtis2014-09-161-1/+1
| | | | | Change-Id: I53b4e4615ad23a603bc724b896de5fd1644cdab0 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* QRegion: Reorganise members to reduce padding in QRegionPrivateMaks Naumov2014-09-161-3/+3
| | | | | | | | On 64-bit platforms: 56 -> 48 bytes. On 32-bit platforms it's still the same size (44 bytes). Change-Id: Ia4831753258ef12aa983757523bb76979e6fc4b0 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Fix high dpi support in QOpenGLWindowLaszlo Agocs2014-09-151-3/+4
| | | | | Change-Id: I0be29fb25d854e09ae961cade0c8490586788394 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Do not drop the context when sharing globallyLaszlo Agocs2014-09-151-0/+6
| | | | | | | | | There is no point in recreating the QOpenGLWidget's context when it shares with all top-levels' shareContext(). Change-Id: I659a8ef6563de0cc1e833198af4dfb8c705e40d8 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Fix drag and drop with createWindowContainerLaszlo Agocs2014-09-151-0/+11
| | | | | | | | | Forward dnd events to the QWindow, exactly like QQuickWidget would do. This of course requires setting setAcceptDrops(true) on the container widget. Task-number: QTBUG-39213 Change-Id: I8ea49e630b071dc0aacd53f798d9b46b03502365 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Speed up QStringList::removeDuplicates by ~2xDaniel Teske2014-09-151-2/+4
| | | | | | | | | QSet::contains needs to hash the string, which is unnecessary, since we can just check if the size of the set changed. Change-Id: I2c7a42bae6cdf351533d5a582a42079658fa7729 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* add missing DefaultLanguage property for WinRT projectsJoerg Bornemann2014-09-151-1/+2
| | | | | | | Task-number: QTBUG-37628 Change-Id: I7cce0641b8958fe1d97ace21cb5392e32a067649 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* Make the default value of QTreeView::indentation() be style dependentAlexander Volkov2014-09-157-6/+82
| | | | | | | | | | | | | Add a new PM_TreeViewIndentaion enum value to QStyle and get the corresponding pixel metric in QTreeView. [ChangeLog][QtWidgets][QTreeView] Indentation is now style-dependent by default. [ChangeLog][QtWidgets][QTreeView] Added resetIndentation(). Change-Id: Ifad7987b8f3c6cd32987b89d95390f33043d8f19 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Adam Majer <adamm@zombino.com>
* Fix 64 bit issues in QIODevicePrivateLinearBufferLars Knoll2014-09-152-9/+13
| | | | | | | | | The API was using int, not qint64 leading to implicit truncation of numbers in a few places Task-number: QTBUG-40974 Change-Id: I13aedc84557a19b6f74fe6825764e7b5827f27b0 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Use default surface format in QOffscreenSurfaceLaszlo Agocs2014-09-141-0/+1
| | | | | Change-Id: I3b2f790089e6d1bcfe92f2f732489c08afa766cd Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* QNetworkDiskCache: fix expiration calculation heuristic with Last-Modified timeDong-Heon Jung2014-09-122-15/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Heuristic with last-modified time in Qt has some problems. 1) Remove redundant expirationDate.isInvalid() check expirationDate.isInvalid is already checked. So I removed. 2) Add dateHeader.isInvalid() check The dateHeader is used in expiration calculation. I add invalid check for the dateHeader. *. The dateHeader is the origin server's Date 3) Change diff time calculation. The expirationDate is calculated with time diff. Previous calculation is // The lastModified is earlier than the currentDateTime. // The diff has negative value. int diff = currentDateTime.secsTo(lastModified); // The expirationDate is earlier than lastModified // , currentDateTime and dateHeader. expirationDate = lastModified.addSecs(diff / 10); *. currentDateTime: current time *. lastModified: last modified date in server It means that files are not cached with the heuristic. I changed diff calculation. int diff = lastModified.secsTo(dateHeader); freshness_lifetime = diff / 10; // RFC 2616 13.2.4 4) httpRequest.headerField setting If current_age is larger than 1 day, the cache MUST attach Warning 113. *. The current_age is value of age in header or elapsed time from dateHeader in Qt source code. Previous code does not check current_age is larger than 1 day correctly. // dt = 1970-01-01T00:00:00 + current_age dt.setTime_t(current_age); // currentDateTime is much bigger than 1970-01-01T00:00:00 if (dt.daysTo(currentDateTime) > 1) Task-number: QTBUG-40836 Change-Id: I4b00c3b287e6fafeea6b02681533fe75a198247e Reviewed-by: Jung Dong-Heon <dongheon.jung@lge.com> Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
* Fix typos in Widgets Tutorial.Mitch Curtis2014-09-121-3/+3
| | | | | Change-Id: Id4a0bef3b00f3869582e76ee45f230120189a268 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Force a full layout on the frame if it's vertical geometry changesLars Knoll2014-09-121-5/+22
| | | | | | | | | | When the frame's vertical geometry changes because top/bottom margins, border or padding changes we need to do a full relayout of the frame to position it correctly. Task-number: QTBUG-2975 Change-Id: Ia0f063cc2057b6d7a469977d258ec1608feff9bf Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>