You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

95 lines
3.4 KiB

/*
* SPDX-FileCopyrightText: 2021 Aleix Pol Gonzalez <aleixpol@kde.org>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
import QtQuick 2.1
import QtQuick.Layouts 1.1
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 3.0 as PlasmaComponents3
import org.kde.plasma.extras 2.0 as PlasmaExtras
import org.kde.plasma.workspace.keyboardlayout 1.0 as Keyboards
import org.kde.kquickcontrolsaddons 2.0
Item {
id: root
property var overlays: []
Plasmoid.preferredRepresentation: Plasmoid.compactRepresentation
Plasmoid.fullRepresentation: Plasmoid.compactRepresentation
Plasmoid.compactRepresentation: PlasmaCore.IconItem {
source: plasmoid.icon
active: compactMouse.containsMouse
overlays: root.overlays
MouseArea {
id: compactMouse
anchors.fill: parent
hoverEnabled: true
onClicked: if (!Keyboards.KWinVirtualKeyboard.available) {
root.action_settings()
} else if (Keyboards.KWinVirtualKeyboard.visible) {
Keyboards.KWinVirtualKeyboard.active = false
} else {
Keyboards.KWinVirtualKeyboard.enabled = !Keyboards.KWinVirtualKeyboard.enabled
}
}
}
Component.onCompleted: {
plasmoid.setAction("settings", i18nc("Opens the system settings module", "Configure Virtual Keyboards..."),
"settings-configure")
}
function action_settings() {
KCMShell.openSystemSettings("kcm_virtualkeyboard");
}
states: [
State {
name: "available"
when: !Keyboards.KWinVirtualKeyboard.available
PropertyChanges {
target: plasmoid
icon: "input-keyboard-virtual-off"
toolTipSubText: i18n("Virtual Keyboard: unavailable")
status: PlasmaCore.Types.HiddenStatus
}
PropertyChanges { target: root; overlays: [ "emblem-unavailable" ] }
},
State {
name: "disabled"
when: Keyboards.KWinVirtualKeyboard.available && !Keyboards.KWinVirtualKeyboard.enabled
PropertyChanges {
target: plasmoid
icon: "input-keyboard-virtual-off"
toolTipSubText: i18n("Virtual Keyboard: disabled")
status: PlasmaCore.Types.ActiveStatus
}
PropertyChanges { target: root; overlays: [] }
},
State {
name: "visible"
when: Keyboards.KWinVirtualKeyboard.available && Keyboards.KWinVirtualKeyboard.visible
PropertyChanges { target: plasmoid
icon: "arrow-down"
toolTipSubText: i18n("Virtual Keyboard: visible")
status: PlasmaCore.Types.ActiveStatus
}
PropertyChanges { target: root; overlays: [] }
},
State {
name: "idle"
when: Keyboards.KWinVirtualKeyboard.available && Keyboards.KWinVirtualKeyboard.enabled && !Keyboards.KWinVirtualKeyboard.visible
PropertyChanges { target: plasmoid
icon: "input-keyboard-virtual-on"
toolTipSubText: i18n("Virtual Keyboard: enabled")
status: PlasmaCore.Types.ActiveStatus
}
PropertyChanges { target: root; overlays: [] }
}
]
}