summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add benchmark for QString::section()Marc Mutz2014-10-041-0/+58
| | | | | Change-Id: I7ca4ceb8cfa7a3df384400a1b3ebc9be2502e396 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QWidget: use qEnvironmentVariableIntValue()Marc Mutz2014-10-031-2/+2
| | | | | | | | It doesn't allocate memory, so cannot throw and is a lot faster than qgetenv(). Change-Id: I5b5aec194aab66c7cea8da736655cc7270ade272 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Prepare QVector::operator==() for sharing with QList::operator==()Marc Mutz2014-10-031-7/+4
| | | | | | | | | | ...by implementing it via std::equal(). This might also enable STL implementations to choose a hand-optimized version of the algorithm for C++ builtin types. Change-Id: I1347a7f365b3d2947f19a81b95aa8d89b8ad303d Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Prepare QVector::contains() for sharing with QList::contains()Marc Mutz2014-10-031-6/+3
| | | | | | | | | | ...by implementing it via std::find(). This might also enable STL implementations to choose a hand-optimized version of the algorithm for C++ builtin types. Change-Id: I86e94d63ff58332f2fa6eafb3c1baccd125a6f34 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QTriangulator: fix a potential out of bounds accessGiuseppe D'Angelo2014-10-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | primeForCount tries to calculate a rough base 2 logarithm of the argument, in order to access the array of deltas between primes. However, the usage of an arithmetic shift instead of a logical shift could cause "high" to stay at 32 -- if the argument is INT_MAX, for instance, the condition of the if clause in the loop is always true. The loop would go this way: * precond: low = 0 , high = 32 * i = 0 : mid = 16, if TRUE, low = 16, high = 32 * i = 1 : mid = 24, if TRUE, low = 24, high = 32 * i = 2 : mid = 28, if TRUE, low = 28, high = 32 * i = 3 : mid = 30, if TRUE, low = 30, high = 32 * i = 4 : mid = 31, if TRUE, low = 31, high = 32 and hence the subsequent access of the 33rd position of the array (by passing index 32) is out of bounds. Now the if at i = 4 is true because "1 << 31" is an arithmetic shift, not a logical one, and gives - (2^31) as result. Making it a logical shift fixes this (INT_MAX is 2^31-1, the shift gives 2^31, so the if is false). Spotted by Coverity. Change-Id: Ied89f4c87d603a209284e22c30f18a3e464d84fd Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* QTriangulator: fix the array of deltas between primesGiuseppe D'Angelo2014-10-031-2/+2
| | | | | | | | 121e71293500e08148d3c2ce31a8e9b618943cba fixed it into QHash, so copy the same ranges here. Change-Id: Ia7738f878965b5593d6ca641d6b8911abfdd2dd3 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Do not assume QEGLPlatformCursor in the common egl bitsLaszlo Agocs2014-10-031-1/+1
| | | | | | | The kms hook uses a custom QPlatformCursor. Change-Id: I4543df6314a45abfc20495cbffdd376aed8bbe93 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* EGLFS: Fix plugin destruction (again)Louai Al-Khanji2014-10-036-9/+21
| | | | | | | | | The previous patch was flawed since by the time the QEglPlatformIntegration destructor was called the virtual function table did not point to the methods in QEglFsPlatformIntegration any more. Change-Id: I310e5e3e734a22b44645ba912b579f193bcfae86 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Add support for gcc/clang's sanitize featuresPeter Kümmel2014-10-024-0/+104
| | | | | | | | | | | | | | | GCC and Clang support compiler intrinsic error detections tools: address, memory, thread, undefined Let users conveniently enable it in qmake, for instance with CONFIG += sanitizer sanitize_address Also add a -sanitize [...] option to configure to use it by default for both the Qt libraries, and user applications. [ChangeLog][configure] Added support for GCC/Clang -fsanitize= options Change-Id: Ie5418abcdf41842566df510d7707e41739e66f87 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Add a macro to disable only some 8 bit/16 bit string conversionshjk2014-10-023-15/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an opt-in trade-off between type safety and user code convenience. QT_NO_CAST_FROM_ASCII is highly beneficial to avoid unintended conversions from 8 bit data with potentially "unsuitable" encodings to QString. However, it has the undesirable side-effect to require user code to wrap character and string literals in QLatin1Char(...) and QLatin1String(...) or use similar construction, cluttering the code significantly. This patch introduces a QT_RESTRICTED_CAST_FROM_ASCII macro that works almost as QT_NO_CAST_FROM_ASCII, except that it enables the QChar(char) constructor and adds an additional QString(const char (&ch)[N]) constructor that matches C++ string literals, but no arbitrary character pointers. This avoids a significant share of the need to clutter the user code by only a slight relaxation of the type-safety. [ChangeLog][QtCore][QString] Added QT_RESTRICTED_CAST_FROM_ASCII macro as less intrusive alternative to QT_NO_CAST_FROM_ASCII. Change-Id: Iac72f1f90f81fbcae9bfb1fe68b0fec6ffb36c50 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Simplify QOfonoDataConnectionManagerInterface::getProperty()Marc Mutz2014-10-022-6/+3
| | | | | | | | | | | | Make getProperties() return a reference and directly call value() on it. Almost is a tail-call now, if it wasn't inlined and if the dtor of the default argument didn't have to be called. Saves 288bytes in text size even so. Change-Id: Ie841501c1ce1379ca928f7474b90bc6487d77ab2 Reviewed-by: Valerio Valerio <valerio.valerio@jollamobile.com> Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* QOfonoService: use Q_SLOTSMarc Mutz2014-10-021-1/+1
| | | | | | | | | The rest of the code uses Q_SIGNALS, even Q_EMIT, so be consistent, if nothing else. Change-Id: I6441d0a630e7b592d15431c2b9ff4398223bbe9c Reviewed-by: Valerio Valerio <valerio.valerio@jollamobile.com> Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* QTreeView: remove dead codeMarc Mutz2014-10-021-4/+0
| | | | | | | | And no, I didn't investigate why a Q_UNUSED line with a missing semicolon compiled so far... Change-Id: I72f9bad758932fb617f43e712ac09c9e72436ff4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* QApplication: use qEnvironmentVariableIntValue()Marc Mutz2014-10-021-1/+1
| | | | | | | | It doesn't allocate memory, so cannot throw and is a lot faster than qgetenv(). Change-Id: I3bd7b79b520ddbb9d4dd6adb3a495e214f111c2c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* QPlatformTheme: use qEnvironmentVariableIntValue()Marc Mutz2014-10-021-1/+1
| | | | | | | | It doesn't allocate memory, so cannot throw and is a lot faster than qgetenv(). Change-Id: I78ced6a0207e3a9c6deb71c6ce097eb79fe5e8cf Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* QWidgetBackingStore: simplify reading of an env-var in {move,scroll}Rect()Marc Mutz2014-10-021-8/+2
| | | | | | | | | | | | | | | Instead of initializing accelEnv to -1 (thus forcing the variable into the data segment), and then overwriting the -1 with a read from the env-var, dynamically initialize the variable from the env-var directly, thus allowing the variable back into the bss segment (which doesn't occupy storage in the executable). There may have been a reason to do it this way when the old code could fail due to the memory allocation involved, but now with qEnvironmentVariableIntValue(), that is no longer a reason. Change-Id: I619fe45d8eb2a50515f5fb255cabd23a5966b11e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* QWidgetBackingStore: use qEnvironmentVariableIntValue()Marc Mutz2014-10-021-6/+6
| | | | | | | | It doesn't allocate memory, so cannot throw and is a lot faster than qgetenv(). Change-Id: I7efe6124ab78092f05ef4296e37bd0d123deb064 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* QList: iterate forward in contains()Marc Mutz2014-10-011-4/+4
| | | | | | | | | | | | After much head-scratching, we found no reason for the backwards iteration. Indeed, forward iteration should be slightly faster than backwards, because it operates in the direction in which cache-lines are filled, usually. This is in preparation of using std algorithms instead of hand-written loops. It avoids having to use std::reverse_iterator. Change-Id: Id2388eab2339c24deb93095495d87056a9c57133 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QVector: iterate forward in operator==Marc Mutz2014-10-011-5/+5
| | | | | | | | | | | | After much head-scratching, we found no reason for the backwards iteration. Indeed, forward iteration should be slightly faster than backwards, because it operates in the direction in which cache-lines are filled, usually. This is in preparation of using std algorithms instead of hand-written loops. It avoids having to use std::reverse_iterator. Change-Id: I180c52e0bb90e823216b77d3f49f2a3fd395567d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QList: iterate forward in count()/contains()Marc Mutz2014-10-011-6/+6
| | | | | | | | | | | | After much head-scratching, we found no reason for the backwards iteration. Indeed, forward iteration should be slightly faster than backwards, because it operates in the direction in which cache-lines are filled, usually. This is in preparation of using std algorithms instead of hand-written loops. It avoids having to use std::reverse_iterator. Change-Id: Ib62cf0a6f2a33d186cb174b23b0d6bb2891b6c63 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QList: iterate forward in operator==Marc Mutz2014-10-011-5/+4
| | | | | | | | | | | | After much head-scratching, we found no reason for the backwards iteration. Indeed, forward iteration should be slightly faster than backwards, because it operates in the direction in which cache-lines are filled, usually. This is in preparation of using std algorithms instead of hand-written loops. It avoids having to use std::reverse_iterator. Change-Id: I31be6ad2b6d78ccce7e8a8f8f8b9e0af62f7471b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* EGLFS: Fix plugin destructionLouai Al-Khanji2014-10-014-6/+18
| | | | | | | | | | | | | | | | | | | The proper init/destruction order is as follows: QEglFsHooks::platformInit() eglInitialize() eglTerminate() QEglFsHooks::platformDestroy() Prior to this patch platformDestroy() was called before eglTerminate(), leading to a crash on some platforms. Additionally we need to destroy the native windows before deleting the screen, otherwise the QEglFSWindow destructor ends up calling into the deallocated screen. Change-Id: Id08ccbac9bb44a778bcf1a55f73c0057e0a7b3af Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Add debug output for QGestureEvent and QGesture classes.Friedemann Kleint2014-09-303-3/+83
| | | | | | | Task-number: QTBUG-15768 Task-number: QTBUG-40461 Change-Id: I3fe29f71ddf39c76efaca02d2b70494378d147dc Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* QObject: Actually check unnormalized method signatureDaniel Teske2014-09-301-1/+1
| | | | | | | | | | This was broken in f95181c7bb340744a0ce172e8c5a8fcdc2543297, and has been broken in all released versions of Qt5. Change-Id: Ia75ab602be4904cc6ab19471f909716538af8746 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Merge remote-tracking branch 'origin/5.4' into devOswald Buddenhagen2014-09-294755-92373/+60797
|\ | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qbytearray.cpp src/gui/image/qimage.cpp src/gui/image/qppmhandler.cpp src/gui/kernel/qguiapplication.cpp src/gui/painting/qpaintengine_raster.cpp Change-Id: I7c1a8e7ebdfd7f7ae767fdb932823498a7660765
| * Windows: Fix call of ToUnicodeOliver Wolff2014-09-291-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | ToUnicode sometimes gives wrong results if it is used with a keyboard buffer containing the ctrl modifier. Special cases containing alt and control might trigger the third assignment of a key, but if no alt modifier is used for the key event, we temporarily disable the control modifier in order to obtain the character with ToUnicode. Task-number: QTBUG-35734 Change-Id: Ifd88c640541b42fa65ee1dc9b55af3386714b0b8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| * Fix font enumeration, with the same family name, on Windows.Vladimir2014-09-282-4/+68
| | | | | | | | | | | | | | | | | | | | | | | | Function EnumFontFamiliesEx with parameters (lfCharSet = DEFAULT_CHARSET, lfFaceName = '\0') enumerates only first installed font from many with same family name. This patch calls EnumFontFamiliesEx twice: 1. Without family name to enumerate families; 2. With family name to enumerate fonts with same family. Task-number: QTBUG-40828 Change-Id: Ic36a24a9e70f735a7324c05fe4b70f7c7e5710d0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
| * QSslCertificate: fold a string literal correctlyMarc Mutz2014-09-281-2/+2
| | | | | | | | | | Change-Id: I8f812002302d3b74af252fa66e9e13154bbf80e1 Reviewed-by: Andrew Knight <andrew.knight@digia.com>
| * Don't check for EINTR after calling QT_READ / QT_WRITEThiago Macieira2014-09-281-4/+2
| | | | | | | | | | | | | | | | | | | | On Unix, those functions are already #define'd to qt_safe_read and qt_safe_write, which do the necessary EINTR handling. On Windows, EINTR cannot happen. Change-Id: I50c46472c04bd90a0bac51c725cc86311ae905c8 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * Fix handling of IPv6 addresses in QUrl::fromUserInputThiago Macieira2014-09-282-1/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IPv6 addresses can start with ":", for which QDir::isAbsolute() would always return true (QResourceFileEngine::isRelativePath() returns constant false) and would trip the calculation for local files. Similarly, IPv6 addresses can start with strings that look like Windows drives: "a:", "b:", "c:", "d:", "e:" and "f:" (though not today, as those address blocks are unassigned). Since a valid IPv6 address will definitely require at least one more colon and Windows file names cannot contain ':', there's no ambiguity: a valid IPv6 address is never a valid file on Windows. This resolves the ambiguity in favor of IPv6 for Unix filenames (which can contain a colon) and in case of an URL containing scheme, relative path and no authority ("dead:beef::" for example could have been parsed as scheme() == "dead" and path() == "beef::"). Task-number: QTBUG-41089 Change-Id: Id9119af1acf8a75a786519af3b48b4ca3dbf3719 Reviewed-by: David Faure <david.faure@kdab.com>
| * Android: Add function to change the stacking order in the layout.Christian Strømme2014-09-267-2/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | This change enables us to reorder the stacking order used by the layout. This is necessary if we want to influence the drawing order. Lowering or raising views are done separately for native views and Qt surface views, that is, the two different view "types" are moved relative to other views of the same type and Native views are always placed on top. Change-Id: I01cbb88f8efee08877b5972cf330fd25266a2aa9 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
| * Android: Add findClass() function to the QJNIEnvironmentPrivate class.Christian Strømme2014-09-266-76/+110
| | | | | | | | | | | | | | | | | | The static QJNIEnvironmentPrivate::findClass() function exposes the cache and the class finding code in qjni. Change-Id: I42043dc993cf9cace042faf763f2a647ba79d97f Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com> Reviewed-by: BogDan Vatra <bogdan@kde.org>
| * Android: Improve the foreign-window implementationChristian Strømme2014-09-265-34/+99
| | | | | | | | | | | | | | | | | | | | | | | | Adds: - Improved geometry calculations (e.g, inside a parent) - Change visibility - proper stacking order. Native views now reserve the top of the stack to ensure that they stay visible. - React to application state changes. Change-Id: I35de0396937fff37ffcd272c9a7d8e9873a91dfb Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
| * create_cmake: Make the warning actually useful.Robin Burchell2014-09-261-1/+3
| | | | | | | | | | | | | | | | Giving instructions, rather than forcing one to grep qtbase for the error message is always a good thing. Change-Id: I0f5abed341368cdf817dc0110c2c250b377a30de Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * make -force-debug-info work for objective COswald Buddenhagen2014-09-262-0/+2
| | | | | | | | | | | | Task-number: QTBUG-35776 Change-Id: Idb96108963e9330dd62c7878457c30bd74dc79a0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * direct2d: Optimize dashed line drawingAndrew Knight2014-09-261-3/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This introduces a combined brush/dash pattern which can be used to perform faster dashed straight-line drawing. The dash pattern is prerendered to a tiled bitmap brush, resulting in a significant speedup for lines with many elements. As the result of non-rectilinear lines may lose quality compared to the native dashed renderer, the slow/high quality codepath can be activated by setting the QPainter::HighQualityAntialiasing render hint. Task-number: QTBUG-40604 Change-Id: I771e9a81c042b4d8b6891dc9280932696e5a0694 Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Louai Al-Khanji <louai.al-khanji@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| * direct2d: Fix composition mode supportLouai Al-Khanji2014-09-265-22/+188
| | | | | | | | | | | | | | | | | | | | | | | | When the composition mode changes to a mode which is not supported by Direct2D's primitive blending, the rendering follows the emulated (slow) code path using rasterFill(). This allows the direct2d paint engine to handle all composition modes supported by QImage. Task-number: QTBUG-40602 Change-Id: I0ac0b5c89aab2483cb2ef7768d6dec8e16913249 Done-with: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Andrew Knight <andrew.knight@digia.com>
| * update bundled sqlite to 3.8.6.0Mark Brand2014-09-263-1181/+2440
| | | | | | | | | | | | | | | | | | | | The "Fixed CE build of sqlite3" patch is *updated* in this change. Since sqlite 3.8.6, SQLITE_OS_WINCE isn't defined early enough so we have to check _WIN32_WCE directly. (ea70ec8711af45128d63634a01dfc4c1a51ac331) Change-Id: I63ee5163fb915274c9780c169e1f8673755bba47 Reviewed-by: Andy Shaw <andy.shaw@digia.com>
| * Widgets: remove references to QStyleOptionFrameV<n>Marc Mutz2014-09-268-24/+22
| | | | | | | | | | | | | | They're gone since Qt 5.0 and only exist as typedefs for QStyleOptionFrame. Change-Id: Icff45cbd3a47db8618a7f7a80f7252651969237c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| * tst_QSslError: cleanup unused functionsMarc Mutz2014-09-261-29/+0
| | | | | | | | | | Change-Id: I4db7399e533805e1dddaa76d5a609d2006a97da6 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
| * Add a way for qmake + configure to link dynamically to the CRTAndrew Knight2014-09-252-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | The static CRT, libcpmt.lib, is not shipped with Visual Studio Express for Windows (unlike VS Express for Windows Desktop or Professional versions), causing configure and qmake to fail linking if this is the only VS installed. By removing -MT (which is on by default) and adding $(CFLAGS_CRT) to the compiler line, -MD can be added to the compiler flags via the environment, providing a workaround for the issue. Change-Id: I5613346d60a3a1889c121f04d53b09fbb147fc02 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| * Clean up QImage::Format switchesAllan Sandfeld Jensen2014-09-254-78/+31
| | | | | | | | | | | | | | | | | | | | Changes some switches on QImage::Format that needed to be updated whenever a new image format was added. Two were changed to matching formats supported by BMP and PPM instead of what they don't support, and two were changed to now use QPixelFormat values. Change-Id: I5a14f1d7b7cc0451c68e4d6ab2361a5bd8dc8915 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
| * Fix smooth scaling of large QImagesAlex Blasche2014-09-251-12/+13
| | | | | | | | | | | | Task-number: QTBUG-13448 Change-Id: Ie76f5b5deefabeae93ab17eb866aea303692f5ac Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Doc: Restructure "Signal & Slots" articleSze Howe Koh2014-09-251-70/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Put sections with similar content together: - Put "A Small Example" next to "A Real Example". - Put "Signals and Slots", "Signals", and "Slots" together. Altogether, these 3 sections contain lots of repeated content and should be consolidated in a future commit. This patch only moves content around without adding, removing, or modifying content. Change-Id: Ic6bf6a8b51f4785a8bbe6d230c2934f2c952104d Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
| * Doc: Remove irrelevant sections from "Signals & Slots"Sze Howe Koh2014-09-252-50/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - This article is not the right place to describe the low-level mechanisms of moc and qmake, or to discuss QMetaObject features that are unrelated to signals and slots. - Most users never need to run moc directly. - The current content only mentions qmake for moc automation, but CMake, QBS, and the Visual Studio Add-In can also do that. In light of the above 3 points, let's simply link to the "Meta-Object System" article for those who are interested in the behind-the-scenes details. Most of the content deleted by this patch are already discussed in detail in the articles "The Meta-Object System" and "Using the Meta- Object Compiler (moc)" (the former links to the latter). The exception is Snippet 5 -- this is deleted without replacement because qobject_cast() is a much safer alternative to QMetaObject::inherits() with static_cast(), so we should encourage the former. Change-Id: I638c888cedfcdfb818747edeb806213ebd54dfb6 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
| * QIOSInputContext: animate screen from current transformationRichard Moe Gustavsen2014-09-251-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we assign a fromValue to the scroll animation directly, the UIViewAnimationOptionBeginFromCurrentState flag does not have any effect. So we need to set the fromValue based on the current presentation state explicit. The reason why we need to ensure that we scroll from the current state is to avoid screen 'jumping' as a result of the scroll function being called many times during the same event loop cycle during after a focus change (focus object/window change, cursor rect change etc). Change-Id: Id98f43d60ec5d028b113361dab953569accf9b3f Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
| * QIOSInputContext: change keyboard rect when focus window changesRichard Moe Gustavsen2014-09-251-0/+1
| | | | | | | | | | | | | | | | Since keyboard rect should be in window coordinates, it needs to change when focus window changes. Change-Id: I052aa5cadf182841d7c4eb114ebd1ea5317ff39c Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
| * QIOSInputContext: report keyboard rect relative to focus windowRichard Moe Gustavsen2014-09-251-31/+27
| | | | | | | | | | | | | | | | After changes to how we scroll the screen, we need to change the implementation for calculating the keyboard rect as well. Change-Id: I7f468d55f6e29604b9c276deccd9926e071552a9 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
| * Refactored qt_normalizePathSegmentsOliver Wolff2014-09-252-94/+236
| | | | | | | | | | | | | | | | | | | | | | There were several use cases that did not work with the old implementation and it was not really readable. Task-number: QTBUG-3472 Task-number: QTBUG-40067 Task-number: QTBUG-23892 Change-Id: I1e038792dc54cdc6f8d9bb59d80b11dd3c56fac6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * Balloon tip must follow systemtray iconAllan Sandfeld Jensen2014-09-254-4/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the a message notification is created at the same time as the system tray icon is embedded it may start at a wrong location, since the icon location it bases its own location is not yet final. This patch adds code to update the balloon tip location when the system tray icon is moved or resized. The bug and fix can be tested by the systray example by disabling the icon and letting show message trigger both showing it and the message. Change-Id: Ie1dc10489ad420e581e32afeb757c236fb5129ab Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>