projects
/
watersofshiloah
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
23eea49
)
Navigating radio programs
author
Ed Page
<eopage@byu.net>
Thu, 6 May 2010 01:19:15 +0000
(20:19 -0500)
committer
Ed Page
<eopage@byu.net>
Thu, 6 May 2010 01:19:15 +0000
(20:19 -0500)
src/index.py
patch
|
blob
|
history
src/windows.py
patch
|
blob
|
history
diff --git
a/src/index.py
b/src/index.py
index
b7440d7
..
c050e62
100644
(file)
--- a/
src/index.py
+++ b/
src/index.py
@@
-14,22
+14,12
@@
class AudioIndex(object):
def stop(self):
self._indexing.stop()
def stop(self):
self._indexing.stop()
- def download_radio(self, on_success, on_error, *ids):
+ def download(self, func, on_success, on_error, *args, **kwds):
self._indexing.clear_tasks()
self._indexing.clear_tasks()
- if ids:
- assert len(ids) == 1
- self._indexing.add_task(
- self._backend.get_radio_channel_programming,
- (ids[0], ),
- {},
- on_success,
- on_error,
- )
- else:
- self._indexing.add_task(
- self._backend.get_radio_channels,
- (),
- {},
- on_success,
- on_error,
- )
+ self._indexing.add_task(
+ getattr(self._backend, func),
+ args,
+ kwds,
+ on_success,
+ on_error,
+ )
diff --git
a/src/windows.py
b/src/windows.py
index
d034600
..
51b8784
100644
(file)
--- a/
src/windows.py
+++ b/
src/windows.py
@@
-198,6
+198,10
@@
class RadioView(BasicWindow):
headerPath = self._store.STORE_LOOKUP["radio_header"]
self._header = self._store.get_image_from_store(headerPath)
headerPath = self._store.STORE_LOOKUP["radio_header"]
self._header = self._store.get_image_from_store(headerPath)
+ self._headerNavigation = presenter.NavigationBox()
+ self._headerNavigation.toplevel.add(self._header)
+ self._headerNavigation.connect("action", self._on_nav_action)
+
self._programmingModel = gtk.ListStore(
gobject.TYPE_STRING,
self._programmingModel = gtk.ListStore(
gobject.TYPE_STRING,
@@
-226,18
+230,17
@@
class RadioView(BasicWindow):
self._treeScroller.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
self._presenter = presenter.StreamMiniPresenter(self._player, self._store)
self._treeScroller.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
self._presenter = presenter.StreamMiniPresenter(self._player, self._store)
+ self._presenterNavigation = presenter.NavigationBox()
+ self._presenterNavigation.toplevel.add(self._presenter.toplevel)
+ self._presenterNavigation.connect("action", self._on_nav_action)
self._radioLayout = gtk.VBox(False)
self._radioLayout = gtk.VBox(False)
- self._radioLayout.pack_start(self._header, False, False)
+ self._radioLayout.pack_start(self._headerNavigation.toplevel, False, False)
self._radioLayout.pack_start(self._treeScroller, True, True)
self._radioLayout.pack_start(self._treeScroller, True, True)
- self._radioLayout.pack_start(self._presenter.toplevel, False, True)
-
- self._programNavigation = presenter.NavigationBox()
- self._programNavigation.toplevel.add(self._radioLayout)
- self._programNavigation.connect("action", self._on_nav_action)
+ self._radioLayout.pack_start(self._presenterNavigation.toplevel, False, True)
self._layout.pack_start(self._loadingBanner.toplevel, False, False)
self._layout.pack_start(self._loadingBanner.toplevel, False, False)
- self._layout.pack_start(self._programNavigation.toplevel, True, True)
+ self._layout.pack_start(self._radioLayout, True, True)
self._window.set_title("Radio")
self._window.show_all()
self._window.set_title("Radio")
self._window.show_all()
@@
-258,19
+261,26
@@
class RadioView(BasicWindow):
def _refresh(self):
self._show_loading()
self._programmingModel.clear()
def _refresh(self):
self._show_loading()
self._programmingModel.clear()
- self._index.download_radio(self._on_channels, self._on_load_error)
+ self._index.download(
+ "get_radio_channels",
+ self._on_channels,
+ self._on_load_error,
+ )
def _get_current_row(self):
nowTime = self._dateShown.strftime("%H:%M:%S")
def _get_current_row(self):
nowTime = self._dateShown.strftime("%H:%M:%S")
+ i = 0
for i, row in enumerate(self._programmingModel):
if nowTime < row[0]:
for i, row in enumerate(self._programmingModel):
if nowTime < row[0]:
- return i - 1
+ if i == 0:
+ return 0
+ else:
+ return i - 1
else:
return i
@misc_utils.log_exception(_moduleLogger)
def _on_nav_action(self, widget, navState):
else:
return i
@misc_utils.log_exception(_moduleLogger)
def _on_nav_action(self, widget, navState):
- _moduleLogger.info(navState)
if navState == "clicking":
pass
elif navState == "down":
if navState == "clicking":
pass
elif navState == "down":
@@
-294,7
+304,13
@@
class RadioView(BasicWindow):
if 1 < len(channels):
_moduleLogger.warning("More channels now available!")
channel = channels[0]
if 1 < len(channels):
_moduleLogger.warning("More channels now available!")
channel = channels[0]
- self._index.download_radio(self._on_channel, self._on_load_error, channel["id"])
+ self._index.download(
+ "get_radio_channel_programming",
+ self._on_channel,
+ self._on_load_error,
+ channel["id"],
+ self._dateShown
+ )
@misc_utils.log_exception(_moduleLogger)
def _on_channel(self, programs):
@misc_utils.log_exception(_moduleLogger)
def _on_channel(self, programs):
@@
-318,7
+334,11
@@
class RadioView(BasicWindow):
@misc_utils.log_exception(_moduleLogger)
def _on_row_changed(self, selection):
@misc_utils.log_exception(_moduleLogger)
def _on_row_changed(self, selection):
- path = (self._get_current_row(), )
+ if len(self._programmingModel) == 0:
+ return
+
+ rowIndex = self._get_current_row()
+ path = (rowIndex, )
if not selection.path_is_selected(path):
# Undo the user's changing of the selection
selection.select_path(path)
if not selection.path_is_selected(path):
# Undo the user's changing of the selection
selection.select_path(path)