New export assistant
svn: r8857
This commit is contained in:
		@@ -103,7 +103,6 @@ class ExportAssistant(gtk.Assistant, ManagedWindow.ManagedWindow) :
 | 
			
		||||
        
 | 
			
		||||
        #set up Assisant
 | 
			
		||||
        gtk.Assistant.__init__(self)
 | 
			
		||||
        self.set_title('test')
 | 
			
		||||
        
 | 
			
		||||
        #set up ManagedWindow
 | 
			
		||||
        self.top_title = _("Export Assistant")
 | 
			
		||||
@@ -135,6 +134,9 @@ class ExportAssistant(gtk.Assistant, ManagedWindow.ManagedWindow) :
 | 
			
		||||
        #no progress page, use uistate progressbar
 | 
			
		||||
        self.create_page_summary()
 | 
			
		||||
        
 | 
			
		||||
        #we need our own forward function as options page must not always be shown
 | 
			
		||||
        self.set_forward_page_func(self.forward_func, None)
 | 
			
		||||
        
 | 
			
		||||
        #ManagedWindow show method
 | 
			
		||||
        ManagedWindow.ManagedWindow.show(self)
 | 
			
		||||
        
 | 
			
		||||
@@ -198,11 +200,8 @@ class ExportAssistant(gtk.Assistant, ManagedWindow.ManagedWindow) :
 | 
			
		||||
        self.append_page(page)
 | 
			
		||||
        self.set_page_header_image(page, self.logo)
 | 
			
		||||
        self.set_page_title(page, _('Choose the format you want to export to'))
 | 
			
		||||
        #there is always one radio button selected
 | 
			
		||||
        self.set_page_complete(page, True)
 | 
			
		||||
    
 | 
			
		||||
        self.set_page_type(page, gtk.ASSISTANT_PAGE_CONTENT)
 | 
			
		||||
        #After selecting an export type, we need to decide to show options or not
 | 
			
		||||
        self.set_forward_page_func(self.forward_func, None)
 | 
			
		||||
        
 | 
			
		||||
            
 | 
			
		||||
    def create_page_options(self):
 | 
			
		||||
@@ -261,9 +260,8 @@ class ExportAssistant(gtk.Assistant, ManagedWindow.ManagedWindow) :
 | 
			
		||||
        self.chooser.set_local_only(False)
 | 
			
		||||
        self.chooser.set_do_overwrite_confirmation(True)
 | 
			
		||||
        
 | 
			
		||||
        folder, name = self.suggest_filename()
 | 
			
		||||
        self.chooser.set_current_folder(folder)
 | 
			
		||||
        self.chooser.set_current_name(name)
 | 
			
		||||
        #created, folder and name not set
 | 
			
		||||
        self.folder_is_set = False
 | 
			
		||||
        
 | 
			
		||||
        #connect changes in filechooser with check to mark page complete
 | 
			
		||||
        self.chooser.connect("selection-changed", self.check_fileselect)
 | 
			
		||||
@@ -274,7 +272,6 @@ class ExportAssistant(gtk.Assistant, ManagedWindow.ManagedWindow) :
 | 
			
		||||
        #  do not release button, click forward. We expect user not to do this
 | 
			
		||||
        #  In case he does, recheck on confirmation page!
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        self.chooser.show_all()
 | 
			
		||||
        page = self.chooser
 | 
			
		||||
 | 
			
		||||
@@ -360,38 +357,55 @@ class ExportAssistant(gtk.Assistant, ManagedWindow.ManagedWindow) :
 | 
			
		||||
        else :
 | 
			
		||||
            back = False
 | 
			
		||||
        
 | 
			
		||||
        #remember previous page for next time
 | 
			
		||||
        self.__previous_page = page_number
 | 
			
		||||
        
 | 
			
		||||
        if back :
 | 
			
		||||
            #when moving backward, show page as it was
 | 
			
		||||
            pass
 | 
			
		||||
            #when moving backward, show page as it was, 
 | 
			
		||||
            #page we come from is set incomplete so as to disallow user jumping 
 | 
			
		||||
            # to last page after backward move
 | 
			
		||||
            self.set_page_complete(self.get_nth_page(self.__previous_page), 
 | 
			
		||||
                                    False)
 | 
			
		||||
            
 | 
			
		||||
        elif page_number == _ExportAssistant_pages['options'] :
 | 
			
		||||
            self.create_options()
 | 
			
		||||
            self.set_page_complete(page, True)
 | 
			
		||||
        elif page == self.chooser :
 | 
			
		||||
            # next page is the file chooser, reset filename, keep folder where user was
 | 
			
		||||
            folder, name = self.suggest_filename()
 | 
			
		||||
            page.set_current_name(name)
 | 
			
		||||
            if self.folder_is_set :
 | 
			
		||||
                page.set_current_name(name)
 | 
			
		||||
            else :
 | 
			
		||||
                page.set_current_name(name)
 | 
			
		||||
                page.set_current_folder(folder)
 | 
			
		||||
                self.folder_is_set = True
 | 
			
		||||
            # see if page is complete with above
 | 
			
		||||
            self.check_fileselect(page)
 | 
			
		||||
            
 | 
			
		||||
        elif self.get_page_type(page) ==  gtk.ASSISTANT_PAGE_CONFIRM :
 | 
			
		||||
            # The confirm page with apply button
 | 
			
		||||
            # Present user with what will happen
 | 
			
		||||
            filename = unicode(self.chooser.get_filename(),
 | 
			
		||||
                           sys.getfilesystemencoding())
 | 
			
		||||
            name = os.path.split(filename)[1]
 | 
			
		||||
            folder = os.path.split(filename)[0]
 | 
			
		||||
            ix = self.get_selected_format_index()
 | 
			
		||||
            format = self.exportformats[ix][1].replace('_','')
 | 
			
		||||
 | 
			
		||||
            confirm_text = _(
 | 
			
		||||
            #Allow for exotic error: file is still not correct
 | 
			
		||||
            self.check_fileselect(self.chooser)
 | 
			
		||||
            if self.get_page_complete(self.chooser) :
 | 
			
		||||
                filename = unicode(self.chooser.get_filename(),
 | 
			
		||||
                           sys.getfilesystemencoding())
 | 
			
		||||
                name = os.path.split(filename)[1]
 | 
			
		||||
                folder = os.path.split(filename)[0]
 | 
			
		||||
                confirm_text = _(
 | 
			
		||||
                'The data will be saved as follows:\n\n'
 | 
			
		||||
                'Format:\t%s\nName:\t%s\nFolder:\t%s\n\n'
 | 
			
		||||
                'Press Apply to proceed, Back to revisit '
 | 
			
		||||
                'your options, or Cancel to abort') % (format, name, folder)
 | 
			
		||||
                
 | 
			
		||||
                self.set_page_complete(page, True)
 | 
			
		||||
            else :
 | 
			
		||||
                confirm_text = _(
 | 
			
		||||
                'The selected file and folder to save to '
 | 
			
		||||
                'cannot be created or found.\n\n'
 | 
			
		||||
                'Press Back to return and select a valid filename.'
 | 
			
		||||
                ) 
 | 
			
		||||
                self.set_page_complete(page, False)
 | 
			
		||||
            
 | 
			
		||||
            page.set_label(confirm_text)
 | 
			
		||||
                
 | 
			
		||||
        elif self.get_page_type(page) ==  gtk.ASSISTANT_PAGE_SUMMARY :
 | 
			
		||||
@@ -428,6 +442,13 @@ class ExportAssistant(gtk.Assistant, ManagedWindow.ManagedWindow) :
 | 
			
		||||
                'a copy of your data that failed to save.')
 | 
			
		||||
            page.set_label(conclusion_text)
 | 
			
		||||
            self.set_page_title(page, conclusion_title)
 | 
			
		||||
            self.set_page_complete(page, True)
 | 
			
		||||
        else :
 | 
			
		||||
            #whatever other page, if we show it, it is complete to
 | 
			
		||||
            self.set_page_complete(page, True)
 | 
			
		||||
            
 | 
			
		||||
        #remember previous page for next time
 | 
			
		||||
        self.__previous_page = page_number
 | 
			
		||||
        
 | 
			
		||||
    def close(self, *obj) :
 | 
			
		||||
        #clean up ManagedWindow menu, then destroy window, bring forward parent
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user