From 69c29229d99af06fcad8b951ab3cc2b0e42c3e85 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Wed, 17 Feb 2010 07:54:27 -0600 Subject: [PATCH] Switching the sms entry to a single instance --- src/dc_glade.py | 24 ++++++++++-------------- src/gv_views.py | 30 +++++++++++------------------- 2 files changed, 21 insertions(+), 33 deletions(-) diff --git a/src/dc_glade.py b/src/dc_glade.py index f37c9a2..a7d1cdb 100755 --- a/src/dc_glade.py +++ b/src/dc_glade.py @@ -113,6 +113,7 @@ class Dialcentral(object): self._notebook = self._widgetTree.get_widget("notebook") self._errorDisplay = gtk_toolbox.ErrorDisplay(self._widgetTree) self._credentialsDialog = gtk_toolbox.LoginWindow(self._widgetTree) + self._smsEntryWindow = None self._isFullScreen = False self._app = hildonize.get_app_class()() @@ -277,6 +278,7 @@ class Dialcentral(object): import gv_views from backends import merge_backend + self._smsEntryWindow = gv_views.SmsEntryWindow(self._widgetTree) try: os.makedirs(constants._data_path_) except OSError, e: @@ -316,10 +318,10 @@ class Dialcentral(object): fileBackend = file_backend.FilesystemAddressBookFactory(self._fsContactsPath) - self._dialpads[self.GV_BACKEND].number_selected = self._select_action - self._historyViews[self.GV_BACKEND].number_selected = self._select_action - self._messagesViews[self.GV_BACKEND].number_selected = self._select_action - self._contactsViews[self.GV_BACKEND].number_selected = self._select_action + self._dialpads[self.GV_BACKEND].add_contact = self._add_contact + 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 addressBooks = [ self._phoneBackends[self.GV_BACKEND], @@ -485,16 +487,8 @@ class Dialcentral(object): return loggedIn, serviceId - def _select_action(self, action, numbers, message): - self.refresh_session() - if action == "dial": - assert len(numbers) == 1 - number = numbers[0] - self._on_dial_clicked(number) - elif action == "sms": - self._on_sms_clicked(numbers, message) - else: - assert False, "Unknown action: %s" % action + def _add_contact(self, *args, **kwds): + self._smsEntryWindow.add_contact(*args, **kwds) def _change_loggedin_status(self, newStatus): oldStatus = self._selectedBackendId @@ -825,6 +819,7 @@ class Dialcentral(object): try: assert numbers, "No number specified" assert message, "Empty message" + self.refresh_session() try: loggedIn = self._phoneBackends[self._selectedBackendId].is_authed() except Exception, e: @@ -855,6 +850,7 @@ class Dialcentral(object): def _on_dial_clicked(self, number): try: assert number, "No number to call" + self.refresh_session() try: loggedIn = self._phoneBackends[self._selectedBackendId].is_authed() except Exception, e: diff --git a/src/gv_views.py b/src/gv_views.py index 4b73ec8..3bb89f3 100644 --- a/src/gv_views.py +++ b/src/gv_views.py @@ -19,7 +19,6 @@ 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 Collapse voicemails -@todo Alternate UI for dialogs (stackables) """ from __future__ import with_statement @@ -221,8 +220,7 @@ def collapse_message(message, maxCharsPerLine, maxLines): return "\n".join(_collapse_message(messageLines, maxCharsPerLine, maxLines)) -class SmsEntryDialog(object): - # @todo Need to consolidate instances +class SmsEntryWindow(object): MAX_CHAR = 160 @@ -453,7 +451,6 @@ class Dialpad(object): def __init__(self, widgetTree, errorDisplay): self._clipboard = gtk.clipboard_get() self._errorDisplay = errorDisplay - self._smsDialog = SmsEntryDialog(widgetTree) self._numberdisplay = widgetTree.get_widget("numberdisplay") self._smsButton = widgetTree.get_widget("sms") @@ -496,7 +493,7 @@ class Dialpad(object): self._backTapHandler.disable() self._zeroOrPlusTapHandler.disable() - def number_selected(self, action, numbers, message): + def add_contact(self, *args, **kwds): """ @note Actual dial function is patched in later """ @@ -544,7 +541,7 @@ class Dialpad(object): def _on_sms_clicked(self, widget): try: phoneNumber = self.get_number() - self._smsDialog.add_contact( + self.add_contact( [("Dialer", phoneNumber)], (), self._window ) except Exception, e: @@ -552,10 +549,8 @@ class Dialpad(object): def _on_dial_clicked(self, widget): try: - action = SmsEntryDialog.ACTION_DIAL - phoneNumbers = [self.get_number()] - message = "" - self.number_selected(action, phoneNumbers, message) + #self.number_selected(action, phoneNumbers, message) TODO + pass except Exception, e: self._errorDisplay.push_exception() @@ -956,7 +951,6 @@ class CallHistoryView(object): self._nameColumn.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) self._window = gtk_toolbox.find_parent_window(self._historyview) - self._smsDialog = SmsEntryDialog(widgetTree) self._historyFilterSelector = widgetTree.get_widget("historyFilterSelector") self._historyFilterSelector.connect("clicked", self._on_history_filter_clicked) @@ -996,7 +990,7 @@ class CallHistoryView(object): self._historyview.remove_column(self._numberColumn) self._historyview.set_model(None) - def number_selected(self, action, numbers, message): + def add_contact(self, *args, **kwds): """ @note Actual dial function is patched in later """ @@ -1131,7 +1125,7 @@ class CallHistoryView(object): contactPhoneNumbers = [("Phone", number)] defaultIndex = -1 - self._smsDialog.add_contact( + self.add_contact( contactPhoneNumbers, messages = (description, ), parent = self._window, @@ -1192,7 +1186,6 @@ class MessagesView(object): self._messageColumn.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) self._window = gtk_toolbox.find_parent_window(self._messageview) - self._smsDialog = SmsEntryDialog(widgetTree) self._messageTypeButton = widgetTree.get_widget("messageTypeButton") self._onMessageTypeClickedId = 0 @@ -1241,7 +1234,7 @@ class MessagesView(object): self._messageview.remove_column(self._messageColumn) self._messageview.set_model(None) - def number_selected(self, action, numbers, message): + def add_contact(self, *args, **kwds): """ @note Actual dial function is patched in later """ @@ -1395,7 +1388,7 @@ class MessagesView(object): contactPhoneNumbers = [("Phone", number)] defaultIndex = -1 - self._smsDialog.add_contact( + self.add_contact( contactPhoneNumbers, messages = description, parent = self._window, @@ -1491,7 +1484,6 @@ class ContactsView(object): self._onContactsviewRowActivatedId = 0 self._onAddressbookButtonChangedId = 0 self._window = gtk_toolbox.find_parent_window(self._contactsview) - self._smsDialog = SmsEntryDialog(widgetTree) self._updateSink = gtk_toolbox.threaded_stage( gtk_toolbox.comap( @@ -1543,7 +1535,7 @@ class ContactsView(object): self._contactsview.set_model(None) self._contactsview.remove_column(self._contactColumn) - def number_selected(self, action, numbers, message): + def add_contact(self, *args, **kwds): """ @note Actual dial function is patched in later """ @@ -1670,7 +1662,7 @@ class ContactsView(object): if len(contactPhoneNumbers) == 0: return - self._smsDialog.add_contact( + self.add_contact( contactPhoneNumbers, messages = (contactName, ), parent = self._window, -- 1.7.9.5