瀏覽代碼

a more complex upper dialog

Pat Beirne 9 年之前
父節點
當前提交
f6ef5a872f
共有 2 個文件被更改,包括 14 次插入69 次删除
  1. 0 60
      dirWidget
  2. 14 9
      dirnotes

+ 0 - 60
dirWidget

@@ -1,60 +0,0 @@
-#!/usr/bin/python
-''' a widget that shows only a dir listing
-'''
-
-import sys,os,argparse
-from PyQt4.QtGui import *
-from PyQt4 import QtGui, QtCore
-
-class DirWidget(QListWidget):
-	''' a simple widget that shows a list of directories, staring
-	at the directory passed into the constructor
-
-	a mouse click or 'enter' key will send a 'selected' signal to
-	anyone who connects to this.
-
-	the .. parent directory is shown for all dirs except /
-
-	the most interesting parts of the interface are:
-	constructor - send in the directory to view
-	method - currentPath() returns text of current path
-	signal - selected calls a slot with a single arg: new path
-	'''
-
-	selected = QtCore.pyqtSignal(str)
-	def __init__(self, parent=None,directory='.'):
-		super(DirWidget,self).__init__(parent)
-		self.directory = directory
-		self.refill()
-		self.itemActivated.connect(self.selectionByLWI)
-		# it would be nice to pick up single-mouse-click for selection as well
-		# but that seems to be a system-preferences global
-	def selectionByLWI(self, li):
-		self.directory = os.path.abspath(self.directory + '/' + str(li.text()))
-		self.refill()
-		self.selected.emit(self.directory)
-	def refill(self):
-		current,dirs,files =  os.walk(self.directory,followlinks=True).next()
-		dirs.sort()
-		if '/' not in dirs:
-			dirs = ['..'] + dirs
-		self.clear()
-		for d in dirs:
-			li = QListWidgetItem(d,self)
-	def currentPath(self):
-		return self.directory
-		
-if __name__=="__main__":
-	def alert(some_text):
-		os.system('notify-send -t 1500 "file: '+str(some_text) + '"')
-
-	a = QApplication([])
-
-	qmw = QMainWindow()
-	dw = DirWidget(qmw)
-	dw.selected.connect(alert)
-	
-	qmw.setCentralWidget(dw)
-	qmw.show()
-	
-	a.exec_()

+ 14 - 9
dirnotes

@@ -14,6 +14,7 @@ these comments stick to the symlink
 """
 
 import sys,os,argparse
+from dirWidget import DirWidget
 from PyQt4.QtGui import *
 from PyQt4 import QtGui, QtCore
 import xattr, sqlite3, time
@@ -159,19 +160,23 @@ class DirNotes(QMainWindow):
 		lb.setHorizontalHeaderItem(1,QTableWidgetItem("comment"))
 		lb.resizeColumnsToContents()
 
-		e = QLabel("View and edit file comments stored in extended attributes user.xdg.comment")
+		e = QLabel("View and edit file comments stored in extended attributes user.xdg.comment",win)
 
-		b1 = QPushButton("restore from database")
-		dirLeft = QFileDialog(self,"",current)
-		dirLeft.setMaximumHeight(250)
-		dirLeft.setOption(QFileDialog.DontUseNativeDialog)
-		dirLeft.setFileMode(QFileDialog.Directory)
-		dirLeft.setOption(QFileDialog.ShowDirsOnly)
+		b1 = QPushButton("restore from database",win)
+		dirLeft = DirWidget(current,win)
+		dirLeft.setMaximumHeight(140)
+		dirLeft.setMaximumWidth(200)
+		dirRight = DirWidget(current,win)
+		dirRight.setMaximumHeight(140)
+		dirRight.setMaximumWidth(200)
 		
 		layout = QVBoxLayout()
+		upperLayout = QHBoxLayout()
 		layout.addWidget(e)
-		layout.addWidget(b1)
-		layout.addWidget(dirLeft)
+		upperLayout.addWidget(dirLeft)
+		upperLayout.addWidget(b1)
+		upperLayout.addWidget(dirRight)
+		layout.addLayout(upperLayout)
 		layout.addWidget(lb)
 		win.setLayout(layout)