Windows, Button.qml: inherit from DefaultButton, and remove duplicated code
Let Button.qml inherit from DefaultButton.qml, since they share a lot of the same code. This then means we can remove a lot of the duplicated code. We will also get any bug fixes done to DefaultButton.qml for free, like ensuring that you can use Button together with custom background delegates. Pick-to: 6.2 6.1 Fixes: QTBUG-95544 Change-Id: Ie5edae58a44ae6e7b86cc016a07439844e387b1e Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
This commit is contained in:
parent
20054ba885
commit
9738d49b65
|
@ -36,27 +36,11 @@
|
||||||
|
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Controls.impl
|
import QtQuick.Controls.impl
|
||||||
import QtQuick.Templates as T
|
|
||||||
import QtQuick.NativeStyle as NativeStyle
|
import QtQuick.NativeStyle as NativeStyle
|
||||||
|
|
||||||
T.Button {
|
NativeStyle.DefaultButton {
|
||||||
id: control
|
id: control
|
||||||
|
|
||||||
readonly property bool __nativeBackground: background instanceof NativeStyle.StyleItem
|
|
||||||
|
|
||||||
// Since QQuickControl will subtract the insets from the control size to
|
|
||||||
// figure out the background size, we need to reverse that here, otherwise
|
|
||||||
// the control ends up too big.
|
|
||||||
implicitWidth: implicitBackgroundWidth + leftInset + rightInset
|
|
||||||
implicitHeight: implicitBackgroundHeight + topInset + bottomInset
|
|
||||||
|
|
||||||
font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined
|
|
||||||
|
|
||||||
leftPadding: __nativeBackground ? background.contentPadding.left : 5
|
|
||||||
rightPadding: __nativeBackground ? background.contentPadding.right : 5
|
|
||||||
topPadding: __nativeBackground ? background.contentPadding.top : 5
|
|
||||||
bottomPadding: __nativeBackground ? background.contentPadding.bottom : 5
|
|
||||||
|
|
||||||
background: NativeStyle.Button {
|
background: NativeStyle.Button {
|
||||||
control: control
|
control: control
|
||||||
contentWidth: contentItem.implicitWidth
|
contentWidth: contentItem.implicitWidth
|
||||||
|
@ -79,11 +63,6 @@ T.Button {
|
||||||
Behavior on opacity { NumberAnimation { duration: hoverButton.transitionDuration } }
|
Behavior on opacity { NumberAnimation { duration: hoverButton.transitionDuration } }
|
||||||
}
|
}
|
||||||
|
|
||||||
icon.width: 24
|
|
||||||
icon.height: 24
|
|
||||||
icon.color: control.checked || control.highlighted ? control.palette.brightText :
|
|
||||||
control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText
|
|
||||||
|
|
||||||
contentItem: IconLabel {
|
contentItem: IconLabel {
|
||||||
spacing: control.spacing
|
spacing: control.spacing
|
||||||
mirrored: control.mirrored
|
mirrored: control.mirrored
|
||||||
|
|
Loading…
Reference in New Issue