summaryrefslogtreecommitdiffstats
path: root/src/widgets/styles
Commit message (Collapse)AuthorAgeFilesLines
* docs: Don't mark qDrawBorderPixmap() as overloadSergio Martins2016-10-051-1/+0
| | | | | | | Because it doesn't overload anything. Change-Id: I871df10b4a0a46da238a5d1061cfb1aa34ccee03 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* QStyleOption: return Q_NULLPTR from qstyleoption_cast instead of 0Dyami Caliri2016-09-131-4/+4
| | | | | | | | qstyleoption_cast should use Q_NULLPTR to represent a null pointer. Task-number: QTBUG-45291 Change-Id: I85078ceb435b310daf63db2ed771be2f36cf3e4f Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Style sheets: detect and apply font set on QHeaderView sectionPeng Wu2016-09-041-2/+10
| | | | | | | | | Detect and apply style sheets font set when calculating QHeaderView section content size and drawing it. Change-Id: I542cd0d31bbe62f127c509f297eef0a576fec054 Task-number: QTBUG-55597 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Windows style: Scale more native metrics per monitorFriedemann Kleint2016-08-252-15/+18
| | | | | | | | | | | | Fix a few places that were overlooked in change 29c6e39086831f6811e94364273c1f4bff119bef. Most notably, fixes MDI subwindow titles disappearing when moving windows between monitors. Task-number: QTBUG-49374 Change-Id: Ie6ffabc4909064e649a3820d9aa952f3991ef06b Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* QStyleSheetStyle: don't call pixelMetric when not neededDavid Faure2016-08-241-8/+10
| | | | | | | | fixupBorder does nothing when bd is null, i.e. hasBorder() returns false. Change-Id: Ic88e3a793f32bd4ad25830ddad9dbd8100348279 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QStyleSheetStyle: remove 167 unneeded relocationsMarc Mutz2016-08-221-2/+2
| | | | | | | | | | | | | | Same change as in QColor (d38f86e50b01c6dd60f5a97355031e08d6a47d18). relocs: -167 text: +1296B data: -1984B (optimized GCC 6.1 Linux AMD64 build). The text size increase means we pushed the data into an immutable section. Change-Id: I0ff433714dc23350d1e19893a2e27ff4a0d2ec25 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Doc: Change instances of '(Mac) OS X' to 'macOS'Topi Reinio2016-08-124-11/+11
| | | | | | | | | | | | | | | As of version 10.12 (Sierra), the name of Apple's desktop operating system will be macOS. Change the occurrences where the Mac platform is discussed to use a macro \macos, which expands to 'macOS'. This helps with adapting to future renaming. Update the instructions on mac-specific Q_OS_* macro usage. Add a \target for the old 'Qt for OS X' topic to keep links working for other documentation modules that try to link with the old name. Change-Id: Id33fb0cd985df702a4ae4efb4c5fd428e77d9b85 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Windows style: Scale native metrics per monitorFriedemann Kleint2016-07-274-19/+67
| | | | | | | | | | | | | The native sizes returned by the metrics and theme functions refer to the primary monitor. They need adaption when showing on a secondary monitor with differing logical DPI. Introduce a helper function QWindowsStylePrivate::nativeMetricScaleFactor() to calculate the total factor. Task-number: QTBUG-49374 Change-Id: I34c843ff34108424e1ef0aafcf9f563d17ebbc89 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* QMacStyle: Fix use of deprecated symbolGabriel de Dietrich2016-07-211-1/+1
| | | | | | Change-Id: I5a6bfc937267817b2c815be0216ea91fe6860ba3 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* QMacStyle::styleHint - test pixmap sizesTimur Pocheptsov2016-07-141-1/+1
| | | | | | | | | | | styleHint for SH_FocusFrame_Mask calls drawControl with a painter created for pixmap. We only test pixmapSize.isValid(), but the size (0,0) is also 'isValid', and we end up with a QPainter with an invalid paintEngine (null) crashing in drawControl. Task-number: QTBUG-54630 Change-Id: I84d1785f04ffb3e608812076a6d1bc36ffb92adc Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
* Fix typo in QStyle documentationSérgio Martins2016-07-091-1/+1
| | | | | Change-Id: Id1f65dcc473effbdd0ccd7362b2986382c827ed8 Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* Fix QLineEdit not showing clear button on macOSFriedemann Kleint2016-06-301-1/+10
| | | | | | | | | | Restore code path returning the resource pixmap for platforms that do not have themes in QCommonStyle. Amends change b657496a0ba326af0688e9935069139c002849cf. Task-number: QTBUG-54425 Change-Id: I764408622b825b86afbe7ccf37e1498d3efb3850 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* Paint small progressbars correctly on Vista+Nico Rieck2016-06-101-1/+1
| | | | | | | | | | | | The animated glow always has a length of 120 but was previously drawn with the clipping rect of the bar's actual size. For sizes smaller than 120 the native theme part would be clipped and the black gradient would show. Change-Id: Id81e39c405ef81ae08af0f64249568016944bdf1 Task-number: QTBUG-51266 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Enable testStyleOptionInit for all styles and fix affected styles.Hannah von Reth2016-06-067-27/+12
| | | | | Change-Id: I7cb759445342ecb58d5187ddd4a22e41fdea084a Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* qstyle: Make image description match the image.Sérgio Martins2016-04-281-2/+2
| | | | | | | The image shows 9 combo boxes, not 8. Change-Id: If229332e1708f624ad9f50fab0b78c011d94f31e Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* QWindowsVistaStyle: Fix CE_MenuBarItem with QStyleSheetStyle.Friedemann Kleint2016-04-231-1/+1
| | | | | | | | | Do not paint over CE_MenuBarItem when the palette is set to transparent by QStyleSheetStyle. Task-number: QTBUG-49115 Change-Id: Ib364017179d0852490daad094361eae0ead4fd5f Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
* Fusion style: Observe text alignment of QGroupBox.Friedemann Kleint2016-04-221-1/+17
| | | | | | | | Take alignment into account in QFusionStyle::subControlRect(). Task-number: QTBUG-49068 Change-Id: Ia8f2d06c46b24761bff537247bbadd3323e41fa9 Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
* QWindowsXPStyle: Enlarge QLineEdit/QComboBox when High DPI scaling is active.Friedemann Kleint2016-04-191-3/+5
| | | | | | | | | | In QWindowsXPStyle::sizeFromContents(), scale the margins using the devicePixelRatio and round the height up. Typically increases the height by 2 pixels when the device pixel ratio equals 2. Change-Id: I446ad518c3808a6454a08db7b66a942d37c1703f Task-number: QTBUG-49374 Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
* QWindowsXP/VistaStyle: Move the Vista treeview handling to ↵Friedemann Kleint2016-04-184-76/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QWindowsXPStylePrivate. QWindowsXPStylePrivate maintains a list of theme handles for various style items. The derived class QWindowsVistaStylePrivate had logic to use a special helper window with the "explorer" window theme set to obtain the correct treeview arrow branch indicator (arrow shape for Vista as opposed to '+'/'-' on Windows XP) when creating the "TREEVIEW" theme. This required calling the helper function QWindowsVistaStylePrivate::initTreeViewTheming() before QWindowsXPStylePrivate::createTheme(), which is prone to errors and initialization order issues. This could be solved by making QWindowsXPStylePrivate::createTheme() virtual or similar, but since it the fate of QWindowsXPStylePrivate is most likely to be merged into QWindowsVistaStylePrivate; it was decided to move the entire special handling of the Vista treeviews into QWindowsXPStylePrivate. The existing enumeration value QWindowsXPStylePrivate::TreeViewTheme is renamed to QWindowsXPStylePrivate::XpTreeViewTheme and a new value QWindowsXPStylePrivate::VistaTreeViewTheme is added for which QWindowsXPStylePrivate::createTheme() invokes the special handling. This also removes the need to destroy the helper window in unpolish(), which should save some initializations. Task-number: QTBUG-52230 Change-Id: I0492ecf38fb3e5eabc4ecbdef70f0bf05e82e104 Reviewed-by: Adam Light <aclight@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@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>
* 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>
* 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>
* QMacStyle: Return a guess for SE_ProgressBarGroove's rectGabriel de Dietrich2016-03-291-0/+3
| | | | | | | | | | 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>
* Allow to style arrows drawn with drawPrimitive in QCommonStyle.Hannah von Reth2016-03-251-3/+3
| | | | | | | | Its currently not possible to style the arrows with QCommonStyle because drawPrimitive from QCommonStyle is called instead from the proxy. Change-Id: I910b13df110601cb18578bc16edfa5ddaa17bbd2 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Fix Fusion style combobox dirty lines in HiDPI mode.Marko Kangas2016-03-241-7/+1
| | | | | | | | | | Tuned combobox item highlight outline to avoid dirty lines when painting in HiDPI mode. Task-number: QTBUG-45600 Change-Id: I3c4aab91b2d32733bd2561424052034a3d9c26a3 Reviewed-by: Marko Kangas <marko.kangas@theqtcompany.com> Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* QLineEdit: Use High DPI pixmap for clear button.Friedemann Kleint2016-03-223-9/+32
| | | | | | | | | | | | | | Add a 32x32-pixmap to the style and factor out a function from QStyle::standardIcon() to assemble the icon. The 32x32 pixmap may also be used for the 16x16 case with devicePixelRatio=2. Change QLineEditIconButton to use QStyle::standardIcon() instead of QStyle::standardPixmap passing the QWindow to obtain the correct pixmap from the icon. Task-number: QTBUG-49374 Change-Id: I9895230f66911752cc13b7212609141610df0977 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QtWidgets: includemocsMarc Mutz2016-03-187-0/+15
| | | | | | | | A very simple way to save ~3KiB in test size and 440b in data size on GCC 5.3 Linux AMD64 release builds. Change-Id: I6619148cc497116b9772a00e1bc30d573a2b2534 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QWindows(XP)Style: fix build with Clang after includemocs runMarc Mutz2016-03-182-2/+0
| | | | | | | | | | | | | | | Clang doesn't like the unused member variable: qwindowsstyle_p.h:100:11: error: private field 'reserved' is not used [-Werror,-Wunused-private-field] Remove. It's private API. Triggered by Clang seeing all methods of the classes in one TU by the following includemocs commit. Change-Id: I84e92d63af573c090ef89c1d8ee19af30f90b171 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QMacStyle: Ensure proper focus ring clippingGabriel de Dietrich2016-03-172-22/+70
| | | | | | | | | | | | | | | | By rendering the focus ring directly on the backing NSView, we would ignore the painter's clipping information. It would also require creating a custom CGContext and attached NSGraphicsContext every time. The first step is to render the focus ring on a pixmap and then use the painter to render that pixamp. This ensures the clipping is done properly. The second step is to cache said pixmap and render it as a nine-patch image. Change-Id: I1df1baf7dc490023319f025a16306d4f04e5264c Task-number: QTBUG-50645 Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* Add argument names to the function signatures in headersOlivier Goffart2016-03-101-5/+5
| | | | | | | | | | | | | | | | | | Sometimes, in the .cpp, the declaration has the argument name in comments because it is not used (instead of using Q_UNUSED). The old qdoc could parse that, but once clang is used, these comments are not seen anymore. So add the argument names to the headers. This is also good for things like auto completion, which uses only the header to know what the argument name is. I grepped for " */)" and made sure all the functions that are documented have the right arguments. I also added the name to all the function around for consistency. Change-Id: I1aaa37e25a1985f7f51653f047a1ac2633242b56 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* Clean up WINVER, _WIN32_WINNT macros for MinGW.Friedemann Kleint2016-03-071-12/+0
| | | | | | | | | | | Define WINVER, _WIN32_WINNT as 0x501 (Windows XP) in qt_windows.h. Remove definitions of the same/lower versions and unneeded definitions in other places. Remove definition for Borland compiler. Task-number: QTBUG-51673 Change-Id: I2a344a7f7cf78b2afbf45dcdf8bf2a19b93f0a07 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* QMacStyle and QCocoaTheme: Fix selected item color for non-native menubarGabriel de Dietrich2016-02-291-2/+3
| | | | | | Change-Id: I3b55e9ce896383338cf6ed768d912ca1835b7742 Task-number: QTBUG-28960 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* Fix build when QMacStyle is disabled.Jake Petroules2016-02-181-1/+1
| | | | | | Change-Id: Ica66ab2b48266590b14d16a323b572f63168a580 Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* QWindowsVistaStyle: Suppress animation when QLineEdit's base color is set.Friedemann Kleint2016-02-101-5/+22
| | | | | | | | | Introduce utility function to check using QWindowsXPStylePrivate::isLineEditBaseColorSet(). Task-number: QTBUG-40634 Change-Id: Iaa6962a17217352aa59d0c54421b764ad47d3bf8 Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
* QWindowsXPStyle: Introduce utility function for QLineEdit's palette.Friedemann Kleint2016-02-103-39/+21
| | | | | | | | | | | Introduce QWindowsXPStylePrivate::isLineEditBaseColorSet() checking whether the base color has been set in the widget's palette taking into account the QSpinBox special case and simplify the code accordingly. Task-number: QTBUG-40634 Change-Id: I0e7527031b333d71727fbd30db6dd80aa715c9ab Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
* QWindowsVistaStyle: Reorder the if statement so the variable is checked firstAndy Shaw2016-01-261-1/+1
| | | | | | | | Since the likelyhood that decoration_size is greater than 0 then we can save time with explicitly ensuring that it does not call the functions. Change-Id: Iaf991a6c77bbc4908c459307ca7e645cf3b3ca20 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* QHeaderView and others: Fix font lookup nameGabriel de Dietrich2015-12-211-1/+0
| | | | | | | | | | | | | | It should the the actual class name, without any suffix. This also allows us to use the painter font when rendering CE_HeaderLabel and, as a consequence, change QHeaderView's font through the usual methods. Change-Id: I0b13ee349f5fa505be66a9c884c26885f5fc468f Task-number: QTBUG-33855 Task-number: QTBUG-37153 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QtBase: remove explicit function info from qWarning() etcMarc Mutz2015-11-282-5/+5
| | | | | | | | | | | This information is already registered by the QMessageLogger ctor. Where, by dropping the << Q_FUNC_INFO in ostream-style qDebug(), only a string literal remained, converted to printf-style qDebug() on the go. Change-Id: I3f261c98fd7bcfa1fead381a75a82713bb75e6f3 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QCommonStyle: remove use of obsolete QStyleOption*V<N>Marc Mutz2015-11-192-50/+33
| | | | | | | They are obsolete since Qt 5.0. Change-Id: I96b03fa6b4986de7571caf368b692d2a037a026f Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2015-11-172-2/+14
|\ | | | | | | Change-Id: I6b1fe0c6c360a0d5285911869f0f4f93d86d822e
| * QStyleOption*V<N>: mark as \obsoleteMarc Mutz2015-11-051-0/+12
| | | | | | | | | | Change-Id: I6e4857bcfa7792bec4d38f6c65bfec15a52b4d30 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
| * [docs] QStyle: remove remaining references to QStyleOption*V<N>Marc Mutz2015-11-051-2/+2
| | | | | | | | | | | | | | They are all obsolete since Qt 5.0. Change-Id: Ief9111057137c3bd091630430a23681095b73510 Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
| * Fix Vista style compilation with QT_NO_ACCESSIBILITYDyami Caliri2015-10-301-2/+4
| | | | | | | | | | | | | | | | A recent change uses an accessibility function even if accessibility is disabled. Change-Id: Ibf9afbb90120772065743b2f9dd3615e4e6a2f37 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* | QWindows*Style: remove use of obsolete QStyleOption*V<N>Marc Mutz2015-11-045-54/+34
| | | | | | | | | | | | | | They are obsolete since Qt 5.0. Change-Id: I59f8b30ec877c5124922ab12ef38fbe33a1ae6b8 Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
* | QMacStyle: remove use of obsolete QStyleOption*V<N>Marc Mutz2015-11-041-37/+28
| | | | | | | | | | | | | | They are obsolete since Qt 5.0. Change-Id: If62187e39bf18dcd6d019ae4bca58c54c6a241ca Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
* | QAndroidStyle: remove use of obsolete QStyleOption*V<N>Marc Mutz2015-11-031-12/+7
| | | | | | | | | | | | | | They are obsolete since Qt 5.0. Change-Id: I1295ba7a8895b1f066b8714dda40afd619018dce Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
* | QStyleSheetStyle: remove use of obsolete QStyleOption*V<N>Marc Mutz2015-11-031-16/+16
| | | | | | | | | | | | | | | | They are obsolete since Qt 5.0. Change-Id: I3bf9926fada136dda7406dc5f7b8edb3c71b55a9 Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | QMacStyle: Select high-dpi pixmaps from iconsMorten Johan Sørvig2015-10-301-8/+19
| | | | | | | | | | | | | | | | | | | | Pass a QWindow pointer to QIcon::pixmap(), which allows it to select a pixmap based on the target device pixel ratio. Change-Id: Ifb8e49c0eff0a42233a90eee3dfb995c2441bfd6 Task-number: QTBUG-38100 Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>