Accidently left some debug code in
[gc-dialer] / src / gv_views.py
index 0ec77c5..03dea17 100644 (file)
@@ -17,6 +17,12 @@ Lesser General Public License for more details.
 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+@todo Add CTRL-V support to Dialpad
+@todo Touch selector for addressbook selection
+@todo Touch selector for callback number
+@todo Look into top half of dialogs being a treeview rather than a label
+@todo Alternate UI for dialogs (stackables)
 """
 
 from __future__ import with_statement
@@ -472,18 +478,18 @@ class Dialpad(object):
                self._smsDialog = SmsEntryDialog(widgetTree)
 
                self._numberdisplay = widgetTree.get_widget("numberdisplay")
+               self._smsButton = widgetTree.get_widget("sms")
                self._dialButton = widgetTree.get_widget("dial")
                self._backButton = widgetTree.get_widget("back")
                self._phonenumber = ""
                self._prettynumber = ""
 
                callbackMapping = {
-                       "on_dial_clicked": self._on_dial_clicked,
-                       "on_sms_clicked": self._on_sms_clicked,
                        "on_digit_clicked": self._on_digit_clicked,
-                       "on_clear_number": self._on_clear_number,
                }
                widgetTree.signal_autoconnect(callbackMapping)
+               self._dialButton.connect("clicked", self._on_dial_clicked)
+               self._smsButton.connect("clicked", self._on_sms_clicked)
 
                self._originalLabel = self._backButton.get_label()
                self._backTapHandler = gtk_toolbox.TapOrHold(self._backButton)
@@ -563,12 +569,6 @@ class Dialpad(object):
                except Exception, e:
                        self._errorDisplay.push_exception()
 
-       def _on_clear_number(self, *args):
-               try:
-                       self.clear()
-               except Exception, e:
-                       self._errorDisplay.push_exception()
-
        def _on_digit_clicked(self, widget):
                try:
                        self.set_number(self._phonenumber + widget.get_name()[-1])
@@ -651,7 +651,7 @@ class AccountInfo(object):
                        self._smsCheckbox.set_active(self._notifyOnSms)
 
                        self._onNotifyToggled = self._notifyCheckbox.connect("toggled", self._on_notify_toggled)
-                       self._onMinutesChanged = self._minutesEntryButton.connect("clicked", self._on_minutes_changed)
+                       self._onMinutesChanged = self._minutesEntryButton.connect("clicked", self._on_minutes_clicked)
                        self._onMissedToggled = self._missedCheckbox.connect("toggled", self._on_missed_toggled)
                        self._onVoicemailToggled = self._voicemailCheckbox.connect("toggled", self._on_voicemail_toggled)
                        self._onSmsToggled = self._smsCheckbox.connect("toggled", self._on_sms_toggled)
@@ -754,7 +754,7 @@ class AccountInfo(object):
 
        def _set_callback_number(self, number):
                try:
-                       if not self._backend.is_valid_syntax(number):
+                       if not self._backend.is_valid_syntax(number) and 0 < len(number):
                                self._errorDisplay.push_message("%s is not a valid callback number" % number)
                        elif number == self._backend.get_callback_number():
                                logging.warning(
@@ -802,11 +802,33 @@ class AccountInfo(object):
                except Exception, e:
                        self._errorDisplay.push_exception()
 
-       def _on_minutes_changed(self, *args):
+       def _on_minutes_clicked(self, *args):
+               recurrenceChoices = [
+                       (1, "1 minute"),
+                       (3, "3 minutes"),
+                       (5, "5 minutes"),
+                       (10, "10 minutes"),
+                       (15, "15 minutes"),
+                       (30, "30 minutes"),
+                       (45, "45 minutes"),
+                       (60, "1 hour"),
+                       (12*60, "12 hours"),
+               ]
                try:
-                       recurrence = hildonize.request_number(
-                               self._window, "Minutes", (1, 50), self._alarmHandler.recurrence
+                       actualSelection = self._alarmHandler.recurrence
+
+                       closestSelectionIndex = 0
+                       for i, possible in enumerate(recurrenceChoices):
+                               if possible[0] <= actualSelection:
+                                       closestSelectionIndex = i
+                       recurrenceIndex = hildonize.touch_selector(
+                               self._window,
+                               "Minutes",
+                               (("%s" % m[1]) for m in recurrenceChoices),
+                               closestSelectionIndex,
                        )
+                       recurrence = recurrenceChoices[recurrenceIndex][0]
+
                        self._update_alarm_settings(recurrence)
                except Exception, e:
                        self._errorDisplay.push_exception()
@@ -886,7 +908,6 @@ class RecentCallsView(object):
 
                textrenderer = gtk.CellRendererText()
                textrenderer.set_property("yalign", 0)
-               hildonize.set_cell_thumb_selectable(textrenderer)
                self._numberColumn = gtk.TreeViewColumn("Number")
                self._numberColumn.pack_start(textrenderer, expand=True)
                self._numberColumn.add_attribute(textrenderer, "text", self.NUMBER_IDX)