use os.sep and strip what's already in input box from complete options

This commit is contained in:
Nick Lanham 2011-04-13 11:52:03 +02:00
parent 19799d74b4
commit bb0746c3e8
1 changed files with 6 additions and 5 deletions

View File

@ -42,7 +42,7 @@ try:
except ImportError: except ImportError:
pass pass
import logging,os.path import logging,os,os.path
from popup import Popup from popup import Popup
@ -476,7 +476,8 @@ class TextInput(InputField):
self.cursor = len(prefix) self.cursor = len(prefix)
if len(opts) > 1 and second_hit: # display multiple options on second tab hit if len(opts) > 1 and second_hit: # display multiple options on second tab hit
self.opts = " ".join(opts) sp = self.value.rfind(os.sep)+1
self.opts = " ".join([o[sp:] for o in opts])
# Cursor movement # Cursor movement
elif c == curses.KEY_LEFT: elif c == curses.KEY_LEFT:
@ -519,6 +520,7 @@ class TextInput(InputField):
self.value = self.value[:self.cursor] + uchar + self.value[self.cursor:] self.value = self.value[:self.cursor] + uchar + self.value[self.cursor:]
# Move the cursor forward # Move the cursor forward
self.cursor+=1 self.cursor+=1
def complete(self,line): def complete(self,line):
line = os.path.abspath(os.path.expanduser(line)) line = os.path.abspath(os.path.expanduser(line))
@ -534,7 +536,7 @@ class TextInput(InputField):
continue continue
f = os.path.join(line, f) f = os.path.join(line, f)
if os.path.isdir(f): if os.path.isdir(f):
f += "/" f += os.sep
ret.append(f) ret.append(f)
else: else:
# This is a file, but we could be looking for another file that # This is a file, but we could be looking for another file that
@ -552,9 +554,8 @@ class TextInput(InputField):
p = os.path.join(os.path.dirname(line), f) p = os.path.join(os.path.dirname(line), f)
if os.path.isdir(p): if os.path.isdir(p):
p += "/" p += os.sep
ret.append(p) ret.append(p)
return ret return ret