mirror of
https://github.com/brmlab/brmbar.git
synced 2025-06-07 21:04:00 +02:00
52 lines
1.3 KiB
QML
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;
|
|
}
|
|
}
|
|
}
|