Various bug fixes to work on Maemo
authorEd Page <eopage@byu.net>
Sun, 16 May 2010 04:58:24 +0000 (23:58 -0500)
committerEd Page <eopage@byu.net>
Sun, 16 May 2010 04:58:24 +0000 (23:58 -0500)
src/mormonchannel_gtk.py
src/windows/_base.py
src/windows/conferences.py
src/windows/magazines.py
src/windows/radio.py
src/windows/scriptures.py
src/windows/source.py

index 2445f95..5e3d0a0 100755 (executable)
@@ -67,7 +67,7 @@ class MormonChannelProgram(hildonize.get_app_class()):
                                self._osso_c = None
                                self._deviceState = None
 
                                self._osso_c = None
                                self._deviceState = None
 
-                       self._sourceSelector = windows.source.SourceSelector(self._player, self._store, self._index)
+                       self._sourceSelector = windows.source.SourceSelector(self, self._player, self._store, self._index)
                        self._sourceSelector.window.connect("destroy", self._on_destroy)
                        self._sourceSelector.show()
                        self._load_settings()
                        self._sourceSelector.window.connect("destroy", self._on_destroy)
                        self._sourceSelector.show()
                        self._load_settings()
index 303b6b8..3f06913 100644 (file)
@@ -1,4 +1,4 @@
-# @todo Add icons to buttons/rows to indicate that the currently playing track is coming from that
+from __future__ import with_statement
 
 import ConfigParser
 import logging
 
 import ConfigParser
 import logging
@@ -49,10 +49,11 @@ class BasicWindow(gobject.GObject, go_utils.AutoSignal):
                ),
        }
 
                ),
        }
 
-       def __init__(self, player, store):
+       def __init__(self, app, player, store):
                gobject.GObject.__init__(self)
                self._isDestroyed = False
 
                gobject.GObject.__init__(self)
                self._isDestroyed = False
 
+               self._app = app
                self._player = player
                self._store = store
 
                self._player = player
                self._store = store
 
@@ -67,7 +68,7 @@ class BasicWindow(gobject.GObject, go_utils.AutoSignal):
                self._window = gtk.Window()
                go_utils.AutoSignal.__init__(self, self.window)
                self._window.add(self._layout)
                self._window = gtk.Window()
                go_utils.AutoSignal.__init__(self, self.window)
                self._window.add(self._layout)
-               self._window = hildonize.hildonize_window(self, self._window)
+               self._window = hildonize.hildonize_window(self._app, self._window)
 
                self._window.set_icon(self._store.get_pixbuf_from_store(self._store.STORE_LOOKUP["icon"]))
                self._window.connect("key-press-event", self._on_key_press)
 
                self._window.set_icon(self._store.get_pixbuf_from_store(self._store.STORE_LOOKUP["icon"]))
                self._window.connect("key-press-event", self._on_key_press)
@@ -79,6 +80,7 @@ class BasicWindow(gobject.GObject, go_utils.AutoSignal):
                return self._window
 
        def show(self):
                return self._window
 
        def show(self):
+               hildonize.window_to_portrait(self._window)
                self._window.show_all()
 
        def save_settings(self, config, sectionName):
                self._window.show_all()
 
        def save_settings(self, config, sectionName):
@@ -164,8 +166,8 @@ class BasicWindow(gobject.GObject, go_utils.AutoSignal):
 
 class ListWindow(BasicWindow):
 
 
 class ListWindow(BasicWindow):
 
-       def __init__(self, player, store, node):
-               BasicWindow.__init__(self, player, store)
+       def __init__(self, app, player, store, node):
+               BasicWindow.__init__(self, app, player, store)
                self._node = node
 
                self.connect_auto(self._player, "title-change", self._on_player_title_change)
                self._node = node
 
                self.connect_auto(self._player, "title-change", self._on_player_title_change)
index 096959d..6542bad 100644 (file)
@@ -18,8 +18,8 @@ _moduleLogger = logging.getLogger(__name__)
 
 class ConferencesWindow(windows._base.ListWindow):
 
 
 class ConferencesWindow(windows._base.ListWindow):
 
-       def __init__(self, player, store, node):
-               windows._base.ListWindow.__init__(self, player, store, node)
+       def __init__(self, app, player, store, node):
+               windows._base.ListWindow.__init__(self, app, player, store, node)
                self._window.set_title(self._node.title)
 
        @classmethod
                self._window.set_title(self._node.title)
 
        @classmethod
@@ -65,7 +65,7 @@ class ConferencesWindow(windows._base.ListWindow):
                self._errorBanner.push_message(str(exception))
 
        def _window_from_node(self, node):
                self._errorBanner.push_message(str(exception))
 
        def _window_from_node(self, node):
-               sessionsWindow = ConferenceSessionsWindow(self._player, self._store, node)
+               sessionsWindow = ConferenceSessionsWindow(self._app, self._player, self._store, node)
                sessionsWindow.window.set_modal(True)
                sessionsWindow.window.set_transient_for(self._window)
                sessionsWindow.window.set_default_size(*self._window.get_size())
                sessionsWindow.window.set_modal(True)
                sessionsWindow.window.set_transient_for(self._window)
                sessionsWindow.window.set_default_size(*self._window.get_size())
@@ -87,8 +87,8 @@ gobject.type_register(ConferencesWindow)
 
 class ConferenceSessionsWindow(windows._base.ListWindow):
 
 
 class ConferenceSessionsWindow(windows._base.ListWindow):
 
-       def __init__(self, player, store, node):
-               windows._base.ListWindow.__init__(self, player, store, node)
+       def __init__(self, app, player, store, node):
+               windows._base.ListWindow.__init__(self, app, player, store, node)
                self._window.set_title(self._node.title)
 
        @classmethod
                self._window.set_title(self._node.title)
 
        @classmethod
@@ -128,7 +128,7 @@ class ConferenceSessionsWindow(windows._base.ListWindow):
                self._errorBanner.push_message(str(exception))
 
        def _window_from_node(self, node):
                self._errorBanner.push_message(str(exception))
 
        def _window_from_node(self, node):
-               sessionsWindow = ConferenceTalksWindow(self._player, self._store, node)
+               sessionsWindow = ConferenceTalksWindow(self._app, self._player, self._store, node)
                sessionsWindow.window.set_modal(True)
                sessionsWindow.window.set_transient_for(self._window)
                sessionsWindow.window.set_default_size(*self._window.get_size())
                sessionsWindow.window.set_modal(True)
                sessionsWindow.window.set_transient_for(self._window)
                sessionsWindow.window.set_default_size(*self._window.get_size())
@@ -150,8 +150,8 @@ gobject.type_register(ConferenceSessionsWindow)
 
 class ConferenceTalksWindow(windows._base.ListWindow):
 
 
 class ConferenceTalksWindow(windows._base.ListWindow):
 
-       def __init__(self, player, store, node):
-               windows._base.ListWindow.__init__(self, player, store, node)
+       def __init__(self, app, player, store, node):
+               windows._base.ListWindow.__init__(self, app, player, store, node)
                self._window.set_title(self._node.title)
 
        @classmethod
                self._window.set_title(self._node.title)
 
        @classmethod
@@ -191,7 +191,7 @@ class ConferenceTalksWindow(windows._base.ListWindow):
                self._errorBanner.push_message(str(exception))
 
        def _window_from_node(self, node):
                self._errorBanner.push_message(str(exception))
 
        def _window_from_node(self, node):
-               sessionsWindow = ConferenceTalkWindow(self._player, self._store, node)
+               sessionsWindow = ConferenceTalkWindow(self._app, self._player, self._store, node)
                sessionsWindow.window.set_modal(True)
                sessionsWindow.window.set_transient_for(self._window)
                sessionsWindow.window.set_default_size(*self._window.get_size())
                sessionsWindow.window.set_modal(True)
                sessionsWindow.window.set_transient_for(self._window)
                sessionsWindow.window.set_default_size(*self._window.get_size())
@@ -213,8 +213,8 @@ gobject.type_register(ConferenceTalksWindow)
 
 class ConferenceTalkWindow(windows._base.BasicWindow):
 
 
 class ConferenceTalkWindow(windows._base.BasicWindow):
 
-       def __init__(self, player, store, node):
-               windows._base.BasicWindow.__init__(self, player, store)
+       def __init__(self, app, player, store, node):
+               windows._base.BasicWindow.__init__(self, app, player, store)
                self._node = node
                self._playerNode = self._player.node
                self._nextSearch = None
                self._node = node
                self._playerNode = self._player.node
                self._nextSearch = None
@@ -302,8 +302,9 @@ class ConferenceTalkWindow(windows._base.BasicWindow):
                        self._updateSeek.start(seconds=1)
                else:
                        self._seekbar.hide()
                        self._updateSeek.start(seconds=1)
                else:
                        self._seekbar.hide()
-                       self._updateSeek.cancel()
-                       self._updateSeek = None
+                       if self._updateSeek is not None:
+                               self._updateSeek.cancel()
+                               self._updateSeek = None
 
                if not self._presenterNavigation.is_active():
                        self._set_context(newState)
 
                if not self._presenterNavigation.is_active():
                        self._set_context(newState)
index fa089d6..fb80968 100644 (file)
@@ -18,8 +18,8 @@ _moduleLogger = logging.getLogger(__name__)
 
 class MagazinesWindow(windows._base.ListWindow):
 
 
 class MagazinesWindow(windows._base.ListWindow):
 
-       def __init__(self, player, store, node):
-               windows._base.ListWindow.__init__(self, player, store, node)
+       def __init__(self, app, player, store, node):
+               windows._base.ListWindow.__init__(self, app, player, store, node)
                self._window.set_title(self._node.title)
 
        @classmethod
                self._window.set_title(self._node.title)
 
        @classmethod
@@ -90,7 +90,7 @@ class MagazinesWindow(windows._base.ListWindow):
                self._errorBanner.push_message(str(exception))
 
        def _window_from_node(self, node):
                self._errorBanner.push_message(str(exception))
 
        def _window_from_node(self, node):
-               issuesWindow = MagazineIssuesWindow(self._player, self._store, node)
+               issuesWindow = MagazineIssuesWindow(self._app, self._player, self._store, node)
                issuesWindow.window.set_modal(True)
                issuesWindow.window.set_transient_for(self._window)
                issuesWindow.window.set_default_size(*self._window.get_size())
                issuesWindow.window.set_modal(True)
                issuesWindow.window.set_transient_for(self._window)
                issuesWindow.window.set_default_size(*self._window.get_size())
@@ -112,8 +112,8 @@ gobject.type_register(MagazinesWindow)
 
 class MagazineIssuesWindow(windows._base.ListWindow):
 
 
 class MagazineIssuesWindow(windows._base.ListWindow):
 
-       def __init__(self, player, store, node):
-               windows._base.ListWindow.__init__(self, player, store, node)
+       def __init__(self, app, player, store, node):
+               windows._base.ListWindow.__init__(self, app, player, store, node)
                self._window.set_title(self._node.title)
 
        @classmethod
                self._window.set_title(self._node.title)
 
        @classmethod
@@ -181,7 +181,7 @@ class MagazineIssuesWindow(windows._base.ListWindow):
                self._model.row_changed((i, ), treeiter)
 
        def _window_from_node(self, node):
                self._model.row_changed((i, ), treeiter)
 
        def _window_from_node(self, node):
-               issuesWindow = MagazineArticlesWindow(self._player, self._store, node)
+               issuesWindow = MagazineArticlesWindow(self._app, self._player, self._store, node)
                issuesWindow.window.set_modal(True)
                issuesWindow.window.set_transient_for(self._window)
                issuesWindow.window.set_default_size(*self._window.get_size())
                issuesWindow.window.set_modal(True)
                issuesWindow.window.set_transient_for(self._window)
                issuesWindow.window.set_default_size(*self._window.get_size())
@@ -203,8 +203,8 @@ gobject.type_register(MagazineIssuesWindow)
 
 class MagazineArticlesWindow(windows._base.ListWindow):
 
 
 class MagazineArticlesWindow(windows._base.ListWindow):
 
-       def __init__(self, player, store, node):
-               windows._base.ListWindow.__init__(self, player, store, node)
+       def __init__(self, app, player, store, node):
+               windows._base.ListWindow.__init__(self, app, player, store, node)
                self._window.set_title(self._node.title)
 
        @classmethod
                self._window.set_title(self._node.title)
 
        @classmethod
@@ -244,7 +244,7 @@ class MagazineArticlesWindow(windows._base.ListWindow):
                self._errorBanner.push_message(str(exception))
 
        def _window_from_node(self, node):
                self._errorBanner.push_message(str(exception))
 
        def _window_from_node(self, node):
-               issuesWindow = MagazineArticleWindow(self._player, self._store, node)
+               issuesWindow = MagazineArticleWindow(self._app, self._player, self._store, node)
                issuesWindow.window.set_modal(True)
                issuesWindow.window.set_transient_for(self._window)
                issuesWindow.window.set_default_size(*self._window.get_size())
                issuesWindow.window.set_modal(True)
                issuesWindow.window.set_transient_for(self._window)
                issuesWindow.window.set_default_size(*self._window.get_size())
@@ -266,8 +266,8 @@ gobject.type_register(MagazineArticlesWindow)
 
 class MagazineArticleWindow(windows._base.BasicWindow):
 
 
 class MagazineArticleWindow(windows._base.BasicWindow):
 
-       def __init__(self, player, store, node):
-               windows._base.BasicWindow.__init__(self, player, store)
+       def __init__(self, app, player, store, node):
+               windows._base.BasicWindow.__init__(self, app, player, store)
                self._node = node
                self._playerNode = self._player.node
                self._nextSearch = None
                self._node = node
                self._playerNode = self._player.node
                self._nextSearch = None
index 0f80479..122e183 100644 (file)
@@ -16,8 +16,8 @@ _moduleLogger = logging.getLogger(__name__)
 
 class RadioWindow(windows._base.BasicWindow):
 
 
 class RadioWindow(windows._base.BasicWindow):
 
-       def __init__(self, player, store, node):
-               windows._base.BasicWindow.__init__(self, player, store)
+       def __init__(self, app, player, store, node):
+               windows._base.BasicWindow.__init__(self, app, player, store)
                self._node = node
                self._childNode = None
 
                self._node = node
                self._childNode = None
 
index 587e4e8..93d17e4 100644 (file)
@@ -18,8 +18,8 @@ _moduleLogger = logging.getLogger(__name__)
 
 class ScripturesWindow(windows._base.ListWindow):
 
 
 class ScripturesWindow(windows._base.ListWindow):
 
-       def __init__(self, player, store, node):
-               windows._base.ListWindow.__init__(self, player, store, node)
+       def __init__(self, app, player, store, node):
+               windows._base.ListWindow.__init__(self, app, player, store, node)
                self._window.set_title(self._node.title)
 
        @classmethod
                self._window.set_title(self._node.title)
 
        @classmethod
@@ -59,7 +59,7 @@ class ScripturesWindow(windows._base.ListWindow):
                self._errorBanner.push_message(str(exception))
 
        def _window_from_node(self, node):
                self._errorBanner.push_message(str(exception))
 
        def _window_from_node(self, node):
-               booksWindow = ScriptureBooksWindow(self._player, self._store, node)
+               booksWindow = ScriptureBooksWindow(self._app, self._player, self._store, node)
                booksWindow.window.set_modal(True)
                booksWindow.window.set_transient_for(self._window)
                booksWindow.window.set_default_size(*self._window.get_size())
                booksWindow.window.set_modal(True)
                booksWindow.window.set_transient_for(self._window)
                booksWindow.window.set_default_size(*self._window.get_size())
@@ -81,8 +81,8 @@ gobject.type_register(ScripturesWindow)
 
 class ScriptureBooksWindow(windows._base.ListWindow):
 
 
 class ScriptureBooksWindow(windows._base.ListWindow):
 
-       def __init__(self, player, store, node):
-               windows._base.ListWindow.__init__(self, player, store, node)
+       def __init__(self, app, player, store, node):
+               windows._base.ListWindow.__init__(self, app, player, store, node)
                self._window.set_title(self._node.title)
 
        @classmethod
                self._window.set_title(self._node.title)
 
        @classmethod
@@ -122,7 +122,7 @@ class ScriptureBooksWindow(windows._base.ListWindow):
                self._errorBanner.push_message(str(exception))
 
        def _window_from_node(self, node):
                self._errorBanner.push_message(str(exception))
 
        def _window_from_node(self, node):
-               booksWindow = ScriptureChaptersWindow(self._player, self._store, node)
+               booksWindow = ScriptureChaptersWindow(self._app, self._player, self._store, node)
                booksWindow.window.set_modal(True)
                booksWindow.window.set_transient_for(self._window)
                booksWindow.window.set_default_size(*self._window.get_size())
                booksWindow.window.set_modal(True)
                booksWindow.window.set_transient_for(self._window)
                booksWindow.window.set_default_size(*self._window.get_size())
@@ -144,8 +144,8 @@ gobject.type_register(ScriptureBooksWindow)
 
 class ScriptureChaptersWindow(windows._base.ListWindow):
 
 
 class ScriptureChaptersWindow(windows._base.ListWindow):
 
-       def __init__(self, player, store, node):
-               windows._base.ListWindow.__init__(self, player, store, node)
+       def __init__(self, app, player, store, node):
+               windows._base.ListWindow.__init__(self, app, player, store, node)
                self._window.set_title(self._node.title)
 
        @classmethod
                self._window.set_title(self._node.title)
 
        @classmethod
@@ -185,7 +185,7 @@ class ScriptureChaptersWindow(windows._base.ListWindow):
                self._errorBanner.push_message(str(exception))
 
        def _window_from_node(self, node):
                self._errorBanner.push_message(str(exception))
 
        def _window_from_node(self, node):
-               booksWindow = ScriptureChapterWindow(self._player, self._store, node)
+               booksWindow = ScriptureChapterWindow(self._app, self._player, self._store, node)
                booksWindow.window.set_modal(True)
                booksWindow.window.set_transient_for(self._window)
                booksWindow.window.set_default_size(*self._window.get_size())
                booksWindow.window.set_modal(True)
                booksWindow.window.set_transient_for(self._window)
                booksWindow.window.set_default_size(*self._window.get_size())
@@ -207,8 +207,8 @@ gobject.type_register(ScriptureChaptersWindow)
 
 class ScriptureChapterWindow(windows._base.BasicWindow):
 
 
 class ScriptureChapterWindow(windows._base.BasicWindow):
 
-       def __init__(self, player, store, node):
-               windows._base.BasicWindow.__init__(self, player, store)
+       def __init__(self, app, player, store, node):
+               windows._base.BasicWindow.__init__(self, app, player, store)
                self._node = node
                self._playerNode = self._player.node
                self._nextSearch = None
                self._node = node
                self._playerNode = self._player.node
                self._nextSearch = None
@@ -296,8 +296,9 @@ class ScriptureChapterWindow(windows._base.BasicWindow):
                        self._updateSeek.start(seconds=1)
                else:
                        self._seekbar.hide()
                        self._updateSeek.start(seconds=1)
                else:
                        self._seekbar.hide()
-                       self._updateSeek.cancel()
-                       self._updateSeek = None
+                       if self._updateSeek is not None:
+                               self._updateSeek.cancel()
+                               self._updateSeek = None
 
                if not self._presenterNavigation.is_active():
                        self._set_context(newState)
 
                if not self._presenterNavigation.is_active():
                        self._set_context(newState)
index acf964e..15b01e2 100644 (file)
@@ -17,8 +17,8 @@ _moduleLogger = logging.getLogger(__name__)
 
 class SourceSelector(windows._base.BasicWindow):
 
 
 class SourceSelector(windows._base.BasicWindow):
 
-       def __init__(self, player, store, index):
-               windows._base.BasicWindow.__init__(self, player, store)
+       def __init__(self, app, player, store, index):
+               windows._base.BasicWindow.__init__(self, app, player, store)
                self._languages = []
                self._index = index
 
                self._languages = []
                self._index = index
 
@@ -117,7 +117,7 @@ class SourceSelector(windows._base.BasicWindow):
                        Source = windows.magazines.MagazinesWindow
                elif node.id == stream_index.SOURCE_SCRIPTURES:
                        Source = windows.scriptures.ScripturesWindow
                        Source = windows.magazines.MagazinesWindow
                elif node.id == stream_index.SOURCE_SCRIPTURES:
                        Source = windows.scriptures.ScripturesWindow
-               sourceWindow = Source(self._player, self._store, node)
+               sourceWindow = Source(self._app, self._player, self._store, node)
                sourceWindow.window.set_modal(True)
                sourceWindow.window.set_transient_for(self._window)
                sourceWindow.window.set_default_size(*self._window.get_size())
                sourceWindow.window.set_modal(True)
                sourceWindow.window.set_transient_for(self._window)
                sourceWindow.window.set_default_size(*self._window.get_size())