Putting in a lot of fixes for fremantle
authorepage <eopage@byu.net>
Tue, 6 Oct 2009 03:30:34 +0000 (03:30 +0000)
committerepage <eopage@byu.net>
Tue, 6 Oct 2009 03:30:34 +0000 (03:30 +0000)
git-svn-id: file:///svnroot/gc-dialer/trunk@504 c39d3808-3fe2-4d86-a59f-b7f623ee9f21

src/dc_glade.py
src/gv_backend.py
src/gv_views.py
src/hildonize.py
support/builddeb.py

index fdc3eb0..cee25f1 100755 (executable)
@@ -133,6 +133,12 @@ class Dialcentral(object):
                        "back",
                        "sendSmsButton",
                        "cancelSmsButton",
+                       "sms_button",
+                       "dial_button",
+                       "select_button",
+                       "cancel_button",
+                       "minutesEntryButton",
+                       "clearcookies",
                ):
                        hildonize.set_button_thumb_selectable(button)
 
index 84a26a6..210ef5c 100644 (file)
@@ -434,6 +434,8 @@ class GVDialer(object):
                        callbackNumber = match.group(2)
                        callbackName = match.group(1)
                        self._callbackNumbers[callbackNumber] = callbackName
+               if len(self._callbackNumbers) == 0:
+                       _moduleLogger.debug("Could not extract callback numbers from GoogleVoice (the troublesome page follows):\n%s" % page)
 
        def _send_validation(self, number):
                if not self.is_valid_syntax(number):
index f352464..3fdeb37 100644 (file)
@@ -501,7 +501,7 @@ class SmsEntryDialog(object):
                entryLength = self._smsEntry.get_buffer().get_char_count()
                charsLeft = self.MAX_CHAR - entryLength
                self._letterCountLabel.set_text(str(charsLeft))
-               if charsLeft < 0:
+               if charsLeft < 0 or charsLeft == self.MAX_CHAR:
                        self._smsButton.set_sensitive(False)
                else:
                        self._smsButton.set_sensitive(True)
@@ -1107,7 +1107,7 @@ class RecentCallsView(object):
 
        def _on_recentview_row_activated(self, treeview, path, view_column):
                try:
-                       model, itr = self._recentviewselection.get_selected()
+                       itr = self._recentmodel.get_iter(path)
                        if not itr:
                                return
 
@@ -1272,7 +1272,7 @@ class MessagesView(object):
 
        def _on_messageview_row_activated(self, treeview, path, view_column):
                try:
-                       model, itr = self._messageviewselection.get_selected()
+                       itr = self._messagemodel.get_iter(path)
                        if not itr:
                                return
 
@@ -1492,7 +1492,7 @@ class ContactsView(object):
 
        def _on_contactsview_row_activated(self, treeview, path, view_column):
                try:
-                       model, itr = self._contactsviewselection.get_selected()
+                       itr = self._contactsmodel.get_iter(path)
                        if not itr:
                                return
 
index 6b588bc..bef2d3a 100644 (file)
@@ -1,5 +1,11 @@
 #!/usr/bin/env python
 
+"""
+Open Issues
+       @bug not all of a message is shown
+       @bug Buttons are too small
+"""
+
 
 import gobject
 import gtk
@@ -132,6 +138,7 @@ def _null_set_button_auto_selectable(button):
 
 try:
        hildon.HILDON_SIZE_AUTO_HEIGHT
+       gtk.Button.set_theme_size
        set_button_auto_selectable = _hildon_set_button_auto_selectable
 except AttributeError:
        set_button_auto_selectable = _null_set_button_auto_selectable
@@ -147,6 +154,7 @@ def _null_set_button_finger_selectable(button):
 
 try:
        hildon.HILDON_SIZE_FINGER_HEIGHT
+       gtk.Button.set_theme_size
        set_button_finger_selectable = _hildon_set_button_finger_selectable
 except AttributeError:
        set_button_finger_selectable = _null_set_button_finger_selectable
@@ -162,6 +170,7 @@ def _null_set_button_thumb_selectable(button):
 
 try:
        hildon.HILDON_SIZE_THUMB_HEIGHT
+       gtk.Button.set_theme_size
        set_button_thumb_selectable = _hildon_set_button_thumb_selectable
 except AttributeError:
        set_button_thumb_selectable = _null_set_button_thumb_selectable
@@ -401,15 +410,16 @@ def _hildon_request_number(parent, title, range, default):
        try:
                dialog.show_all()
                response = dialog.run()
+
+               if response == gtk.RESPONSE_OK:
+                       return spinner.get_value()
+               elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT:
+                       raise RuntimeError("User cancelled request")
+               else:
+                       raise RuntimeError("Unrecognized response %r", response)
        finally:
                dialog.hide()
-
-       if response == gtk.RESPONSE_OK:
-               return spinner.get_value()
-       elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT:
-               raise RuntimeError("User cancelled request")
-       else:
-               raise RuntimeError("Unrecognized response %r", response)
+               dialog.destroy()
 
 
 def _null_request_number(parent, title, range, default):
@@ -429,15 +439,16 @@ def _null_request_number(parent, title, range, default):
        try:
                dialog.show_all()
                response = dialog.run()
+
+               if response == gtk.RESPONSE_OK:
+                       return spinner.get_value_as_int()
+               elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT:
+                       raise RuntimeError("User cancelled request")
+               else:
+                       raise RuntimeError("Unrecognized response %r", response)
        finally:
                dialog.hide()
-
-       if response == gtk.RESPONSE_OK:
-               return spinner.get_value_as_int()
-       elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT:
-               raise RuntimeError("User cancelled request")
-       else:
-               raise RuntimeError("Unrecognized response %r", response)
+               dialog.destroy()
 
 
 try:
@@ -463,22 +474,26 @@ def _hildon_touch_selector(parent, title, items, defaultIndex):
        try:
                dialog.show_all()
                response = dialog.run()
+
+               if response == gtk.RESPONSE_OK:
+                       return selector.get_active(0)
+               elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT:
+                       raise RuntimeError("User cancelled request")
+               else:
+                       raise RuntimeError("Unrecognized response %r", response)
        finally:
                dialog.hide()
-
-       if response == gtk.RESPONSE_OK:
-               return selector.get_active(0)
-       elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT:
-               raise RuntimeError("User cancelled request")
-       else:
-               raise RuntimeError("Unrecognized response %r", response)
+               dialog.destroy()
 
 
-def _on_null_touch_selector_activated(treeView, path, column, dialog):
+def _on_null_touch_selector_activated(treeView, path, column, dialog, pathData):
        dialog.response(gtk.RESPONSE_OK)
+       pathData[0] = path
 
 
 def _null_touch_selector(parent, title, items, defaultIndex = -1):
+       parentSize = parent.get_size()
+
        model = gtk.ListStore(gobject.TYPE_STRING)
        for item in items:
                model.append((item, ))
@@ -486,7 +501,7 @@ def _null_touch_selector(parent, title, items, defaultIndex = -1):
        cell = gtk.CellRendererText()
        set_cell_thumb_selectable(cell)
        column = gtk.TreeViewColumn(title)
-       column .pack_start(cell, expand=True)
+       column.pack_start(cell, expand=True)
        column.add_attribute(cell, "text", 0)
 
        treeView = gtk.TreeView()
@@ -500,7 +515,6 @@ def _null_touch_selector(parent, title, items, defaultIndex = -1):
        scrolledWin = gtk.ScrolledWindow()
        scrolledWin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        scrolledWin.add(treeView)
-       hildonize_scrollwindow(scrolledWin)
 
        dialog = gtk.Dialog(
                title,
@@ -510,25 +524,27 @@ def _null_touch_selector(parent, title, items, defaultIndex = -1):
        )
        dialog.set_default_response(gtk.RESPONSE_CANCEL)
        dialog.get_child().add(scrolledWin)
-       parentSize = parent.get_size()
        dialog.resize(parentSize[0], max(parentSize[1]-100, 100))
-       treeView.connect("row-activated", _on_null_touch_selector_activated, dialog)
+
+       scrolledWin = hildonize_scrollwindow(scrolledWin)
+       pathData = [None]
+       treeView.connect("row-activated", _on_null_touch_selector_activated, dialog, pathData)
 
        try:
                dialog.show_all()
                response = dialog.run()
+
+               if response == gtk.RESPONSE_OK:
+                       if pathData[0] is None:
+                               raise RuntimeError("No selection made")
+                       return pathData[0][0]
+               elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT:
+                       raise RuntimeError("User cancelled request")
+               else:
+                       raise RuntimeError("Unrecognized response %r", response)
        finally:
                dialog.hide()
-
-       if response == gtk.RESPONSE_OK:
-               model, itr = selection.get_selected()
-               if itr is None:
-                       raise RuntimeError("No selection made")
-               return model.get_path(itr)[0]
-       elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT:
-               raise RuntimeError("User cancelled request")
-       else:
-               raise RuntimeError("Unrecognized response %r", response)
+               dialog.destroy()
 
 
 try:
@@ -580,12 +596,15 @@ def _on_null_touch_selector_entry_entry_activated(entry, dialog, customEntry, re
 
 def _on_null_touch_selector_entry_tree_activated(treeView, path, column, dialog, selection, result):
        dialog.response(gtk.RESPONSE_OK)
-       model, itr = selection.get_selected()
+       model = treeView.get_model()
+       itr = model.get_iter(path)
        if itr is not None:
                result.append(model.get_value(itr, 0))
 
 
 def _null_touch_selector_entry(parent, title, items, defaultItem):
+       parentSize = parent.get_size()
+
        model = gtk.ListStore(gobject.TYPE_STRING)
        defaultIndex = -1
        for i, item in enumerate(items):
@@ -608,7 +627,6 @@ def _null_touch_selector_entry(parent, title, items, defaultItem):
        scrolledWin = gtk.ScrolledWindow()
        scrolledWin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        scrolledWin.add(treeView)
-       hildonize_scrollwindow(scrolledWin)
 
        customEntry = gtk.Entry()
 
@@ -624,9 +642,10 @@ def _null_touch_selector_entry(parent, title, items, defaultItem):
        )
        dialog.set_default_response(gtk.RESPONSE_CANCEL)
        dialog.get_child().add(layout)
-       parentSize = parent.get_size()
        dialog.resize(parentSize[0], max(parentSize[1]-100, 100))
 
+       scrolledWin = hildonize_scrollwindow(scrolledWin)
+
        if 0 < defaultIndex:
                selection.select_path((defaultIndex, ))
        else:
@@ -638,19 +657,19 @@ def _null_touch_selector_entry(parent, title, items, defaultItem):
        try:
                dialog.show_all()
                response = dialog.run()
-       finally:
-               dialog.hide()
 
-       if response == gtk.RESPONSE_OK:
-               model, itr = selection.get_selected()
-               if len(result) != 1:
-                       raise RuntimeError("No selection made")
+               if response == gtk.RESPONSE_OK:
+                       if len(result) != 1:
+                               raise RuntimeError("No selection made")
+                       else:
+                               return result[0]
+               elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT:
+                       raise RuntimeError("User cancelled request")
                else:
-                       return result[0]
-       elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT:
-               raise RuntimeError("User cancelled request")
-       else:
-               raise RuntimeError("Unrecognized response %r", response)
+                       raise RuntimeError("Unrecognized response %r", response)
+       finally:
+               dialog.hide()
+               dialog.destroy()
 
 
 try:
index 1098b12..6c326e2 100755 (executable)
@@ -27,8 +27,15 @@ __changelog__ = """
 * Added descriptions to the callback numbers
 * Collapsed conversations in the messages tab
 * UI Tweak: Added more login status notifications
+* UI Tweak: When no characters are entered, you can't send a text
+* Debugging: Printing page when can't get a callback number
 * Bug Fix: Random people were reporting login issues
 * Bug Fix: Hardened against issues with grabbing possible callback numbers
+* Bug Fix: Fremantle GTK doesn't allow TreeView rows to be selected, so row-activated handlers have to read their path
+* Bug Fix: Fremantle PyMaemo doesn't provide a function Mer PyMaemo does, created a hack to be workable on both
+* Bug Fix: Once PyMaemo supports thumb button sizes, setting that for all of the random buttons
+* Bug Fix: When debugging hildonization, dialogs weren't closing
+* Bug Fix: Not properly hildonizing some code
 * Debugging: Improved logging output
 
 1.0.6