bugfix for deleted partial downloads

git-svn-id: svn://svn.berlios.de/gpodder/trunk@246 b0d088ad-0a06-0410-aad2-9ed5178a7e87
This commit is contained in:
Thomas Perl 2007-02-03 10:48:32 +00:00
parent decd277e4c
commit 63e6a7a265
4 changed files with 25 additions and 10 deletions

View File

@ -1,3 +1,10 @@
Sat, 3 Feb 2007 11:46:49 +0100 <thp@perli.net>
* src/gpodder/libwget.py: Add has_items() to downloadStatusManager
* src/gpodder/libgpodder.py: Make deleting partial downloads optional
* src/gpodder/gpodder.py: Only ask gPodderLib to delete partially
downloaded files when our downloadStatusManager does not have any
downloads going at the moment (bugfix!)
Sun, 28 Jan 2007 16:17:40 +0100 <thp@perli.net>
* src/gpodder/libgpodder.py: Comment-out deletion of partial
downloads for now (so we won't have broken, finished downloads)

View File

@ -190,7 +190,7 @@ class Gpodder(SimpleGladeApp):
self.user_apps_reader.read()
# Clean up old, orphaned download files
gl.clean_up_downloads()
gl.clean_up_downloads( delete_partial = True)
#-- Gpodder.new }
#-- Gpodder custom methods {
@ -575,7 +575,9 @@ class Gpodder(SimpleGladeApp):
if self.showConfirmation( _("Do you really want to remove this channel and downloaded episodes?\n\n %s") % self.active_channel.title):
self.active_channel.remove_cache_file()
self.active_channel.remove_downloaded()
gPodderLib().clean_up_downloads()
# only delete partial files if we do not have any downloads in progress
delete_partial = not self.download_status_manager.has_items()
gPodderLib().clean_up_downloads( delete_partial)
self.channels.remove( self.active_channel)
gPodderChannelWriter().write( self.channels)
self.channels = gPodderChannelReader().read( False)
@ -801,7 +803,7 @@ class Gpodder(SimpleGladeApp):
# if user confirms deletion, let's remove some stuff ;)
if self.showConfirmation( msg):
#try:
try:
# iterate over the selection, see also on_treeDownloads_row_activated
for apath in selection_tuple[1]:
selection_iter = model.get_iter( apath)
@ -814,9 +816,11 @@ class Gpodder(SimpleGladeApp):
# now, clear local db cache so we can re-read it
self.ldb.clear_cache()
self.updateComboBox()
#except:
# log( 'Error while deleting (some) downloads.')
gPodderLib().clean_up_downloads()
except:
log( 'Error while deleting (some) downloads.')
# only delete partial files if we do not have any downloads in progress
delete_partial = not self.download_status_manager.has_items()
gPodderLib().clean_up_downloads( delete_partial)
#-- Gpodder.on_btnDownloadedDelete_clicked }
#-- Gpodder.on_btnDeleteAll_clicked {

View File

@ -177,11 +177,12 @@ class gPodderLibClass( object):
for key in default_colors.keys():
self.colors[key] = default_colors[key]
def clean_up_downloads( self):
def clean_up_downloads( self, delete_partial = False):
# Clean up temporary files left behind by old gPodder versions
#temporary_files = glob( '%s/*/.tmp-*' % ( self.downloaddir, ))
#for tempfile in temporary_files:
# self.deleteFilename( tempfile)
if delete_partial:
temporary_files = glob( '%s/*/.tmp-*' % ( self.downloaddir, ))
for tempfile in temporary_files:
self.deleteFilename( tempfile)
# Clean up empty download folders
download_dirs = glob( '%s/*' % ( self.downloaddir, ))

View File

@ -192,6 +192,9 @@ class downloadStatusManager( object):
self.default_window_title = self.main_window.get_title()
self.change_notification = change_notification
self.smlock.release()
def has_items( self):
return bool( len( self.status_list))
def getNextId( self):
res = self.next_status_id