From 6ea2f9238a6afda9a9b3a85d32abedf7dd219d46 Mon Sep 17 00:00:00 2001 From: Julien Lengrand-Lambert Date: Fri, 31 Aug 2012 10:31:33 +0200 Subject: [PATCH] Implements save settings. Everything seem to work fine. Later work with default parameters in a better way. --- ivolution/gui_wx/IvolutionWindow.py | 27 +++++++++---------- ivolution/gui_wx/SettingsTemplate.py | 9 ++++--- ivolution/gui_wx/SettingsWindow.py | 40 +++++++++++++++++++++++++++- 3 files changed, 57 insertions(+), 19 deletions(-) diff --git a/ivolution/gui_wx/IvolutionWindow.py b/ivolution/gui_wx/IvolutionWindow.py index f66ca85..94a1872 100644 --- a/ivolution/gui_wx/IvolutionWindow.py +++ b/ivolution/gui_wx/IvolutionWindow.py @@ -122,11 +122,11 @@ class IvolutionWindow(IvolutionTemplate, Observer, Observable): """ Activated when a user clicks to choose its input location """ - default_dir = "~/Pictures" - self.inputdialog = wx.DirDialog(self, "Please choose your input directory", style=1, defaultPath=default_dir) + self.inputdialog = wx.DirDialog(self, "Please choose your input directory", style=1, defaultPath=self.in_fo) if self.inputdialog.ShowModal() == wx.ID_OK: - self.inputtextbox.SetLabel(self.inputdialog.GetPath()) + self.in_fo = self.inputdialog.GetPath() + self.inputtextbox.SetLabel(self.in_fo) self.inputdialog.Destroy() def on_output(self, event): @@ -241,18 +241,19 @@ either expressed or implied, of the FreeBSD Project.""" Retrieves all parameters needed for the algorithm to run """ #self.in_fo = self.inputtextbox.GetLabel() + "/" - self.in_fo = "C:\Users\jll\perso\Ivolution\ivolution\data\samples" + "/" - self.out_fo = "C:\Users\jll\Videos" + "/" - #self.out_fo = self.outputchoosertext.GetLabel() + "/" - self.param = "frontal_face" - #self.param = self.typefacelist.GetValue() - #self.speed = self.videospeedlistChoices.index(self.videospeedlist.GetValue()) # We need and integer between 0 and 2 - self.speed = self.videospeedlistChoices[1] + # self.in_fo = "C:\Users\jll\perso\Ivolution\ivolution\data\samples" + "/" + # self.out_fo = "C:\Users\jll\Videos" + "/" + # #self.out_fo = self.outputchoosertext.GetLabel() + "/" + # self.param = "frontal_face" + # #self.param = self.typefacelist.GetValue() + # #self.speed = self.videospeedlistChoices.index(self.videospeedlist.GetValue()) # We need and integer between 0 and 2 + # self.speed = self.videospeedlistChoices[1] - self.mode = "crop" - self.sort = "name" + # self.mode = "crop" + # self.sort = "name" #self.mode = self.get_current_mode() #self.sort = self.get_current_sort() + self.print_parameters() # Instantiating the face_params object that will be needed by the facemovie par_fo = os.path.join(self.root_fo, get_data("haarcascades")) @@ -264,8 +265,6 @@ either expressed or implied, of the FreeBSD Project.""" self.mode, self.speed) - self.print_parameters() - def print_parameters(self): print "#########" print "Settings:" diff --git a/ivolution/gui_wx/SettingsTemplate.py b/ivolution/gui_wx/SettingsTemplate.py index cd107df..80cb11a 100644 --- a/ivolution/gui_wx/SettingsTemplate.py +++ b/ivolution/gui_wx/SettingsTemplate.py @@ -91,7 +91,7 @@ class SettingsTemplate ( wx.Frame ): self.basicPage.SetSizer( fgSizer5 ) self.basicPage.Layout() fgSizer5.Fit( self.basicPage ) - self.m_notebook4.AddPage( self.basicPage, u"Basic", True ) + self.m_notebook4.AddPage( self.basicPage, u"Basic", False ) self.advancedPage = wx.Panel( self.m_notebook4, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) fgSizer11 = wx.FlexGridSizer( 4, 1, 0, 0 ) fgSizer11.SetFlexibleDirection( wx.BOTH ) @@ -108,7 +108,7 @@ class SettingsTemplate ( wx.Frame ): speedSizer.Add( self.speedLabel, 0, wx.ALL, 5 ) speedComboChoices = [ u"Slow", u"Medium", u"Fast" ] - self.speedCombo = wx.ComboBox( self.advancedPage, wx.ID_ANY, u"Medium", wx.DefaultPosition, wx.DefaultSize, speedComboChoices, 0 ) + self.speedCombo = wx.ComboBox( self.advancedPage, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, speedComboChoices, 0 ) speedSizer.Add( self.speedCombo, 0, wx.ALL|wx.EXPAND, 5 ) fgSizer11.Add( speedSizer, 1, wx.EXPAND, 10 ) @@ -151,7 +151,7 @@ class SettingsTemplate ( wx.Frame ): typeSizer.Add( self.typeLabel, 0, wx.ALL, 5 ) typeComboChoices = [ u"frontal_face", u"profile_face" ] - self.typeCombo = wx.ComboBox( self.advancedPage, wx.ID_ANY, u"frontal_face", wx.DefaultPosition, wx.DefaultSize, typeComboChoices, 0 ) + self.typeCombo = wx.ComboBox( self.advancedPage, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, typeComboChoices, 0 ) typeSizer.Add( self.typeCombo, 0, wx.ALL, 5 ) fgSizer11.Add( typeSizer, 1, wx.EXPAND, 5 ) @@ -179,7 +179,7 @@ class SettingsTemplate ( wx.Frame ): self.advancedPage.SetSizer( fgSizer11 ) self.advancedPage.Layout() fgSizer11.Fit( self.advancedPage ) - self.m_notebook4.AddPage( self.advancedPage, u"Advanced", False ) + self.m_notebook4.AddPage( self.advancedPage, u"Advanced", True ) fgSizer4.Add( self.m_notebook4, 1, wx.ALL|wx.EXPAND, 5 ) @@ -217,3 +217,4 @@ class SettingsTemplate ( wx.Frame ): def on_save( self, event ): event.Skip() + diff --git a/ivolution/gui_wx/SettingsWindow.py b/ivolution/gui_wx/SettingsWindow.py index 3e82608..d2779ef 100644 --- a/ivolution/gui_wx/SettingsWindow.py +++ b/ivolution/gui_wx/SettingsWindow.py @@ -30,6 +30,8 @@ class SettingsWindow(SettingsTemplate): #self.SetIcon(wx.Icon('ivolution/data/media/icons/spanner_48.ico', # wx.BITMAP_TYPE_ICO)) + self.parent = parent + # Defining settings value self.output_folder = parent.out_fo self.video_name = "Ivolution" @@ -40,6 +42,8 @@ class SettingsWindow(SettingsTemplate): # setting default value from main window self.outputLocationLabel.SetLabel(self.output_folder) + self.typeCombo.SetSelection(0) + self.speedCombo.SetSelection(1) # Virtual event handlers, overide them in your derived class def on_output(self, event): @@ -57,4 +61,38 @@ class SettingsWindow(SettingsTemplate): self.Close(True) # Close the frame. def on_save(self, event): - event.Skip() + # output_folder is already set + self.video_name = self.outputText.GetValue() + self.type = self.typeCombo.GetSelection() + self.mode = self.modeRadioBox.GetSelection() + self.speed = self.speedCombo.GetSelection() + self.sort = self.sortRadioBox.GetSelection() + + #self.print_parameters() + self.setParentParams() + self.Close(True) # Close the frame. + + def setParentParams(self): + modeChoices = [u"conservative", u"crop"] + paramChoices = [u"frontal_face", u"profile_face"] + sortChoices = [u"name", u"exif"] + + #self.video_name + self.parent.out_fo = self.output_folder + self.parent.param = paramChoices[self.type] + self.parent.mode = modeChoices[self.mode] + self.parent.speed = self.speed + self.parent.sort = sortChoices[self.sort] + + def print_parameters(self): + print "#########" + print "Settings:" + print "file name : %s" % (self.video_name) + print "output folder : %s" % (self.output_folder) + + print "Face Type : %s" % (self.type) + print "Speed chosen : %s" % (self.speed) + print "Mode chosen : %s" % (self.mode) + print "Sort method : %s" % (self.sort) + + print "#########"