diff options
Diffstat (limited to 'build_tools/larch7/larch0/gui/dirview.py')
-rwxr-xr-x | build_tools/larch7/larch0/gui/dirview.py | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/build_tools/larch7/larch0/gui/dirview.py b/build_tools/larch7/larch0/gui/dirview.py deleted file mode 100755 index 303f9b6..0000000 --- a/build_tools/larch7/larch0/gui/dirview.py +++ /dev/null @@ -1,172 +0,0 @@ -#!/usr/bin/python - - -# Next look at switching to a selected directory from the path (DONE), -# switching to a directory in the list, and removing/changing toolbar -# buttons (and their actions). -# Have a checkbutton for hidden files / directories somewhere. - - -import os -from PyQt4 import QtGui, QtCore - -def clicked(r, c): - print r, c - -def iclicked(item): - print item - - -class DirListing(QtGui.QTreeWidget): #qt - # Only using top-level items of the tree - def __init__(self): - QtGui.QTreeWidget.__init__(self) #qt - self._hcompact = False # used for scheduling header-compaction - self.setSelectionMode(QtGui.QAbstractItemView.SingleSelection) - self.headers(['Name']) #qt - self.setRootIsDecorated(False) #qt - - self.connect(self, QtCore.SIGNAL('itemSelectionChanged()'), - self.s_select) - self.connect(self, QtCore.SIGNAL('itemClicked(QTreeWidgetItem *,int)'), - self.s_clicked) - - - def s_select(self): - # Signal a selection change, passing the new selection list (indexes) - s = [self.indexOfTopLevelItem(i) for i in self.selectedItems()] #qt - print "Sel", s - - - def s_clicked(self, item, col): #qt - # I guess I should use this for selection if using single - # click actions, because setting a list up might cause the - # first item to be selected (it doesn't, actually, so select - # could be used), and it should - # only change directory if actually clicked. - - - """This is intended for activating a user-defined editing function. - Tests showed that this is called after the selection is changed, so - if using this signal, use it only in 'Single' selection mode and - use this, not 'select' to record selection changes. Clicking on the - selected row should start editing the cell, otherwise just change - the selection. - """ - ix = self.indexOfTopLevelItem(item) #qt - print ix, col - - - - def headers(self, headers): #qt - self.setHeaderLabels(headers) #qt - if self._hcompact: - self._compact() - - def set(self, items, index=-1): #qt - # Note that each item must be a tuple/list containing - # entries for each column. - self.clear() #qt - c = 0 - for i in items: - item = QtGui.QTreeWidgetItem(self, i) #qt - self.addTopLevelItem(item) #qt - if c == index: - self.setCurrentItem(item) - c += 1 - if self._hcompact: - self._compact() - - def x__compact(self, on=True): - self._hcompact = on - if on: - self._compact() - - def _compact(self): - for i in range(self.columnCount()): #qt - self.resizeColumnToContents(i) #qt - - - -def dirsel(action): - print action.xtag - i = 0 - if action.xindex == 0: - print '/' - else: - path = '' - while i < action.xindex: - i += 1 - path += '/' + dirs[i] - print path - setlisting(path) -# the toolbuttons should stay the same until a different lower directory -# is chosen (one not in the old list?) - - -def setlisting(path): - dlist = os.listdir(path) - dldir = [] - dlfile = [] - for f in dlist: - if os.path.isdir(path + '/' + f): - dldir.append('d:' + f) - else: - dlfile.append('f:' + f) - dldir.sort() - dlfile.sort() - listing.set([d] for d in (dldir + dlfile)) - - -if __name__ == '__main__': - - import sys - - app = QtGui.QApplication(sys.argv) - app.setStyleSheet(""" - QToolButton { - border: 2px solid #8f8f91; - border-radius: 6px; - background-color: yellow; - } - - QToolButton:checked { - background-color: #f0c080; - } -""") - - window = QtGui.QWidget() - listing = DirListing() - bar = QtGui.QToolBar() - bar.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly) - actg = QtGui.QActionGroup(bar) - QtCore.QObject.connect(actg, QtCore.SIGNAL('triggered (QAction *)'), dirsel) - actg.setExclusive(True) - - layout = QtGui.QVBoxLayout() - layout.addWidget(bar) - layout.addWidget(listing) - window.setLayout(layout) - window.resize(600, 480) - - - - path = '/home/mt/DATA/pyjamas' - - - dirs = path.split('/') -# dirs = ['', 'home', 'mt', 'DATA', 'software-verylong', 'DOCS', 'python_qt'] - butix = 0 - for but in dirs: - bw = bar.addAction(but+'/') - bw.setCheckable(True) - actw = actg.addAction(bw) - actw.xtag = but - actw.xindex = butix - butix += 1 - - setlisting(path) - - window.show() - - sys.exit(app.exec_()) |