import Qt 4.7
Rectangle {
+ id: rectangle1
+ color: myPalette.base
+ anchors.fill: parent
function changeWordState(nr, state) {
wordList.currentIndex = nr
wordModel.setModelProperty(wordList.currentIndex, state, "isBookmarked")
+ }
+ function changeWordStateByIndex() {
+ wordModel.setModelPropertyByIndex(wordList.currentIndex, "isBookmarked")
}
- function setEnabled(Boolean) { wordList.enabled = Boolean } // slot
+ function setEnabled(Boolean) { wordList.enabled = Boolean }
+ function setWordListEmpty(Boolean) { wordList.empty = Boolean }
+ function setFocus() {
+ wordList.setFocus()
+ }
signal wordSelected(string word);
-
+ signal wordSelectedByIndex(int nr);
+ signal checkFocus();
SystemPalette { id: myPalette; colorGroup: SystemPalette.Active }
- id: rectangle1
- color: myPalette.base
- anchors.fill: parent
-
ElementsListView{
id: wordList
width: rectangle1.width
anchors.fill: parent
highlightResizeSpeed: 1000
+ property bool empty: false
+
+ Keys.onPressed: {
+ if (event.key == Qt.Key_Space && currentIndex >= 0){
+ rectangle1.changeWordStateByIndex();
+ } else if ((event.key == Qt.Key_Return || event.key == Qt.Key_Enter) && currentIndex >= 0){
+ rectangle1.wordSelectedByIndex(currentIndex)
+ }
+ }
delegate: Component{
id: wordListDelegate
Item {
+ onActiveFocusChanged: rectangle1.checkFocus();
+
width: rectangle1.width
height: {
if (wordText.height + 4 > check.height)
else
return check.height;
}
-
MouseArea{
anchors.fill: parent
- onClicked: {
+ onClicked: wordList.currentIndex = index
+ onDoubleClicked: {
wordList.currentIndex = number
rectangle1.wordSelected(word)
}
Text {
id: wordText
anchors.verticalCenter: parent.verticalCenter
- text:
- {
- if (word == "!@#$%"){
- qsTr("Can't find any matching words")
- } else {
- word
- }
- }
+ text: word
}
Checkbox{
pathToUncheckedImage: UncheckedPath
anchors.right: parent.right
anchors.rightMargin: 5
-
+ pathToCheckedDicImage: CheckedPath
+ pathToUncheckedDicImage: UncheckedPath
anchors.verticalCenter: parent.verticalCenter
onChanged: rectangle1.changeWordState(number, selected)
- visible: {
- if (word == "!@#$%"){
- false
- } else {
- true
- }
- }
}
-
}
+ }
+
+ Text {
+ id: emptyText
+ anchors.top: parent.top
+ anchors.left: parent.left
+ text: qsTr("Can't find any matching words")
+ }
+ Rectangle {
+ id: shadeDisable
+ anchors.centerIn: parent;
+ color: "grey";
+ opacity: 0
+ width: parent.width;
+ height: parent.height;
}
model: wordModel
+
+ states: [
+ State {
+ name: "empty"
+ when: (wordList.empty == true);
+ PropertyChanges { target: emptyText; visible: true}
+ },
+ State {
+ name: "non-empty"
+ when: (wordList.empty == false);
+ PropertyChanges { target: emptyText; visible: false}
+ },
+ State {
+ name: "enabled"
+ when: (wordList.enabled == true);
+ PropertyChanges { target: shadeDisable; z: 30; opacity: 0.5 }
+ },
+ State {
+ name: "disabled"
+ when: (wordList.enabled == false);
+ PropertyChanges { target: shadeDisable; z: 30; opacity: 0.0 }
+ }
+ ]
}
+
+ states: [
+ State {
+ name: "noFocus";
+ when: ((!wordList.focus) && (!rectangle1.focus))
+ PropertyChanges { target: wordList.highlightItem; opacity:0}
+ }
+ ]
}