[pitivi] presets: Fix file extension must change when preset changes.
- From: Alexandru Băluț <alexbalut src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi] presets: Fix file extension must change when preset changes.
- Date: Wed, 13 Nov 2019 01:13:27 +0000 (UTC)
commit 5b34ed3ac6aedb87d39d6f2b6987e5d6055e1940
Author: kiren <kirenpillay1 gmail com>
Date: Tue Nov 12 21:19:57 2019 +0200
presets: Fix file extension must change when preset changes.
Fixes #2348
.gitignore | 5 +++++
pitivi/render.py | 20 +++++++++++---------
tests/test_render.py | 26 ++++++++++++++++++++------
3 files changed, 36 insertions(+), 15 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index feb03b64..1545afcd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,11 @@
# PyCharm
.idea
+# PyDev
+.project
+.pydevproject
+.settings/
+
# Generated by configure
mesonbuild/
Makefile
diff --git a/pitivi/render.py b/pitivi/render.py
index 271c741f..3ba5357c 100644
--- a/pitivi/render.py
+++ b/pitivi/render.py
@@ -435,9 +435,9 @@ class RenderDialog(Loggable):
# Directory and Filename
self.filebutton.set_current_folder(self.app.settings.lastExportFolder)
if not self.project.name:
- self.update_filename(_("Untitled"))
+ self._update_filename(_("Untitled"))
else:
- self.update_filename(self.project.name)
+ self._update_filename(self.project.name)
# Add a shortcut for the project folder (if saved)
if self.project.uri:
@@ -528,6 +528,7 @@ class RenderDialog(Loggable):
self.update_resolution()
self.project.add_encoding_profile(self.project.container_profile)
+ self._update_file_extension()
self._setting_encoding_profile = False
def _update_preset_menu_button(self, unused_source, unused_target):
@@ -537,9 +538,7 @@ class RenderDialog(Loggable):
set_combo_value(widget, Encoders().factories_by_name.get(muxer_name))
self.project.set_encoders(muxer=muxer_name)
- # Update the extension of the filename.
- basename = os.path.splitext(self.fileentry.get_text())[0]
- self.update_filename(basename)
+ self._update_file_extension()
# Update muxer-dependent widgets.
self.update_available_encoders()
@@ -771,7 +770,7 @@ class RenderDialog(Loggable):
megabytes = int(round(megabytes, -1)) # -1 means round to 10
return _("%d MB") % megabytes
- def update_filename(self, basename):
+ def _update_filename(self, basename):
"""Updates the filename UI element to show the specified file name."""
extension = extension_for_muxer(self.project.muxer)
if extension:
@@ -1298,6 +1297,11 @@ class RenderDialog(Loggable):
factory = get_combo_value(self.audio_encoder_combo)
self._element_settings_dialog(factory, 'audio')
+ def _update_file_extension(self):
+ # Update the extension of the filename.
+ basename = os.path.splitext(self.fileentry.get_text())[0]
+ self._update_filename(basename)
+
def _muxer_combo_changed_cb(self, combo):
"""Handles the changing of the container format combobox."""
if self._setting_encoding_profile:
@@ -1305,9 +1309,7 @@ class RenderDialog(Loggable):
factory = get_combo_value(combo)
self.project.muxer = factory.get_name()
- # Update the extension of the filename.
- basename = os.path.splitext(self.fileentry.get_text())[0]
- self.update_filename(basename)
+ self._update_file_extension()
# Update muxer-dependent widgets.
self.update_available_encoders()
diff --git a/tests/test_render.py b/tests/test_render.py
index 00b92a17..7464565b 100644
--- a/tests/test_render.py
+++ b/tests/test_render.py
@@ -265,12 +265,7 @@ class TestRender(BaseTestMediaLibrary):
project = self.create_simple_project()
dialog = self.create_rendering_dialog(project)
- # Select wanted profile
- preset_combo = dialog.render_presets.combo
- if profile_name:
- i = find_preset_row_index(preset_combo, profile_name)
- self.assertIsNotNone(i)
- preset_combo.set_active(i)
+ self.set_preset_combo_profile_for_dialog(dialog, profile_name)
return project, dialog
@@ -431,6 +426,25 @@ class TestRender(BaseTestMediaLibrary):
"""Tests rendering a simple timeline with the youtube profile."""
self.check_simple_rendering_profile("youtube")
+ def test_preset_changes_file_extension(self):
+ """Test file extension changes according to the chosen preset."""
+ _, dialog = self.setup_project_with_profile("youtube")
+ self.assertTrue(dialog.fileentry.get_text().endswith("mov"))
+
+ self.set_preset_combo_profile_for_dialog(dialog, "dvd")
+ self.assertTrue(dialog.fileentry.get_text().endswith("mpeg"))
+
+ self.set_preset_combo_profile_for_dialog(dialog, "youtube")
+ self.assertTrue(dialog.fileentry.get_text().endswith("mov"))
+
+ def set_preset_combo_profile_for_dialog(self, dialog, profile_name):
+ """Sets the preset value for an existing dialog."""
+ preset_combo = dialog.render_presets.combo
+ if profile_name:
+ i = find_preset_row_index(preset_combo, profile_name)
+ self.assertIsNotNone(i)
+ preset_combo.set_active(i)
+
@skipUnless(*encoding_target_exists("dvd"))
def test_rendering_with_dvd_profile(self):
"""Tests rendering a simple timeline with the DVD profile."""
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]