Adding back in separate call and sms buttons
authorEd Page <eopage@byu.net>
Wed, 24 Feb 2010 00:47:46 +0000 (18:47 -0600)
committerEd Page <eopage@byu.net>
Wed, 24 Feb 2010 00:47:46 +0000 (18:47 -0600)
src/dc_glade.py
src/dialcentral.glade
src/gv_views.py
src/null_views.py

index 2879788..40b5508 100755 (executable)
@@ -325,6 +325,7 @@ class Dialcentral(object):
                        self._smsEntryWindow.send_sms = self._on_sms_clicked
                        self._smsEntryWindow.dial = self._on_dial_clicked
                        self._dialpads[self.GV_BACKEND].add_contact = self._add_contact
+                       self._dialpads[self.GV_BACKEND].dial = self._on_dial_clicked
                        self._historyViews[self.GV_BACKEND].add_contact = self._add_contact
                        self._messagesViews[self.GV_BACKEND].add_contact = self._add_contact
                        self._contactsViews[self.GV_BACKEND].add_contact = self._add_contact
index abe73f6..452aabf 100644 (file)
                   <widget class="GtkHBox" id="hbox3">
                     <property name="visible">True</property>
                     <child>
+                      <widget class="GtkButton" id="plus">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="focus_on_click">False</property>
+                        <accelerator key="0" signal="clicked"/>
+                        <child>
+                          <widget class="GtkLabel" id="label1">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">&lt;span size="9000" weight="bold"&gt;+&lt;/span&gt;</property>
+                            <property name="use_markup">True</property>
+                            <property name="justify">center</property>
+                          </widget>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
                       <widget class="GtkLabel" id="numberdisplay">
                         <property name="height_request">50</property>
                         <property name="visible">True</property>
                         <property name="justify">center</property>
                       </widget>
                       <packing>
-                        <property name="position">0</property>
+                        <property name="position">1</property>
                       </packing>
                     </child>
                     <child>
                       </widget>
                       <packing>
                         <property name="expand">False</property>
-                        <property name="position">1</property>
+                        <property name="position">2</property>
                       </packing>
                     </child>
                   </widget>
                         <property name="receives_default">False</property>
                         <property name="focus_on_click">False</property>
                         <signal name="clicked" handler="on_digit_clicked"/>
-                        <accelerator key="c" signal="clicked"/>
-                        <accelerator key="b" signal="clicked"/>
-                        <accelerator key="a" signal="clicked"/>
                         <accelerator key="2" signal="clicked"/>
+                        <accelerator key="a" signal="clicked"/>
+                        <accelerator key="b" signal="clicked"/>
+                        <accelerator key="c" signal="clicked"/>
                         <child>
                           <widget class="GtkLabel" id="label10">
                             <property name="visible">True</property>
                         <property name="receives_default">False</property>
                         <property name="focus_on_click">False</property>
                         <signal name="clicked" handler="on_digit_clicked"/>
-                        <accelerator key="f" signal="clicked"/>
-                        <accelerator key="e" signal="clicked"/>
-                        <accelerator key="d" signal="clicked"/>
                         <accelerator key="3" signal="clicked"/>
+                        <accelerator key="d" signal="clicked"/>
+                        <accelerator key="e" signal="clicked"/>
+                        <accelerator key="f" signal="clicked"/>
                         <child>
                           <widget class="GtkLabel" id="label11">
                             <property name="visible">True</property>
                         <property name="receives_default">False</property>
                         <property name="focus_on_click">False</property>
                         <signal name="clicked" handler="on_digit_clicked"/>
-                        <accelerator key="i" signal="clicked"/>
-                        <accelerator key="h" signal="clicked"/>
-                        <accelerator key="g" signal="clicked"/>
                         <accelerator key="4" signal="clicked"/>
+                        <accelerator key="g" signal="clicked"/>
+                        <accelerator key="h" signal="clicked"/>
+                        <accelerator key="i" signal="clicked"/>
                         <child>
                           <widget class="GtkLabel" id="label13">
                             <property name="visible">True</property>
                         <property name="receives_default">False</property>
                         <property name="focus_on_click">False</property>
                         <signal name="clicked" handler="on_digit_clicked"/>
-                        <accelerator key="l" signal="clicked"/>
-                        <accelerator key="k" signal="clicked"/>
-                        <accelerator key="j" signal="clicked"/>
                         <accelerator key="5" signal="clicked"/>
+                        <accelerator key="j" signal="clicked"/>
+                        <accelerator key="k" signal="clicked"/>
+                        <accelerator key="l" signal="clicked"/>
                         <child>
                           <widget class="GtkLabel" id="label14">
                             <property name="visible">True</property>
                         <property name="receives_default">False</property>
                         <property name="focus_on_click">False</property>
                         <signal name="clicked" handler="on_digit_clicked"/>
-                        <accelerator key="o" signal="clicked"/>
-                        <accelerator key="n" signal="clicked"/>
-                        <accelerator key="m" signal="clicked"/>
                         <accelerator key="6" signal="clicked"/>
+                        <accelerator key="m" signal="clicked"/>
+                        <accelerator key="n" signal="clicked"/>
+                        <accelerator key="o" signal="clicked"/>
                         <child>
                           <widget class="GtkLabel" id="label15">
                             <property name="visible">True</property>
                         <property name="receives_default">False</property>
                         <property name="focus_on_click">False</property>
                         <signal name="clicked" handler="on_digit_clicked"/>
-                        <accelerator key="s" signal="clicked"/>
-                        <accelerator key="r" signal="clicked"/>
-                        <accelerator key="q" signal="clicked"/>
-                        <accelerator key="p" signal="clicked"/>
                         <accelerator key="7" signal="clicked"/>
+                        <accelerator key="p" signal="clicked"/>
+                        <accelerator key="q" signal="clicked"/>
+                        <accelerator key="r" signal="clicked"/>
+                        <accelerator key="s" signal="clicked"/>
                         <child>
                           <widget class="GtkLabel" id="label16">
                             <property name="visible">True</property>
                         <property name="receives_default">False</property>
                         <property name="focus_on_click">False</property>
                         <signal name="clicked" handler="on_digit_clicked"/>
-                        <accelerator key="v" signal="clicked"/>
-                        <accelerator key="u" signal="clicked"/>
-                        <accelerator key="t" signal="clicked"/>
                         <accelerator key="8" signal="clicked"/>
+                        <accelerator key="t" signal="clicked"/>
+                        <accelerator key="u" signal="clicked"/>
+                        <accelerator key="v" signal="clicked"/>
                         <child>
                           <widget class="GtkLabel" id="label17">
                             <property name="visible">True</property>
                         <property name="receives_default">False</property>
                         <property name="focus_on_click">False</property>
                         <signal name="clicked" handler="on_digit_clicked"/>
-                        <accelerator key="z" signal="clicked"/>
-                        <accelerator key="y" signal="clicked"/>
-                        <accelerator key="x" signal="clicked"/>
-                        <accelerator key="w" signal="clicked"/>
                         <accelerator key="9" signal="clicked"/>
+                        <accelerator key="w" signal="clicked"/>
+                        <accelerator key="x" signal="clicked"/>
+                        <accelerator key="y" signal="clicked"/>
+                        <accelerator key="z" signal="clicked"/>
                         <child>
                           <widget class="GtkLabel" id="label18">
                             <property name="visible">True</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkButton" id="dialpadOk">
+                      <widget class="GtkButton" id="dialpadCall">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="receives_default">False</property>
                                 <property name="visible">True</property>
                                 <property name="xalign">0</property>
                                 <property name="xpad">5</property>
-                                <property name="label" translatable="yes">&lt;span size="17000" weight="bold"&gt;Ok&lt;/span&gt;</property>
+                                <property name="label" translatable="yes">&lt;span size="17000" weight="bold"&gt;Call&lt;/span&gt;</property>
                                 <property name="use_markup">True</property>
                               </widget>
                               <packing>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkButton" id="plus">
+                      <widget class="GtkButton" id="dialpadSMS">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
-                        <property name="focus_on_click">False</property>
-                        <accelerator key="0" signal="clicked"/>
+                        <accelerator key="Return" signal="clicked"/>
                         <child>
-                          <widget class="GtkLabel" id="label1">
+                          <widget class="GtkHBox" id="hbox2">
                             <property name="visible">True</property>
-                            <property name="label" translatable="yes">&lt;span size="33000" weight="bold"&gt;+&lt;/span&gt;</property>
-                            <property name="use_markup">True</property>
-                            <property name="justify">center</property>
+                            <child>
+                              <widget class="GtkImage" id="image2">
+                                <property name="visible">True</property>
+                                <property name="xalign">1</property>
+                                <property name="stock">gtk-select-font</property>
+                              </widget>
+                              <packing>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="label2">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="xpad">5</property>
+                                <property name="label" translatable="yes">&lt;span size="17000" weight="bold"&gt;SMS&lt;/span&gt;</property>
+                                <property name="use_markup">True</property>
+                              </widget>
+                              <packing>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
                           </widget>
                         </child>
                       </widget>
index d8833b8..547c431 100644 (file)
@@ -587,7 +587,8 @@ class Dialpad(object):
                self._errorDisplay = errorDisplay
 
                self._numberdisplay = widgetTree.get_widget("numberdisplay")
-               self._okButton = widgetTree.get_widget("dialpadOk")
+               self._callButton = widgetTree.get_widget("dialpadCall")
+               self._sendSMSButton = widgetTree.get_widget("dialpadSMS")
                self._backButton = widgetTree.get_widget("back")
                self._plusButton = widgetTree.get_widget("plus")
                self._phonenumber = ""
@@ -597,7 +598,8 @@ class Dialpad(object):
                        "on_digit_clicked": self._on_digit_clicked,
                }
                widgetTree.signal_autoconnect(callbackMapping)
-               self._okButton.connect("clicked", self._on_ok_clicked)
+               self._sendSMSButton.connect("clicked", self._on_sms_clicked)
+               self._callButton.connect("clicked", self._on_call_clicked)
                self._plusButton.connect("clicked", self._on_plus)
 
                self._originalLabel = self._backButton.get_label()
@@ -611,7 +613,7 @@ class Dialpad(object):
                self._keyPressEventId = 0
 
        def enable(self):
-               self._okButton.grab_focus()
+               self._sendSMSButton.grab_focus()
                self._backTapHandler.enable()
                self._keyPressEventId = self._window.connect("key-press-event", self._on_key_press)
 
@@ -623,7 +625,13 @@ class Dialpad(object):
 
        def add_contact(self, *args, **kwds):
                """
-               @note Actual dial function is patched in later
+               @note Actual function is patched in later
+               """
+               raise NotImplementedError("Horrible unknown error has occurred")
+
+       def dial(self, number):
+               """
+               @note Actual function is patched in later
                """
                raise NotImplementedError("Horrible unknown error has occurred")
 
@@ -638,6 +646,10 @@ class Dialpad(object):
                        self._phonenumber = make_ugly(number)
                        self._prettynumber = make_pretty(self._phonenumber)
                        self._numberdisplay.set_label("<span size='30000' weight='bold'>%s</span>" % (self._prettynumber))
+                       if self._phonenumber:
+                               self._plusButton.set_sensitive(False)
+                       else:
+                               self._plusButton.set_sensitive(True)
                except TypeError, e:
                        self._errorDisplay.push_exception()
 
@@ -666,7 +678,15 @@ class Dialpad(object):
                except Exception, e:
                        self._errorDisplay.push_exception()
 
-       def _on_ok_clicked(self, widget):
+       def _on_call_clicked(self, widget):
+               try:
+                       phoneNumber = self.get_number()
+                       self.dial(phoneNumber)
+                       self.set_number("")
+               except Exception, e:
+                       self._errorDisplay.push_exception()
+
+       def _on_sms_clicked(self, widget):
                try:
                        phoneNumber = self.get_number()
                        self.add_contact(
index 0ca5691..777aba6 100644 (file)
@@ -26,14 +26,19 @@ import gtk
 class Dialpad(object):
 
        def __init__(self, widgetTree):
+               self._buttons = [
+                       widgetTree.get_widget(buttonName)
+                       for buttonName in ("dialpadCall", "dialpadSMS")
+               ]
                self._numberdisplay = widgetTree.get_widget("numberdisplay")
-               self._dialButton = widgetTree.get_widget("dialpadOk")
 
        def enable(self):
-               self._dialButton.set_sensitive(False)
+               for button in self._buttons:
+                       button.set_sensitive(False)
 
        def disable(self):
-               self._dialButton.set_sensitive(True)
+               for button in self._buttons:
+                       button.set_sensitive(True)
 
        @staticmethod
        def name():