def startSearch(self, query): print("search started..", query) filters = QDir.Files nameFilters = ["*.cpp"] iterator = QDirIterator("/home/alexanderb", nameFilters, filters, QDirIterator.Subdirectories) while (iterator.hasNext()): filePath = iterator.next() fileInfo = QFileInfo(filePath) currentFile = QFile(filePath) currentFile.open(QFile.ReadOnly | QFile.Text) fileContents = currentFile.readAll().data().decode('utf8', errors='ignore') if (fileContents.find(query) != -1): qtwItem = QTreeWidgetItem() qtwItem.setText(0, fileInfo.fileName()) qtwItem.setText(1, fileInfo.suffix()) qtwItem.setText(2, str(fileInfo.size() / 1024)) qtwItem.setText(3, fileInfo.lastModified().toString("MM/dd/yyyy")) qtwItem.setText(4, fileInfo.created().toString("MM/dd/yyyy")) qtwItem.setText(5, str("...here is the content...")) qtwItem.setText(6, filePath) self.qtwItems.append(qtwItem) self.match_found.emit(qtwItem) self.finished.emit()
def start_search(self, query, search_directory): self.keep_searching = True print("search started..", query) filters = QDir.Files nameFilters = [ "*.cpp", "*.txt", "*.pdf", "*.doc", "*.docx", "*.xlsx", "*.xls", "*.ppt", "*.pptx" ] iterator = QDirIterator(search_directory, nameFilters, filters, QDirIterator.Subdirectories) while (iterator.hasNext()): QApplication.processEvents() if (self.keep_searching): file_path = iterator.next() if (os.access(file_path, os.R_OK)): try: file_info = QFileInfo(file_path) file_contents = parser.from_file(file_path) except: continue if (file_contents['status'] == 200 and 'content' in file_contents.keys() and file_contents['content'] is not None): found_index = file_contents['content'].find(query) if (found_index != -1): snippet = file_contents['content'].strip().replace( '\n', ' ').replace('\r', '') snippet_index = snippet.find(query) qtw_item = QTreeWidgetItem() qtw_item.setText(0, file_info.fileName()) qtw_item.setText(1, file_info.suffix()) qtw_item.setText(2, str(file_info.size() / 1024)) qtw_item.setText( 3, file_info.lastModified().toString( "MM/dd/yyyy")) qtw_item.setText( 4, file_info.created().toString("MM/dd/yyyy")) qtw_item.setText( 5, str(snippet)[snippet_index - 5:snippet_index + 10]) qtw_item.setText(6, file_path) self.qtw_items.append(qtw_item) self.match_found.emit(qtw_item) self.finished.emit()
def set_data(self, _file): ff = QFileInfo(_file) self.short_title(ff.fileName()) self.ui.lsize.setText(naturalsize(ff.size(), format="%.1f ")) if ff.isDir(): self.ui.litems.show() self.ui.label_3.show() self.ui.litems.setText(str(len(glob(_file + "/*")))) else: self.ui.label_3.hide() self.ui.litems.hide() self.ui.lcreated.setText(ff.created().toString()) self.ui.lmodified.setText(ff.lastModified().toString()) self.ui.laccessed.setText(ff.lastRead().toString()) self.ui.luser.setText(ff.owner()) self.ui.luid.setText(str(ff.ownerId())) self.ui.lgroup.setText(str(ff.group())) self.ui.lgid.setText(str(ff.groupId())) self.ui.lpath.setText(ff.path())