Commit Graph

473 Commits (c2cc74f862df3bbc8bf7c8ecd5909af9de3d95ca)

Author SHA1 Message Date
Friedemann Kleint 7daf920e97 Fusion style: Use QStyleHelper::dpiScaled() where applicable.
When running unscaled on a high resolution display, some items
are too small. This patch converts most values returned by
QFusionStyle::pixelMetric() via QStyleHelper::dpiScaled(). Some
adjustments have been done to RadioButton, CheckBox, Slider and
SpinBox.

On systems with 96dpi, FusionStyle should still look exactly as
before this patch.

Task-number: QTBUG-40277
Task-number: QTBUG-38858
Change-Id: I2683a8a4db615d01c08f4d6f559417b995c0eb1a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2014-07-21 11:40:08 +02:00
Philippe Lelong 4a1120a2f1 Fix various issues with qandroidstyle
-Add style for checkable QGroupBox
 -Add style for checkable QItemView
 -Fix QSpinboxes contents size and position
 -Fix QTreeView and QTableView headers size and position
 -Fix Slider thumb position incorrect if minimum is not zero
Task-number: QTBUG-38717
Task-number: QTBUG-38325
Task-number: QTBUG-37965
Change-Id: I737f8d6f2d1c25d16aca0ce5de6b81884839409d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-07-10 16:53:11 +02:00
Frederik Gladhorn 39a290af6c Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
	src/gui/accessible/qaccessiblecache_mac.mm
	src/gui/accessible/qaccessiblecache_p.h
	src/plugins/platforms/cocoa/qcocoaaccessibilityelement.h
	src/plugins/platforms/cocoa/qcocoawindow.h
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/widgets/kernel/qwidget_qpa.cpp

Manually moved change in qwidget_qpa.cpp to qwidget.cpp
    (cd07830e3b)

Change-Id: Ia51f471f9b53de2f3b07d77ea89db9303ac8961d
2014-07-03 23:56:45 +02:00
Tim Blechmann 4f155b0535 Cocoa: Fix Qt-in-namespace build.
Wrap cocoa classes in namespace macros.

Task-number: QTBUG-39382
Change-Id: Id840e666105afca21760fcb529b5765e0a534120
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-07-02 12:56:06 +02:00
Gabriel de Dietrich 769af66893 QMacStyle: Fix focus frame rendering in Yosemite
Using the HITheme API would result in the frame's right edge
to be missing.

Instead, we use the recommended technique to draw the focus 
ring around a custom NSCell. (See 
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ControlCell/Articles/ManipulateCellControl.html)

Change-Id: I12d4834d353b5cbd5893bf070b14ad0d8bb75634
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-07-02 12:44:49 +02:00
Frederik Gladhorn a09a8d509a Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
	mkspecs/qnx-x86-qcc/qplatformdefs.h
	src/corelib/global/qglobal.h
	src/network/socket/qnativesocketengine_winrt.cpp
	src/plugins/platforms/android/androidjniaccessibility.cpp
	src/plugins/platforms/windows/qwindowswindow.cpp

Manually adjusted:
	mkspecs/qnx-armle-v7-qcc/qplatformdefs.h
	to include 9ce697f2d5

Thanks goes to Sergio for the qnx mkspecs adjustments.

Change-Id: I53b1fd6bc5bc884e5ee2c2b84975f58171a1cb8e
2014-07-01 16:25:19 +02:00
Gabriel de Dietrich 83f06da1c6 Mac Style: Fix QLineEdit frame in 10.10
Also removes some dead code.

Change-Id: Id590bd56641918a163f8bad251e3e0e750adfc6f
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-06-30 17:02:39 +02:00
J-P Nurmi 5de4ed9db3 QMac/FusionStyle: fix the background color for transient scrollbars
Task-number: QTBUG-39922
Change-Id: I4b313296ae845bc9e116494aa66c577b432b4a67
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-06-30 14:57:40 +02:00
Andy Shaw 47b3ecf3f4 Remove the widget from the stylesheet cache before polishing
If the widget exists in the style rules cache before it polishes for the
first time then it should be removed from styleSheetCache too so that the
latest set stylesheet is used for the polishing.

Task-number: QTBUG-39427
Change-Id: Ic1e7988afe530f16ea9996bae56543ed554d6be9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-06-20 07:10:21 +02:00
J-P Nurmi 0fcce50af0 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/features/qt.prf
	src/plugins/platforms/xcb/qxcbwindow.h
	src/tools/qdoc/qdocindexfiles.cpp
	src/widgets/kernel/qwidget_qpa.cpp

Change-Id: I214f57b03bc2ff86cf3b7dfe2966168af93a5a67
2014-06-05 22:26:44 +02:00
Gabriel de Dietrich 4a6df5ec95 Mac Style: Don't crash when rendering PE_IndicatorBranch without widget
Change-Id: I45784af3738807ab6753b67a5b103a65d4e28084
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
2014-06-05 08:50:59 +02:00
Jake Petroules 9e6a47d5e2 Use accurate title/status bar gradient colors on OS X.
QMacStyle now uses proper system colors when drawing status bars.

Change-Id: I618e485a2a68a484f7c8cb5635cd2bf529126c02
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-05-26 14:12:15 +02:00
Andy Shaw f7af9fb632 Account for the sort indicator being placed above the text on Vista
In WindowsVista style and later the sort indicator is placed above the
text as opposed to alongside it. Therefore the extra space given is moved
to the common style allowing styles that have it placed differently to
easily ensure it is not included.

Task-number: QTBUG-19915
Change-Id: Ic21fcc1d95f4c3cc2eb9c465e1c8afb9b805389a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-05-26 11:03:15 +02:00
Simon Hausmann 508b95899d Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Ia36e93771066d8abcf8123dbe2362c5c9d9260fc
2014-05-22 07:46:17 +02:00
Jake Petroules 518d874bc8 QMacStyle: Always draw status bar in active state if the window is main.
On OS X, most controls are drawn active or inactive based on their
window's main state, NOT its key ("active" in Qt) state.

Change-Id: If447d0a537bc594978f7202e7888ceacb54ec8fa
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-05-17 02:07:36 +02:00
Ivan Komissarov b861c43395 Removed unused variable macItemVMargin in qmacstyle_mac.mm.
Change-Id: Ib888781238f6cc9407732431219e570299a47198
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-05-13 16:08:01 +02:00
Frederik Gladhorn ff334fd574 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2014-05-13 16:08:01 +02:00
Frederik Gladhorn b5552bab40 Merge remote-tracking branch 'origin/stable' into dev
Manually changed enum to LibGL in
    src/plugins/platforms/xcb/qglxintegration.cpp

Change-Id: If34ee6cce3d1d51fb4bb1fdfa59c30389ea0d207
2014-05-13 14:21:22 +02:00
Jens Bache-Wiig 112b8e49c2 Fix widget margins on Mac with style sheets
Previously we have rejected this issue as you can work around it
by setting Qt::WA_LayoutUsesWidgetRect per widget. However there
is no reason to apply the negative mac style layout margins on any
custom style so I think we should completely bypass it unless the
native border is used.

Task-number: QTBUG-13050
Change-Id: I8923e07d868c51a13587993c9b2ce79c51beaeee
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-05-09 11:01:16 +02:00
Jake Petroules f230223aef Remove trailing whitespace.
Change-Id: Id487c8951d7f258c57fa71fd35a60ddb8c5a3fb2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-05-08 08:40:54 +02:00
Frederik Gladhorn 1326cd15f7 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/qnx-x86-qcc/qplatformdefs.h
	src/corelib/global/qglobal.h
	src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
	src/opengl/qgl.cpp
	src/opengl/qglpixelbuffer.cpp
	src/opengl/qglshaderprogram.cpp
	tests/auto/opengl/qglthreads/tst_qglthreads.cpp

Change-Id: Iaba137884d3526a139000ca26fee02bb27b5cdb5
2014-05-06 16:50:03 +02:00
Ivan Komissarov 926d7f46f5 Fixed wrong condition in QMacStyle.
Change-Id: I003e59bd50754dbbda23de5c55096ca2d25b7a7a
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-05-03 07:02:48 +02:00
Gabriel de Dietrich a006ede6e7 Mac style: Get proper ThemeButtonKind for QDateTimeEdit
When it gets 'calendarPopup' set, that is.

The reason lies, indirectly, in the extra margins we add to
QComboBoxes and other QPushButtons in the Mac style. However,
these extra margins do not apply to spinboxes, which is what
QDateTimeEdit is.

In particular, this causes Designer to show QDateTimeEdit at
the wrong size when it's not in a layout.

Task-number: QTBUG-38615
Change-Id: I3dd52e10db8c8970a6dc40b39fbe29dd86167daa
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-05-02 17:36:45 +02:00
Andy Shaw da888ba539 Only query for the theme if it is available in the GTKStyle
If the theme is not available then it should not try to use it when
getting the file system icon as it will cause a number of messages to be
outputted to the console as it is an invalid call.

Change-Id: I33003568f6785ee423c4a6e079a6c62c95145cbc
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2014-05-02 12:16:07 +02:00
Ivan Komissarov 0b7bcb996d Removed unused function qcolorFromCGColor() in qmacstyle_mac.mm.
Change-Id: Id001ff3087e7317bbcd66cd22a91a4a67942567f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-28 20:05:18 +02:00
Frederik Gladhorn 98d3e40fb7 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/qnx-armv7le-qcc/qplatformdefs.h
	src/printsupport/kernel/qcups.cpp
	src/widgets/styles/qstyle.h
	tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp

Change-Id: Ia41e13051169a6d4a8a1267548e7d47b859bb267
2014-04-11 14:36:55 +02:00
Morten Johan Sørvig 3876a05adf Mac: Implement unified toolbar look for QTabBar
Extend the unified title and toolbar gradient to 
tabs in document mode that are adjacent unified
tool bars.

Change the updateMacBorderMetrics() function to
register the tab bar geometry and visibility status
with the Cocoa platform plugin. The Cocoa platform
plugin will then merge this area with other registered
areas if possible.

Add QCocoaNativeInterface::testContentBorderPosition(). 
This function tests whether the given point is within 
the unified title and toolbar area.

Use testContentBorderPosition() in QMacStyle to enable 
code paths that skips drawing the QToolBar bottom 
separator line and paints the active tab background 
with transparent pixels to make the background gradient 
visible.

Change-Id: I2b70f9bb0c2c59af053a691a7df538f958783dab
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-09 20:53:06 +02:00
Gabriel de Dietrich 30e6d442ff Mac style: Fix one-pixel offset for combo boxes in small size
Change-Id: I744c102bd086742b1052ed547e50037dddff4654
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-04-08 09:34:47 +02:00
Gabriel de Dietrich 1a4fc0a129 QStyle: Add new SH_ComboBox_UseNativePopup style hint
If the style hints it, QComboBox::showPopup() will try to
show a native popup instead. This is currently undocumented
and an opt-in feature (typically by using a proxy style).

Works only on Mac so far.

Task-number: QTBUG-32731
Change-Id: I4447e884cbd6b490f3039c7a95168698c0bed16e
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-04-07 17:33:51 +02:00
Friedemann Kleint 5e6697bf20 Remove qobject_cast to QDockWidget in QWindowsVistaStyle.
Rearrange checks in handling of CE_DockWidgetTitle
to be consistent with the other styles.

Task-number: QTBUG-37350

Change-Id: I8f5d11092eff96337ff1e685d3c42fbb2f128827
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2014-04-07 12:38:30 +02:00
Morten Johan Sørvig d6202762c1 OS X: Fix QRubberBand drawing on retina displays
Extend the existing rect adjustment to cover the
upper/left edges as well. Check for a valid rect
before drawing.

Task-number: QTBUG-34534
Change-Id: I156abf4fb52924c350ec24fb44eadca86b2d5339
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Steve Mokris <smokris@softpixel.com>
2014-04-03 11:07:07 +02:00
Frederik Gladhorn 3b5c0bc078 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/gui/image/qjpeghandler.cpp

Change-Id: I9db3acea7d5c82f5da679c8eaeb29431136665f0
2014-03-24 16:10:15 +01:00
Gabriel de Dietrich 9637b5f7f0 Mac theming: Remove obsolete private color conversion functions
Change-Id: I165eea19c8e50f981a9fa48c14f0d63c40951747
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-21 18:02:15 +01:00
Gabriel de Dietrich b145c1db00 Mac theming: Set background brush for menu palette
We also remove overriding the background when polishing the palette
in QMacStyle. This is a leftover from pre-10.5 styling.

Change-Id: Icaa6d9c864ab01783d83cc02192981136c417d24
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-21 18:02:10 +01:00
Jens Bache-Wiig 23595107cd Respect scrollbar position setting on Mac
This was a regression from Qt 4.7.

[ChangeLog][Widgets][QScrollArea] Respect scrollbar setting for
click-position on Mac.

Task-number: QTBUG-36314
Change-Id: I8bdb1aec9b308b0907f5db29d3519998bc843c18
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2014-03-20 19:01:53 +01:00
J-P Nurmi 07fef5f3ff QFusionStyle: support transient scrollbars
QFusionStyle doesn't make scrollbars transient by default,
but the feature can be enabled with a proxy style:

class MyProxyStyle : public QProxyStyle
{
public:
    int styleHint(StyleHint sh, const QStyleOption *opt = 0,
                  const QWidget *w = 0, QStyleHintReturn *ret = 0) const
    {
        if (sh == QStyle::SH_ScrollBar_Transient)
            return 1;
        return QProxyStyle::styleHint(sh, opt, w, ret);
    }
};

Change-Id: Ibf169e219ad920cbe7edb06e128e09ed4d8faf96
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-20 16:55:23 +01:00
Mitch Curtis 9ad768fd19 QPushButton: draw label using the stylesheet's font.
The RenderRule for the stylesheet has the correct font information, it
just wasn't being set on the painter that draws the label.

Task-number: QTBUG-8990

Change-Id: I7cbaffc570421db04ebf3254cb6a21a68f7b868b
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-20 16:47:22 +01:00
aavit 83b3924cc3 Fixes: style runtime warnings when painting too small widgets
Trying to create a 0-size cache image would lead to trying to paint to
a null image, giving runtime warnings.

Task-number: QTBUG-37035
Change-Id: I0a7fdb19cc7548dea2770d6be4eb283f6b898ada
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-20 05:50:18 +01:00
Gabriel de Dietrich aae382ab3b QMenu: Enable sloppy submenu mouse navigation
Since we're in the 21st century, we set QCommonStyle to return true
to the SH_Menu_SloppySubMenus style hint. This unlocks all the logic
already available in QMenu.

Task-number: QTBUG-20094
[ChangeLog][QtWidgets][QMenu] Enable sloppy submenu mouse navigation
Change-Id: I134c87e348d98d1f46055e0bfef2b4a4a3d2993a
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-03-19 19:52:41 +01:00
Dimitar Asenov 9891c5051f Add a new optimization property to QGraphicsScene
The minimumRenderSize is a qreal value that is used as a lower bound to
determine what items are visible when a scene is rendered. If an item's
view-transformed width or height are less than minimumRenderSize then
this item is considered to insignificantly affect the final result and
is not drawn. If the item clips its children to its shape they are
automatically not drawn. This greatly reduces the drawing overhead
for scenes with many items rendered in a zoomed out view.

[ChangeLog][QtWidgets][QGraphicsScene] Added the minimumRenderSize
property which can be used to speed up rendering by not painting
items, smaller than a give size.

Change-Id: Ie208234707dffb4d2fc620fc5d1514e0c144d9a8
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
2014-03-18 19:29:16 +01:00
Friedemann Kleint 176342e70a QWindowsXP/VistaStyle: Fix detection of item view delegate line edits.
The old code tried to check the 2nd parent for inheritance from
QAbstractItemView. This also triggers for line edits on a QDialog parented
on the item view. Introduce convenience function that checks for
top levels in the chain.

Task-number: QTBUG-37504

Change-Id: I932f8efdb4764e9b1eea84c802bf7e8718338e1d
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-14 22:40:36 +01:00
Gabriel de Dietrich 9cd2dac348 Vista Style: More menu item pixel fixes for QtQuick Controls
Includes a one-pixel fix for widgets, where the menu item text
would be one pixel too far away from the vertical gutter.

Task-number: QTBUG-37451
Change-Id: I2539233814a427c5bed66a5c07584717eb3df418
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
2014-03-14 22:39:12 +01:00
J-P Nurmi 45f264b682 QGtkStyle: remove file dialog functionality
GTK+ 2.x file dialogs are now implemented in QGtk2PlatformTheme

Change-Id: I2babd6a35e7abd606ec5d047abbefbe3f0fbb892
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2014-03-14 15:27:47 +01:00
Risto Avila 376c9c9ae3 Makes QPlatformTheme::PasswordMaskDelay themable using QStyle
Creates new themable setting SH_LineEdit_PasswordMaskDelay which can be used
to override QPlatformTheme::PasswordMaskDelay. SH_LineEdit_PasswordMaskDelay defines number
in ms which the password character is visible when echoMode is set to Password

[ChangeLog][General][QStyle] Creates a new themable variable SH_LineEdit_PasswordMaskDelay

Change-Id: I26f0ddfda2b49bc293e00e8fcf62260cf4896ab2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-14 08:48:11 +01:00
J-P Nurmi 134527162a Update QStyle::sizeFromContents() docs
Task-number: QTBUG-37125
Change-Id: Id220312dab6b7e3e7de4932fd377f8850fe86e84
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-05 22:49:22 +01:00
Gabriel de Dietrich 14aae25d03 Vista Style: Fix menu item checkmark offset for QQuick Controls
Change-Id: I8d4a8f0d3a079a5569f9442f8d6d523f05daca60
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-04 15:59:05 +01:00
Jens Bache-Wiig 2a6c50aa26 Fix QDateEdit popup appearance on mac
The WS/OS was obviously incorrect and the hack seems not to be
needed any more.

[ChangeLog][QtWidgets][Mac] Fixed incorrect appearance
of QDateEdit with calendarPopup enabled.

Task-number: QTBUG-36692
Change-Id: Ic62c9993dc13e783c00fcb56f75d92967eb5074d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-03-04 15:59:05 +01:00
Gabriel de Dietrich e7874563e4 Windows Vista Style: Don't draw menubar item background for QQ Controls
In QtQuick Controls, we draw the full menubar background and the menubar
items on top. Unless in a particular state, there's no need to draw the
background or it may overlap with the menubar edge.

Change-Id: Ia35a73274cc10b3b5a3f55573c92919f99555db0
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-04 11:29:30 +01:00
Sergio Ahumada 7e872de76e Fix some typos
Change-Id: I7dbe938bff5ac3ab50a0197f94bdb2f6c22fbd16
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
2014-03-03 18:24:29 +01:00
Frederik Gladhorn dbafabb019 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/global/qglobal.h

Change-Id: I03d8b6e07135056baaa1d97c3c63fbe8b25583d9
2014-02-17 11:39:16 +01:00