Preserve current after rename

This commit is contained in:
Kovid Goyal 2023-08-02 19:07:04 +05:30
parent c52b3175c8
commit 984f6582c5
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -98,6 +98,12 @@ class Files(QAbstractListModel):
def item_at(self, rownum):
return self.files[rownum]
def rownum_for_relpath(self, relpath):
for i, e in enumerate(self.files):
if e.relpath == relpath:
return i
return -1
def data(self, index, role):
row = index.row()
if row >= len(self.files):
@ -277,6 +283,12 @@ class DataFilesManager(Dialog):
self.db.rename_extra_files(self.book_id, {e.relpath: newrelpath}, replace=True)
with self.preserve_state():
self.files.refresh()
row = self.files.rownum_for_relpath(newrelpath)
if row > -1:
idx = self.files.index(row)
self.fview.setCurrentIndex(idx)
self.fview.selectionModel().select(idx, QItemSelectionModel.SelectionFlag.SelectCurrent)
self.fview.scrollTo(idx)
if __name__ == '__main__':