def deleteRecurse(self, node, index, index_path): if not node: return if node.size() and node.isFile(): IndexSearch.deleteDoc(str(node.absolute()), index_path) if node.hasChildren(): # if the node has children, get all of them tmp = node.children() for i in tmp: self.deleteRecurse(i, index, index_path)
def adv_search(self, changed): # parent is an instance of NodeBrowser adv = AdvSearch(self) self.parent.parent.addSearchTab(adv) adv.setCurrentNode(self.parent.model.rootItem) adv.path.setText(adv.search_in_node.absolute()) return ret = self.adv.show() return ret = self.adv.exec_() if ret == QDialog.Accepted: all_word = str(self.adv.allWords.text()) none_word = str(self.adv.noneWord.text()) one_word = str(self.adv.oneWord.text()) if all_word == "t": all_word = "" if none_word == "t": none_word = "" if one_word == "t": one_word = "" if all_word == "" and none_word == "" and one_word == "": return query = "" query += one_word none_word = none_word.lstrip() l = none_word.split() if len(l): for i in l: query += " -" + i elif none_word != "": query += " -" + none_word all_word = all_word.lstrip() l = all_word.split() if len(l): for i in l: query += " AND " + i elif all_word != "": if self.adv.allWordTitle.isChecked(): query += all_word if self.adv.allWordContent.isChecked(): query += all_word # prepare stuff to fo the query conf = Conf() index_path = conf.index_path # get path to the index search_engine = IndexSearch(index_path) search_engine.exec_query(query, "")
def index_opt(self, changed, ret): # set labal to indicate that a dir is not indexed to empty self.notIndexed.setText("") conf = Conf() index_path = conf.index_path if ret == QDialog.Accepted: index = Index(index_path) index.createIndex() # config index index_c = self.opt.indexFileContent.checkState() index_a = self.opt.indexFileAttr.checkState() if index_c == Qt.Checked: index.setIndexContent(True) else: index.setIndexContent(False) if index_a == Qt.Checked: index.setIndexAttr(True) else: index.setIndexAttr(False) value = 0 for i in self.opt.un_index: recurse = self.opt.indexed_items[long(i)] node = VFS.Get().getNodeFromPointer(i) for (root_dir, files, dirs) in self.vfs.walk(node, True, 1): value += len(files) for i in self.opt.tmp_indexed_items: recurse = self.opt.tmp_indexed_items[long(i)] node = VFS.Get().getNodeFromPointer(i) for (root_dir, files, dirs) in self.vfs.walk(node, True, 1): value += len(files) self.emit(SIGNAL("number_max"), value) # delete doc from index (if any stuff are to be deleted) value = 0 for i in self.opt.un_index: recurse = self.opt.indexed_items[long(i)] node = VFS.Get().getNodeFromPointer(i) if recurse == True: tmp = node.children() for j in tmp: value += 1 IndexSearch.deleteDoc(str(j.absolute()).lower(), str(index_path).lower()) else: value += 1 self.deleteRecurse(node, index, index_path) self.emit(SIGNAL("number_indexed"), value) self.opt.indexed_items.pop(i) # adding new selected nodes in index for i in self.opt.tmp_indexed_items: node = VFS.Get().getNodeFromPointer(i) self.opt.indexed_items[i] = self.opt.tmp_indexed_items[i] # only index current node content if self.opt.indexed_items[i] == True: tmp = node.children() for ii in tmp: value += 1 index.indexData(ii) else: # index recursively value += 1 self.recurseNode(node, index) self.emit(SIGNAL("number_indexed"), value) self.opt.tmp_indexed_items.clear() index.closeIndex() # un-activated the check box for nodes which have been recursivly indexed. self.hide_recurse() # clear the un index dict self.opt.un_index.clear()