Exemple #1
0
	def __init__(self, parent=None):
		QtGui.QWidget.__init__(self, parent)
		self.thread = Worker()
		self.ui = Ui_dupfind()
		self.ui.setupUi(self)
		self.ui.treeWidget_dup.setSortingEnabled(True)
		# here we connect signals with our slots
		QtCore.QObject.connect(self.ui.pushButton_browse, QtCore.SIGNAL("clicked()"), self.file_dialog)
		QtCore.QObject.connect(self.ui.pushButton_scan, QtCore.SIGNAL("clicked()"), self.do_scan)
		QtCore.QObject.connect(self.ui.treeWidget_dup, QtCore.SIGNAL("itemClicked(QTreeWidgetItem *,int)"), self.dupItem_click)
		QtCore.QObject.connect(self.thread, SIGNAL("addItem_dup(QString)"), self.addItem_dup)
		QtCore.QObject.connect(self.thread, SIGNAL("statMsg(QString)"), self.statMsg)
		QtCore.QObject.connect(self.ui.actionAbout, QtCore.SIGNAL("triggered()"), self.aboutMe)
Exemple #2
0
class StartQt4(QtGui.QMainWindow):
	def __init__(self, parent=None):
		QtGui.QWidget.__init__(self, parent)
		self.thread = Worker()
		self.ui = Ui_dupfind()
		self.ui.setupUi(self)
		self.ui.treeWidget_dup.setSortingEnabled(True)
		# here we connect signals with our slots
		QtCore.QObject.connect(self.ui.pushButton_browse, QtCore.SIGNAL("clicked()"), self.file_dialog)
		QtCore.QObject.connect(self.ui.pushButton_scan, QtCore.SIGNAL("clicked()"), self.do_scan)
		QtCore.QObject.connect(self.ui.treeWidget_dup, QtCore.SIGNAL("itemClicked(QTreeWidgetItem *,int)"), self.dupItem_click)
		QtCore.QObject.connect(self.thread, SIGNAL("addItem_dup(QString)"), self.addItem_dup)
		QtCore.QObject.connect(self.thread, SIGNAL("statMsg(QString)"), self.statMsg)
		QtCore.QObject.connect(self.ui.actionAbout, QtCore.SIGNAL("triggered()"), self.aboutMe)
		
	def file_dialog(self):
		fd = QtGui.QFileDialog(self)
		fd.setFileMode(QtGui.QFileDialog.Directory)
		fd.setOption(QtGui.QFileDialog.ShowDirsOnly)
		d = fd.getExistingDirectory()
		self.ui.lineEdit_dir.setText(d)
		
	def do_scan(self):
		#clear everything
		sDict.clear
		hDict.clear
		rMap.clear
		
		self.ui.treeWidget_dup.clear()
		self.thread.scan(str(self.ui.lineEdit_dir.text()))
		
	def dupItem_click(self, item):
		self.ui.listWidget_all.clear()
		h = rMap[str(item.text(0))]
		for dup in hDict[h]:
			QtGui.QListWidgetItem(dup, self.ui.listWidget_all)
	
	def addItem_dup(self, string):
		fstat = os.stat(str(string))
		item = QtGui.QTreeWidgetItem()
		#file name
		item.setText(0, string)
		#file size
		fsize = fstat.st_size
		
		if fsize > 2 ** 30:
			item.setText(1, str(fsize/2**30) + " GiB")
		elif fsize > 2 ** 20:
			item.setText(1, str(fsize/2**20) + " MiB")
		elif fsize > 2 ** 10:
			item.setText(1, str(fsize/2**10) + " KiB")
		else:
			item.setText(1, str(fsize) + " Bytes")
		
		#mtime
		item.setText(2, str(datetime.fromtimestamp(fstat.st_mtime)))
		
		#ctime
		item.setText(3, str(datetime.fromtimestamp(fstat.st_ctime)))
		
		#atime
		item.setText(4, str(datetime.fromtimestamp(fstat.st_atime)))
		
		self.ui.treeWidget_dup.addTopLevelItem(item)
		iLst.append(item)
		
	def statMsg(self, string):
		#self.ui.statusbar.clearMessage()
		self.ui.statusbar.showMessage(string)
		
	def aboutMe(self):
		msg = QtGui.QMessageBox();
		msg.setText("DupFind version " + str(VERSION) + "\n\n:-)")
		msg.exec_()