Fix random error when remove word from bookmark. Fix show all bookmark feature.
[mdictionary] / src / mdictionary / qml / WordListWidget.qml
1 /*******************************************************************************
2
3     This file is part of mDictionary.
4
5     mDictionary is free software: you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation, either version 3 of the License, or
8     (at your option) any later version.
9
10     mDictionary is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14
15     You should have received a copy of the GNU General Public License
16     along with mDictionary.  If not, see <http://www.gnu.org/licenses/>.
17
18     Copyright 2010 Comarch S.A.
19
20 *******************************************************************************/
21 /*!
22     author: Marcin Kaźmierczak <marcin.kazmierczak@comarch.pl>
23 */
24
25 import Qt 4.7
26
27 Rectangle {
28
29     function changeWordState(nr, state) {
30         wordList.currentIndex = nr
31         wordModel.setModelProperty(wordList.currentIndex, state, "isBookmarked")
32
33     }
34
35     function setEnabled(Boolean) { wordList.enabled = Boolean }
36
37     signal wordSelected(string word);
38
39     SystemPalette { id: myPalette; colorGroup: SystemPalette.Active }
40
41     id: rectangle1
42     color: myPalette.base
43     anchors.fill: parent
44
45     ElementsListView{
46         id: wordList
47         width: rectangle1.width
48
49         anchors.fill: parent
50         highlightResizeSpeed: 1000
51
52         delegate: Component{
53             id: wordListDelegate
54             Item {
55                 width: rectangle1.width
56                 height: {
57                     if (wordText.height + 4 > check.height)
58                             return wordText.height + 4;
59                     else
60                             return check.height;
61                 }
62
63                 MouseArea{
64                     anchors.fill: parent
65                     onClicked: {
66                         wordList.currentIndex = number
67                         rectangle1.wordSelected(word)
68                     }
69                 }
70
71
72                 Text {
73                     id: wordText
74                     anchors.verticalCenter: parent.verticalCenter
75                     text:
76                     {
77                         if (word == "!@#$%"){
78                             qsTr("Can't find any matching words")
79                         } else {
80                             word
81                         }
82                     }
83                 }
84
85                 Checkbox{
86                     id: check
87                     width: wordText.height
88                     selected: isBookmarked
89                     pathToCheckedImage: CheckedPath
90                     pathToUncheckedImage: UncheckedPath
91                     anchors.right: parent.right
92                     anchors.rightMargin: 5
93
94                     anchors.verticalCenter: parent.verticalCenter
95                     onChanged: rectangle1.changeWordState(number, selected)
96                     visible: {
97                         if (word == "!@#$%"){
98                             false
99                         } else {
100                             true
101                         }
102                     }
103                 }
104
105             }
106
107         }
108
109         model: wordModel
110     }
111 }