summaryrefslogtreecommitdiffstats
path: root/src/widgets
Commit message (Collapse)AuthorAgeFilesLines
* Make QFontDatabase member functions staticEskil Abrahamsen Blomfeldt2020-08-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | QFontDatabase is a singleton and all instances would share a single, mutex-protected global data pointer. But some functions were implemented as non-static functions. This caused a lot of code on the form QFontDatabase().families(...) since there was no static access. Other functions were implemented as static. To consolidate, we make all functions static. This should be source-compatible, but not binary compatible. [ChangeLog][QtGui][Fonts] Some functions in QFontDatabase were in principle static, but previously not implemented as such. All member functions have now been made static, so that constructing objects of QFontDatabase is no longer necessary to access certain functionality. Fixes: QTBUG-83284 Change-Id: Ifd8c15016281c71f631b53387402c942cd9c43f6 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fix compiler issues when qreal is floatMichal Klocek2020-08-051-1/+1
| | | | | Change-Id: Ide3b5a3b0f2d93708409edac8aa999eb25c3ab54 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove last remaining bits of QtPlatformHeadersTor Arne Vestbø2020-08-044-5/+1
| | | | | | Task-number: QTBUG-84220 Change-Id: I951e04bfe9358a99951d1d61ff47b675584b7f81 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Make initStyleOption virtual for various classesThorbjørn Lund Martsum2020-07-3127-23/+39
| | | | | | | | | | | | | | | | | | | | Often a simple change in the styleoptions is needed in e.g a paintEvent, but it was impossible without copying the whole paint-function which is not always trivial and also wouldn't be kept up-to-date if it was changed in Qt. The initStyleOption is similar to viewOptions in QAbstractTableView and it is handy that this function is virtual. Furthermore QStyledItemDelegate::initStyleOption is already virtual. This change only makes initStyleOption virtual for public classes. [ChangeLog][QtWidgets] InitStyleOption has been made virtual in public Qt classes to make override of stylebehavior more simple. Change-Id: I38974c6d4dd0793ca5976ecf3aa28892215a1579 Task-number: QTBUG-77642 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
* QFileSystemModel: make sure files are stat'ed in the worker threadVolker Hilsheimer2020-07-311-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | | QFileInfoGatherer creates QFileInfo objects in the worker thread to offload the work from the UI thread, but it never calls any methods on the QFileInfo objects that would trigger a stat'ing of the files. For large directories on remote file system, that easily results in the UI thread being blocked for a very long time. Add a private 'stat' method to QFileInfo which allows forcing it to stat all attributes from the worker thread, and make QFileInfoGatherer a friend so that it can call the function from the worker thread. This way, QFileSystemModel can access the cached data for each QFileInfo object, without having to touch the file system from the UI thread. Also reduce the amount of signal emissions for drive information, batch all drives (which can safely be assumed to be at most a two digit figure) into a single emission instead. Change-Id: Ifdcae150406187db9984d0fec9add93597b5f85b Fixes: QTBUG-41373 Pick-to: 5.15 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Windows QPA: Move some internal functions to the new interfaceFriedemann Kleint2020-07-281-5/+3
| | | | | | | | | | | | | Move createMessageWindow(), the GPU detection for qtdiag and the async expose setting (used by Active Qt) from QWindowsNativeInterface to QWindowsApplication. Remove unused registerWindowClass() and use logFontToQFont() directly from the font database. Task-number: QTBUG-83252 Change-Id: I9c72351970b47457d08125557c2580016c66e586 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QCompleter: fix an out of bounds access in a QMapGiuseppe D'Angelo2020-07-271-1/+2
| | | | | | | | | | If the iterator points to the map's begin(), then one can't decrement it. Split the check and the decrement. Change-Id: I3d816f13d0bcacc8253ba6d223bc83c874e5efb5 Pick-to: 5.15 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Windows QPA: Move dark mode handling to the new interfaceFriedemann Kleint2020-07-251-6/+5
| | | | | | | | | | Move options to new interface, making them settable from code on this occasion. Task-number: QTBUG-83252 Change-Id: Idd80667c502a8cde5d7c66d7e597ea34c22738e7 Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* fix qcombobox code styleWang Peng2020-07-251-1/+1
| | | | | | | In code style, it shouldn't look like this Change-Id: I615f3a6ca1b4f33e0693a4e272d5703d9285a8a8 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Windows QPA: Move window properties to the new interfacesFriedemann Kleint2020-07-241-6/+6
| | | | | | | | Affects the custom margin used by QWizard. Task-number: QTBUG-83252 Change-Id: Iffda043f106282f682e119ec955fa2b2eb0f259e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove the space before the ')'Li Zhong Ming2020-07-241-3/+3
| | | | | | | | | 1.According to QT coding styles, there should be no space around the parentheses 2.Replace the & operator with testflag() Task-number: QTBUG-85617 Change-Id: I1d1ae9ec0d20f3401ce4a2ee9089b72205f6e8eb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QLineEdit: Fix cursor drawing issuesLu YaNing2020-07-232-1/+3
| | | | | | | | | | | | | | | | Entering Chinese in some fonts in an English environment causes the cursor drawing coordinates to exceed the updated coordinates, leaving behind stale pixels at the top. Keep the refresh and draw area calculation methods the same when rendering the contents in QLineEdit::paintEvent, and when calculating the update area in QLineEditPrivate::adjustedControlRect. Fixes: QTBUG-85569 Pick-to: 5.15 Change-Id: I978cb56f24f961086b1271e56d07ad1ced16f8ff Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Ensure styles always get to polish the application paletteTor Arne Vestbø2020-07-211-17/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Before 0a93db4d82c051164923a10e4382b12de9049b45 we would polish the application palette even when it was the default palette, as we always recreated the system palette each time a style was set. After the change we skipped polishing the palette unless it was set by the user, under the assumption that the style would set its own default palette if it wanted to override the system palette. This turned out to break the style's ability to slightly tweak the palette via polish (versus the more full on standardPalette approach). We now polish both the default palette and user palettes, and we do so as part of the normal palette update logic. This ensures that the style also gets a chance to polish the palette when the platform theme changes. The polish will not have an effect on the resolve mask of the palette, as the polish is conceptually the same as a base palette, and should not affect e.g. Qt::AA_SetPalette. Fixes: QTBUG-85469 Fixes: QTBUG-85188 Pick-to: 5.15 Change-Id: I869e9c442b177de4f1dc49eb75220709306f4d12 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add QXcbWindow platform interfaceTor Arne Vestbø2020-07-201-24/+46
| | | | | | Task-number: QTBUG-84220 Change-Id: I8bb4288f1ac06d77fb4f43ae091fa1712f694eeb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Move private platform interfaces to private QPA headersTor Arne Vestbø2020-07-202-0/+2
| | | | | | | | | They should not clutter the "public" QPA headers that clients use to implement new platforms, and having them in the private headers allows us to check for private configure features. Change-Id: Ib4b4db96c086d81bb5810392c7c8922fc5b4950d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix some MSVC int conversion warningsFriedemann Kleint2020-07-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | kernel\qmetaobjectbuilder.cpp(1279): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data kernel\qmetaobjectbuilder.cpp(1432): warning C4267: '+=': conversion from 'size_t' to 'int', possible loss of data sax\qxml.cpp(1275): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data text\qfontsubset.cpp(920): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data text\qfontsubset.cpp(920): warning C4267: 'initializing': conversion from 'size_t' to 'const int', possible loss of data text\qtextengine.cpp(2664): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data text\qtextengine.cpp(2665): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data text\qtextengine.cpp(2706): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data text\qtextengine.cpp(2707): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data itemviews\qbsptree.cpp(60): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) kernel\qprintengine_win.cpp(1558): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data qsql_odbc.cpp(804): warning C4267: 'argument': conversion from 'size_t' to 'SQLINTEGER', possible loss of data qsql_odbc.cpp(822): warning C4267: 'argument': conversion from 'size_t' to 'SQLINTEGER', possible loss of data qsql_odbc.cpp(1585): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data qsql_odbc.cpp(1602): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data qwindowsmime.cpp(770): warning C4267: '+=': conversion from 'size_t' to 'int', possible loss of data windows\qwindowsmime.cpp(770): warning C4267: '+=': conversion from 'size_t' to 'int', possible loss of data Change-Id: I04fbe17b9782f4c2704933fc005449b1e992475e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QWizard/Windows: Fix deprecation warnings about old mouse event APIFriedemann Kleint2020-07-171-3/+10
| | | | | | | | | | | | Fix: src/widgets/dialogs/qwizard_win.cpp:515 C4996: 'QMouseEvent::globalX': Use globalPosition() src/widgets/dialogs/qwizard_win.cpp:529 C4996: 'QMouseEvent::globalX': Use globalPosition() src/widgets/dialogs/qwizard_win.cpp:544 C4996: 'QMouseEvent::globalX': Use globalPosition() and add missing High DPI scaling for the native event on this occasion. Change-Id: Ib9a8ab0b3419fa0435eba38401b91c445acdb7bf Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* QtGui: Rename all QEvent members according to the m_ conventionFriedemann Kleint2020-07-161-4/+6
| | | | | | | | | | | As they are protected, they need to be excluded from the Python bindings, which is best done by a pattern. Task-number: PYSIDE-1339 Task-number: PYSIDE-904 Change-Id: I667aa3b8e229e11b3b46635adfddbd62ce4747c1 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Allow Windows accessibility backend to receive focus updatesAndre de la Rocha2020-07-151-5/+0
| | | | | | | | | | | | | | | | The removed code no longer applies to the current Windows accessibility backend, and was causing it to miss focus change events when the application UI contained one or more widgets associated with native window handles, or when the Qt::AA_NativeWindows application attribute was set. This caused accessibility tools like Narrator to miss changes in the focused widget. Fixes: QTBUG-81862 Pick-to: 5.15 Change-Id: I6e42d09c54e9e1338fc4b103eba8a0b2c4309e7f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Un-deprecate QMouseEvent::flags() and QGraphicsSceneMouseEvent::flags()Shawn Rutledge2020-07-152-5/+0
| | | | | | | | | | | | | | | | On one hand it looks like API clutter: a whole Qt namespace enum just to track whether an individual mouse click is about to geenerate a MouseButtonDblClick event. On the other hand, we should not remove it without replacing it somehow, so that users don't lose the workaround for QTBUG-25831 that it provides. That would be an invasive change because this flags property exists in QMouseEvent, QGraphicsSceneMouseEvent and in MouseArea { onClicked: doSomethingWith(mouse.flags) } Reverts a small part of 4e400369c08db251cd489fec1229398c224d02b4 Task-number: QTBUG-25831 Change-Id: I9a3b4f6cc6b858012186f10ed57689f8c0f5fd79 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Compare the showDecorationSelected variable when caching the optionAndy Shaw2020-07-151-1/+2
| | | | | | | | | | | | Since the size of the display rect can change if showDecorationSelected is set then this should be included when seeing if the item is already cached. Change-Id: Ied6182337de5894d879c5ba5d1125b4869a11cc9 Pick-to: 5.15 Fixes: QTBUG-85451 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove wrapper APIs from QDesktopWidgetPrivateVolker Hilsheimer2020-07-141-45/+0
| | | | | Change-Id: I99e7d82a9e369fee23bcc565553ad9783fa862f9 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Change QWindow/QWidget::map(To/From)(Global/Parent) to operate in floatFriedemann Kleint2020-07-146-28/+83
| | | | | | | | | | | | | | | Change the functions to operate in float and add the QPoint versions as overload calling them. This is more in-line with the event accessors using float and allows for removing some workarounds using a delta when converting touch points. Leave QPlatformWindow::map(To/From)Global() as is for now and add helpers for float. Change-Id: I2d46b8dbda8adff26539e358074b55073dc80b6f Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove support for users to create their own Qt::Desktop type widgetsVolker Hilsheimer2020-07-131-20/+15
| | | | | | | | | | [ChangeLog][QtWidgets][QWidget] Creating QWidget instances with the Qt::Desktop window type set is no longer supported. Change-Id: I712861d7104c4ae5cbdd5d54cd0134bf69eb144e Task-number: QTBUG-62094 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Refactor pointer event hierarchyShawn Rutledge2020-07-1010-96/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some goals that have hopefully been achieved are: - make QPointerEvent and QEventPoint resemble their Qt Quick counterparts to such an extent that we can remove those wrappers and go back to delivering the original events in Qt Quick - make QEventPoint much smaller than QTouchEvent::TouchPoint, with no pimpl - remove most public setters - reduce the usage of complex constructors that take many arguments - don't repeat ourselves: move accessors and storage upwards rather than having redundant ones in subclasses - standardize the set of accessors in QPointerEvent - maintain source compatibility as much as possible: do not require modifying event-handling code in any QWidget subclass To avoid public setters we now introduce a few QMutable* subclasses. This is a bit like the Builder pattern except that it doesn't involve constructing a separate disposable object: the main event type can be cast to the mutable type at any time to enable modifications, iff the code is linked with gui-private. Therefore event classes can have less-"complete" constructors, because internal Qt code can use setters the same way it could use the ones in QTouchEvent before; and the event classes don't need many friends. Even some read-accessors can be kept private unless we are sure we want to expose them. Task-number: QTBUG-46266 Fixes: QTBUG-72173 Change-Id: I740e4e40165b7bc41223d38b200bbc2b403e07b6 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Rename local variables masking parametersDimitrios Apostolou2020-07-101-6/+6
| | | | | | | As found by LGTM.com. Change-Id: I9a237899dc50009da5643c49c590f3b15bb817bf Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QCalendarWidget: code tidies for the internal modelGiuseppe D'Angelo2020-07-081-31/+20
| | | | | | | | | | | | | | The table model inside a QCalendarWidget was violating a few QAIM principles: * returning illegal values from row/columnCount by not checking the parent index * not keeping invariants on row/column manipulation. Pick-to: 5.15 Change-Id: I2c51e59ea2d89e73884bad20f3c06fbb808a26c5 Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
* Item widgets: fix crash in mimeTypes()Giuseppe D'Angelo2020-07-082-2/+7
| | | | | | | | | | *Always* check the result of a dynamic/qobject cast. I'm not positive if the cast is correct (or should it just be a static cast), but in principle these models can be used with a different view. Change-Id: I37108cbb2744b6bf0fb46392d1cc9883f2d0b60e Pick-to: 5.15 Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
* Replace use of deprecated Q_OS_MACX in favor of Q_OS_MACOSTor Arne Vestbø2020-07-083-7/+7
| | | | | Change-Id: I1059d56f67be28a4cc1a66b744e81df6d0b5d00d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Move method only used in keypad navigation to a better placeVolker Hilsheimer2020-07-072-27/+14
| | | | | | | QDesktopWidget in particular doesn't use that code anymore. Change-Id: I8eed752175c5478663b25872c7ffe78c814245d7 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Refactor QTabBarPrivate::Tab and much of its usage in QTabBarVolker Hilsheimer2020-07-072-171/+187
| | | | | | | | | | | | | | | | | | | | | | | | | The type was broken in that it pretends to be a value, but didn't implement the necessary operators for save copy, move, or comparison. Tabs are supposed to be managed by Tab instance, as the crazy implementation of operator== demonstrated. Refactor the code to use it as a pointer consistently, even though this means additional allocations for each tab. This is however acceptable since there are not millions of tabs, and there is only a single place where tabs are removed from the list. Also use ranged for where possible, and never access the tabList using operator[] to avoid detaches. Use a std::unique_ptr for the animation in the tab, which implicitly protects against attempts to copy a Tab, and allows us to use the compiler generated default destructor. Add Q_DISABLE_COPY_MOVE for good measure, the compiler-generated move semantics would not work either due to the back-pointer from animation to the tab. Change-Id: I8e8c071472f8f1f401b0f4f1dde074d800842934 Fixes: QTBUG-85394 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add ; to Q_UNUSEDLars Schmertmann2020-07-0724-56/+56
| | | | | | | | This is required to remove the ; from the macro with Qt 6. Task-number: QTBUG-82978 Change-Id: I3f0b6717956ca8fa486bed9817b89dfa19f5e0e1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Remove usage of QDesktopWidget(Private) from most places in QtWidgetsVolker Hilsheimer2020-07-0724-191/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Call QGuiApplication and QScreen APIs directly to get geometries, and make use of QScreen::grabWindow grabbing the screen it's called on when called with WId == 0. This assumes that QGuiApplication::screen and QWidget::screen never return nullptr, which is already assumed in other places. In QSplashScreen, simplify the code to operate on the screen of the QSplashScreen itself. Remove the case that handles a QDesktopWidget parent - QSplashScreen doesn't have a constructor that takes a QWidget* parent anymore. In the QEffect implementation, we can rely on the widget pointer not being nullptr (it's tested in the free functions client code uses). Includes a few drive-by changes to coding style and logic in qtooltip.cpp, where the tip label placement now prefers the screen of the widget the label is created for, and uses the position only as a fallback. What remains is the special handling of QDesktopWidget and the Qt::Desktop type in QWidget and QApplication. Change-Id: I30b67bab8ae82ddfcc7bbbec3c10f6e935b74f06 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* macOS: Remove QMenu indirection via QPlatformNativeInterfaceTor Arne Vestbø2020-07-071-18/+14
| | | | | | Task-number: QTBUG-83252 Change-Id: I0c750d2b1912ced343d96ea0ca081c3319be2889 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Use QList instead of QVector in qtbaseJarek Kobus2020-07-073-11/+11
| | | | | | | | Fixes all other QVector occurrences Task-number: QTBUG-84469 Change-Id: I5f9311298d341a9a3061a6a640539583d1618939 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Clean up data members and initialization in QAbstractSpinBoxVolker Hilsheimer2020-07-072-26/+25
| | | | | | | | Group the bit flags together and generally order roughly by size to give the compiler better packing options. Change-Id: I9468d5aaef96e115ad363c59222e626d792a0edc Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove unused virtual method QWindowPrivate::allowClickThroughVolker Hilsheimer2020-07-071-6/+0
| | | | | | | Always returned true, also in the QWidgetWindowPrivate override. Change-Id: I01d11ae6f85882b52ce397125f994eea663ffcb5 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Use qsizetype in QListLars Knoll2020-07-065-6/+6
| | | | | | | | | | | | | | | | | | | | The change creates a slight source incompatibility. The main things to take care of are * code using printf statements on list.size(). Using qsizetype in printf statements will always require a cast to work on both 32 and 64 bit. * A few places where overloads now get ambiguous. One example is QRandomGenerator::bounded() that has overloads for int, uint and double, but not int64. * Streaming list.size() to a QDataStream will change the format depending on the architecture. [ChangeLog][QtCore][QList] QList now uses qsizetype to index into elements. Change-Id: Iaff562a4d072b97f458417b670f95971bd47cbc6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Simplify QMainWindow::setUnifiedTitleAndToolBarOnMacTor Arne Vestbø2020-07-061-21/+14
| | | | | | Task-number: QTBUG-83252 Change-Id: Ib6f7dcfe21407603d4cfd5d33f6615d8623db940 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Make QtPlatformHeaders a private moduleTor Arne Vestbø2020-07-064-1/+5
| | | | | | | | | | | The APIs will be reintroduced as part of the new platform interface API where appropriate. Clients that still depend on the platform headers can include it via QT += platformheaders-private. Change-Id: Ifbd836d833d19f3cf48cd4f933d7fe754c06d2d9 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove unnecessary ; after function implementationsLars Schmertmann2020-07-061-1/+1
| | | | | | Task-number: QTBUG-82978 Change-Id: Iea3bcaec1ef9f4bd0f73e5dccca33354650f5bf4 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Improve data member ordering and initialization in some private classesVolker Hilsheimer2020-07-043-93/+66
| | | | | | | | | Put bit fields together, and generally order by size to maximize the compiler's ability to pack data. Initialize in declaration where possible. Change-Id: I49d4a3d2271229d671aeaf3eb17e6b7ecdc5099e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Avoid use of Q_UNUSED by eliminating the parameter namesLars Schmertmann2020-07-032-2/+2
| | | | | | | | | This change only happens to files touched by the commit to add missing ; to Q_UNUSED. Task-number: QTBUG-82978 Change-Id: I10e6993a2bb3952cf9a262708b8573550e0dbe63 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Only use one macro per lineLars Schmertmann2020-07-031-1/+2
| | | | | | | | | Also add a ; where it is missing. Task-number: QTBUG-82978 Change-Id: Ic5d2a07363c25ab641d234baca89bc62238458cb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Keep track of mouse button state in QTabBarVolker Hilsheimer2020-07-022-6/+14
| | | | | | | | Get rid of call to QGuiApplication::mouseButtons Task-number: QTBUG-73829 Change-Id: I7cc706b5e037c68ecf3c778b824ae8c93e5cfe38 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Pass modifier and button information down the call stackVolker Hilsheimer2020-07-021-4/+11
| | | | | | | | | Gets rid of calls to QGuiApplication::mouseButtons and QGuiApplication::keyboardModifiers. Task-number: QTBUG-73829 Change-Id: Idba978fe8db21622ca05c4882c74fd2792b119e5 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Maintain keyboard modifier state in QAbstractSpinBox's input event handlersVolker Hilsheimer2020-07-022-3/+10
| | | | | | | | | | Gets rid of calls to QGuiApplication::keyboardModifiers. Need to handle key and mouse events, since the spin buttons may be clicked on without the spinbox having focus. Task-number: QTBUG-73829 Change-Id: I455c42987f19bb5b7997dc8d61272863d7bc394e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Use QList instead of QVector in widgetsJarek Kobus2020-07-0291-456/+499
| | | | | | Task-number: QTBUG-84469 Change-Id: I3007734f8e4f164ece9dd8850ef007cbef9e12ef Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* Manage keyboard modifier state in QPlainTextEditVolker Hilsheimer2020-07-022-1/+7
| | | | | | | | | Gets rid of a call to QApplication::keyboardModifiers, at the expense of some more bytes in QPlainTextEditPrivate. Task-number: QTBUG-73829 Change-Id: I0394cb773034e832cffe5fa643ac308493f815b4 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Make feature datetimeparser depend on feature datestringEdward Welbourne2020-07-022-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | No client of QDateTimeParser actually uses it unless datestring was enabled, nor is it any use without datestring. Various methods conditioned on datestring are broken unless datetimeparser is enabled. We can't condition public API on datetimeparser, as it's a private feature, but client code can condition use of it on the private feature. All string-to-date/time conversions that use a string format (this includes all locale-specific formats) depend on feature datetimeparser. Change #if-ery (or add it) in all client (including test) code to test the right feature. Tidied up some code in the process. Killed some already-redundant textdate #if-ery. Renamed a test whose name claimed it involved locale, which it doesn't, in the course of #if-ing it. This simplifies the condition for feature datetimeedit (which overtly depended on textdate, redundantly since it depends on datestring which depends on textdate; its dependence on datetimeparser now makes its dependency on datestring also redundant). It also removes the need for assorted datestring checks in QDateTimeParser itself. Change-Id: I5dfe3a977042134b2cfb16cbcc795070634e7adf Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>