From 5fd1209295fc1c0d72acfbd225da897de004067c Mon Sep 17 00:00:00 2001 From: Julien Lengrand-Lambert Date: Sat, 18 Aug 2012 10:37:38 +0200 Subject: [PATCH] Cleans up some code --- ivolution/gui/AboutDialog.py | 10 ++-- ivolution/gui/IvolutionWindow.py | 100 +++++++++++++++---------------- 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/ivolution/gui/AboutDialog.py b/ivolution/gui/AboutDialog.py index 8e8b6b2..d88dd3d 100755 --- a/ivolution/gui/AboutDialog.py +++ b/ivolution/gui/AboutDialog.py @@ -2,17 +2,19 @@ from gi.repository import Gtk from .. import get_data + class AboutDialog(): def __init__(self): - """Special static method that's automatically called by Python when + """ + Special static method that's automatically called by Python when constructing a new instance of this class. - + Returns a fully instantiated AboutDialog object. """ self.builder = Gtk.Builder() self.builder.add_from_file(get_data("/ui/AboutIvolutionDialog.glade")) - self.window = self.builder.get_object("about_ivolution_dialog") + self.window = self.builder.get_object("about_ivolution_dialog") self.window.run() - self.window.destroy() \ No newline at end of file + self.window.destroy() diff --git a/ivolution/gui/IvolutionWindow.py b/ivolution/gui/IvolutionWindow.py index 03bd593..036effa 100755 --- a/ivolution/gui/IvolutionWindow.py +++ b/ivolution/gui/IvolutionWindow.py @@ -22,7 +22,8 @@ from .. import FacemovieThread from ..util.Notifier import Observer from ..util.Notifier import Observable -class IvolutionWindow(Observer, Observable): + +class IvolutionWindow(Observer, Observable): def __init__(self, name): FacemovieThread.Observer.__init__(self, name) FacemovieThread.Observable.__init__(self) @@ -36,24 +37,24 @@ class IvolutionWindow(Observer, Observable): #self.builder.connect_signals({ "on_ivolutionwindow_destroy" : Gtk.main_quit }) self.window = self.builder.get_object("ivolution_window") self.window.show() - self.builder.connect_signals(self) + self.builder.connect_signals(self) ## Defines parameters needed to run the FaceMovie self.root_fo = "" - self.in_fo = "" # Input folder, where images are located - self.out_fo = "" # Input folder, where the video will be saved - self.mode = "crop" # type of video to be created - self.sort = "name" # how image files will be chronologically sorted - self.speed = 1 # Speed of the movie - self.param = "frontal_face" # type of face profile to be searched for + self.in_fo = "" # Input folder, where images are located + self.out_fo = "" # Input folder, where the video will be saved + self.mode = "crop" # type of video to be created + self.sort = "name" # how image files will be chronologically sorted + self.speed = 1 # Speed of the movie + self.param = "frontal_face" # type of face profile to be searched for - self.in_fo = "" # Input folder, where images are located + self.in_fo = "" # Input folder, where images are located self.process_running = False self.facemovie = None - self.AboutDialog = None # class + self.AboutDialog = None # class self.setup() self.setup_logger() @@ -68,7 +69,7 @@ class IvolutionWindow(Observer, Observable): self.filechooserinput = self.builder.get_object("filechooserinput") self.filechooseroutput = self.builder.get_object("filechooseroutput") - + self.typecombobox = self.builder.get_object("typecombobox") self.typecombobox.set_active(0) @@ -81,23 +82,21 @@ class IvolutionWindow(Observer, Observable): self.progressbar = self.builder.get_object("progressbar") self.statuslabel = self.builder.get_object("statuslabel") - # Signal handling related stuff - - def on_cropradiobutton_toggled(self,widget): + def on_cropradiobutton_toggled(self, widget): """ We need to take care only of this one as both are grouped """ - if widget.get_active(): # means crop is activated + if widget.get_active(): # means crop is activated self.mode = "crop" else: self.mode = "conservative" - def on_namesortradiobutton_toggled(self,widget): + def on_namesortradiobutton_toggled(self, widget): """ We need to take care only of this one as both are grouped """ - if widget.get_active(): # means name is activated + if widget.get_active(): # means name is activated self.sort = "name" else: self.sort = "exif" @@ -107,34 +106,34 @@ class IvolutionWindow(Observer, Observable): Sets all parameters and start processing """ self.my_logger.debug("start pressed") - if not self.process_running: # start only if not already running + if not self.process_running: # start only if not already running self.set_parameters() self.print_parameters() # Instantiating the facemovie self.facemovie = FacemovieThread.FacemovieThread(self.face_params) - self.facemovie.subscribe(self) # I want new information ! Subscribes to facemovie reports - self.subscribe(self.facemovie) # Subscribing facemovie to our messages + self.facemovie.subscribe(self) # I want new information ! Subscribes to facemovie reports + self.subscribe(self.facemovie) # Subscribing facemovie to our messages self.facemovie.start() self.process_running = True else: self.console_logger.error("Cannot start, process already running !") - self.my_logger.error("Cannot start, process already running !") + self.my_logger.error("Cannot start, process already running !") def on_stopbutton_pressed(self, widget): """ Asks the Facemovie thread to terminate """ self.my_logger.debug("Stop pressed") - self.console_logger.debug("Stop pressed") - self.notify(["STOP"]) # Asking the Facemovie to stop + self.console_logger.debug("Stop pressed") + self.notify(["STOP"]) # Asking the Facemovie to stop self.process_running = False def on_destroy(self, widget, data=None): """Called when the IvolutionWindow is closed.""" # Clean up code for saving application state should be added here. - self.notify(["STOP"]) # Asking the Facemovie to stop + self.notify(["STOP"]) # Asking the Facemovie to stop self.process_running = False Gtk.main_quit() @@ -153,7 +152,7 @@ class IvolutionWindow(Observer, Observable): Opens a browser and points to online help. """ url = "http://jlengrand.github.com/FaceMovie/" - webbrowser.open(url,new=2) # in new tab if possible + webbrowser.open(url, new=2) # in new tab if possible #print "Should open help" #Methods processing data @@ -161,10 +160,10 @@ class IvolutionWindow(Observer, Observable): """ Sets all needed parameters for create the movie. """ - self.in_fo = self.filechooserinput.get_current_folder() + "/" # TODO : Find correct fix - self.out_fo = self.filechooseroutput.get_current_folder() + "/" # TODO : Find correct fix + self.in_fo = self.filechooserinput.get_current_folder() + "/" # TODO : Find correct fix + self.out_fo = self.filechooseroutput.get_current_folder() + "/" # TODO : Find correct fix self.param = self.typecombobox.get_active_text() - self.speed = self.speedcombobox.get_active() # We need and integer between 0 and 2 + self.speed = self.speedcombobox.get_active() # We need and integer between 0 and 2 # Instantiating the face_params object that will be needed by the facemovie par_fo = os.path.join(self.root_fo, get_data("haarcascades")) @@ -179,16 +178,15 @@ class IvolutionWindow(Observer, Observable): def print_parameters(self): print "#########" print "Settings:" - print "input folder : %s" %( self.in_fo) - print "output folder : %s" %( self.out_fo) + print "input folder : %s" % (self.in_fo) + print "output folder : %s" % (self.out_fo) - print "Face Type : %s" %( self.param) - print "Speed chosen : %s" %( self.speed) - print "Mode chosen : %s" %( self.mode) - print "Sort method : %s" %( self.sort) - - print "#########" + print "Face Type : %s" % (self.param) + print "Speed chosen : %s" % (self.speed) + print "Mode chosen : %s" % (self.mode) + print "Sort method : %s" % (self.sort) + print "#########" def setup_logger(self): """ @@ -197,29 +195,29 @@ class IvolutionWindow(Observer, Observable): """ personal_dir = "~/.ivolution" log_root = 'fm.log' - log_file = os.path.join(os.path.expanduser(personal_dir),log_root) + log_file = os.path.join(os.path.expanduser(personal_dir), log_root) # create logger for 'facemovie' self.my_logger = logging.getLogger('FileLog') - + self.my_logger.setLevel(logging.DEBUG) # create file handler which logs even debug messages - + #fh = logging.StreamHandler() fh = logging.FileHandler(log_file) fh.setLevel(logging.DEBUG) # create console handler with a higher log level self.console_logger = logging.getLogger('ConsoleLog') - self.console_logger.setLevel(logging.DEBUG) # not needed + self.console_logger.setLevel(logging.DEBUG) # not needed ch = logging.StreamHandler() #ch.setLevel(logging.DEBUG) # not needed # add the handlers to the logger self.my_logger.addHandler(fh) - - self.my_logger.info("######") # Separating different sessions + + self.my_logger.info("######") # Separating different sessions formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # create formatter and add it to the handlers @@ -230,7 +228,7 @@ class IvolutionWindow(Observer, Observable): def update(self, message): """ - Trigerred by FacemovieThread. + Trigerred by FacemovieThread. Uses the Observer pattern to inform the user about the progress of the current job. """ if len(message) == 3: @@ -238,29 +236,29 @@ class IvolutionWindow(Observer, Observable): #self.console_logger.debug(message) self.my_logger.debug(message) - if message[0] == "PROGRESS": # progress bar + if message[0] == "PROGRESS": # progress bar # big steps performed # Uses GLib to run Thread safe operations on GUI GLib.idle_add(self.progressbar.set_fraction, float(message[2])) GLib.idle_add(self.progressbar.set_text, message[1]) - if float(message[2]) >= 1.0: # 100% of process + if float(message[2]) >= 1.0: # 100% of process self.my_logger.debug("Reached end of facemovie process") - #self.console_logger.debug("Reached end of facemovie process") - self.process_running = False + #self.console_logger.debug("Reached end of facemovie process") + self.process_running = False - elif message[0] == "STATUS": # status label + elif message[0] == "STATUS": # status label # intermediate results GLib.idle_add(self.statuslabel.set_text, message[1]) #pass - elif len(message) > 1: #system commands shall be ignored + elif len(message) > 1: # system commands shall be ignored self.console_logger.debug("Unrecognized command") self.my_logger.debug("Unrecognized command") self.console_logger.debug(message) - self.my_logger.debug(message) + self.my_logger.debug(message) if __name__ == "__main__": app = IvolutionWindow() - Gtk.main() \ No newline at end of file + Gtk.main()