From 375e60627a69d96f4743842c93ca1871a50383c7 Mon Sep 17 00:00:00 2001 From: Daniel Schadt Date: Thu, 24 Mar 2016 00:14:22 +0100 Subject: [PATCH] dirbrowser: ditch .lstrip, add file_url function --- qutebrowser/browser/network/filescheme.py | 6 ++---- qutebrowser/html/dirbrowser.html | 6 +++--- qutebrowser/utils/jinja.py | 11 +++++++++++ 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/qutebrowser/browser/network/filescheme.py b/qutebrowser/browser/network/filescheme.py index 4a3bfdcf6..f8ccf5185 100644 --- a/qutebrowser/browser/network/filescheme.py +++ b/qutebrowser/browser/network/filescheme.py @@ -44,9 +44,7 @@ def get_file_list(basedir, all_files, filterfunc): for filename in all_files: absname = os.path.join(basedir, filename) if filterfunc(absname): - # Absolute paths in Unix start with a slash ('/'), but we already - # have enough slashes in the template, so we don't need it here - items.append({'name': filename, 'absname': absname.lstrip('/')}) + items.append({'name': filename, 'absname': absname}) return sorted(items, key=lambda v: v['name'].lower()) @@ -84,7 +82,7 @@ def dirbrowser_html(path): if is_root(path): parent = None else: - parent = os.path.normpath(os.path.join(path, '..')).lstrip('/') + parent = os.path.normpath(os.path.join(path, '..')) try: all_files = os.listdir(path) diff --git a/qutebrowser/html/dirbrowser.html b/qutebrowser/html/dirbrowser.html index aee4cb874..1a73261f6 100644 --- a/qutebrowser/html/dirbrowser.html +++ b/qutebrowser/html/dirbrowser.html @@ -48,19 +48,19 @@ ul.files > li { {% if parent is not none %} {% endif %} diff --git a/qutebrowser/utils/jinja.py b/qutebrowser/utils/jinja.py index e6ccd9c6c..e608cc3ff 100644 --- a/qutebrowser/utils/jinja.py +++ b/qutebrowser/utils/jinja.py @@ -74,6 +74,15 @@ def resource_url(path): return QUrl.fromLocalFile(image).toString(QUrl.FullyEncoded) +def file_url(path): + """Return a file:// url (as string) to the given local path. + + Arguments: + path: The absolute path to the local file + """ + return QUrl.fromLocalFile(path).toString(QUrl.FullyEncoded) + + def render(template, **kwargs): """Render the given template and pass the given arguments to it.""" try: @@ -85,5 +94,7 @@ def render(template, **kwargs): tb = traceback.format_exc() return err_template.format(pagename=template, traceback=tb) + _env = jinja2.Environment(loader=Loader('html'), autoescape=_guess_autoescape) _env.globals['resource_url'] = resource_url +_env.globals['file_url'] = file_url