Changeset 12

Show
Ignore:
Timestamp:
09/24/07 00:25:41 (1 year ago)
Author:
steve
Message:

refactoring
delete
*undo*

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • config.py

    r11 r12  
    1818font_size=12 
    1919font_name="Monaco" 
     20trash_dir = ".mactorii-trash" 
     21 
    2022def main(): 
    2123        pass 
  • mactorii.py

    r11 r12  
    1212import math 
    1313import Image 
     14import shutil 
    1415 
    1516import wavelet 
     
    2627files = None 
    2728win = None 
     29images = dict() 
     30renderables = None 
    2831 
    2932yoffset = 0 
     
    3942 
    4043selected = None 
     44hovering_over = None 
     45 
     46last_deleted = [] 
    4147 
    4248def on_mouse_motion(x,y,dx,dy): 
     
    7783        global xoffset 
    7884        global xmotion 
    79  
     85        global images 
     86        global renderables 
     87        global hovering_over 
     88        global last_deleted 
     89         
    8090        if symbol == key.LEFT: 
    81                         xmotion = 10 
    82          
     91                xmotion = 10 
     92                if modifier == key.MOD_SHIFT: 
     93                        xmotion*=2 
     94                                 
    8395        if symbol == key.RIGHT: 
    84                         xmotion -= 10 
    85  
    86         if modifier == key.MOD_SHIFT: 
    87                 xmotion*=2 
     96                xmotion -= 10 
     97                if modifier == key.MOD_SHIFT: 
     98                        xmotion*=2       
     99 
     100        if symbol == key.D and hovering_over != None: 
     101                assert images.has_key(hovering_over) 
     102                del images[hovering_over] 
     103                update_renderables() 
     104                shutil.move(hovering_over, "%s/%s"%(config.trash_dir, os.path.basename(hovering_over))) 
     105                last_deleted.append(hovering_over) 
     106                 
     107        if symbol == key.U and len(last_deleted) > 0: 
     108                last = last_deleted.pop() 
     109                shutil.move("%s/%s"%(config.trash_dir, os.path.basename(last)), last) 
     110                load_file(last) 
     111                update_renderables() 
    88112                 
    89113def strip_width(): 
     
    108132        xoffset = p * strip_width() 
    109133         
     134def update_renderables(): 
     135        global images 
     136        global renderables 
     137        global selected 
     138         
     139        renderables = images.items() 
     140         
     141        if selected != None: 
     142                renderables.sort(key=sort_func) 
     143                 
     144        return renderables 
     145         
    110146def sort_func(item): 
    111147        assert selected != None 
     
    119155        return -sum(score) 
    120156 
    121 def load_files(files): 
     157def load_file(file): 
    122158        """loads the files given in the command line""" 
    123         images = dict() 
    124          
    125         for file in files: 
    126                 print "processing file: %s"%(file) 
    127                 wi = wavelet.open(file) 
    128                 sig = wi.signature() 
    129                 wi.im.thumbnail((config.crop_size, config.crop_size), Image.ANTIALIAS) 
    130                 wi.im = wi.im.transpose(Image.FLIP_TOP_BOTTOM) 
    131                 psurf=pyglet_image.ImageData(wi.im.size[0],wi.im.size[1],"RGB",wi.im.tostring()) 
    132  
    133                 images[ unicode(file,'utf-8').encode('ascii', 'ignore') ] = (psurf, None, sig, wi.size) 
    134                  
    135         return images 
     159         
     160        global images 
     161         
     162        print "processing file: %s"%(file) 
     163        wi = wavelet.open(file) 
     164        sig = wi.signature() 
     165        wi.im.thumbnail((config.crop_size, config.crop_size), Image.ANTIALIAS) 
     166        wi.im = wi.im.transpose(Image.FLIP_TOP_BOTTOM) 
     167        psurf=pyglet_image.ImageData(wi.im.size[0],wi.im.size[1],"RGB",wi.im.tostring()) 
     168 
     169        images[ unicode(file,'utf-8').encode('ascii', 'ignore') ] = (psurf, None, sig, wi.size) 
    136170         
    137171def window_setup(): 
     
    165199                                 
    166200        return True 
     201         
     202def trash_setup(): 
     203        try: 
     204                os.mkdir(config.trash_dir) 
     205        except: 
     206                return 
    167207         
    168208def main(): 
     
    178218        global hovery 
    179219        global selected 
     220        global hovering_over 
     221        global images 
     222        global renderables 
    180223         
    181224        files = sys.argv[1:] 
    182         images = load_files(files) 
     225        for file in files: 
     226                load_file(file) 
     227                 
    183228 
    184229        win = window_setup() 
     
    188233        assert ft != None 
    189234         
     235        trash_setup() 
     236         
    190237        image_pattern = pyglet_image.SolidColorImagePattern((0,0,0,1)) 
    191238         
    192239        clock.set_fps_limit(30) 
    193240         
    194         renderables = images.items() 
     241        renderables = update_renderables() 
    195242         
    196243        while not win.has_exit: 
     
    213260                 
    214261                drawn = 0 
     262                hovering_over = None 
    215263                for filename, image in renderables: 
    216264                        img = image[0] 
     
    220268                                print "%s selected"%(filename) 
    221269                                selected = image 
    222                                 renderables.sort(key=sort_func
     270                                renderables = update_renderables(
    223271                                 
    224272                                clickx = -1 
     
    234282                                text_bg = image_pattern.create_image(config.crop_size, int(pix_size.height)     ) 
    235283                                text_bg.blit(x,y) 
     284                                hovering_over = filename 
     285 
    236286                                 
    237287                        drawn+=1