Allows to store and restore an specific UI configuration

Allows to cancel the modifications in a DVD menu
This commit is contained in:
Sergio Costas 2014-07-19 20:23:47 +02:00
parent d9b8ee4d3f
commit 11f5bc9e9d
2 changed files with 65 additions and 17 deletions

View file

@ -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()

View file

@ -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)')
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')