From 1fada7f316a386a07bcffc8d91cde20a0292615f Mon Sep 17 00:00:00 2001 From: Bastian Kleineidam Date: Fri, 11 Feb 2011 12:42:04 +0100 Subject: [PATCH] Do not view parent source of FTP directories. --- doc/changelog.txt | 2 +- linkcheck/gui/contextmenu.py | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/doc/changelog.txt b/doc/changelog.txt index 759ede66..8a37a39b 100644 --- a/doc/changelog.txt +++ b/doc/changelog.txt @@ -4,7 +4,7 @@ Fixes: - checking: Do not remove CGI parameters when joining URLs. - checking: Correctly detect empty FTP paths as directories. - gui: Remove old context menu action to view URL properties. -- gui: Disable viewing of parent URL source if its a local directory. +- gui: Disable viewing of parent URL source if it's a directory. Changes: - gui: Use Alt-key shortcuts for menu entries. diff --git a/linkcheck/gui/contextmenu.py b/linkcheck/gui/contextmenu.py index 80397913..34d10be7 100644 --- a/linkcheck/gui/contextmenu.py +++ b/linkcheck/gui/contextmenu.py @@ -48,10 +48,13 @@ class ContextMenu (QtGui.QMenu): parent = url_data.parent_url if not parent: return False + # Directory contents are dynamically generated, so it makes + # no sense in viewing/editing them. if parent.startswith(u"file:"): - urlparts = urlparse.urlsplit(parent) - return not os.path.isdir(get_os_filename(urlparts[2])) - return (parent.startswith(u"http:") or - parent.startswith(u"https:") or - parent.startswith(u"ftp:") or - parent.startswith(u"ftps:")) + path = urlparse.urlsplit(parent)[2] + return not os.path.isdir(get_os_filename(path)) + if parent.startswith((u"ftp:", u"ftps:")): + path = urlparse.urlsplit(parent)[2] + return bool(path) and not path.endswith(u'/') + # Only HTTP left + return parent.startswith((u"http:", u"https:"))