[pitivi] Refactor project.py and render.py to have cleaner init methods



commit 4ac841d9c241fb1527a0080219dd7469cb491874
Author: Jean-François Fortin Tam <nekohayo gmail com>
Date:   Fri Aug 9 20:16:28 2013 +0100

    Refactor project.py and render.py to have cleaner init methods

 pitivi/dialogs/prefs.py |    1 +
 pitivi/mainwindow.py    |    1 -
 pitivi/project.py       |   91 +++++++++++++++++++++++++---------------------
 pitivi/render.py        |   68 ++++++++++++++++++-----------------
 4 files changed, 85 insertions(+), 76 deletions(-)
---
diff --git a/pitivi/dialogs/prefs.py b/pitivi/dialogs/prefs.py
index 2a1ee6b..cadf261 100644
--- a/pitivi/dialogs/prefs.py
+++ b/pitivi/dialogs/prefs.py
@@ -63,6 +63,7 @@ class PreferencesDialog():
         min_height = req.height
         width = max(min_width, self.settings.prefsDialogWidth)
         height = max(min_height, self.settings.prefsDialogHeight)
+        self.dialog.set_transient_for(instance.gui)
         self.dialog.set_default_size(width, height)
 
     def run(self):
diff --git a/pitivi/mainwindow.py b/pitivi/mainwindow.py
index 2b42b31..ed7877b 100644
--- a/pitivi/mainwindow.py
+++ b/pitivi/mainwindow.py
@@ -815,7 +815,6 @@ class PitiviMainWindow(Gtk.Window, Loggable):
         if not self.prefsdialog:
             from pitivi.dialogs.prefs import PreferencesDialog
             self.prefsdialog = PreferencesDialog(self.app)
-            self.prefsdialog.dialog.set_transient_for(self)
         self.prefsdialog.run()
 
     def _gaplessmodeToggledCb(self, widget):
diff --git a/pitivi/project.py b/pitivi/project.py
index 2579a74..2c5f6b0 100644
--- a/pitivi/project.py
+++ b/pitivi/project.py
@@ -1005,13 +1005,60 @@ class ProjectSettingsDialog():
 
     def __init__(self, parent_window, project):
         self.project = project
+        self._createUi()
+        self.window.set_transient_for(parent_window)
+        self._setupUiConstraints()
+        self.updateUI()
+        self.createAudioNoPreset(self.audio_presets)
+        self.createVideoNoPreset(self.video_presets)
 
+    def _createUi(self):
+        """
+        Initialize the static parts of the UI and set up various shortcuts
+        """
         self.builder = Gtk.Builder()
         self.builder.add_from_file(os.path.join(get_ui_dir(), "projectsettings.ui"))
         self.builder.connect_signals(self)
-        self._setProperties()  # Initialize a bunch of UI shortcut variables
-        self.window.set_transient_for(parent_window)
 
+        getObj = self.builder.get_object
+        self.window = getObj("project-settings-dialog")
+        self.video_properties_table = getObj("video_properties_table")
+        self.video_properties_table = getObj("video_properties_table")
+        self.frame_rate_combo = getObj("frame_rate_combo")
+        self.dar_combo = getObj("dar_combo")
+        self.par_combo = getObj("par_combo")
+        self.channels_combo = getObj("channels_combo")
+        self.sample_rate_combo = getObj("sample_rate_combo")
+        self.year_spinbutton = getObj("year_spinbutton")
+        self.author_entry = getObj("author_entry")
+        self.width_spinbutton = getObj("width_spinbutton")
+        self.height_spinbutton = getObj("height_spinbutton")
+        self.save_audio_preset_button = getObj("save_audio_preset_button")
+        self.save_video_preset_button = getObj("save_video_preset_button")
+        self.audio_preset_treeview = getObj("audio_preset_treeview")
+        self.video_preset_treeview = getObj("video_preset_treeview")
+        self.select_par_radiobutton = getObj("select_par_radiobutton")
+        self.remove_audio_preset_button = getObj("remove_audio_preset_button")
+        self.remove_video_preset_button = getObj("remove_video_preset_button")
+        self.constrain_sar_button = getObj("constrain_sar_button")
+        self.select_dar_radiobutton = getObj("select_dar_radiobutton")
+        self.video_preset_infobar = getObj("video-preset-infobar")
+        self.audio_preset_infobar = getObj("audio-preset-infobar")
+        self.title_entry = getObj("title_entry")
+        self.author_entry = getObj("author_entry")
+        self.year_spinbutton = getObj("year_spinbutton")
+
+        # Set the shading style in the contextual toolbars below presets
+        video_presets_toolbar = getObj("video_presets_toolbar")
+        audio_presets_toolbar = getObj("audio_presets_toolbar")
+        video_presets_toolbar.get_style_context().add_class("inline-toolbar")
+        audio_presets_toolbar.get_style_context().add_class("inline-toolbar")
+
+    def _setupUiConstraints(self):
+        """
+        Create dynamic widgets and
+        set up the relationships between various widgets
+        """
         # add custom display aspect ratio widget
         self.dar_fraction_widget = FractionWidget()
         self.video_properties_table.attach(self.dar_fraction_widget,
@@ -1152,17 +1199,6 @@ class ProjectSettingsDialog():
         self.wg.addEdge(self.channels_combo, self.save_audio_preset_button)
         self.wg.addEdge(self.sample_rate_combo, self.save_audio_preset_button)
 
-        # Set the shading style in the contextual toolbars below presets
-        video_presets_toolbar = self.builder.get_object("video_presets_toolbar")
-        audio_presets_toolbar = self.builder.get_object("audio_presets_toolbar")
-        video_presets_toolbar.get_style_context().add_class("inline-toolbar")
-        audio_presets_toolbar.get_style_context().add_class("inline-toolbar")
-
-        self.updateUI()
-
-        self.createAudioNoPreset(self.audio_presets)
-        self.createVideoNoPreset(self.video_presets)
-
     def bindPar(self, mgr):
 
         def updatePar(value):
@@ -1289,35 +1325,6 @@ class ProjectSettingsDialog():
         height = int(self.height_spinbutton.get_value())
         return Gst.Fraction(width, height)
 
-    def _setProperties(self):
-        getObj = self.builder.get_object
-        self.window = getObj("project-settings-dialog")
-        self.video_properties_table = getObj("video_properties_table")
-        self.video_properties_table = getObj("video_properties_table")
-        self.frame_rate_combo = getObj("frame_rate_combo")
-        self.dar_combo = getObj("dar_combo")
-        self.par_combo = getObj("par_combo")
-        self.channels_combo = getObj("channels_combo")
-        self.sample_rate_combo = getObj("sample_rate_combo")
-        self.year_spinbutton = getObj("year_spinbutton")
-        self.author_entry = getObj("author_entry")
-        self.width_spinbutton = getObj("width_spinbutton")
-        self.height_spinbutton = getObj("height_spinbutton")
-        self.save_audio_preset_button = getObj("save_audio_preset_button")
-        self.save_video_preset_button = getObj("save_video_preset_button")
-        self.audio_preset_treeview = getObj("audio_preset_treeview")
-        self.video_preset_treeview = getObj("video_preset_treeview")
-        self.select_par_radiobutton = getObj("select_par_radiobutton")
-        self.remove_audio_preset_button = getObj("remove_audio_preset_button")
-        self.remove_video_preset_button = getObj("remove_video_preset_button")
-        self.constrain_sar_button = getObj("constrain_sar_button")
-        self.select_dar_radiobutton = getObj("select_dar_radiobutton")
-        self.video_preset_infobar = getObj("video-preset-infobar")
-        self.audio_preset_infobar = getObj("audio-preset-infobar")
-        self.title_entry = getObj("title_entry")
-        self.author_entry = getObj("author_entry")
-        self.year_spinbutton = getObj("year_spinbutton")
-
     def _constrainSarButtonToggledCb(self, button):
         if button.props.active:
             self.sar = self.getSAR()
diff --git a/pitivi/render.py b/pitivi/render.py
index 80f5c39..e7a6b89 100644
--- a/pitivi/render.py
+++ b/pitivi/render.py
@@ -328,17 +328,7 @@ class RenderDialog(Loggable):
         # {object: sigId}
         self._gstSigId = {}
 
-        self.builder = Gtk.Builder()
-        self.builder.add_from_file(os.path.join(configure.get_ui_dir(), "renderingdialog.ui"))
-        self.builder.connect_signals(self)
-        self._setProperties()  # Initialize a bunch of UI shortcut variables
-        icon = os.path.join(configure.get_pixmap_dir(), "pitivi-render-16.png")
-        self.window.set_icon_from_file(icon)
-        self.window.set_transient_for(app.gui)
-
-        # Set the shading style in the toolbar below presets
-        presets_toolbar = self.builder.get_object("render_presets_toolbar")
-        presets_toolbar.get_style_context().add_class("inline-toolbar")
+        self._createUi()
 
         # FIXME: re-enable this widget when bug #637078 is implemented
         self.selected_only_button.destroy()
@@ -627,28 +617,40 @@ class RenderDialog(Loggable):
         update_preset_buttons_func()
         self._hidePresetManagerError(mgr)
 
-    def _setProperties(self):
-        self.window = self.builder.get_object("render-dialog")
-        self.selected_only_button = self.builder.get_object("selected_only_button")
-        self.video_output_checkbutton = self.builder.get_object("video_output_checkbutton")
-        self.audio_output_checkbutton = self.builder.get_object("audio_output_checkbutton")
-        self.render_button = self.builder.get_object("render_button")
-        self.video_settings_button = self.builder.get_object("video_settings_button")
-        self.audio_settings_button = self.builder.get_object("audio_settings_button")
-        self.frame_rate_combo = self.builder.get_object("frame_rate_combo")
-        self.scale_spinbutton = self.builder.get_object("scale_spinbutton")
-        self.channels_combo = self.builder.get_object("channels_combo")
-        self.sample_rate_combo = self.builder.get_object("sample_rate_combo")
-        self.muxercombobox = self.builder.get_object("muxercombobox")
-        self.audio_encoder_combo = self.builder.get_object("audio_encoder_combo")
-        self.video_encoder_combo = self.builder.get_object("video_encoder_combo")
-        self.filebutton = self.builder.get_object("filebutton")
-        self.fileentry = self.builder.get_object("fileentry")
-        self.resolution_label = self.builder.get_object("resolution_label")
-        self.render_preset_treeview = self.builder.get_object("render_preset_treeview")
-        self.save_render_preset_button = self.builder.get_object("save_render_preset_button")
-        self.remove_render_preset_button = self.builder.get_object("remove_render_preset_button")
-        self.render_preset_infobar = self.builder.get_object("render-preset-infobar")
+    def _createUi(self):
+        builder = Gtk.Builder()
+        builder.add_from_file(os.path.join(configure.get_ui_dir(), "renderingdialog.ui"))
+        builder.connect_signals(self)
+
+        self.window = builder.get_object("render-dialog")
+        self.selected_only_button = builder.get_object("selected_only_button")
+        self.video_output_checkbutton = builder.get_object("video_output_checkbutton")
+        self.audio_output_checkbutton = builder.get_object("audio_output_checkbutton")
+        self.render_button = builder.get_object("render_button")
+        self.video_settings_button = builder.get_object("video_settings_button")
+        self.audio_settings_button = builder.get_object("audio_settings_button")
+        self.frame_rate_combo = builder.get_object("frame_rate_combo")
+        self.scale_spinbutton = builder.get_object("scale_spinbutton")
+        self.channels_combo = builder.get_object("channels_combo")
+        self.sample_rate_combo = builder.get_object("sample_rate_combo")
+        self.muxercombobox = builder.get_object("muxercombobox")
+        self.audio_encoder_combo = builder.get_object("audio_encoder_combo")
+        self.video_encoder_combo = builder.get_object("video_encoder_combo")
+        self.filebutton = builder.get_object("filebutton")
+        self.fileentry = builder.get_object("fileentry")
+        self.resolution_label = builder.get_object("resolution_label")
+        self.render_preset_treeview = builder.get_object("render_preset_treeview")
+        self.save_render_preset_button = builder.get_object("save_render_preset_button")
+        self.remove_render_preset_button = builder.get_object("remove_render_preset_button")
+        self.render_preset_infobar = builder.get_object("render-preset-infobar")
+
+        icon = os.path.join(configure.get_pixmap_dir(), "pitivi-render-16.png")
+        self.window.set_icon_from_file(icon)
+        self.window.set_transient_for(self.app.gui)
+
+        # Set the shading style in the toolbar below presets
+        presets_toolbar = builder.get_object("render_presets_toolbar")
+        presets_toolbar.get_style_context().add_class("inline-toolbar")
 
     def _settingsChanged(self, project, key, value):
         self.updateResolution()


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]