CVS: anygui/lib/anygui/dialogs OpenFileDialog.py,1.2,1.3
Magnus Lie Hetland <[email protected]> Sun, 17 Nov 2002 10:42:09 -0800
| Newsgroups | gmane.comp.python.anygui.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/anygui/anygui/lib/anygui/dialogs
In directory usw-pr-cvs1:/tmp/cvs-serv11968/lib/anygui/dialogs
Modified Files:
OpenFileDialog.py
Log Message:
Started to fiddle with a Borg Application, and tried to fix line endings.
Index: OpenFileDialog.py
===================================================================
RCS file: /cvsroot/anygui/anygui/lib/anygui/dialogs/OpenFileDialog.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** OpenFileDialog.py 16 Nov 2002 16:44:59 -0000 1.2
--- OpenFileDialog.py 17 Nov 2002 18:42:07 -0000 1.3
***************
*** 1,389 ****
! from __future__ import nested_scopes
!
! from anygui import Window, Label, Button, TextArea, ListBox, Frame, TextField, ComboBox
! from anygui import application, link, send
! from anygui.Models import ListModel
! from anygui.LayoutManagers import SimpleGridManager
!
! from UserList import UserList
! import re
! import sys, glob, os
! import traceback
!
! PATH_SEPAR=''
! ROOT_PATH=''
! if sys.platform in ['win32', 'dos', 'ms-dos']:
! PATH_SEPAR = '\\'
! ROOT_PATH = '[a-zA-Z]:\\\\(?!.)'
! else:
! PATH_SEPAR = '/'
! ROOT_PATH = '/(?!.)'
!
! # === SORT_RULES === #
!
! ALPHABETICAL=0
! # uses cmp
!
! DIRS_FIRST=1
! def sort_dirs_first(x, y):
! if x.endswith(PATH_SEPAR) and y.endswith(PATH_SEPAR):
! pass
! elif x.endswith(PATH_SEPAR):
! return -1
! elif y.endswith(PATH_SEPAR):
! return 1
! return cmp(x, y)
!
! FILES_FIRST=2
! def sort_files_first(x, y):
! if x.endswith(PATH_SEPAR) and y.endswith(PATH_SEPAR):
! pass
! elif x.endswith(PATH_SEPAR):
! return 1
! elif y.endswith(PATH_SEPAR):
! return -1
! return cmp(x, y)
!
! SORT_RULES={ALPHABETICAL: cmp, DIRS_FIRST: sort_dirs_first,\
! FILES_FIRST: sort_files_first}
!
! # == END SORT_RULES == #
!
! class DirManager:
!
! def __init__(self, dir, filter, sort_rule=DIRS_FIRST):
! #print '>> dir -> ', dir
! #print '>> filter -> ', filter
! assert os.path.isdir(dir), '!! DirManager: ' + dir + ' is not a directory.'
! if not dir.endswith(PATH_SEPAR):
! dir += PATH_SEPAR
! self.currDir = dir
! self.filter = filter
! self.sortRule = sort_rule
!
! self.currDirCache = []
! self.oneDirUp = ''
! self.oneDirUpCache = []
! self.twoDirUp = ''
! self.twoDirUpCache = []
! self._genDirCaches()
!
! def update(self):
! self._genDirCaches()
!
! def isRootDir(self, dir):
! if dir == ROOT_PATH or re.match(ROOT_PATH, dir):
! return 1
! else:
! return 0
!
! def currDirIsRoot(self):
! return self.isRootDir(self.currDir)
!
! def dirUp(self, dir):
! return dir[:dir[:-1].rfind(PATH_SEPAR)+1]
!
! def goDirUp():
! self.currDir = self.oneDirUp
! self._genDirCaches()
!
! def globDir(self, dir):
! if self.filter == '':
! self.filter = '*'
! cache = glob.glob(dir + self.filter)
! objCache = [ obj[obj.rfind(PATH_SEPAR)+1:] for obj in cache ]
! for i in range(len(cache)):
! if os.path.isdir(cache[i]):
! objCache[i] += PATH_SEPAR
! objCache.sort(SORT_RULES[self.sortRule])
! return objCache
!
! def _genDirCaches(self):
! #print '>> self.currDir -> ', self.currDir
! self.currDirCache = self.globDir(self.currDir)
! # now generate cache for self.dir/..
! if not self.currDirIsRoot():
! self.oneDirUp = self.dirUp(self.currDir)
! #print '>> self.oneDirUp -> ', self.oneDirUp
! self.oneDirUpCache = self.globDir(self.oneDirUp)
! # and the same for self.dir/../..
! if not self.isRootDir(self.oneDirUp):
! self.twoUpDir = self.dirUp(self.oneDirUp)
! #print '>> self.twoDirUp -> ', self.twoDirUp
! self.twoDirUpCache = self.globDir(self.twoDirUp)
!
! class OpenFileDialog(Window):
!
! def __init__(self, dir, filters, sort_rule=DIRS_FIRST):
! Window.__init__(self, title='Open File - ' + \
! application().name + '-' + application().version, \
! geometry=(250, 200, 420, 350))
! self._updating = 0
! self.dirMngr = DirManager(dir, filters[0], sort_rule)
! self._priorSelections = []
! #self.createTripaneDirList()
! self.initWidgets(filters)
!
! #def createTripaneDirList(self):
! # dirMngr = self.dirMngr
! # self.dirList = TripanedDoublyLinkedList([dirMngr.currDirCache])
! # if not dirMngr.currDirIsRoot():
! # self.dirList.prepend(dirMngr.oneDirUpCache)
! # if not dirMngr.isRootDir(dirMngr.oneDirUp):
! # self.dirList.prepend(dirMngr.twoDirUpCache)
!
! def initWidgets(self, filters):
!
! dirMngr = self.dirMngr
!
! btnDirBack = self.btnDirBack = Button(text='<', size=(50,25))
! if dirMngr.currDirIsRoot():
! btnDirBack.enabled = 0
! self.add(btnDirBack, left=10, top=10)
! link(btnDirBack, self.goDirBack)
!
! btnDirFwd = self.btnDirFwd = Button(text='>', size=(50,25))
! btnDirFwd.enabled = 0
! self.add(btnDirFwd, left=(btnDirBack, 5), top=10)
! link(btnDirFwd, self.goDirFwd)
!
! frmDirs = self.frmDirs = Frame()
! frmDirs.layout = SimpleGridManager(3,1)
! self.add(frmDirs, left=10, rigth=10, top=(btnDirBack, 5), \
! bottom=75, vstretch=1, hstretch=1)
!
! lbxDirOne = self.lbxDirOne = ListBox()
! #lbxDirOne.items = self.dirList.tripane[0]
! lbxDirOne.items = self.dirMngr.currDirCache
! lbxDirOne.selection = 0
! frmDirs.add(lbxDirOne)
! link(lbxDirOne, self.lbxSelect)
!
! lbxDirTwo = self.lbxDirTwo = ListBox()
! frmDirs.add(lbxDirTwo)
! link(lbxDirTwo, self.lbxSelect)
!
! lbxDirThree = self.lbxDirThree = ListBox()
! frmDirs.add(lbxDirThree)
! link(lbxDirThree, self.lbxSelect)
!
! btnCancel = self.btnCancel = Button(text='Cancel')
! self.add(btnCancel, right=10, top=(frmDirs, 5), hmove=1, vmove=1)
! link(self.btnCancel, self.close)
!
! btnOpen = self.btnOpen = Button(text='Open')
! self.add(btnOpen, right=10, top=(btnCancel, 5), hmove=1, vmove=1)
! link(self.btnOpen, self.open)
!
! lblLocation = self.lblLocation = Label(text='Location:', width=55)
! self.add(lblLocation, left=10, top=(frmDirs, 18), vmove=1)
!
! lblFilter = self.lblFilter = Label(text='Filter:', width=55)
! self.add(lblFilter, left=10, top=(lblLocation, 20), vmove=1)
!
! txtLocation = self.txtLocation = TextField(text=dirMngr.currDir)
! self.add(txtLocation, left=(lblLocation, 5), right=100, top=(frmDirs, 8), \
! hstretch=1, vmove=1)
! link(txtLocation, self.changeDirs)
!
! cbxFilter = self.cbxFilter = ComboBox(items=filters)
! #txtFilter = self.txtFilter = TextField(text=dirMngr.filter)
! self.add(cbxFilter, left=(lblFilter, 5), right=100, top=(txtLocation, 10), \
! hstretch=1, vmove=1)
! link(cbxFilter, self.applyFilter)
!
! def open(self, event):
! send(self, 'open', file=self.txtLocation.text)
! self.destroy()
!
! def close(self, event):
! self.destroy()
!
! def lbxSelect(self, event):
! if self._updating: return
! self_updating = 1
! source = event.source
! if source is self.lbxDirOne:
! self.handleLbxDirOneEvent()
! elif source is self.lbxDirTwo:
! self.handleLbxDirTwoEvent()
! elif source is self.lbxDirThree:
! self.handleLbxDirThreeEvent()
! self.btnDirFwd.enabled = 0
! self._updating = 0
!
! def handleLbxDirOneEvent(self):
! #print '>> handling lbxDirOne event'
! dirMngr = self.dirMngr
! s = self._state()
! obj = dirMngr.currDir + s.dirOne
! if os.path.isdir(obj):
! dirMngr.filter = self.cbxFilter.text
! result = dirMngr.globDir(obj)
! try:
! s.lbxTwo.items = result
! s.lbxThree.items = []
! except (AttributeError):
! pass
! else:
! try:
! s.lbxTwo.items = []
! s.lbxThree.items = []
! except (AttributeError):
! pass
! self.txtLocation.text = obj
!
! def handleLbxDirTwoEvent(self):
! #print '>> handling lbxDirTwo event'
! dirMngr = self.dirMngr
! s = self._state()
! obj = dirMngr.currDir + s.dirOne + s.dirTwo
! if os.path.isdir(obj):
! dirMngr.filter = self.cbxFilter.text
! result = dirMngr.globDir(obj)
! s.lbxThree.items = result
! else:
! s.lbxThree.items = []
! self.txtLocation.text = obj
!
! def handleLbxDirThreeEvent(self):
! #print '>> handling lbxDirThree event'
! dirMngr = self.dirMngr
! s = self._state()
! obj = dirMngr.currDir + s.dirOne + s.dirTwo + s.dirThree
!
! if os.path.isdir(obj):
! dirMngr.currDir += s.dirOne
! dirMngr.update()
! s.lbxOne.items = dirMngr.currDirCache
! s.lbxOne.selection = s.selTwo
! dirMngr.filter = self.cbxFilter.text
! s.lbxTwo.items = dirMngr.globDir(dirMngr.currDir + s.dirTwo)
! s.lbxTwo.selection = s.selThree
! s.lbxThree.items = dirMngr.globDir(obj)
! self.btnDirBack.enabled = 1
!
! self.txtLocation.text = obj
!
! def goDirFwd(self, event):
! #print ">> Got event: ", event
! #print ">> event dict: ", event.__dict__
! self._updating = 1
! self.handleLbxDirThreeEvent()
! if self._priorSelections:
! priSels = self._priorSelections
! self.lbxDirThree.selection = priSels[0]
! del priSels[0]
! if not self._priorSelections:
! self.btnDirFwd.enabled = 0
!
! self._updating = 0
!
!
! def goDirBack(self, event):
! #print ">> Got event: ", event
! #print ">> event dict: ", event.__dict__
!
! self._updating = 1
!
! dirMngr = self.dirMngr
! s = self._state()
!
! backDir = dirMngr.currDir
! currDir = dirMngr.currDir = dirMngr.oneDirUp
! dirMngr.update()
!
! s.lbxOne.items = dirMngr.currDirCache
! s.lbxOne.selection = dirMngr.currDirCache.index(\
! backDir[backDir[:-1].rfind(PATH_SEPAR)+1:]\
! )
!
! s.lbxTwo.items = s.itemsOne
! s.lbxTwo.selection = s.selOne
!
! s.lbxThree.items = s.itemsTwo
! s.lbxThree.selection = s.selTwo
!
! self._priorSelections.append(s.selThree)
! self.btnDirFwd.enabled = 1
! if dirMngr.currDirIsRoot():
! self.btnDirBack.enabled = 0
!
! s = self._state()
! self.txtLocation.text = currDir + s.dirOne + s.dirTwo + s.dirThree
!
! self._updating = 0
!
! def changeDirs(self, event):
! print ">> Got event: ", event
! print ">> event dict: ", event.__dict__
!
! def applyFilter(self, event):
! #print ">> Got event: ", event
! #print ">> event dict: ", event.__dict__
! self._update = 1
!
! dirMngr = self.dirMngr
! s = self._state()
!
! try:
! s.dirThree
! #print '>> filtering lbxThree'
! self.handleLbxDirTwoEvent()
! return
! except (AttributeError):
! pass
!
! try:
! s.dirTwo
! #print '>> filtering lbxTwo'
! self.handleLbxDirOneEvent()
! return
! except (AttributeError):
! pass
!
! #print '>> filtering lbxOne'
! dirMngr.filter = self.cbxFilter.text
! dirMngr.update()
!
! s.lbxOne.items = dirMngr.currDirCache
! try:
! selection = s.lbxOne.selection = dirMngr.currDirCache.index(s.dirOne)
! self.txtLocation.text = dirMngr.currDir + dirMngr.currDirCache[selection]
! except (AttributeError, ValueError):
! traceback.print_exc()
! self.txtLocation.text = dirMngr.currDir
!
! self.btnDirFwd.enabled = 0
!
! self._update = 0
!
! def _state(self):
!
! class State:
! def __str__(self):
! return str(self.__dict__)
! pass
!
! s = State()
!
! s.lbxOne = self.lbxDirOne
! s.itemsOne = s.lbxOne.items
! s.selOne = s.lbxOne.selection
!
! try:
! s.dirOne = s.lbxOne.items[s.selOne]
!
! s.lbxTwo = self.lbxDirTwo
! s.itemsTwo = s.lbxTwo.items
! s.selTwo = s.lbxTwo.selection
! s.dirTwo = s.lbxTwo.items[s.selTwo]
!
! s.lbxThree = self.lbxDirThree
! s.itemsThree = s.lbxThree.items
! s.selThree = s.lbxThree.selection
! s.dirThree = s.lbxThree.items[s.selThree]
! except (IndexError):
! pass
!
! return s
--- 1,389 ----
! from __future__ import nested_scopes
!
! from anygui import Window, Label, Button, TextArea, ListBox, Frame, TextField, ComboBox
! from anygui import application, link, send
! from anygui.Models import ListModel
! from anygui.LayoutManagers import SimpleGridManager
!
! from UserList import UserList
! import re
! import sys, glob, os
! import traceback
!
! PATH_SEPAR=''
! ROOT_PATH=''
! if sys.platform in ['win32', 'dos', 'ms-dos']:
! PATH_SEPAR = '\\'
! ROOT_PATH = '[a-zA-Z]:\\\\(?!.)'
! else:
! PATH_SEPAR = '/'
! ROOT_PATH = '/(?!.)'
!
! # === SORT_RULES === #
!
! ALPHABETICAL=0
! # uses cmp
!
! DIRS_FIRST=1
! def sort_dirs_first(x, y):
! if x.endswith(PATH_SEPAR) and y.endswith(PATH_SEPAR):
! pass
! elif x.endswith(PATH_SEPAR):
! return -1
! elif y.endswith(PATH_SEPAR):
! return 1
! return cmp(x, y)
!
! FILES_FIRST=2
! def sort_files_first(x, y):
! if x.endswith(PATH_SEPAR) and y.endswith(PATH_SEPAR):
! pass
! elif x.endswith(PATH_SEPAR):
! return 1
! elif y.endswith(PATH_SEPAR):
! return -1
! return cmp(x, y)
!
! SORT_RULES={ALPHABETICAL: cmp, DIRS_FIRST: sort_dirs_first,\
! FILES_FIRST: sort_files_first}
!
! # == END SORT_RULES == #
!
! class DirManager:
!
! def __init__(self, dir, filter, sort_rule=DIRS_FIRST):
! #print '>> dir -> ', dir
! #print '>> filter -> ', filter
! assert os.path.isdir(dir), '!! DirManager: ' + dir + ' is not a directory.'
! if not dir.endswith(PATH_SEPAR):
! dir += PATH_SEPAR
! self.currDir = dir
! self.filter = filter
! self.sortRule = sort_rule
!
! self.currDirCache = []
! self.oneDirUp = ''
! self.oneDirUpCache = []
! self.twoDirUp = ''
! self.twoDirUpCache = []
! self._genDirCaches()
!
! def update(self):
! self._genDirCaches()
!
! def isRootDir(self, dir):
! if dir == ROOT_PATH or re.match(ROOT_PATH, dir):
! return 1
! else:
! return 0
!
! def currDirIsRoot(self):
! return self.isRootDir(self.currDir)
!
! def dirUp(self, dir):
! return dir[:dir[:-1].rfind(PATH_SEPAR)+1]
!
! def goDirUp():
! self.currDir = self.oneDirUp
! self._genDirCaches()
!
! def globDir(self, dir):
! if self.filter == '':
! self.filter = '*'
! cache = glob.glob(dir + self.filter)
! objCache = [ obj[obj.rfind(PATH_SEPAR)+1:] for obj in cache ]
! for i in range(len(cache)):
! if os.path.isdir(cache[i]):
! objCache[i] += PATH_SEPAR
! objCache.sort(SORT_RULES[self.sortRule])
! return objCache
!
! def _genDirCaches(self):
! #print '>> self.currDir -> ', self.currDir
! self.currDirCache = self.globDir(self.currDir)
! # now generate cache for self.dir/..
! if not self.currDirIsRoot():
! self.oneDirUp = self.dirUp(self.currDir)
! #print '>> self.oneDirUp -> ', self.oneDirUp
! self.oneDirUpCache = self.globDir(self.oneDirUp)
! # and the same for self.dir/../..
! if not self.isRootDir(self.oneDirUp):
! self.twoUpDir = self.dirUp(self.oneDirUp)
! #print '>> self.twoDirUp -> ', self.twoDirUp
! self.twoDirUpCache = self.globDir(self.twoDirUp)
!
! class OpenFileDialog(Window):
!
! def __init__(self, dir, filters, sort_rule=DIRS_FIRST):
! Window.__init__(self, title='Open File - ' + \
! application().name + '-' + application().version, \
! geometry=(250, 200, 420, 350))
! self._updating = 0
! self.dirMngr = DirManager(dir, filters[0], sort_rule)
! self._priorSelections = []
! #self.createTripaneDirList()
! self.initWidgets(filters)
!
! #def createTripaneDirList(self):
! # dirMngr = self.dirMngr
! # self.dirList = TripanedDoublyLinkedList([dirMngr.currDirCache])
! # if not dirMngr.currDirIsRoot():
! # self.dirList.prepend(dirMngr.oneDirUpCache)
! # if not dirMngr.isRootDir(dirMngr.oneDirUp):
! # self.dirList.prepend(dirMngr.twoDirUpCache)
!
! def initWidgets(self, filters):
!
! dirMngr = self.dirMngr
!
! btnDirBack = self.btnDirBack = Button(text='<', size=(50,25))
! if dirMngr.currDirIsRoot():
! btnDirBack.enabled = 0
! self.add(btnDirBack, left=10, top=10)
! link(btnDirBack, self.goDirBack)
!
! btnDirFwd = self.btnDirFwd = Button(text='>', size=(50,25))
! btnDirFwd.enabled = 0
! self.add(btnDirFwd, left=(btnDirBack, 5), top=10)
! link(btnDirFwd, self.goDirFwd)
!
! frmDirs = self.frmDirs = Frame()
! frmDirs.layout = SimpleGridManager(3,1)
! self.add(frmDirs, left=10, rigth=10, top=(btnDirBack, 5), \
! bottom=75, vstretch=1, hstretch=1)
!
! lbxDirOne = self.lbxDirOne = ListBox()
! #lbxDirOne.items = self.dirList.tripane[0]
! lbxDirOne.items = self.dirMngr.currDirCache
! lbxDirOne.selection = 0
! frmDirs.add(lbxDirOne)
! link(lbxDirOne, self.lbxSelect)
!
! lbxDirTwo = self.lbxDirTwo = ListBox()
! frmDirs.add(lbxDirTwo)
! link(lbxDirTwo, self.lbxSelect)
!
! lbxDirThree = self.lbxDirThree = ListBox()
! frmDirs.add(lbxDirThree)
! link(lbxDirThree, self.lbxSelect)
!
! btnCancel = self.btnCancel = Button(text='Cancel')
! self.add(btnCancel, right=10, top=(frmDirs, 5), hmove=1, vmove=1)
! link(self.btnCancel, self.close)
!
! btnOpen = self.btnOpen = Button(text='Open')
! self.add(btnOpen, right=10, top=(btnCancel, 5), hmove=1, vmove=1)
! link(self.btnOpen, self.open)
!
! lblLocation = self.lblLocation = Label(text='Location:', width=55)
! self.add(lblLocation, left=10, top=(frmDirs, 18), vmove=1)
!
! lblFilter = self.lblFilter = Label(text='Filter:', width=55)
! self.add(lblFilter, left=10, top=(lblLocation, 20), vmove=1)
!
! txtLocation = self.txtLocation = TextField(text=dirMngr.currDir)
! self.add(txtLocation, left=(lblLocation, 5), right=100, top=(frmDirs, 8), \
! hstretch=1, vmove=1)
! link(txtLocation, self.changeDirs)
!
! cbxFilter = self.cbxFilter = ComboBox(items=filters)
! #txtFilter = self.txtFilter = TextField(text=dirMngr.filter)
! self.add(cbxFilter, left=(lblFilter, 5), right=100, top=(txtLocation, 10), \
! hstretch=1, vmove=1)
! link(cbxFilter, self.applyFilter)
!
! def open(self, event):
! send(self, 'open', file=self.txtLocation.text)
! self.destroy()
!
! def close(self, event):
! self.destroy()
!
! def lbxSelect(self, event):
! if self._updating: return
! self_updating = 1
! source = event.source
! if source is self.lbxDirOne:
! self.handleLbxDirOneEvent()
! elif source is self.lbxDirTwo:
! self.handleLbxDirTwoEvent()
! elif source is self.lbxDirThree:
! self.handleLbxDirThreeEvent()
! self.btnDirFwd.enabled = 0
! self._updating = 0
!
! def handleLbxDirOneEvent(self):
! #print '>> handling lbxDirOne event'
! dirMngr = self.dirMngr
! s = self._state()
! obj = dirMngr.currDir + s.dirOne
! if os.path.isdir(obj):
! dirMngr.filter = self.cbxFilter.text
! result = dirMngr.globDir(obj)
! try:
! s.lbxTwo.items = result
! s.lbxThree.items = []
! except (AttributeError):
! pass
! else:
! try:
! s.lbxTwo.items = []
! s.lbxThree.items = []
! except (AttributeError):
! pass
! self.txtLocation.text = obj
!
! def handleLbxDirTwoEvent(self):
! #print '>> handling lbxDirTwo event'
! dirMngr = self.dirMngr
! s = self._state()
! obj = dirMngr.currDir + s.dirOne + s.dirTwo
! if os.path.isdir(obj):
! dirMngr.filter = self.cbxFilter.text
! result = dirMngr.globDir(obj)
! s.lbxThree.items = result
! else:
! s.lbxThree.items = []
! self.txtLocation.text = obj
!
! def handleLbxDirThreeEvent(self):
! #print '>> handling lbxDirThree event'
! dirMngr = self.dirMngr
! s = self._state()
! obj = dirMngr.currDir + s.dirOne + s.dirTwo + s.dirThree
!
! if os.path.isdir(obj):
! dirMngr.currDir += s.dirOne
! dirMngr.update()
! s.lbxOne.items = dirMngr.currDirCache
! s.lbxOne.selection = s.selTwo
! dirMngr.filter = self.cbxFilter.text
! s.lbxTwo.items = dirMngr.globDir(dirMngr.currDir + s.dirTwo)
! s.lbxTwo.selection = s.selThree
! s.lbxThree.items = dirMngr.globDir(obj)
! self.btnDirBack.enabled = 1
!
! self.txtLocation.text = obj
!
! def goDirFwd(self, event):
! #print ">> Got event: ", event
! #print ">> event dict: ", event.__dict__
! self._updating = 1
! self.handleLbxDirThreeEvent()
! if self._priorSelections:
! priSels = self._priorSelections
! self.lbxDirThree.selection = priSels[0]
! del priSels[0]
! if not self._priorSelections:
! self.btnDirFwd.enabled = 0
!
! self._updating = 0
!
!
! def goDirBack(self, event):
! #print ">> Got event: ", event
! #print ">> event dict: ", event.__dict__
!
! self._updating = 1
!
! dirMngr = self.dirMngr
! s = self._state()
!
! backDir = dirMngr.currDir
! currDir = dirMngr.currDir = dirMngr.oneDirUp
! dirMngr.update()
!
! s.lbxOne.items = dirMngr.currDirCache
! s.lbxOne.selection = dirMngr.currDirCache.index(\
! backDir[backDir[:-1].rfind(PATH_SEPAR)+1:]\
! )
!
! s.lbxTwo.items = s.itemsOne
! s.lbxTwo.selection = s.selOne
!
! s.lbxThree.items = s.itemsTwo
! s.lbxThree.selection = s.selTwo
!
! self._priorSelections.append(s.selThree)
! self.btnDirFwd.enabled = 1
! if dirMngr.currDirIsRoot():
! self.btnDirBack.enabled = 0
!
! s = self._state()
! self.txtLocation.text = currDir + s.dirOne + s.dirTwo + s.dirThree
!
! self._updating = 0
!
! def changeDirs(self, event):
! print ">> Got event: ", event
! print ">> event dict: ", event.__dict__
!
! def applyFilter(self, event):
! #print ">> Got event: ", event
! #print ">> event dict: ", event.__dict__
! self._update = 1
!
! dirMngr = self.dirMngr
! s = self._state()
!
! try:
! s.dirThree
! #print '>> filtering lbxThree'
! self.handleLbxDirTwoEvent()
! return
! except (AttributeError):
! pass
!
! try:
! s.dirTwo
! #print '>> filtering lbxTwo'
! self.handleLbxDirOneEvent()
! return
! except (AttributeError):
! pass
!
! #print '>> filtering lbxOne'
! dirMngr.filter = self.cbxFilter.text
! dirMngr.update()
!
! s.lbxOne.items = dirMngr.currDirCache
! try:
! selection = s.lbxOne.selection = dirMngr.currDirCache.index(s.dirOne)
! self.txtLocation.text = dirMngr.currDir + dirMngr.currDirCache[selection]
! except (AttributeError, ValueError):
! traceback.print_exc()
! self.txtLocation.text = dirMngr.currDir
!
! self.btnDirFwd.enabled = 0
!
! self._update = 0
!
! def _state(self):
!
! class State:
! def __str__(self):
! return str(self.__dict__)
! pass
!
! s = State()
!
! s.lbxOne = self.lbxDirOne
! s.itemsOne = s.lbxOne.items
! s.selOne = s.lbxOne.selection
!
! try:
! s.dirOne = s.lbxOne.items[s.selOne]
!
! s.lbxTwo = self.lbxDirTwo
! s.itemsTwo = s.lbxTwo.items
! s.selTwo = s.lbxTwo.selection
! s.dirTwo = s.lbxTwo.items[s.selTwo]
!
! s.lbxThree = self.lbxDirThree
! s.itemsThree = s.lbxThree.items
! s.selThree = s.lbxThree.selection
! s.dirThree = s.lbxThree.items[s.selThree]
! except (IndexError):
! pass
!
! return s
-------------------------------------------------------
This sf.net email is sponsored by: To learn the basics of securing
your web site with SSL, click here to get a FREE TRIAL of a Thawte
Server Certificate: http://www.gothawte.com/rd524.html