Changeset 11146:77b35ecb52e2 in orange


Ignore:
Timestamp:
10/22/12 12:20:16 (18 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Save/restore last save/open location.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeCanvas/application/canvasmain.py

    r11140 r11146  
    178178 
    179179        self.widget_registry = None 
     180        self.last_scheme_dir = None 
    180181 
    181182        self.recent_schemes = config.recent_schemes() 
     
    340341            settings.value("scheme_margins_enabled", True).toBool() 
    341342        ) 
     343 
     344        self.last_scheme_dir = \ 
     345            settings.value("last_scheme_dir", None).toPyObject() 
     346 
     347        if self.last_scheme_dir is not None and \ 
     348                not os.path.exists(self.last_scheme_dir): 
     349            # if directory no longer exists reset the saved location. 
     350            self.last_scheme_dir = None 
    342351 
    343352    def setup_actions(self): 
     
    818827                return 
    819828 
    820         start_dir = QDesktopServices.storageLocation( 
    821                         QDesktopServices.DocumentsLocation) 
     829        if self.last_scheme_dir is None: 
     830            # Get user 'Documents' folder 
     831            start_dir = QDesktopServices.storageLocation( 
     832                            QDesktopServices.DocumentsLocation) 
     833        else: 
     834            start_dir = self.last_scheme_dir 
    822835 
    823836        # TODO: Use a dialog instance and use 'addSidebarUrls' to 
     
    839852        filename = unicode(filename) 
    840853        dirname = os.path.dirname(filename) 
    841         self.last_open_scheme_dir = dirname 
    842 #        new_scheme = scheme.Scheme() 
     854 
     855        self.last_scheme_dir = dirname 
     856 
    843857        new_scheme = widgetsscheme.WidgetsScheme() 
    844858        try: 
     
    918932 
    919933        """ 
    920         start_dir = os.path.expanduser("~/") 
     934        curr_scheme = self.current_document().scheme 
     935 
     936        if curr_scheme.path: 
     937            start_dir = curr_scheme.path 
     938        elif self.last_scheme_dir is not None: 
     939            start_dir = self.last_scheme_dir 
     940        else: 
     941            start_dir = QDesktopServices.storageLocation( 
     942                            QDesktopServices.DocumentsLocation) 
     943 
    921944        filename = QFileDialog.getSaveFileName( 
    922945            self, self.tr("Save Orange Scheme File"), 
     
    927950            filename = unicode(filename) 
    928951            dirname, basename = os.path.split(filename) 
    929             self.last_save_scheme_dir = dirname 
    930             curr_scheme = self.current_document().scheme 
     952            self.last_scheme_dir = dirname 
     953 
    931954            try: 
    932955                curr_scheme.save_to(open(filename, "wb")) 
     
    12251248                          self.scheme_margins_enabled) 
    12261249 
     1250        settings.setValue("last_scheme_dir", self.last_scheme_dir) 
    12271251        settings.endGroup() 
    12281252 
Note: See TracChangeset for help on using the changeset viewer.