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
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)
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])
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)
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(
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()
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)