updated TODO list

no confirmation dialog for zero elements in multiple selections
re-designed the feed cache updating dialog, added progressbar


git-svn-id: svn://svn.berlios.de/gpodder/trunk@129 b0d088ad-0a06-0410-aad2-9ed5178a7e87
This commit is contained in:
Thomas Perl 2006-07-14 20:09:00 +00:00
parent c796c0327f
commit 851e2f64a2
4 changed files with 57 additions and 20 deletions

View File

@ -2,6 +2,14 @@ Fri, 14 Jul 2006 21:07:56 +0200 <thp@perli.net>
* Multiple selection support for downladed items list
* Bumped up version and release dates
* Updated parts of README file for upcoming 0.8 release
* Updated TODO list
* Do nothing if zero elements are selected for the new
multiple selection items (previously showed bogus
confirmation message to user - not good! ;)
* Re-designed "Updating feed cache" dialog, simplified
it and added a progress bar to it
* gPodderChannelReader now accepts an optional callback
parameter for download status indication (see above)
Fri, 07 Jul 2006 14:21:59 +0200 <thp@perli.net>
* Added workarounds to libopmlreader to support

14
TODO
View File

@ -1,10 +1,6 @@
== 0.8 or afterwards ==
* select multiple podcasts (episodes) and execute one command (ex:
download) on all of these. (suggested by James Dorey and Haim Roitgrund)
--> DONE for available podcasts, TODO for downloading and downloaded!
* in libipodsync.py: use mime magic instead of extension-based
video detection? --> also, is mp4 always video or could it be
aac audio too? if so, how to check what is what?
@ -23,16 +19,13 @@
* gpodder doesn't start if somebody has messed with the channels.xml file
(or if you send the channels.xml to somebody -- greetings to steve :)
* Suggestions by Marius Scurtescu <marius.scurtescu at gmail dot com>:
- add more columns to the Available Podcasts tab (date, ...)
* Suggestion by Marius Scurtescu <marius.scurtescu at gmail dot com>:
- add the download progress to the same Available Podcasts tab and
then you don't need the Download Status tab at all, this will allow
you to see what is downloaded and what not
* libipodsync
-> check if ipod is connected (the automagic way)
-> maybe delete podcasts that are deleted locally but still on ipod
-> ............... :)
* do more translations (you can contribute here, of course :)
@ -49,13 +42,8 @@
* update "downloaded" (grey) episodes on download finish
* (properties: set http proxy) <--- done
---> or use gnome's proxy setting <--- not done
(suggested by alabrosse.ext@rd.francetelecom.fr)
* sort view
* maybe save date with downloads
* maybe a "all channels view"
* consider using "--continue" for wget

View File

@ -380,14 +380,31 @@ class Gpodder(SimpleGladeApp):
sync.clean_playlist()
sync.close()
def update_feed_cache_callback( self, progressbar, position, count):
progressbar.set_text( _("%d of %d") % ( position, count ))
progressbar.set_fraction( ((1.00*position) / (1.00*count)))
def update_feed_cache(self):
reader = gPodderChannelReader()
#self.channels = reader.read( True)
#self.labelStatus.set_text( "Updating feed cache...")
please_wait = gtk.MessageDialog()
please_wait.set_markup( _("<big><b>Updating feed cache</b></big>\n\nPlease wait while gPodder is\nupdating the feed cache..."))
please_wait.show()
self.channels = reader.read( True)
please_wait = gtk.Dialog( _("Updating feed cache"), self.gPodder)
#please_wait.vbox.set_border_width( 10)
please_wait.vbox.set_spacing( 5)
please_wait.set_border_width( 5)
label = gtk.Label( _("Please wait - gPodder is updating its feed cache..."))
myprogressbar = gtk.ProgressBar()
# put it all together
please_wait.vbox.pack_start( label)
please_wait.vbox.pack_end( myprogressbar)
please_wait.show_all()
# hide action anre and separator line
please_wait.action_area.hide()
please_wait.set_has_separator( False)
# let's get down to business..
self.channels = reader.read( True, lambda pos, count: self.update_feed_cache_callback( myprogressbar, pos, count))
please_wait.destroy()
#self.labelStatus.set_text( "")
self.updateComboBox()
@ -644,6 +661,11 @@ class Gpodder(SimpleGladeApp):
print "on_treeDownloads_row_activated called with self.%s" % widget.get_name()
selection = self.treeDownloads.get_selection()
selection_tuple = selection.get_selected_rows()
if selection.count_selected_rows() == 0:
if libgpodder.isDebugging():
print "will not cancel any download. reason: nothing selected."
return
if selection.count_selected_rows() == 1:
msg = _("Do you really want to cancel this download?")
else:
@ -718,6 +740,11 @@ class Gpodder(SimpleGladeApp):
selection = self.treeDownloaded.get_selection()
selection_tuple = selection.get_selected_rows()
model = self.treeDownloaded.get_model()
if selection.count_selected_rows() == 0:
if libgpodder.isDebugging():
print "will not remove any episode reason: nothing selected."
return
if selection.count_selected_rows() == 1:
msg = _("Do you really want to remove this episode?")

View File

@ -326,7 +326,10 @@ class gPodderChannelReader( DefaultHandler):
def __init__( self):
None
def read( self, force_update = False):
def read( self, force_update = False, callback_proc = None):
# callback proc should be like cb( pos, count), where pos is
# the current position (of course) and count is how many feeds
# will be updated. this can be used to visualize progress..
self.channels = []
parser = make_parser()
parser.setContentHandler( self)
@ -337,7 +340,12 @@ class gPodderChannelReader( DefaultHandler):
reader = rssReader()
input_channels = []
channel_count = len( self.channels)
position = 0
for channel in self.channels:
if callback_proc != None:
callback_proc( position, channel_count)
cachefile = channel.downloadRss(force_update)
# check if download was a success
if cachefile != None:
@ -347,6 +355,12 @@ class gPodderChannelReader( DefaultHandler):
reader.channel.shortname = channel.filename
input_channels.append( reader.channel)
position = position + 1
# the last call sets everything to 100% (hopefully ;)
if callback_proc != None:
callback_proc( position, channel_count)
return input_channels