summaryrefslogtreecommitdiffstats
path: root/src/widgets/widgets
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-12-294-11/+23
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qbytearray.cpp src/gui/kernel/qplatformsystemtrayicon.cpp src/gui/kernel/qplatformsystemtrayicon.h src/plugins/platforms/xcb/xcb-plugin.pro Change-Id: I00355d3908b678af8a61c38f9e814a63df808c79
| * QScrollBar: emit valueChanged once even if a slot takes too much timePavel Krebs2014-12-191-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | Put also processing of control activation into initial timer check for possibly pending mouse release event. [ChangeLog][QtWidgets][QScrollBar] Fixed a bug where the valueChanged() signal was emitted twice if a connected slot took too much time. Task-number: QTBUG-42871 Change-Id: I7bad5279ef84463a033b55256d241d4445374081 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
| * Don't clear lineedit in non normal echo mode when validation is invalidAndy Shaw2014-12-192-7/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a regression introduced with c09e9f71173a698670d6c728291ee24f53d50800 which caused the lineedit to clear the whole text when an invalid character was entered into a lineedit with an echo mode that was not Normal and a validator was set. Now if undo() is called directly then it will still clear the text as it is considered to be called as a user. Whereas the validation will take care of the invalid entry by using internalUndo() as before which avoids the clearing of the entire text. Task-number: QTBUG-29318 Change-Id: I5ff5777a75ab864de2217441b5f518f50646bd8f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
| * doc: Fix mistake in QProgressBar::orientationAlejandro Exojo2014-12-191-1/+1
| | | | | | | | | | | | | | | | Reported on qt-interest: should say "true" instead of "false". Change-Id: Ic9d2608631679896179ae8601790847163a9224c Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
* | Remove Q_NO_USING_KEYWORDThiago Macieira2014-12-208-53/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's a lot of code now requiring it. Any compiler that doesn't support the keyword is too old for Qt now. The last time anyone asked about this macro was for QTBUG-27393 and we don't know which compiler that was. As a necessity, this patch contains a reversal of a0c3a57aed5cde37017733e7cf5e41cc6a1174aa [ChangeLog][Compiler Specific Changes] Qt 5.5 now unconditionally uses the "using" keyword. Compilers that do not support this keyword are deprecated and will not be able to build Qt. Previous versions of Qt may or may not compile, as no testing was done to ensure it worked. Change-Id: Ief042f34aba555a095d1f342a0ee7ee9feadf42d Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
* | Make setting twice the very same model on QComboBox a no-opGiuseppe D'Angelo2014-12-201-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Basically, introduce a small check for this corner-case situation. Setting a model doesn't just store a pointer, but also resets the current index, changes the line edit completion model, and so on, and seems silly to trigger changes in such cases. [ChangeLog][QtWidgets][QComboBox] A QComboBox does not reset itself any more when setting the same model more than once. Change-Id: If028b36cdfaa5552c156dd900e123ca9a04d4e3d Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | Merge remote-tracking branch 'origin/5.4' into devSimon Hausmann2014-12-181-0/+1
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.h src/platformsupport/platformcompositor/qopenglcompositor.cpp src/platformsupport/platformcompositor/qopenglcompositorbackingstore.cpp tests/auto/gui/kernel/qwindow/tst_qwindow.cpp Change-Id: I5422868500be695584a496dbbbc719d146bc572d
| * Propagate the source of mouse eventsAlexander Volkov2014-12-111-0/+1
| | | | | | | | | | | | | | | | | | Set the source for mouse events which were caused by other mouse events. Change-Id: Ifca1648883ef2b94bb317ed9340759475d350146 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devSimon Hausmann2014-12-106-17/+9
|\| | | | | | | | | | | | | | | Conflicts: doc/global/template/style/online.css mkspecs/android-g++/qmake.conf Change-Id: Ib39ea7bd42f5ae12e82a3bc59a66787a16bdfc61
| * Android: Make cursor keys work againPaul Olav Tvete2014-12-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | On Android, we disable mouse selection, since that does not work well with touch screens. In change a03a69efb9ed89cd4a90878eda20, we accidentally disabled keyboard selection as well. Unfortunately, disabling keyboard selection will disable all keyboard movement. This change re-enables TextSelectableByKeyboard. Task-number: QTBUG-42991 Change-Id: Ie63ed3d88a0abcb72f04e0ec60a5b91c0b14a47e Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * Update window flags from QToolBarPrivate::endDrag().Friedemann Kleint2014-12-081-2/+0
| | | | | | | | | | | | | | | | | | | | | | Activate previously #ifdef'ed code which cleared the Qt::X11BypassWindowManager hint. With the hint set, the tool bar stays on top and does not get deactivated along with the application by the WM. Task-number: QTBUG-41189 Change-Id: I6f3f334860e46dd4867f5942f15e5a090340f2d7 Reviewed-by: Andy Shaw <andy.shaw@digia.com>
| * QDockWidget: Prevent repetitive unplugging of floating dock widgets.Friedemann Kleint2014-12-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When calling QDockWidget::setTitleBarWidget() from within signal QDockWidget::topLevelChanged(), a nested call of QDockWidgetPrivate::setWindowState(unplug=true) is triggered, leaving it with Qt::X11BypassWindowManagerHint set and thus invisible/off screen. Force the unplug parameter to false if the widget is already in floating state. Task-number: QTBUG-42818 Task-number: QTBUG-38964 Change-Id: I6aff61e4ee1501f5db281566b66db66c19351410 Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
| * Revert "QWidgetTextControl: Suppress drag selection for OS-synthesized mouse ↵Tor Arne Vestbø2014-12-041-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | events." This reverts commit cf0d96f4c8584a7eb9eeca304932f6ea88894b27. It broke text selection on iOS and was never tested on that platform. Task-number: QTBUG-43101 Change-Id: I9f224a3838a1f741bc9a9c24f16923ef2018ddf3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
| * QMenuBar: fix extra indent on the right with a TopLeftCorner widget.Friedemann Kleint2014-12-041-3/+2
| | | | | | | | | | | | | | | | | | | | | | When setting a left corner widget on a QMenuBar, the first action rectangle is offset by its width and thus the width should not be added to the size hint. Use QSize::expandedTo() instead. Task-number: QTBUG-36010 Change-Id: I660e3facbd0aeb5fb84fac8923db3e0c7998309d Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
| * QMainWindow: Observe left contents margin when positioning status bar.Friedemann Kleint2014-12-021-1/+1
| | | | | | | | | | | | Task-number: QTBUG-38152 Change-Id: I4c762a113dbfe47472d1087aa34c0e327083ee16 Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
| * Merge remote-tracking branch 'origin/5.4.0' into 5.4Frederik Gladhorn2014-11-271-2/+2
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: dist/changes-5.4.0 7231e1fbe24102f2a93b34dfa70e3dca884440d2 went into 5.4 instead of the 5.4.0 branch, thus the conflict. Change-Id: I70b8597ab52506490dcaf700427183950d42cbd1
| | * iOS, QComboBox: don't apply special case for OS X on iOSRichard Moe Gustavsen2014-11-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The special-case that was added for OS X before the iOS port came to be stops the virtual keyboard from working correctly. Task-number: QTBUG-41613 Change-Id: I0b8c83e98584389ea4a8aada16a1ee1a64300400 Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* | | QAbstractScrollArea: add a getter for the marginsGiuseppe D'Angelo2014-12-032-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Strange API asymmetry that needed to be fixed. Task-number: QTBUG-8315 [ChangeLog][QtWidgets][QAbstractScrollArea] A getter for the viewport margins has been added. Change-Id: Ie1460b572206922031fc4effc2aa8261e25088b5 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | | Add Q_DECL_OVERRIDE in the src subdirectoryOlivier Goffart2014-12-0369-523/+523
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Done automatically with clang-modernize on linux (But does not add Q_DECL_OVERRIDE to the function that are marked as inline because it a compilation error with MSVC2010) Change-Id: I2196ee26e3e6fe20816834ecea5ea389eeab3171 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-272-1/+6
|\| | | | | | | | | | | Change-Id: Id20053d261b4fbbcc0ac8ba49dd3ef2253fa4b95
| * | fix the build with animation omittedShawn Rutledge2014-11-271-0/+2
| | | | | | | | | | | | | | | | | | | | | configure -no-feature-STATEMACHINE -no-feature-ANIMATION Change-Id: Idb89c0bae8d699e76916317f83490c6c94c7d8b4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
| * | QLineEdit: take text margins into account in minimumSizeHint().David Faure2014-11-271-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sizeHint() did it exactly like this, but minimumSizeHint() didn't, which made it too small. Didn't affect the actual size in most cases since the vertical size policy is fixed, so sizeHint() is called instead. But when writing a subclass, if one re-implements sizeHint() by calling the QLineEdit's minimumSizeHint(), it would then be wrong, when text margins are used. Change-Id: I29ae8dcab00842b3b5ca534cdb250efc0b496f45 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-2415-59/+79
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qiodevice.cpp src/plugins/bearer/linux_common/qofonoservice_linux.cpp src/plugins/bearer/linux_common/qofonoservice_linux_p.h src/plugins/platforms/android/qandroidplatformtheme.cpp src/tools/bootstrap/bootstrap.pro src/widgets/styles/qmacstyle_mac.mm Change-Id: Ia02aab6c4598ce74e9c30bb4666d5e2ef000f99b
| * | QWidgetTextControl: Suppress drag selection for OS-synthesized mouse events.Friedemann Kleint2014-11-201-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a convenience function to QApplicationPrivate returning the source of mouse events to be able to detect synthesized mouse events. Change-Id: I09f82ed917586cd3de8b4146fc6638d19d428163 Task-number: QTBUG-40461 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| * | Text editors: Prevent autoscroll timer triggering from synth mouse eventsFriedemann Kleint2014-11-202-12/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The autoscrolling interferes with scrolling pan gestures and causes the scroll direction to be reversed when moving outside the window. Task-number: QTBUG-40461 Change-Id: I30ef848a346418929540c23730ab92f44e4565e2 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| * | Fix rubberband position for tabbed mdi windowsPaul Olav Tvete2014-11-192-9/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Place the rubberband over the tabs instead of where the hidden subwindows happen to be. [ChangeLog][QtWidgets][QMdiArea] Fix rubberband position for tabbed mdi windows Task-number: QTBUG-42612 Change-Id: I41e81ab8b99ab9e0fa533fd4ed1b2a8141d19753 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
| * | Document unified title and toolbar limitations.Morten Johan Sørvig2014-11-111-0/+7
| |/ | | | | | | | | | | Change-Id: Ib64a4586c186001730895e6771b01bb213d53b9f Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| * Compile fix for QT_NO_DOCKWIDGET in QtWidgetsJulien Brianceau2014-11-081-1/+1
| | | | | | | | | | Change-Id: I4567e4d0e5738c1de74661a325895f9eaa1d06c4 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * QMenu check for null result from QPlatformMenu::menuItemForTagDyami Caliri2014-11-051-2/+4
| | | | | | | | | | | | | | | | | | QMenu needs to check result of QPlatformMenu::menuItemForTag to avoid a crash dereferencing a null pointer. Task-number: QTBUG-42327 Change-Id: Ie54a94caec7a5d756c459741df182fbe4e38bec0 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
| * Cleanup: Remove some obsolete code supporting a pre-4.3 formatLars Knoll2014-10-314-32/+16
| | | | | | | | | | | | | | | | Loading a dock window state saved by a Qt 4.2 app is not something we need to support anymore. Change-Id: I9ee6e2c742b31114081852e7236cfc8696b9b270 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
| * Merge remote-tracking branch 'origin/5.3' into 5.4Oswald Buddenhagen2014-10-284-2/+11
| |\ | | | | | | | | | Change-Id: I224e44a9df314b9a99d33148b6cf400fcbc9de8e
| | * Compile fix for QT_NO_IM in QtWidgetsSteffen Imhof2014-10-283-1/+10
| | | | | | | | | | | | | | | | | | | | | Added some #ifdef guards around usages of composeMode(). Change-Id: If2f2d3cae21b270933b38ea67dcc885f5871785f Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| | * Move animation-related header out of QT_NO_IM #ifndef.Steffen Imhof2014-10-281-1/+1
| | | | | | | | | | | | | | | Change-Id: I7f0bfed4ff9a608575cf6795016b2fa134fd273f Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | | QFrame: introduce initStyleOption (and use it)Giuseppe D'Angelo2014-11-042-31/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | For some reason lost in time QFrame was missing that method. Of course that led to duplicated code and to subtle sizing miscalculations. Task-number: QTBUG-29330 Change-Id: I81163f5def6661e01cb2ecc49c1169449a3e3758 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | | Add QKeySequence::BackspaceMorten Johan Sørvig2014-10-311-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Handle it in QWidgetTextControl. Add Meta(ctrl) + H key sequence binding on Mac. Task-number: QTBUG-32837 Change-Id: Ib1cbb2ce2e20350b4d8c72bd320dff27c1467f2b Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
* | | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-275-11/+40
|\| | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/text/qfontdatabase.cpp Change-Id: I6ac1f55faa22b8e7b591386fb67f0333d0ea443d
| * | Android: Keyboard doesn't hide from done buttonSamuel Nevala2014-10-251-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QLineEdit commits and hides QInputMethod on enter key press. When Qt::ImhMultiLine input method hint is set, virtual keyboard is not hidden. Task-number: QTBUG-37850 Change-Id: I018351caa18bd2116665771e5f024a57182a01b9 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
| * | Correctly update QComboBox appearance on editable changeEskil Abrahamsen Blomfeldt2014-10-242-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The updateDelegate() function checks isEditable() which in turn checks if d->lineEdit != 0, so we need to make the call after the lineEdit has actually been set/unset, otherwise the change to the delegate will not come until the next time you update the delegate. [ChangeLog][QComboBox] Fixed updating appearance of popup menu when changing the editable state of the combo box. Change-Id: Ib32f36cabd53c2c30d6256484a1eae131419960a Task-number: QTBUG-33537 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
| * | QMainWindow: respect the maximum size of the central widgetPaul Olav Tvete2014-10-241-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure the dock widgets get the available space when the central widget cannot expand any more. [ChangeLog][QtWidgets][QMainWindow] Dock widgets will now be resized properly when the central widget has a fixed size. Task-number: QTBUG-40410 Change-Id: Id06c07b79aa3102aa41212fa2c621f5fa426fe02 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
| * | Respect contents margins when calculating the size hintLars Knoll2014-10-221-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this part of the calendar widget get cut off when put in a layout and the contentsMargins are non zero. Task-number: QTBUG-40352 Change-Id: I9ce90476c59c270d92e876a5dc81ea8ce325848c Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
| * | Fix height of combo popup when the list view has non-zero spacing.Friedemann Kleint2014-10-222-5/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QListView::spacing() is the space around the item (layout margin), so the effective spacing is twice as big. This differs conceptionally from QTableView, which has a spacing of 1 and a line on top/bottom. Split up QComboBoxPrivateContainer::spacing() into functions return spacing and top/bottom margins to reflect this. Task-number: QTBUG-37865 Change-Id: I1ff812e7856e00a53f1119ef3304956cbb7cbfca Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* | | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-204-1/+9
|\| | | | | | | | | | | Change-Id: If7e51514ed6832750e3ad967e4d322ccf920d2bb
| * | Prevent 'recursive' update events when calling QToolButton::setMenu()Tor Arne Vestbø2014-10-151-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit bb3d2ca9f18 (QToolButton: properly reset the size hint when a menu is set on it) didn't take the case of re-setting the same menu into account, and the result was that we would unconditionally cause an update, resulting in the following backtrace again and again, as each posted update event was processed by the event loop: frame #0: QToolButton::setMenu(this=0x7af59500, menu=0x00000000) frame #1: QToolBarLayout::setUsePopupMenu(this=0x7ae65a30, set=false) frame #2: QToolBarLayout::checkUsePopupMenu(this=0x7ae65a30) frame #3: QToolBarAreaLayoutLine::fitLayout(this=0x78e5f870) frame #4: QToolBarAreaLayoutInfo::fitLayout(this=0x790be278) ... Besides consuming needless CPU time this also uncovered a case on iOS where Qt would starve native events and animations from being processed, preventing eg. rotation animations from running. Change-Id: Ib6bd4ba21d8e84ca73fb0a75b598016dbd9ae0fd Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
| * | Fix QOpenGLWidget on Cocoa when used as viewportLaszlo Agocs2014-10-141-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Having a QOpenGLWidget as a graphics view viewport was not functioning on OS X: it was showing incomplete content due to accessing the texture attached to the framebuffer object before the rendering is complete. On the normal path, when rendering is done via paintGL(), the flush was there. When used as a viewport however, this path is not used. The missing flush is now added for the other case too. For performance reasons, we will not flush on every paint engine end(). Instead, the flush is deferred until composition starts. QGLWidget also featured a weird on-by-default autoFillBackground concept. To maintain compatibility with apps that used QGLWidget as the viewport for QGraphicsView, we will now do the same for QOpenGLWidget, but only when it is used as a viewport. For regular QOpenGLWidgets autoFillBackground defaults to false, like for any other widget. The docs are extended with a small section about differences between QGLWidget and QOpenGLWidget. Task-number: QTBUG-41046 Change-Id: I42c2033fdd2ef5815783fd640fe11373761061e0 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
| * | osx: let qcombobox specify target rect when showing popupRichard Moe Gustavsen2014-10-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Let qcombobox use the new API for showing a native popup menu (introduced with 1a47595). Change-Id: Id08ef9e59fdd47b2c1df84fa72e3a2c69fe187b0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| * | QMenu: ensure that a menu item's icon can be removed dynamicallyShawn Rutledge2014-10-101-0/+2
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-41348 Change-Id: Iad3b7f000ebce51530f5e196868aefffad2e1eab Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-095-7/+8
|\| | | | | | | | | | | Change-Id: I05fcd8dc66d9ad0dc76bb7f5bae05c9876bfba14
| * | Removing a few unneeded "? true : false"Alessandro Portale2014-10-093-4/+4
| | | | | | | | | | | | | | | | | | | | | Change-Id: Ib13f0ddd65fe78f5559f343f2fc30756b1d3ef76 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * | Merge remote-tracking branch 'origin/5.3' into 5.4Oswald Buddenhagen2014-10-061-1/+1
| |\| | | | | | | | | | Change-Id: I132bb6cce68e9f8413200f7ee75586bd1cada38c
| | * QPlainTextEdit: Fix crash on complex undo w/full width selectionEskil Abrahamsen Blomfeldt2014-09-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Say you have a document of two blocks of text. When you select a block of text in the document and then replace this with a new empty block (by pressing enter) and then subsequently undo this action, the following three steps are performed as a chain of undo commands: 1. Remove the empty block at the beginning of the document 2. Insert a new empty block at the beginning of the document 3. Insert the text back into the first block Since a block is removed and inserted in the same go, both blocks require a relayout, since the accumulated change spans both blocks. However, in QPlainTextDocumentLayout we would only look at the max of either removed chars or added chars. This would match the text length of the first block at this point, so we would only relayout that block. However, since we are also removing characters, the actual accumulated change to the document is larger. We should relayout any block touched by the sum of the added and removed character counts. Missing this, the paint event would later query block.layout()->lineForTextPosition(0) which would give an invalid line despite the fact that the block.length() > 0. This caused a crash in the paint event when the full width selection was turned on. Note that the logic here was only recently updated to include the removed characters at all in the logic, by the SHA1: 2983cb9531d47e5826540ca79e3066a8ed0db30c. [ChangeLog][QPlainTextEdit] Fixed a crash when using full width selections and issuing a complex undo command chain which removes and inserts an empty block in one go. Task-number: QTBUG-36415 Change-Id: Iafe8a69e455e0c713a48714f10f0cace69c84f51 Reviewed-by: Axel Rasmussen <axel.rasmussen1@gmail.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>