X-Git-Url: http://git.maemo.org/git/?p=watersofshiloah;a=blobdiff_plain;f=src%2Fmormonchannel_gtk.py;h=c29a9824ad3d4b089374a3f86020531b6ad24efc;hp=fb2132df82d7f3368a3ce4e1277e894aae3cde52;hb=aa0e8ac26b860cad03adb0380b4701ba11f3b5db;hpb=f77cda973fab5dd7c1d4f6621650c6bce1725aa7 diff --git a/src/mormonchannel_gtk.py b/src/mormonchannel_gtk.py index fb2132d..c29a982 100755 --- a/src/mormonchannel_gtk.py +++ b/src/mormonchannel_gtk.py @@ -2,6 +2,9 @@ # -*- coding: utf-8 -*- """ +@todo backgrounds need some resizing +@todo Re-use windows for better performance +@bug For some reason, the back/close button doesn't work when I nest multiple levels @todo Need to confirm id's are persistent (not just for todos but broken behavior on transition) @todo Track recent @todo Persisted Pause @@ -13,6 +16,7 @@ from __future__ import with_statement +import os import gc import logging import ConfigParser @@ -45,10 +49,13 @@ class MormonChannelProgram(hildonize.get_app_class()): def __init__(self): super(MormonChannelProgram, self).__init__() - self._store = imagestore.ImageStore("../data", "../data") + currentPath = os.path.abspath(__file__) + storePath = os.path.join(os.path.split(os.path.dirname(currentPath))[0], "data") + self._store = imagestore.ImageStore(storePath, constants._cache_path_) self._index = stream_index.AudioIndex() self._player = player.Player(self._index) + self._store.start() self._index.start() try: if not hildonize.IS_HILDON_SUPPORTED: @@ -63,12 +70,14 @@ class MormonChannelProgram(hildonize.get_app_class()): 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.window.set_default_size(400, 800) self._sourceSelector.show() self._load_settings() except: self._index.stop() + self._store.stop() raise def _save_settings(self): @@ -100,24 +109,25 @@ class MormonChannelProgram(hildonize.get_app_class()): @misc_utils.log_exception(_moduleLogger) def _on_destroy(self, widget = None, data = None): - self.quit() + try: + self.quit() + finally: + gtk.main_quit() def quit(self): - try: - self._save_settings() + self._save_settings() - self._index.stop() + self._index.stop() + self._store.stop() - try: - self._deviceState.close() - except AttributeError: - pass # Either None or close was removed (in Fremantle) - try: - self._osso_c.close() - except AttributeError: - pass # Either None or close was removed (in Fremantle) - finally: - gtk.main_quit() + try: + self._deviceState.close() + except AttributeError: + pass # Either None or close was removed (in Fremantle) + try: + self._osso_c.close() + except AttributeError: + pass # Either None or close was removed (in Fremantle) @misc_utils.log_exception(_moduleLogger) def _on_show_about(self, widget = None, data = None): @@ -147,6 +157,8 @@ def run(): except KeyboardInterrupt: app.quit() raise + else: + app.quit() if __name__ == "__main__":