@@ -16,6 +16,7 @@
17import QtQuick 2.4
17import QtQuick 2.4
18import AccountsService 0.1
18import AccountsService 0.1
19import GlobalShortcut 1.0
20import GlobalShortcut 1.0
20import QMenuModel 0.1
21import QMenuModel 0.1
21import Unity.Application 0.1
22import Unity.Application 0.1
@@ -23,6 +24,9 @@ import Unity.Application 0.1
27+ // to be set from Shell.qml
28+ property bool hasKeyboard
26 GlobalShortcut {
30 GlobalShortcut {
27 shortcut: Qt.MetaModifier|Qt.Key_Space
31 shortcut: Qt.MetaModifier|Qt.Key_Space
28 onTriggered: root.nextKeymap()
32 onTriggered: root.nextKeymap()
@@ -79,16 +83,31 @@ Item {
81 onCurrentKeymapIndexChanged: {
85 onCurrentKeymapIndexChanged: {
82− print("!!! Current keymap index changed:", currentKeymapIndex)
83 actionGroup.currentAction.updateState(currentKeymapIndex);
86 actionGroup.currentAction.updateState(currentKeymapIndex);
86 readonly property int activeActionState: actionGroup.activeAction.valid ? actionGroup.activeAction.state : -1
89 readonly property int activeActionState: actionGroup.activeAction.valid ? actionGroup.activeAction.state : -1
88 onActiveActionStateChanged: {
91 onActiveActionStateChanged: {
89− print("!!! Active keymap changed (via indicator) to:", activeActionState);
90 if (activeActionState != -1) {
92 if (activeActionState != -1) {
91 currentKeymapIndex = activeActionState;
93 currentKeymapIndex = activeActionState;
97+ // indicator visibility
100+ schema.id: "com.canonical.indicator.keyboard"
103+ function updateIndicatorVisibility() {
104+ settings.visible = keymapCount > 1 && hasKeyboard;
107+ onHasKeyboardChanged: updateIndicatorVisibility();
108+ onKeymapCountChanged: updateIndicatorVisibility();
110+ Component.onCompleted: {
111+ updateIndicatorVisibility();