Merge branch 'master' of ssh://drop.maemo.org/git/mdictionary
[mdictionary] / src / mdictionary / qml / Checkbox.qml
index 3ef0fc3..75046e3 100644 (file)
@@ -29,7 +29,15 @@ Image {
     property bool selected
     property string pathToCheckedImage: "qrc:/button/checkboxChecked.png"
     property string pathToUncheckedImage: "qrc:/button/checkbox.png"
+    property string pathToCheckedDicImage: "qrc:/button/checkboxCheckedDis.png"
+    property string pathToUncheckedDicImage: "qrc:/button/checkboxDis.png"
     signal changed
+
+    Keys.onPressed: {
+        if (event.key == Qt.Key_Space)
+            selected=!selected
+    }
+
     height: {
         var aspectRatio = sourceSize.height / sourceSize.width
         return checkbox.width * aspectRatio
@@ -38,24 +46,55 @@ Image {
     smooth: true
     states: [
         State {
-            name: "checked";
-            when: (checkbox.selected == true);
+            name: "checkeEn";
+            when: (checkbox.selected && checkbox.enabled);
 
             PropertyChanges { target: checkbox; source: pathToCheckedImage }
         },
         State {
-            name: "unchecked";
-            when: (checkbox.selected == false);
+            name: "uncheckeEn";
+            when: ( !checkbox.selected && checkbox.enabled);
 
             PropertyChanges { target: checkbox; source: pathToUncheckedImage }
+        },
+        State {
+            name: "checkeDi";
+            when: (checkbox.selected && !checkbox.enabled);
+
+            PropertyChanges { target: checkbox; source: pathToCheckedDicImage }
+        },
+        State {
+            name: "uncheckeDi";
+            when: ( !checkbox.selected && !checkbox.enabled);
+
+            PropertyChanges { target: checkbox; source: pathToUncheckedDicImage }
         }
     ]
     MouseArea{
         id: area
         anchors.fill: parent
         onClicked: {
-            checkbox.selected = !checkbox.selected
-            changed()
+            if(checkbox.enabled){
+               checkbox.selected = !checkbox.selected
+               changed()
+            }
         }
     }
+
+    Rectangle{
+        id: focusRectangle
+        color: "#000000"
+        border.color: "#000000"
+        opacity: 0;
+        radius: 1
+        anchors.centerIn: parent
+        z:1;
+    }
+
+    onFocusChanged: {
+        if(focus)
+            focusRectangle.opacity=0.5;
+        else
+            focusRectangle.opacity=0;
+    }
 }