def file_modified(self, filename):
# modified event is sometimes fired twice. prevent trouble
if filename not in self.data:
self.file_added(filename)
title_old = self.data[filename]["title"]
try:
self.data[filename] = self.load_file(filename)
except BadFormatError as e:
print(e)
self.file_deleted(filename)
return
title_new = self.data[filename]["title"]
# change title in file list if changed
if title_old and title_new != title_old:
found_items = self.list1.findItems(filename, Qt.MatchExactly)
if len(found_items) != 1:
raise RuntimeError("file_modified(fn={}}): {} found items".format(filename, len(found_items)))
self.list1.itemWidget(found_items[0]).label_title.setText(title_new)
# update part list if active file was changed
if self.list1.currentItem().text() == filename:
old_index = self.list_parts.currentRow()
self.update_part_list(filename)
self.list_parts.setCurrentRow(old_index)
# update index
writer = self.ix.writer()
deleted_count = writer.delete_by_term("path", filename)
topic = self.data[filename]
for part in topic["content"]:
writer.add_document(
title="",
_stored_title=part["title"],
content=part["content"],
time=topic["time"],
path=filename
)
writer.add_document(
title=part["title"],
time=topic["time"],
path=filename
)
writer.commit()
self.searcher = self.ix.searcher()
评论列表
文章目录