diff --git a/src/devede/dvd_menu.py b/src/devede/dvd_menu.py index 850ad99..4b9eb18 100644 --- a/src/devede/dvd_menu.py +++ b/src/devede/dvd_menu.py @@ -35,31 +35,32 @@ class dvd_menu(devede.interface_manager.interface_manager): self.add_colorbutton("shadow_color", (0,0,0,0), self.update_preview) self.add_colorbutton("selected_color", (0,1,1,1), self.update_preview) self.add_colorbutton("background_color", (0,0,0,0.75), self.update_preview) - + self.add_text("title_text", None, self.update_preview) - + self.add_group("position_vertical", ["top", "middle", "bottom"], "middle", self.update_preview) self.add_group("position_horizontal", ["left", "center", "right"], "center", self.update_preview) - + self.add_float_adjustment("margin_left", 10.0, self.update_preview) self.add_float_adjustment("margin_top", 12.5, self.update_preview) self.add_float_adjustment("margin_right", 10.0, self.update_preview) self.add_float_adjustment("margin_bottom", 12.5, self.update_preview) - + self.add_group("at_startup", ["menu_show_at_startup", "play_first_title_at_startup"], "menu_show_at_startup") - + self.add_fontbutton("title_font", "Sans 14", self.update_preview) self.add_fontbutton("entry_font", "Sans 12", self.update_preview) - + self.add_filebutton("background_picture", None, self.update_preview) self.add_filebutton("background_music", None, self.update_preview) - + def update_preview(self,b=None): - - print("Cambiado algo") + + self.store_ui(self.builder) + def on_dynamic_preview_toggled(self,b): - + self.config.menu_dynamic_preview = self.wdynamic_preview.get_active() if (self.config.menu_dynamic_preview): self.wframe_preview.show_all() @@ -82,11 +83,15 @@ class dvd_menu(devede.interface_manager.interface_manager): self.wmenu.show_all() self.update_ui(self.builder) + self.save_ui() self.on_dynamic_preview_toggled(None) def on_accept_clicked(self,b): - self.store_ui(self.builder) - print (self.entry_font) + self.wmenu.destroy() + + def on_cancel_clicked(self,b): + + self.restore_ui() self.wmenu.destroy() \ No newline at end of file diff --git a/src/devede/interface_manager.py b/src/devede/interface_manager.py index 0be2f44..4a6b842 100644 --- a/src/devede/interface_manager.py +++ b/src/devede/interface_manager.py @@ -108,20 +108,20 @@ class interface_manager(GObject.GObject): exec('self.'+colorbutton_name+' = default_value') self.interface_colorbuttons.append( (colorbutton_name, callback )) - + def add_fontbutton(self,fontbutton_name, default_value, callback = None): """ Adds an internal variable with the name text_name, linked to an element with the same name (must be a Gtk.FontButton). The default value must be a string with the font values """ - + exec('self.'+fontbutton_name+' = default_value') self.interface_fontbuttons.append( (fontbutton_name, callback )) - + def add_filebutton(self,filebutton_name, default_value, callback = None): """ Adds an internal variable with the name text_name, linked to an element with the same name (must be a Gtk.FileButton). The default value must be a string with the font values """ - + exec('self.'+filebutton_name+' = default_value') self.interface_filebuttons.append( (filebutton_name, callback )) @@ -384,4 +384,47 @@ class interface_manager(GObject.GObject): final_row.append(row.model[row.iter][c]) print (final_row) exec('self.'+element[0]+'.append(final_row)') - \ No newline at end of file + + def save_ui(self): + """ Makes a copy of all the UI variables """ + + for element in self.interface_groups: + exec('self.'+element+'_backup = self.'+element) + for element in self.interface_toggles: + exec('self.'+element[0]+'_backup = self.'+element[0]) + for element in self.interface_text: + exec('self.'+element[0]+'_backup = self.'+element[0]) + for element in self.interface_integer_adjustments: + exec('self.'+element[0]+'_backup = self.'+element[0]) + for element in self.interface_float_adjustments: + exec('self.'+element[0]+'_backup = self.'+element[0]) + for element in self.interface_colorbuttons: + exec('self.'+element[0]+'_backup = self.'+element[0]) + for element in self.interface_fontbuttons: + exec('self.'+element[0]+'_backup = self.'+element[0]) + for element in self.interface_filebuttons: + exec('self.'+element[0]+'_backup = self.'+element[0]) + for element in self.interface_lists: + exec('self.'+element[0]+'_backup = self.'+element[0]) + + def restore_ui(self): + """ Restores a copy of all the UI variables """ + + for element in self.interface_groups: + exec('self.'+element+' = self.'+element+'_backup') + for element in self.interface_toggles: + exec('self.'+element[0]+' = self.'+element[0]+'_backup') + for element in self.interface_text: + exec('self.'+element[0]+' = self.'+element[0]+'_backup') + for element in self.interface_integer_adjustments: + exec('self.'+element[0]+' = self.'+element[0]+'_backup') + for element in self.interface_float_adjustments: + exec('self.'+element[0]+' = self.'+element[0]+'_backup') + for element in self.interface_colorbuttons: + exec('self.'+element[0]+' = self.'+element[0]+'_backup') + for element in self.interface_fontbuttons: + exec('self.'+element[0]+' = self.'+element[0]+'_backup') + for element in self.interface_filebuttons: + exec('self.'+element[0]+' = self.'+element[0]+'_backup') + for element in self.interface_lists: + exec('self.'+element[0]+' = self.'+element[0]+'_backup') \ No newline at end of file