brmbar-github/brmbar3/brmbar-gui-qt4/BarKeyboard.qml
2013-03-04 22:02:11 +01:00

52 lines
1.3 KiB
QML

import Qt 4.7
Grid {
property string keys: ""
property string enteredText: ""
property int gridRows: 0
property int gridColumns: 0
property int buttonWidth: 80
property int buttonHeight: 80
property bool shift: false
signal letterBackspace()
signal letterEntered(string letter)
rows: gridRows
columns: gridColumns
spacing: 1
Repeater {
model: keys.length
BarButton {
width: buttonWidth; height: buttonHeight
property string key: shift ? keys.charAt(index).toUpperCase() : keys.charAt(index)
property bool special: key == "^" || key == "<"
text: key == "^" ? "shift" : key == "<" ? "bksp" : key
fontSize: 0.768 * (special ? 27 : 60)
onButtonClick: {
if (key == "^")
shift = !shift
else if (key == "<")
letterBackspace()
else {
letterEntered(key)
shift = false
}
}
}
}
onLetterEntered: { enteredText = enteredText.toString() + letter; }
onLetterBackspace: { enteredText = enteredText.toString().replace(/.$/, ''); }
Keys.onPressed: {
if (event.key == Qt.Key_Backspace) {
enteredText = enteredText.toString().replace(/.$/, '');
} else {
enteredText = enteredText.toString() + event.text;
}
}
}