Fixed up keyboard switcher for smaller panels.

This commit is contained in:
wackyideas 2023-09-25 00:29:42 +02:00
parent 9db6a5fcc3
commit 8e2d11fbc7
1 changed files with 33 additions and 24 deletions

View File

@ -23,10 +23,17 @@ Item {
function actionTriggered(selectedLayout) { function actionTriggered(selectedLayout) {
layoutSelected(selectedLayout) layoutSelected(selectedLayout)
} }
PlasmaCore.FrameSvgItem {
id: panelSvg
visible: false
imagePath: "widgets/panel-background"
}
Plasmoid.preferredRepresentation: Plasmoid.compactRepresentation Plasmoid.preferredRepresentation: Plasmoid.compactRepresentation
Plasmoid.compactRepresentation: KeyboardLayoutSwitcher { Plasmoid.compactRepresentation: KeyboardLayoutSwitcher {
id: keySwitcher
Plasmoid.toolTipSubText: layoutNames.longName Plasmoid.toolTipSubText: layoutNames.longName
Plasmoid.status: hasMultipleKeyboardLayouts ? PlasmaCore.Types.ActiveStatus : PlasmaCore.Types.HiddenStatus Plasmoid.status: hasMultipleKeyboardLayouts ? PlasmaCore.Types.ActiveStatus : PlasmaCore.Types.HiddenStatus
@ -72,42 +79,44 @@ Item {
} }
PlasmaComponents3.Label { PlasmaComponents3.Label {
id: keyLabel
text: layoutNames.displayName || layoutNames.shortName text: layoutNames.displayName || layoutNames.shortName
visible: !icon.visible visible: !icon.visible
anchors.fill: parent anchors.fill: parent
anchors.margins: PlasmaCore.Units.smallSpacing*2 anchors.margins: PlasmaCore.Units.smallSpacing*2
//anchors.bottomMargin: PlasmaCore.Units.smallSpacing
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
fontSizeMode: Text.Fit fontSizeMode: Text.Fit
minimumPointSize: 9; minimumPointSize: 8;
rightPadding: PlasmaCore.Units.smallSpacing rightPadding: PlasmaCore.Units.smallSpacing
leftPadding: PlasmaCore.Units.smallSpacing leftPadding: PlasmaCore.Units.smallSpacing
font.pointSize: height font.pointSize: height
font.capitalization: Font.AllUppercase font.capitalization: Font.AllUppercase
MouseArea {
id: ma }
anchors.fill: parent MouseArea {
hoverEnabled: true id: ma
propagateComposedEvents: true anchors.fill: parent
onClicked: { anchors.margins: PlasmaCore.Units.smallSpacing+((0.3*keySwitcher.height) - 6.8)
mouse.accepted = false; hoverEnabled: true
} propagateComposedEvents: true
} onClicked: {
PlasmaCore.FrameSvgItem { mouse.accepted = false;
id: decorationButton }
z: -1 }
anchors.fill: parent PlasmaCore.FrameSvgItem {
imagePath: Qt.resolvedUrl("svgs/button.svg") id: decorationButton
visible: ma.containsMouse z: -1
prefix: { anchors.fill: parent
var x = "keyboard-"; anchors.margins: PlasmaCore.Units.smallSpacing+((0.3*keySwitcher.height) - 6.8)
if(ma.containsMouse && !ma.containsPress) return x+"hover"; imagePath: Qt.resolvedUrl("svgs/button.svg")
else if(ma.containsMouse && ma.containsPress) return x+"pressed"; visible: ma.containsMouse
else return "keyboard-hover"; prefix: {
} var x = "keyboard-";
if(ma.containsMouse && !ma.containsPress) return x+"hover";
else if(ma.containsMouse && ma.containsPress) return x+"pressed";
else return "keyboard-hover";
} }
} }
} }
} }