07cf2060f5615f3fc76fb3e5f2200e662c30bf6f
[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 }  // slot
36
37     signal wordSelected(string word);
38
39
40     SystemPalette { id: myPalette; colorGroup: SystemPalette.Active }
41
42     id: rectangle1
43     color: myPalette.base
44     anchors.fill: parent
45
46     ElementsListView{
47         id: wordList
48         width: rectangle1.width
49
50         anchors.fill: parent
51         highlightResizeSpeed: 1000
52
53         delegate: Component{
54             id: wordListDelegate
55             Item {
56                 width: rectangle1.width
57                 height: {
58                     if (wordText.height + 4 > check.height)
59                             return wordText.height + 4;
60                     else
61                             return check.height;
62                 }
63
64                 MouseArea{
65                     anchors.fill: parent
66                     onClicked: {
67                         wordList.currentIndex = number
68                         rectangle1.wordSelected(word)
69                     }
70                 }
71
72
73                 Text {
74                     id: wordText
75                     anchors.verticalCenter: parent.verticalCenter
76                     text:
77                     {
78                         if (word == "!@#$%"){
79                             qsTr("Can't find any matching words")
80                         } else {
81                             word
82                         }
83                     }
84                 }
85
86                 Checkbox{
87                     id: check
88                     width: wordText.height
89                     selected: isBookmarked
90                     pathToCheckedImage: CheckedPath
91                     pathToUncheckedImage: UncheckedPath
92                     anchors.right: parent.right
93                     anchors.rightMargin: 5
94
95                     anchors.verticalCenter: parent.verticalCenter
96                     onChanged: rectangle1.changeWordState(number, selected)
97                     visible: {
98                         if (word == "!@#$%"){
99                             false
100                         } else {
101                             true
102                         }
103                     }
104                 }
105
106             }
107
108         }
109
110         model: wordModel
111     }
112 }