diff --git a/src/declarativeimports/plasmastyle/ButtonStyle.qml b/src/declarativeimports/plasmastyle/ButtonStyle.qml --- a/src/declarativeimports/plasmastyle/ButtonStyle.qml +++ b/src/declarativeimports/plasmastyle/ButtonStyle.qml @@ -37,71 +37,77 @@ property int minimumWidth property int minimumHeight - label: RowLayout { - spacing: units.smallSpacing - - property real minimumWidth: implicitWidth + style.padding.left + style.padding.right - onMinimumWidthChanged: { - if (control.minimumWidth !== undefined) { - style.minimumWidth = minimumWidth; - control.minimumWidth = minimumWidth; + label: Item { + implicitWidth: row.width + implicitHeight: row.height + RowLayout { + id: row + anchors.centerIn: parent + spacing: units.smallSpacing + + property real minimumWidth: implicitWidth + style.padding.left + style.padding.right + onMinimumWidthChanged: { + if (control.minimumWidth !== undefined) { + style.minimumWidth = minimumWidth; + control.minimumWidth = minimumWidth; + } } - } - property real minimumHeight: implicitHeight + style.padding.top + style.padding.bottom - onMinimumHeightChanged: { - if (control.minimumHeight !== undefined) { - style.minimumHeight = minimumHeight; - control.minimumHeight = minimumHeight; + property real minimumHeight: implicitHeight + style.padding.top + style.padding.bottom + onMinimumHeightChanged: { + if (control.minimumHeight !== undefined) { + style.minimumHeight = minimumHeight; + control.minimumHeight = minimumHeight; + } } - } - PlasmaCore.IconItem { - id: icon - source: control.iconName || control.iconSource - Layout.minimumWidth: valid ? units.iconSizes.tiny : 0 - Layout.preferredWidth: valid ? units.iconSizes.small : 0 - visible: valid - Layout.minimumHeight: Layout.minimumWidth - Layout.preferredHeight: Layout.preferredWidth - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - active: control.hovered - colorGroup: PlasmaCore.Theme.ButtonColorGroup - } + PlasmaCore.IconItem { + id: icon + source: control.iconName || control.iconSource + Layout.minimumWidth: valid ? units.iconSizes.tiny : 0 + Layout.preferredWidth: valid ? units.iconSizes.small : 0 + visible: valid + Layout.minimumHeight: Layout.minimumWidth + Layout.preferredHeight: Layout.preferredWidth + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + active: control.hovered + colorGroup: PlasmaCore.Theme.ButtonColorGroup + } - PlasmaComponents.Label { - id: label - Layout.fillHeight: true - text: Util.stylizeEscapedMnemonics(Util.toHtmlEscaped(control.text)) - textFormat: Text.StyledText - height: undefined - font: control.font || theme.defaultFont - visible: control.text != "" - Layout.fillWidth: true - color: theme.buttonTextColor - horizontalAlignment: icon.valid ? Text.AlignLeft : Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - elide: Text.ElideRight - } + PlasmaComponents.Label { + id: label + Layout.fillHeight: true + text: Util.stylizeEscapedMnemonics(Util.toHtmlEscaped(control.text)) + textFormat: Text.StyledText + height: undefined + font: control.font || theme.defaultFont + visible: control.text != "" + Layout.fillWidth: true + color: theme.buttonTextColor + horizontalAlignment: icon.valid ? Text.AlignLeft : Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + elide: Text.ElideRight + } - PlasmaExtras.ConditionalLoader { - id: arrow - when: control.menu !== null - visible: when - Layout.minimumWidth: units.iconSizes.small - Layout.maximumWidth: Layout.minimumWidth - Layout.alignment: Qt.AlignVCenter - height: width - - source: Component { - PlasmaCore.SvgItem { - visible: control.menu !== null - anchors.fill: parent - svg: PlasmaCore.Svg { - imagePath: "widgets/arrows" - colorGroup: PlasmaCore.Theme.ButtonColorGroup + PlasmaExtras.ConditionalLoader { + id: arrow + when: control.menu !== null + visible: when + Layout.minimumWidth: units.iconSizes.small + Layout.maximumWidth: Layout.minimumWidth + Layout.alignment: Qt.AlignVCenter + height: width + + source: Component { + PlasmaCore.SvgItem { + visible: control.menu !== null + anchors.fill: parent + svg: PlasmaCore.Svg { + imagePath: "widgets/arrows" + colorGroup: PlasmaCore.Theme.ButtonColorGroup + } + elementId: "down-arrow" } - elementId: "down-arrow" } } }