[pitivi: 49/65] Changed ProjectSettingsDialog to generate unique names when a new preset is added. Required to fix b
- From: Thibault Saunier <tsaunier src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi: 49/65] Changed ProjectSettingsDialog to generate unique names when a new preset is added. Required to fix b
- Date: Mon, 4 Jul 2011 01:23:21 +0000 (UTC)
commit 86822f9d4837f872171ad5d4fb167f9bf7f43173
Author: Alex BÄluÈ <alexandru balut gmail com>
Date: Mon Jun 13 16:38:49 2011 +0200
Changed ProjectSettingsDialog to generate unique names when a new preset is added.
Required to fix bug 638799.
pitivi/ui/projectsettings.py | 19 ++++++++++++++++-
tests/Makefile.am | 1 +
tests/test_projectsettings.py | 43 +++++++++++++++++++++++++++++++++++++++++
3 files changed, 61 insertions(+), 2 deletions(-)
---
diff --git a/pitivi/ui/projectsettings.py b/pitivi/ui/projectsettings.py
index dbb965e..c91705b 100644
--- a/pitivi/ui/projectsettings.py
+++ b/pitivi/ui/projectsettings.py
@@ -356,12 +356,27 @@ class ProjectSettingsDialog():
self.par_fraction_widget.set_sensitive(not state)
self.par_combo.set_sensitive(not state)
+ @staticmethod
+ def _getUniquePresetName(mgr):
+ """Get a unique name for a new preset for the specified PresetManager.
+ """
+ existing_preset_names = list(mgr.getPresetNames())
+ preset_name = _("New Preset")
+ i = 1
+ while preset_name in existing_preset_names:
+ preset_name = _("New Preset %d") % i
+ i += 1
+ return preset_name
+
def _addAudioPresetButtonClickedCb(self, button):
- self.audio_presets.addPreset(_("New Preset"), {
+ preset_name = self._getUniquePresetName(self.audio_presets)
+ self.audio_presets.addPreset(preset_name, {
"channels": get_combo_value(self.channels_combo),
"sample-rate": get_combo_value(self.sample_rate_combo),
"depth": get_combo_value(self.sample_depth_combo)
})
+ self.audio_presets.restorePreset(preset_name)
+ self._updateAudioPresetButtons()
def _removeAudioPresetButtonClickedCb(self, button):
selection = self.audio_preset_treeview.get_selection()
@@ -374,7 +389,7 @@ class ProjectSettingsDialog():
self.save_audio_preset_button.set_sensitive(False)
def _addVideoPresetButtonClickedCb(self, button):
- preset_name = _("New Preset")
+ preset_name = self._getUniquePresetName(self.video_presets)
self.video_presets.addPreset(preset_name, {
"width": int(self.width_spinbutton.get_value()),
"height": int(self.height_spinbutton.get_value()),
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 1326d4d..c016f1f 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -35,6 +35,7 @@ tests = \
integration_tests = \
test_integration.py \
test_preset.py \
+ test_projectsettings.py \
test_still_image.py
EXTRA_DIST = \
diff --git a/tests/test_projectsettings.py b/tests/test_projectsettings.py
new file mode 100644
index 0000000..9d5a5f9
--- /dev/null
+++ b/tests/test_projectsettings.py
@@ -0,0 +1,43 @@
+# PiTiVi , Non-linear video editor
+#
+# tests/test_projectsettings.py
+#
+# Copyright (c) 2011, Alex Balut <alexandru balut gmail com>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the
+# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+
+from unittest import TestCase
+
+from pitivi.ui.preset import PresetManager
+from pitivi.ui.projectsettings import ProjectSettingsDialog
+
+
+class TestProjectSettingsDialog(TestCase):
+
+ def testGetUniquePresetName(self):
+ preset_manager = PresetManager()
+ name = ProjectSettingsDialog._getUniquePresetName(preset_manager)
+ self.assertEqual('New Preset', name)
+
+ preset_manager.addPreset(name, {})
+ new_preset1 = ProjectSettingsDialog._getUniquePresetName(preset_manager)
+ self.assertEqual('New Preset 1', new_preset1)
+
+ # Intentionally add 'New Preset 2' before 'New Preset 1'.
+ preset_manager.addPreset('New Preset 2', {})
+ preset_manager.addPreset(new_preset1, {})
+ new_preset3 = ProjectSettingsDialog._getUniquePresetName(preset_manager)
+ self.assertEqual('New Preset 3', new_preset3)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]