summaryrefslogtreecommitdiffstats
path: root/src/widgets
Commit message (Collapse)AuthorAgeFilesLines
* QWidgetTextControl: respect run-time changes to cursorFlashTimeRichard Moe Gustavsen2016-04-252-6/+22
| | | | | | | | | | | cursorFlashTime will now change dynamically from QPA while platform controlled text selection (on mobile) is ongoing. This patch will therefore update QWidgetTextControl so that it listens to the cursorFlashTimeChanged signal and changes the blinking rate when triggered. Change-Id: I89bdfaab0e93d1d055baba6b132a7911d2ae84f6 Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* Darwin: set SH_BlinkCursorWhenTextSelected to false on DarwinRichard Moe Gustavsen2016-04-251-0/+4
| | | | | | | | | | | | | | When text is selected on e.g iOS or OS X, the cursor should not blink (or be visible), regardless of style. Note that SH_BlinkCursorWhenTextSelected is actually implemented to mean "hide cursor when text selected" in e.g QWidgetTextControl. If this is a bug or not is hard to say, but it is anyway the desired behavior on Apple platforms. Change-Id: I541dabbe1945c266107ba39e3adb006bec0258bf Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* QWidgetLineControl: respect run-time changes to cursorFlashTimeRichard Moe Gustavsen2016-04-253-28/+45
| | | | | | | | | | | | | | | | | | | | | | | | | cursorFlashTime will now change dynamically from QPA while platform controlled text selection (on mobile) is ongoing. This patch will therefore update QWidgetLineControl so that it listens to the cursorFlashTimeChanged signal and changes the blinking rate when triggered. The previous code had a function setBlinkingRate, which is now changed to setBlinkingCursorEnabled (like in QWidgetTextControl). This is because all callers of the function did either pass "QApplication::cursorFlashTime" or "0", which basically means enable or disable blinking. This moves the control of the blinking rate fully to QWidgetLineControl, which simplifies the code a bit, especially when cursorFlashTime can change. Note that when setting a blink period to 0, it means "show the cursor without blinking". AFAICS, the current implementation did not guarantee that. This is now made more explicit in the code. If hiding the cursor is needed, a separate function "setCursorVisible" is already available for controlling that. Change-Id: I7d39882de192a23e6e7ba370749892c7702c3d3b Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* Android: don't iterate over .keys()Marc Mutz2016-04-251-2/+3
| | | | | | | | | ... iterate over the container itself instead. Avoids temporary QList creation as well as the lookup cost when actually calling value(key). Change-Id: I63a11e6f8f19919145ea142309ddbacd99c3bfc3 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Android: eradicate Q_FOREACH loops [needing qAsConst()]Marc Mutz2016-04-251-3/+3
| | | | | | | | | ... by replacing them with C++11 range-for loops. To avoid detaches of these mutable Qt containers, wrap the container in qAsConst(). Change-Id: I9158c507f9249a7322b11c982bfcab1e6ed4a38a Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Android: eradicate Q_FOREACH loops [already const]Marc Mutz2016-04-251-9/+9
| | | | | | | | | ... (or trivially marked const) local variables, parameters, or data members with trivial loop bodies, by replacing them with C++11 range-for loops. Change-Id: I25e9e2148abd7676305ebd18754dc647f217e48b Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QtWidgets: Fix qdoc warnings related to inputMethodQuery().Friedemann Kleint2016-04-212-1/+5
| | | | | | | | | | Mark the overloads taking an additional QVariant as \internal as (cf QTextEdit) and the overridden functions as \reimp. Amends change ab67a5b7b631709aae779c767a903b8982fa7f8e, fixes warnings: qtbase/src/widgets/widgets/qlineedit.cpp:1755: warning: Cannot find base function for '\reimp' in inputMethodQuery() / Change-Id: I9949bf3850ab4200ee500cbe33a44faacecc30b0 Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* QGuiApplication: don't force lower case styleOverrideJ-P Nurmi2016-04-151-1/+1
| | | | | | | | | QtQuick Controls 2.0 is going to have capitalized style names (Material, Universal, ...) so move the toLower() call to QApplication where widgets make use of styleOverride. Change-Id: I5a8c5ee38517690728f5f8f01024d4e692c81668 Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
* QComboBox: Implement support for IM queries with QVariant argumentRichard Moe Gustavsen2016-04-142-0/+9
| | | | | | Change-Id: If59c36fa1b18a0d5562047dd06758fbcdbf63bc7 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* QTextEdit: update cursor and anchor rect upon scrollingRichard Moe Gustavsen2016-04-132-0/+2
| | | | | | | | | | Both cursor and anchor rect will change locally when scrolling. So inform IM about it, so that any overlay done from e.g the platform plugins for dealing with text selection etc. can respond to the change. Change-Id: I4e839e691a20ad07d2aa062e028d22cf5f31b7fa Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* QWidgetTextControl: implement support for pos argument to ImAbsolutePositionRichard Moe Gustavsen2016-04-131-4/+10
| | | | | | | | Implement support in QWidgetTextControl for the new API that lets you specify a position argument when querying for Qt::ImCursorPosition. Change-Id: I123e2522d33e783e6f3467b81be872e3620d6d15 Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* QTextEdit: translate IM argument before passing it on to QWidgetTextControlRichard Moe Gustavsen2016-04-132-2/+38
| | | | | | | | | | Since we now have the possibility of providing an extra position argument when querying for Qt::ImCursorPosition, we need to ensure that we translate it from scroll view to local coordinates before passing it on to QWidgetTextControl. Change-Id: I4383ae3ea984b6140d8e9b4198047aec8b7e100b Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* QLineEdit: add support for Qt::ImAnchorRectangleRichard Moe Gustavsen2016-04-133-6/+31
| | | | | Change-Id: I52e15aa40af5ff77306c43209af87a3e727d2bdb Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* QLineEdit: add support for ImCursorPosition with position argumentRichard Moe Gustavsen2016-04-132-3/+12
| | | | | | | | | | | Follow up f8dbed12, and implement support for IM queries that can take an extra QVariant argument. We use this to implement support for ImCursorPosition with a QPointF argument that specifies that we should return the text position under the given point rather than the current cursor pos (0bb645b). Change-Id: I03ae7af698241f454d35dec84f248ecd5bb6ad51 Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* QWidgetTextControl: implement support for Qt::ImAnchorRectangleRichard Moe Gustavsen2016-04-131-0/+2
| | | | | | | | Implement support in QWidgetTextControl for the new enum Qt::ImAnchorRectangle. Change-Id: I7978915454a6dd93b2f491ed15619016cda85c7e Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* Merge "Merge remote-tracking branch 'origin/5.6' into 5.7" into refs/staging/5.7Liang Qi2016-04-135-26/+24
|\
| * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-135-26/+24
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: config.tests/unix/compile.test src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java src/testlib/qtestcase.cpp src/testlib/qtestcase.qdoc Change-Id: Ied3c471dbc9a076c8de33d673bd557e88575609d
| | * QTreeView: re-use cached values in rowsInserted()Marc Mutz2016-04-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The parentRowCount and the delta were already calculated a few lines up, so don't recalculate them here. This improves performance (rowCount() is a virtual function), as well as readability (delta is more readable than end - begin + 1). Change-Id: Iabe88852a61f7ef52139e1ba446e9d3f87d6bd04 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
| | * Improve grammar in QUndoStack::beginMacro() documentationMitch Curtis2016-04-111-1/+1
| | | | | | | | | | | | | | | Change-Id: I4e27014a9a39abc03cee25f9753a46225efa43b9 Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
| | * Remove QDateTimeEditPrivate's duplication of QDateTimeParser code.Edward Welbourne2016-04-081-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Both constructors set up the first, last and none members. QDateTimeEditPrivate wants first.pos = 0, different to its base, so keep that, but the rest merely duplicated. Change-Id: Ice22e0495112dc3427eb35b5b73420f42d7dafc1 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| | * QDateTimeEditPrivate: make clear which overrides are for which base.Edward Welbourne2016-04-081-12/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The class does multiple inheritance and over-rides virtuals from both bases; it also declared the over-rides virtual rather than declaring them to be over-rides; so deploy Q_DECL_OVERRIDE and, while changing those lines, move them all together and document which belong to which base. Change-Id: Ica3958d6d24124a537983e7e94fce642284f1f24 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| | * QDateTimeParser: new Section mask values simplify code.Edward Welbourne2016-04-082-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | Various |s of existing section flags were used repeatedly; naming these masks makes the relevant code easier to read. In QDateTimeEdit, add a comment to make clear that its Section enum is based on QDTP's. Change-Id: Ifd8364cd396a6d0d5ed7ae7dc4d31690f77edd30 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | | Use takeFirst() instead of first() with removeFirst()Anton Kudryavtsev2016-04-131-2/+1
|/ / | | | | | | | | | | | | | | Reduce code size and improve readability. Change-Id: I5ec035a39cb607f15748aaa08d73f1c1bc8e4ad8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QtBase: use erase and std::remove_if with QList and QVectorAnton Kudryavtsev2016-04-083-16/+22
| | | | | | | | | | | | | | ... instead of using removeAt in a loop, with quadratic complexity. Change-Id: I38b49e56b12c396db9fc0f1b75d8fb43c503a7f6 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | add cross-platform tablet->mouse event synth; enable on AndroidShawn Rutledge2016-04-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's urgent to fix the issue that on Android, it became impossible to interact with any widget or MouseArea which handles only mouse events but not tablet events, using the stylus, because stylus events are sent only as QTabletEvents. Before 5.6 (change 01d78ba86a631386a4d47b7c12d2a359da28f517) they were sent as touch events, and mouse events were synthesized from those. Whereas on other platforms, every QTabletEvent is followed by a synthesized QMouseEvent. This fix proceeds in the direction that event synthesis should be done in cross-platform code so that platform plugins don't have to repeat it, following the same pattern as for touch->mouse synthesis. Just as in that case, the application can disable it, and the platform plugin can also report that it's unnecessary for Qt to do the synthesis because the platform already does. So QTBUG-51618 is fixed, but QTBUG-47007 requires us to remove the tablet->mouse synthesis from all platform plugins, because the plugin does not know whether the tablet event was accepted or not, so it does not have enough information to decide whether to synthesize a mouse event. Synthesis has been unconditional until now, which contradicts what the documentation says: the mouse event should be sent only if the tablet event is NOT accepted. We can now gradually make this promise come true. [ChangeLog][QtCore][Tablet support] A synthetic mouse event will no longer be sent after every QTabletEvent, only after those which are not accepted (as documented). Task-number: QTBUG-47007 Task-number: QTBUG-51618 Change-Id: I99404e0c2b39bbca4377be6fd48e0c6b20338466 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-0714-119/+168
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/network/access/qftp.cpp src/widgets/itemviews/qheaderview.cpp src/widgets/itemviews/qlistview.cpp tests/auto/network/access/qftp/tst_qftp.cpp Change-Id: I9f928f25d45d8944dd60bb583f649fc1615bc5d9
| * QFontDialog: re-enable X close button in window decorationMarc Mutz2016-04-061-1/+1
| | | | | | | | | | | | Change-Id: Id8d9dab7a0e4cf22abefd9bdc7bf2fd4cba1f445 Task-number: QTBUG-32240 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
| * Refactor QWindowsXPStylePrivate::drawBackground() and helpers.Friedemann Kleint2016-04-062-9/+7
| | | | | | | | | | | | | | | | | | | | Pass the DC obtained drawBackground() to drawBackgroundDirectly(), saving a call to hdcForWidgetBackingStore() to find it. Pass the error code from the Win32 API DrawThemeBackground() to the calling functions. Change-Id: I1c25241f53d87e4429ad924f7b2e29da215d7e4f Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
| * Add some QChar::unicode() calls to brush over deprecation warninghjk2016-04-061-1/+1
| | | | | | | | | | Change-Id: I16383254373289584818cd2b590d51d9e4a649c5 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * QToolButton: always restart the menu popup timerGiuseppe D'Angelo2016-04-062-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The logic for activating a delayed popup menu on QToolButton is a bit cumbersome: when the button is pressed, a timer is started. This timer however doesn't get reset if the button is released before the timer expires. Instead, the function triggered by the timer checks if the button is pressed at that time. If so, the popup menu is shown. This logic allows the user to press-release a QToolButton many times and suddenly get a popup menu appear way before the expected timeout for the popup expired. That's because the first press started the timer, and then the button happened to be down when the timer expired. Instead, always *re*start the timer on a button press, and cancel the timer when the button is released. Change-Id: I3e0849264fdb6f670d018ebb5012eb15fa699cfb Task-number: QTBUG-48906 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * QListView: propagate the source of wheel eventsAlexander Volkov2016-04-061-1/+1
| | | | | | | | | | Change-Id: I3ff5dd1f7e02a8a6a0610d71707c26fd5ea74650 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
| * Make sure QStyleOption is correctly initialized.Hannah von Reth2016-04-051-7/+3
| | | | | | | | | | | | | | | | | | | | | | Ensures that QStyleOption is correctly initialized. This prevents possible styling issues due to QStyleOption's reporting version 0, see qstyleoption_cast. This enables users to handle more cases in their QProxyStyle. For now the test is only used for QCommonStyle. Change-Id: I768db00b12b46890343fffe44e4f562762e9cf80 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * Fix regression in scaled QLabel on hi-res display.Jason Haslam2016-04-051-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The change in bc1796f for QTBUG-42503 only works for scaling down pixel-doubled images. Smaller images scale up incorrectly. Fixed by setting the devicePixelRatio of the scaled pixmap to the devicePixelRatio of the label. Also, caching was broken by not accounting for scaling by devicePixelRatio in the condition. Change-Id: I6e1503652e61683a16312c74f46b79d28c880848 Task-number: QTBUG-46846 Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
| * QHeaderView::setStretchLastSection: make it a noop when setting the same valueGiuseppe D'Angelo2016-04-051-0/+2
| | | | | | | | | | | | | | | | | | | | For some reason this setter wasn't protected against setting the same value again, and always did work (including resizing the last section when setting it to false). Change-Id: I044404eef95d52d165100254f3afd489997e0872 Task-number: QTBUG-52308 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * Accept partial line scrollsAllan Sandfeld Jensen2016-04-051-1/+9
| | | | | | | | | | | | | | | | | | | | | | QAbstractSlider might register and use small scroll events that would scroll less than a single line. Since we consume the scroll-event we should accept it, so it doesn't scroll other widgets too. Task-number: QTBUG-49549 Change-Id: I7c64c5f6cae46f02ba21058abbecb791fc3c88eb Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
| * Vista style animation: Create images with device pixel ratio.Friedemann Kleint2016-04-052-17/+18
| | | | | | | | | | | | Change-Id: Ic404c8ac8b0e4c1b8d0dd7877611443e0afac270 Task-number: QTBUG-49374 Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
| * Windows XP style: Change theme logic to use qreal.Friedemann Kleint2016-04-055-69/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | Avoid rounding errors, thus preventing sizes becoming too small when High DPI scaling is in effect. Also fix division by zero crashes should a scale factor be below 1. Task-number: QTBUG-49374 Task-number: QTBUG-51552 Change-Id: I72718521bc3c7f6b0e42392ea2d2d3bbc61e2faa Reviewed-by: Marko Kangas <marko.kangas@theqtcompany.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com> Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
| * Windows XP style: Allow High DPI scaling to draw directly.Friedemann Kleint2016-04-052-11/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the style defaulted to drawing via pixmaps when the device transformation of the QPainter was more complex than TxTranslate. Introduce an enumeration describing the transformation to be able to identify the scaling used by High DPI scaling and allow for direct drawing in that case as well. Add scale factors. Create pixmaps with device pixel ration in drawBackgroundThruNativeBuffer() if High DPI scaling is in effect. Issues: Borders may go missing due to the up-scaling/rounding. Code branches for DrawBackgroundEx==0 are not touched since it is assumed these old versions of Windows do not run in High DPI. Task-number: QTBUG-49374 Change-Id: Idfe1887e4fac3be2843438dc76cb4971a198ab2a Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
* | Widgets: use QStringRef to optimize memory allocationAnton Kudryavtsev2016-04-068-20/+24
| | | | | | | | | | | | | | | | | | | | | | Replace substring functions that return QString with corresponding functions that return QStringRef where it's possible. Create QString from QStringRef only where necessary. Change-Id: Id1c39093199519f2794b11560c2c0ded2d52b928 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | Fix slow scrolling by wheel after setting a custom scrollbarAlexander Volkov2016-04-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The bug was introduced by 410aa20f073b5e45e73366773b7d173f840a9cfe (QAIV - allow users to control single step in ScrollPerPixel mode). QAbstractSliderPrivate::viewMayChangeSingleStep is reponsible for the expected behavior when scrolling by wheel. It is set to true by default, but calling QAbstractScrollArea::set*ScrollBar() results to always setting it to false. So we should copy viewMayChangeSingleStep manually from the old scrollbar. Change-Id: I2ee218054e473fa96785b123805e3943a5d74dbd Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-0413-57/+93
|\| | | | | | | Change-Id: I35ca979395620e104e50b06366d0869433a4ffc2
| * QAbstractItemView: don't call restart() on invalid QElapsedTimerMarc Mutz2016-04-032-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In keyboardSearch(), QAbstractItemView unconditionally called QElapsedTimer::restart(). Calling restart() on an invalid QElapsedTimer is undefined behavior: qelapsedtimer_unix.cpp:192:9: runtime error: signed integer overflow: 3313808 - -9223372036854775808 cannot be represented in type 'long int' qelapsedtimer_unix.cpp:193:10: runtime error: signed integer overflow: 534150461 - -9223372036854775808 cannot be represented in type 'long int' qelapsedtimer_unix.cpp:194:17: runtime error: signed integer overflow: -9223372036851462000 * 1000000000 cannot be represented in type 'long long int' The code already checked the timer for validity, and did not use the return value of restart() in case of an invalid timer, but the check came too late. Fix by checking the return value of QElapsedTimer::isValid() earlier, and calling start() instead of restart() instead. Fix the same error in QTreeView, which has a c'n'p copy of the buggy code. Change-Id: I9751465394707d9348d5c05a0b1b2be147eceb2e Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
| * QGraphicsView: clarify documentation for viewportTransformGiuseppe D'Angelo2016-04-021-1/+1
| | | | | | | | | | | | | | | | d->matrix holds the scene->viewport transform, not vice versa. Change-Id: I997cbdfbf519f39f242cd0dbbd00621e59ec9307 Task-number: QTBUG-48705 Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
| * QScrollerTimer: fix a memory leakGiuseppe D'Angelo2016-04-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The QScrollerTimer instance allocated by QScrollerPrivate was never freed. I've absolutely no idea why QScroller has such a messy d-pointer handling, so go for the easiest approach: exploit the fact that QScrollerPrivate is a QObject and parent the QScrollerTimer to it. Change-Id: I500edc9d0d14b2fb9eec02712229970eb2b9fe81 Task-number: QTBUG-52280 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
| * QGraphics*Layout: fix memory leaksGiuseppe D'Angelo2016-04-012-9/+10
| | | | | | | | | | | | | | Change-Id: I5f9d2ccc8912e3fa08e376b5f6b6450d22913406 Task-number: QTBUG-10768 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| * Refactor methods QTextEdit/QPlainTextEdit::inputMethodQuery().Friedemann Kleint2016-03-302-33/+29
| | | | | | | | | | | | | | | | Replace if / else if chain by switch() and return the value instead of reassigning it. Change-Id: Ib87c54bbf9911a58d3ae764b71f19f33d59590ce Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * QTextEdit::inputMethodQuery(): Preserve types when applying offset.Friedemann Kleint2016-03-301-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | The old code converted QRectF into QRect when applying the offset. Change the offset point to QPointF and change the conversions accordingly. Add an autotest similar to that of QPlainTextEdit. This minimizes rounding errors and prevents conversions since the input method logic mostly uses qreal. Task-number: QTBUG-51923 Change-Id: I0c2f80ccae028d8bbbb97ec603f8782f69959c76 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * QMacStyle: Return a guess for SE_ProgressBarGroove's rectGabriel de Dietrich2016-03-292-1/+4
| | | | | | | | | | | | | | | | | | | | QMacStyle doesn't know how to accurately compute SE_ProgressBarGroove But, since we only need the progress bar's main dimension, its rect is good enough for QProgressBarPrivate::repaintRequired(). Change-Id: I81e936003b847cc9cc0ddf4fbfc05ddc1c9f6625 Task-number: QTBUG-51120 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
| * QPlainTextEdit: Take vertical offset into account when answering input ↵Friedemann Kleint2016-03-291-5/+5
| | | | | | | | | | | | | | | | | | | | | | method queries. Determine offset point to similar to QTextEdit::inputMethodQuery() and add an autotest. Task-number: QTBUG-51923 Change-Id: I8232eb348063e2cd95d0632fe74a6eb30c897eda Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * QTabBar: enable high dpi moving of a tabGiuseppe D'Angelo2016-03-252-7/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moving tabs of a QTabBar goes through a temporary QWidget that captures a "screenshot" of the tab, and then gets moved around. Unfortunately, that screenshot was not using the devicePixelRatio, resulting in blurry text and icons. For some reason, setting the DPR on the pixmap isn't enough -- that causes it to be drawn twice as big (bug somewhere in Qt styles?). Work around that by not using the palette, but a simple widget which draws the pixmap (which also leads to somehow clean code). Change-Id: Id12f9251625693d108031488ddfab86277128705 Task-number: QTBUG-50898 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>