[pitivi/ges: 173/287] utils: Move PathWalker to misc utils
- From: Jean-FranÃois Fortin Tam <jfft src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi/ges: 173/287] utils: Move PathWalker to misc utils
- Date: Thu, 15 Mar 2012 16:40:22 +0000 (UTC)
commit a284457283a142fd8e0de1dd4c7371cfcb500b40
Author: Thibault Saunier <thibault saunier collabora com>
Date: Mon Jan 9 17:19:47 2012 -0300
utils: Move PathWalker to misc utils
pitivi/sourcelist.py | 5 +--
pitivi/ui/Makefile.am | 1 -
pitivi/ui/pathwalker.py | 64 ----------------------------------------------
pitivi/utils/Makefile.am | 1 +
pitivi/utils/misc.py | 49 +++++++++++++++++++++++++++++++++--
5 files changed, 49 insertions(+), 71 deletions(-)
---
diff --git a/pitivi/sourcelist.py b/pitivi/sourcelist.py
index 016787c..fedf45e 100644
--- a/pitivi/sourcelist.py
+++ b/pitivi/sourcelist.py
@@ -40,12 +40,11 @@ from pitivi.configure import get_pixmap_dir
from pitivi.settings import GlobalSettings
from pitivi.utils.ui import beautify_length
-from pitivi.utils.signal import SignalGroup
-from pitivi.utils.signal import Signallable
+from pitivi.utils.misc import PathWalker, quote_uri
+from pitivi.utils.signal import SignalGroup, Signallable
from pitivi.utils.loggable import Loggable
import pitivi.utils.ui as dnd
-from pitivi.ui.pathwalker import PathWalker, quote_uri
from pitivi.ui.filechooserpreview import PreviewWidget
from pitivi.ui.filelisterrordialog import FileListErrorDialog
from pitivi.utils.ui import beautify_info, info_name, \
diff --git a/pitivi/ui/Makefile.am b/pitivi/ui/Makefile.am
index 003265d..fc3dc62 100644
--- a/pitivi/ui/Makefile.am
+++ b/pitivi/ui/Makefile.am
@@ -12,7 +12,6 @@ ui_PYTHON = \
filelisterrordialog.py \
gstwidget.py \
mainwindow.py \
- pathwalker.py \
prefs.py \
preset.py \
previewer.py \
diff --git a/pitivi/utils/Makefile.am b/pitivi/utils/Makefile.am
index a207b65..72950b9 100644
--- a/pitivi/utils/Makefile.am
+++ b/pitivi/utils/Makefile.am
@@ -13,6 +13,7 @@ utils_PYTHON = \
system.py \
threads.py \
receiver.py \
+ pathwalker.py \
misc.py
clean-local:
diff --git a/pitivi/utils/misc.py b/pitivi/utils/misc.py
index a433012..f367c12 100644
--- a/pitivi/utils/misc.py
+++ b/pitivi/utils/misc.py
@@ -30,11 +30,16 @@ import bisect
import os
import struct
import time
+import threading
+
+from urlparse import urlsplit, urlunsplit
+from urllib import quote, unquote
-from pitivi.configure import APPMANUALURL_OFFLINE, APPMANUALURL_ONLINE
-from pitivi.utils.signal import Signallable
import pitivi.utils.loggable as log
-from gettext import ngettext
+from pitivi.utils.threads import Thread
+
+from pitivi.configure import APPMANUALURL_OFFLINE, APPMANUALURL_ONLINE
+
try:
import cProfile
except ImportError:
@@ -129,6 +134,44 @@ def get_filesystem_encoding():
return sys.getfilesystemencoding() or "utf-8"
+def quote_uri(uri):
+ parts = list(urlsplit(uri, allow_fragments=False))
+ parts[2] = quote(parts[2])
+ uri = urlunsplit(parts)
+ return uri
+
+
+class PathWalker(Thread):
+ """
+ Thread for recursively searching in a list of directories
+ """
+
+ def __init__(self, paths, callback):
+ Thread.__init__(self)
+ self.log("New PathWalker for %s" % paths)
+ self.paths = paths
+ self.callback = callback
+ self.stopme = threading.Event()
+
+ def process(self):
+ for folder in self.paths:
+ self.log("folder %s" % folder)
+ if folder.startswith("file://"):
+ folder = unquote(folder[len("file://"):])
+ for path, dirs, files in os.walk(folder):
+ if self.stopme.isSet():
+ return
+ uris = []
+ for afile in files:
+ uris.append(quote_uri("file://%s" %
+ os.path.join(path, afile)))
+ if uris:
+ self.callback(uris)
+
+ def abort(self):
+ self.stopme.set()
+
+
#------------------------------ Gst helpers --------------------------------#
def get_controllable_properties(element):
"""
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]