[pitivi] misc: Make base file name safe for UI



commit dbf95576357cb090f9cbda55e46cfcb869c8c1d2
Author: Suhas Nayak <suhas2go gmail com>
Date:   Sun Jan 29 16:47:37 2017 +0530

    misc: Make base file name safe for UI
    
    If the base file name consists of special symbols,
    GTK uses base file name as markup text.
    
    Debug/Log statements now use path_from_uri
    
    This fixes T7683
    
    Differential Revision: https://phabricator.freedesktop.org/D1628

 pitivi/timeline/previewers.py |   15 ++++++++-------
 pitivi/utils/misc.py          |    9 +++++++--
 2 files changed, 15 insertions(+), 9 deletions(-)
---
diff --git a/pitivi/timeline/previewers.py b/pitivi/timeline/previewers.py
index c7bc4f6..85c196e 100644
--- a/pitivi/timeline/previewers.py
+++ b/pitivi/timeline/previewers.py
@@ -39,6 +39,7 @@ from pitivi.utils.misc import binary_search
 from pitivi.utils.misc import filename_from_uri
 from pitivi.utils.misc import get_proxy_target
 from pitivi.utils.misc import hash_file
+from pitivi.utils.misc import path_from_uri
 from pitivi.utils.misc import quantize
 from pitivi.utils.misc import quote_uri
 from pitivi.utils.system import CPUUsageTracker
@@ -467,12 +468,12 @@ class VideoPreviewer(Previewer, Zoomable, Loggable):
             self.interval *= 0.9
             self.log(
                 'Thumbnailing sped up (+10%%) to a %.1f ms interval for "%s"',
-                self.interval, filename_from_uri(self.uri))
+                self.interval, path_from_uri(self.uri))
         else:
             self.interval *= 1.1
             self.log(
                 'Thumbnailing slowed down (-10%%) to a %.1f ms interval for "%s"',
-                self.interval, filename_from_uri(self.uri))
+                self.interval, path_from_uri(self.uri))
         self.cpu_usage_tracker.reset()
         self._thumb_cb_id = GLib.timeout_add(self.interval,
                                              self._create_next_thumb,
@@ -480,7 +481,7 @@ class VideoPreviewer(Previewer, Zoomable, Loggable):
 
     def _startThumbnailingWhenIdle(self):
         self.debug(
-            'Waiting for UI to become idle for: %s', filename_from_uri(self.uri))
+            'Waiting for UI to become idle for: %s', path_from_uri(self.uri))
         GLib.idle_add(self._startThumbnailing, priority=GLib.PRIORITY_LOW)
 
     def _startThumbnailing(self):
@@ -491,7 +492,7 @@ class VideoPreviewer(Previewer, Zoomable, Loggable):
             return
 
         self.debug(
-            'Now generating thumbnails for: %s', filename_from_uri(self.uri))
+            'Now generating thumbnails for: %s', path_from_uri(self.uri))
         query_success, duration = self.pipeline.query_duration(Gst.Format.TIME)
         if not query_success or duration == -1:
             self.debug("Could not determine duration of: %s", self.uri)
@@ -526,7 +527,7 @@ class VideoPreviewer(Previewer, Zoomable, Loggable):
             self.queue.remove(wish)
         else:
             time = self.queue.pop(0)
-        self.log('Creating thumb for "%s"' % filename_from_uri(self.uri))
+        self.log('Creating thumb for "%s"', path_from_uri(self.uri))
         # append the time to the end of the queue so that if this seek fails
         # another try will be started later
         self.queue.append(time)
@@ -976,7 +977,7 @@ class AudioPreviewer(Previewer, Zoomable, Loggable):
     def startLevelsDiscoveryWhenIdle(self):
         """Starts processing waveform (whenever possible)."""
         self.debug('Waiting for UI to become idle for: %s',
-                   filename_from_uri(self._uri))
+                   path_from_uri(self._uri))
         GLib.idle_add(self._startLevelsDiscovery, priority=GLib.PRIORITY_LOW)
 
     def _startLevelsDiscovery(self):
@@ -992,7 +993,7 @@ class AudioPreviewer(Previewer, Zoomable, Loggable):
 
     def _launchPipeline(self):
         self.debug(
-            'Now generating waveforms for: %s', filename_from_uri(self._uri))
+            'Now generating waveforms for: %s', path_from_uri(self._uri))
         self.pipeline = Gst.parse_launch("uridecodebin name=decode uri=" +
                                          self._uri + " ! waveformbin name=wave"
                                          " ! fakesink qos=false name=faked")
diff --git a/pitivi/utils/misc.py b/pitivi/utils/misc.py
index 59b8662..b6612e3 100644
--- a/pitivi/utils/misc.py
+++ b/pitivi/utils/misc.py
@@ -142,9 +142,14 @@ def filename_from_uri(uri):
 
     Excludes the path to the file.
 
-    Can be used in UI elements or to shorten debug statements.
+    Can be used in UI elements.
+
+    Returns:
+        str: The markup escaped filename
     """
-    return os.path.basename(path_from_uri(uri))
+    base_name = os.path.basename(path_from_uri(uri))
+    safe_base_name = GLib.markup_escape_text(base_name)
+    return safe_base_name
 
 
 def quote_uri(uri):


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