[Bug 258570] Time selection dialog: Can only select hour 0-11 what about 15?

Tobias Koenig tokoe at kde.org
Thu Jan 6 11:52:50 GMT 2011


https://bugs.kde.org/show_bug.cgi?id=258570


Tobias Koenig <tokoe at kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED




--- Comment #1 from Tobias Koenig <tokoe kde org>  2011-01-06 12:52:48 ---

    A     mobile/lib/Switch.qml     [License: Trivialfile.]

commit a848ee55ada0936d52dd73e96865e80878182031
Author: Tobias Koenig <tokoe at kde.org>
Date:   Thu Jan 6 12:52:21 2011 +0100

    Add AM/PM switch to ClockDialog

    The switch allows to change AM/PM, so that the complete
    time range (0-23) can be set with the Clock QML element.

    BUG: 258570

diff --git a/mobile/lib/CMakeLists.txt b/mobile/lib/CMakeLists.txt
index 4dcf5cd..bf8ea53 100644
--- a/mobile/lib/CMakeLists.txt
+++ b/mobile/lib/CMakeLists.txt
@@ -120,6 +120,7 @@ install(FILES
   SearchDialog.qml
   SearchResultScreen.qml
   ItemEditButton.qml
+  Switch.qml
   DESTINATION ${PLUGIN_INSTALL_DIR}/imports/org/kde/pim/mobileui)
 install(FILES
   ${CMAKE_CURRENT_BINARY_DIR}/stylesheet.css
diff --git a/mobile/lib/Switch.qml b/mobile/lib/Switch.qml
new file mode 100644
index 0000000..6f472d0
--- /dev/null
+++ b/mobile/lib/Switch.qml
@@ -0,0 +1,81 @@
+import Qt 4.7
+
+Item {
+  id: toggleswitch
+  width: background.width
+  height: background.height
+
+  property bool on: false
+
+  function setOn( value )
+  {
+    if ( value )
+      toggleswitch.state = "on";
+    else
+      toggleswitch.state = "off";
+  }
+
+  function toggle() {
+    if ( toggleswitch.state == "on" )
+      toggleswitch.state = "off";
+    else
+      toggleswitch.state = "on";
+  }
+
+  function releaseSwitch() {
+    if ( handle.x == 1 ) {
+      if ( toggleswitch.state == "off" )
+        return;
+    }
+    if ( handle.x == 78 ) {
+      if ( toggleswitch.state == "on" )
+        return;
+    }
+
+    toggle();
+  }
+
+  Image {
+    id: background
+    source : "images/sliderbackground.png";
+    MouseArea {
+      anchors.fill: parent
+      onClicked: toggle()
+    }
+  }
+
+  Image {
+    id: handle
+    x: 1;
+    y: 2
+    source : "images/sliderhandle.png";
+
+    MouseArea {
+      anchors.fill: parent
+      drag.target: handle
+      drag.axis: Drag.XAxis
+      drag.minimumX: 1
+      drag.maximumX: 78
+
+      onClicked: toggle()
+      onReleased: releaseSwitch()
+    }
+  }
+
+  states: [
+    State {
+      name: "on"
+      PropertyChanges { target: handle; x: 78 }
+      PropertyChanges { target: toggleswitch; on: true }
+    },
+    State {
+      name: "off"
+      PropertyChanges { target: handle; x: 1 }
+      PropertyChanges { target: toggleswitch; on: false }
+    }
+  ]
+
+  transitions: Transition {
+    NumberAnimation { properties: "x"; easing.type: Easing.InOutQuad;
duration: 200 }
+  }
+}
diff --git a/mobile/lib/calendar/ClockDialog.qml
b/mobile/lib/calendar/ClockDialog.qml
index 1eadf48..679fbff 100644
--- a/mobile/lib/calendar/ClockDialog.qml
+++ b/mobile/lib/calendar/ClockDialog.qml
@@ -40,7 +40,7 @@ Dialog {
         anchors {
           left: parent.left
           top: parent.top
-          bottom: parent.bottom
+          bottom: amPmSwitch.top

           topMargin: 25
           bottomMargin: 25
@@ -59,6 +59,24 @@ Dialog {
         }
       }

+      KPIM.Switch {
+        id: amPmSwitch
+        anchors.bottom: parent.bottom
+        anchors.horizontalCenter: myClock.horizontalCenter
+
+        onOnChanged: {
+          if ( on ) { // pm selected
+            if ( myClock.hours < 12 ) {
+              myClock.hours = myClock.hours + 12;
+            }
+          } else { // am selected
+            if ( myClock.hours >= 12 ) {
+              myClock.hours = myClock.hours - 12;
+            }
+          }
+        }
+      }
+
       Column {
         spacing: 5
         anchors {
@@ -77,6 +95,7 @@ Dialog {

           onValueChanged: {
             myClock.hours = value;
+            amPmSwitch.setOn( myClock.hours >= 12 );
             clockWidgetOk.enabled = true;
           }
           onSelected: {
@@ -107,6 +126,7 @@ Dialog {
               minuteSelector.setValue(myClock.minutes);
           }
         }
+
       }
       Row {
         spacing: 5
diff --git a/mobile/lib/qmldir b/mobile/lib/qmldir
index 98af54b..fafb57d 100644
--- a/mobile/lib/qmldir
+++ b/mobile/lib/qmldir
@@ -43,3 +43,4 @@ ActionButton 4.5 ActionButton.qml
 ItemEditButton 4.5 ItemEditButton.qml
 DecoratedFlickable 4.5 DecoratedFlickable.qml
 DecoratedListView 4.5 DecoratedListView.qml
+Switch 4.5 Switch.qml

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the Kdepim-bugs mailing list