[pitivi] exportsettingswidget: Fix several issues related to loading/saving settings.
- From: Edward Hervey <edwardrv src gnome org>
- To: svn-commits-list gnome org
- Subject: [pitivi] exportsettingswidget: Fix several issues related to loading/saving settings.
- Date: Tue, 5 May 2009 11:07:14 -0400 (EDT)
commit 5c150b0f6bc6dba13258d53e8feadabb94a71242
Author: Edward Hervey <bilboed bilboed com>
Date: Tue May 5 17:22:19 2009 +0200
exportsettingswidget: Fix several issues related to loading/saving settings.
There seems to have been some subtle changes in gtk since this code was
written, causing the combobox changed callback to be called more often.
This should partially fix #569834
---
pitivi/project.py | 2 +-
pitivi/ui/exportsettingswidget.py | 22 ++++++++++++++++++----
2 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/pitivi/project.py b/pitivi/project.py
index 5f8d6f8..c3a1b76 100644
--- a/pitivi/project.py
+++ b/pitivi/project.py
@@ -102,7 +102,6 @@ class Project(Signallable, Loggable):
self.timeline = Timeline()
-
self.factory = TimelineSourceFactory(self.timeline)
self.pipeline = Pipeline()
self.view_action = ViewAction()
@@ -126,6 +125,7 @@ class Project(Signallable, Loggable):
If no setting have been explicitely set, some smart settings will be
chosen.
"""
+ self.debug("self.settings %s", self.settings)
return self.settings or self.getAutoSettings()
def setSettings(self, settings):
diff --git a/pitivi/ui/exportsettingswidget.py b/pitivi/ui/exportsettingswidget.py
index 81576b3..9b76ece 100644
--- a/pitivi/ui/exportsettingswidget.py
+++ b/pitivi/ui/exportsettingswidget.py
@@ -65,8 +65,10 @@ class ExportSettingsWidget(GladeWidget, Loggable):
self.containersettings = {}
self.vcodecsettings = {}
self.acodecsettings = {}
+ self._loading = False
def setSettings(self, settings):
+ self.debug("settings:%s", settings)
self.settings = settings
self._fillSettings()
@@ -159,6 +161,7 @@ class ExportSettingsWidget(GladeWidget, Loggable):
self.acodeccbox.set_active(selected)
# Muxer
+ self._loading = True
self.muxers = self.settings.muxers
muxs = self.muxercombobox.get_model()
muxs.clear()
@@ -169,6 +172,7 @@ class ExportSettingsWidget(GladeWidget, Loggable):
if mux.get_name() == self.settings.muxer:
selected = idx
idx = idx + 1
+ self._loading = False
self.muxercombobox.set_active(selected)
# Encoder/Muxer settings
@@ -202,9 +206,11 @@ class ExportSettingsWidget(GladeWidget, Loggable):
def _videoComboboxChangedCb(self, widget):
idx = widget.get_active()
- if idx == len(self.video_presets):
+ if idx == -1 or idx == len(self.video_presets):
+ # not a preset
activate = True
else:
+ # valid preset
activate = False
self.videowidthspin.set_value(self.video_presets[idx][1])
self.videoheightspin.set_value(self.video_presets[idx][2])
@@ -215,9 +221,11 @@ class ExportSettingsWidget(GladeWidget, Loggable):
def _audioComboboxChangedCb(self, widget):
idx = widget.get_active()
- if idx == len(self.audio_presets):
+ if idx == -1 or idx == len(self.audio_presets):
+ # not a preset
activate = True
else:
+ # valid preset
activate = False
self.audiochanncbox.set_active(self.audio_presets[idx][1] - 1)
self._putGoodAudiorate(self.audio_presets[idx][2])
@@ -227,6 +235,9 @@ class ExportSettingsWidget(GladeWidget, Loggable):
self.audiodepthcbox.set_sensitive(activate)
def _muxerComboboxChangedCb(self, widget):
+ if self._loading:
+ return
+ # get previous video encoder name
if self.validvencoders:
vidx = self.vcodeccbox.get_active()
if vidx < len(self.validvencoders):
@@ -235,6 +246,8 @@ class ExportSettingsWidget(GladeWidget, Loggable):
prevvenc = None
else:
prevvenc = self.settings.vencoder
+
+ # get previous audio encoder name
if self.validaencoders:
aidx = self.acodeccbox.get_active()
if aidx < len(self.validaencoders):
@@ -352,6 +365,8 @@ class ExportSettingsWidget(GladeWidget, Loggable):
self.settings.acodecsettings = self.acodecsettings
self.settings.vcodecsettings = self.vcodecsettings
+ self.debug("Returning %s", self.settings)
+
return self.settings
@@ -369,5 +384,4 @@ class ExportSettingsDialog(gtk.Dialog):
self.setwidget.show_all()
def getSettings(self):
- self.setwidget.updateSettings()
- return self.setwidget.settings
+ return self.setwidget.updateSettings()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]