Changeset 52

Show
Ignore:
Timestamp:
06/01/07 00:55:01 (5 years ago)
Author:
andy
Message:

Fixes #35, #36, #37 and adds sanity to progress bars

Location:
trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/CHANGELOG

    r48 r52  
    11* = new feature, + = improvement/bug fix, - = feature removed 
     2New in v0.4.5 () 
     3-------------------------- 
     4+ Progress bars now show progress properly 
     5+ Fixed directory/file walk is too slow (bug #36) 
     6+ Fixed does not use busy cursor when it's busy (bug #37) 
     7+ Fixed does not redraw screen during "starting backup" (bug #35) 
     8 
    29New in v0.4.4 (20/11/2006) 
    310-------------------------- 
  • trunk/src/pybackpack/LogHandler.py

    r31 r52  
    2929                                        #text[26:34] == "Renaming" or \ 
    3030                                        #text[26:42] == "Making directory": 
    31                                                 #return 
     31                                        #return 
    3232                        if text[:23] == "Processing changed file": 
    3333                                self.currentfile += 1 
    34                                 self.widgets['lbl_status'].set_text("Creating backup... (Approx %d%% done)"\ 
    35                                          % int((self.currentfile / self.filecount)*100)) 
     34                                p = self.currentfile / self.filecount 
     35                                self.widgets['lbl_status'].set_text("Creating backup... (Approx %d%% done)" % (int(p*100))) 
     36                                self.widgets['progressbar1'].set_fraction(p) 
    3637                        while gtk.events_pending(): 
    3738                                gtk.main_iteration() 
  • trunk/src/pybackpack/gui.py

    r50 r52  
    217217                widgets['notebook1'].set_sensitive(False) 
    218218                widgets['menubar1'].set_sensitive(False) 
     219                widgets['window_main'].window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) 
    219220                while gtk.events_pending(): 
    220221                        gtk.main_iteration() 
     
    229230                        widgets['notebook1'].set_sensitive(True) 
    230231                        widgets['menubar1'].set_sensitive(True) 
    231                  
     232                        widgets['window_main'].window.set_cursor(None)   
    232233        def do_cdr_backup(self): 
    233234                """backs up to /tmp, does a mkisofs, then nautilusburns it""" 
     
    509510        def check_backup_source(self, set): 
    510511                buf = widgets['output_log'].get_buffer() 
    511                 widgets['lbl_status'].set_text("Checking backup source...") 
    512                 widgets['progressbar1'].set_fraction(0.10) 
    513                 buf.insert(buf.get_end_iter(), "%s: Checking backup source\n" % time.ctime()) 
     512                widgets['lbl_status'].set_text("Analysing backup source...") 
     513                widgets['progressbar1'].set_pulse_step(0.01) 
     514                widgets['progressbar1'].pulse() 
     515                buf.insert(buf.get_end_iter(), "%s: Analysing backup source\n" % time.ctime()) 
    514516                problems = [] 
    515517                filecount = 0 
     
    518520                        if not os.path.exists(path): 
    519521                                problems.append((path, "Missing")) 
     522                        elif path == set['default_dest']: 
     523                                buf.insert(buf.get_end_iter(), "%s: Destination directory in backup source. Omitting.\n" % time.ctime()) 
    520524                        elif os.path.isdir(path): 
    521525                                for dirname, dirs, files in os.walk(path): 
     526                                        widgets['progressbar1'].pulse() 
    522527                                        for file in files: 
    523528                                                fullpath = os.path.join(dirname,file) 
    524                                                 #buf.insert(buf.get_end_iter(), "   %s" % fullpath) 
     529                                                if fullpath == set['default_dest']: 
     530                                                        buf.insert(buf.get_end_iter(), "%s: NOTE: Destination directory in backup set. Omitting.\n" % time.ctime()) 
    525531                                                # We might be backing up a broken symlink, but who cares, we're not following them 
    526                                                 if os.path.islink(fullpath): 
     532                                                elif os.path.islink(fullpath): 
    527533                                                        filecount += 1 
    528                                                         # buf.insert(buf.get_end_iter(), " [OK:SYM]\n") 
    529534                                                elif os.access(fullpath, os.R_OK): 
    530535                                                        filecount += 1 
    531                                                         # buf.insert(buf.get_end_iter(), " [OK]\n") 
    532536                                                else: 
    533537                                                        problems.append((fullpath, "File")) 
    534                                                         # buf.insert(buf.get_end_iter(), " [ERR]\n") 
    535538                                        for dir in dirs: 
    536539                                                fullpath = os.path.join(dirname,dir) 
     
    539542                                                else: 
    540543                                                        problems.append((fullpath,"Directory")) 
     544                                        # Stop the GUI freezing up 
     545                                        while (gtk.events_pending()): 
     546                                                gtk.main_iteration() 
     547 
    541548                        elif os.access(path, os.R_OK): 
    542549                                filecount += 1 
     
    959966                for f in widgets['filechooserwidget1'].get_filenames(): 
    960967                        if os.path.isdir(f): 
    961                                 druidfilelist.append([widget.render_icon(gtk.STOCK_ADD, gtk.ICON_SIZE_MENU, "TreeView"), widget.render_icon(gtk.STOCK_DIRECTORY, gtk.ICON_SIZE_MENU, "TreeView"), f, True]) 
     968                                druidfilelist.append([widget.render_icon(gtk.STOCK_ADD, gtk.ICON_SIZE_MENU, "TreeView"),  
     969                                      widget.render_icon(gtk.STOCK_DIRECTORY, gtk.ICON_SIZE_MENU, "TreeView"),  
     970                                      f, True]) 
    962971                        else: 
    963                                 druidfilelist.append([widget.render_icon(gtk.STOCK_ADD, gtk.ICON_SIZE_MENU, "TreeView"), widget.render_icon(gtk.STOCK_FILE, gtk.ICON_SIZE_MENU, "TreeView"), f, True]) 
    964                 if len(druidfilelist)==1: 
     972                                druidfilelist.append([widget.render_icon(gtk.STOCK_ADD, gtk.ICON_SIZE_MENU, "TreeView"), 
     973                                      widget.render_icon(gtk.STOCK_FILE, gtk.ICON_SIZE_MENU, "TreeView"), 
     974                                      f, True]) 
     975                if len(druidfilelist) == 1: 
    965976                        widgets['druidfilelist_label'].set_text("1 item") 
    966977                else: 
     
    971982                for f in widgets['filechooserwidget1'].get_filenames(): 
    972983                        if os.path.isdir(f): 
    973                                 druidfilelist.append([widget.render_icon(gtk.STOCK_REMOVE, gtk.ICON_SIZE_MENU, "TreeView"), widget.render_icon(gtk.STOCK_DIRECTORY, gtk.ICON_SIZE_MENU, "TreeView"), f, False]) 
     984                                druidfilelist.append([widget.render_icon(gtk.STOCK_REMOVE, gtk.ICON_SIZE_MENU, "TreeView"),  
     985                                      widget.render_icon(gtk.STOCK_DIRECTORY, gtk.ICON_SIZE_MENU, "TreeView"), 
     986                                      f, False]) 
    974987                        else: 
    975                                 druidfilelist.append([widget.render_icon(gtk.STOCK_REMOVE, gtk.ICON_SIZE_MENU, "TreeView"), widget.render_icon(gtk.STOCK_FILE, gtk.ICON_SIZE_MENU, "TreeView"), f, False]) 
    976                 if len(druidfilelist)==1: 
     988                                druidfilelist.append([widget.render_icon(gtk.STOCK_REMOVE, gtk.ICON_SIZE_MENU, "TreeView"),  
     989                                      widget.render_icon(gtk.STOCK_FILE, gtk.ICON_SIZE_MENU, "TreeView"),  
     990                                      f, False]) 
     991                if len(druidfilelist) == 1: 
    977992                        widgets['druidfilelist_label'].set_text("1 item") 
    978993                else: