From 832644c2b7296d8393795293f15155330bcbb577 Mon Sep 17 00:00:00 2001 From: Sergio Costas Date: Fri, 8 Aug 2014 00:03:11 +0200 Subject: [PATCH] Added a new element type to interface_manager to simplify using the PAL/NTSC toggles --- src/devede/file_movie.py | 6 +----- src/devede/interface_manager.py | 38 +++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/src/devede/file_movie.py b/src/devede/file_movie.py index 736cf1b..6610b05 100644 --- a/src/devede/file_movie.py +++ b/src/devede/file_movie.py @@ -56,7 +56,7 @@ class file_movie(devede.interface_manager.interface_manager): else: self.original_aspect_ratio = 1.777 # dummy value - self.add_toggle("format_pal",self.config.PAL) + self.add_dualtoggle("format_pal","format_ntsc",self.config.PAL) self.add_toggle("video_rate_automatic", True) self.add_toggle("audio_rate_automatic", True) self.add_toggle("divide_in_chapters", True) @@ -530,10 +530,6 @@ class file_movie(devede.interface_manager.interface_manager): self.update_ui(self.builder) self.on_aspect_classic_toggled(None) self.on_treeview_subtitles_cursor_changed(None) - if self.format_pal: - self.wformat_pal.set_active(True) - else: - self.wformat_ntsc.set_active(True) def on_aspect_classic_toggled(self,b): diff --git a/src/devede/interface_manager.py b/src/devede/interface_manager.py index 9f52542..ff3c15a 100644 --- a/src/devede/interface_manager.py +++ b/src/devede/interface_manager.py @@ -27,6 +27,7 @@ class interface_manager(GObject.GObject): GObject.GObject.__init__(self) self.interface_groups = {} self.interface_toggles = [] + self.interface_dualtoggles = [] self.interface_labels = [] self.interface_text = [] self.interface_show_hide = [] @@ -59,6 +60,15 @@ class interface_manager(GObject.GObject): exec('self.'+toggle_name+' = '+str(default_value)) self.interface_toggles.append( (toggle_name, callback) ) + def add_dualtoggle(self,toggle_name,toggle2,default_value,callback = None): + """ Adds an internal variable with the name toggle_name, linked to widget + elements with names toggle_nane and toggle2 (must be or inherint from Gtk.ToogleButton). + The default value can be True of False, with True being toggle_name active, and False + being toggle2 active """ + + exec('self.'+toggle_name+' = '+str(default_value)) + self.interface_dualtoggles.append( (toggle_name, toggle2, callback) ) + def add_text(self,text_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.TextEntry or a Gtk.Label). @@ -172,6 +182,18 @@ class interface_manager(GObject.GObject): if (callback != None): obj.connect("toggled",callback) + for element in self.interface_dualtoggles: + value = eval('self.'+element[0]) + obj = builder.get_object(element[0]) + obj2 = builder.get_object(element[1]) + if value: + obj.set_active(True) + else: + obj2.set_active(True) + callback = element[2] + if (callback != None): + obj.connect("toggled",callback) + for element in self.interface_text: value = eval('self.'+element[0]) obj = builder.get_object(element[0]) @@ -380,6 +402,13 @@ class interface_manager(GObject.GObject): else: exec('self.'+element[0]+' = False') + for element in self.interface_dualtoggles: + obj = builder.get_object(element[0]) + if obj.get_active(): + exec('self.'+element[0]+' = True') + else: + exec('self.'+element[0]+' = False') + for element in self.interface_text: obj = builder.get_object(element[0]) exec('self.'+element[0]+' = obj.get_text()') @@ -430,6 +459,8 @@ class interface_manager(GObject.GObject): 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_dualtoggles: + 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: @@ -454,6 +485,8 @@ class interface_manager(GObject.GObject): 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_dualtoggles: + 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: @@ -482,6 +515,8 @@ class interface_manager(GObject.GObject): output[element] = eval('self.'+element) for element in self.interface_toggles: output[element[0]] = eval('self.'+element[0]) + for element in self.interface_dualtoggles: + output[element[0]] = eval('self.'+element[0]) for element in self.interface_text: output[element[0]] = eval('self.'+element[0]) for element in self.interface_integer_adjustments: @@ -512,6 +547,9 @@ class interface_manager(GObject.GObject): for element in self.interface_toggles: if element[0] in data_list: exec('self.'+element[0]+' = data_list["'+element[0]+'"]') + for element in self.interface_dualtoggles: + if element[0] in data_list: + exec('self.'+element[0]+' = data_list["'+element[0]+'"]') for element in self.interface_text: if element[0] in data_list: exec('self.'+element[0]+' = data_list["'+element[0]+'"]')