From a4abf6b09b427aa66ec1e90bcd0801fca7b1032d Mon Sep 17 00:00:00 2001 From: m4mmon Date: Sun, 1 Jan 2017 08:54:53 +0100 Subject: [PATCH] keep focus in Files Browser after rename operation --- src/calibre/gui2/tweak_book/boss.py | 2 ++ src/calibre/gui2/tweak_book/file_list.py | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/calibre/gui2/tweak_book/boss.py b/src/calibre/gui2/tweak_book/boss.py index 651745d..511f183 100644 --- a/src/calibre/gui2/tweak_book/boss.py +++ b/src/calibre/gui2/tweak_book/boss.py @@ -684,6 +684,8 @@ class Boss(QObject): if self.gui.preview.current_name == oldname: self.gui.preview.current_name = newname self.apply_container_update_to_gui() + for oldname, newname in name_map.iteritems(): + self.gui.file_list.select_by_name(newname) # }}} # Global history {{{ diff --git a/src/calibre/gui2/tweak_book/file_list.py b/src/calibre/gui2/tweak_book/file_list.py index 1347736..3210c45 100644 --- a/src/calibre/gui2/tweak_book/file_list.py +++ b/src/calibre/gui2/tweak_book/file_list.py @@ -491,6 +491,16 @@ class FileList(QTreeWidget): return (category, i) return (None, -1) + def select_by_name(self, name): + for category, parent in self.categories.iteritems(): + for i in xrange(parent.childCount()): + item = parent.child(i) + if unicode(item.data(0, NAME_ROLE) or '') == name: + self.setFocus(Qt.PopupFocusReason) + index = self.indexFromItem(item, 0) + self.setCurrentIndex(index) + break + def start_merge(self, category, names): d = MergeDialog(names, self) if d.exec_() == d.Accepted and d.ans: @@ -897,6 +907,9 @@ class FileListWidget(QWidget): def build(self, container, preserve_state=True): self.file_list.build(container, preserve_state=preserve_state) + def select_by_name(self, name): + self.file_list.select_by_name(name) + @property def searchable_names(self): return self.file_list.searchable_names -- 1.8.3.msysgit.0