summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Wendel <h_wendel@cojobo.net>2005-08-09 10:58:04 +0000
committerHeinrich Wendel <h_wendel@cojobo.net>2005-08-09 10:58:04 +0000
commit2195973b7fa026a3fc1af8ea2c9ff592fdf24801 (patch)
treee0d4a7cf2a89a69c913066646a502b8b74faeb17
parente3f45ba22c9c81e766dcd301a31c18fd8200cd6b (diff)
another fix
-rw-r--r--xdg/Menu.py46
1 files changed, 20 insertions, 26 deletions
diff --git a/xdg/Menu.py b/xdg/Menu.py
index 16489bb..a153b82 100644
--- a/xdg/Menu.py
+++ b/xdg/Menu.py
@@ -751,13 +751,11 @@ def __parseMergeDir(value, child, filename, parent):
if value:
for item in os.listdir(value):
try:
- item.decode(locale.getpreferredencoding()).encode('utf-8')
- except:
+ if os.path.splitext(item)[1] == ".menu":
+ __mergeFile(os.path.join(value, item), child, parent)
+ except UnicodeDecodeError:
continue
- if os.path.splitext(item)[1] == ".menu":
- __mergeFile(os.path.join(value, item), child, parent)
-
def __parseDefaultMergeDirs(child, filename, parent):
basename = os.path.splitext(os.path.basename(filename))[0]
for dir in reversed(xdg_config_dirs):
@@ -806,15 +804,13 @@ def __mergeLegacyDir(dir, prefix, filename, parent):
for item in os.listdir(dir):
try:
- item.decode(locale.getpreferredencoding()).encode('utf-8')
- except:
+ if item == ".directory":
+ m.Directories.append(item)
+ elif os.path.isdir(os.path.join(dir,item)):
+ m.addSubmenu(__mergeLegacyDir(os.path.join(dir,item), prefix, filename, parent))
+ except UnicodeDecodeError:
continue
- if item == ".directory":
- m.Directories.append(item)
- elif os.path.isdir(os.path.join(dir,item)):
- m.addSubmenu(__mergeLegacyDir(os.path.join(dir,item), prefix, filename, parent))
-
tmp["cache"].addMenuEntries([dir],prefix, True)
menuentries = tmp["cache"].getMenuEntries([dir], False)
@@ -1005,11 +1001,6 @@ class MenuEntryCache:
def __addFiles(self, dir, subdir, prefix, legacy):
for item in os.listdir(os.path.join(dir,subdir)):
- try:
- item.decode(locale.getpreferredencoding()).encode('utf-8')
- except:
- continue
-
if os.path.splitext(item)[1] == ".desktop":
try:
menuentry = MenuEntry(os.path.join(subdir,item), dir, prefix)
@@ -1037,14 +1028,17 @@ class MenuEntryCache:
pass
for dir in appdirs:
for menuentry in self.cacheEntries[dir]:
- if menuentry.DesktopFileID not in ids:
- ids.append(menuentry.DesktopFileID)
- list.append(menuentry)
- elif menuentry.getType() == "System":
- # FIXME: This is only 99% correct, but still...
- i = list.index(menuentry)
- e = list[i]
- if e.getType() == "User":
- e.Original = menuentry
+ try:
+ if menuentry.DesktopFileID not in ids:
+ ids.append(menuentry.DesktopFileID)
+ list.append(menuentry)
+ elif menuentry.getType() == "System":
+ # FIXME: This is only 99% correct, but still...
+ i = list.index(menuentry)
+ e = list[i]
+ if e.getType() == "User":
+ e.Original = menuentry
+ except UnicodeDecodeError:
+ continue
self.cache[key] = list
return list