From 1494818cf036bbd08dfcb5e38716ca7253476650 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 6 Jun 2009 19:54:04 -0700 Subject: [PATCH] Implement #2551 (Open book from "Edit meta information" menu) --- src/calibre/gui2/dialogs/metadata_single.py | 6 ++++++ src/calibre/gui2/main.py | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/calibre/gui2/dialogs/metadata_single.py b/src/calibre/gui2/dialogs/metadata_single.py index 0c84f52f20..17c166099d 100644 --- a/src/calibre/gui2/dialogs/metadata_single.py +++ b/src/calibre/gui2/dialogs/metadata_single.py @@ -249,6 +249,8 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.remove_unused_series) QObject.connect(self.auto_author_sort, SIGNAL('clicked()'), self.deduce_author_sort) + self.connect(self.formats, SIGNAL('itemDoubleClicked(QListWidgetItem*)'), + self.show_format) self.connect(self.button_set_cover, SIGNAL('clicked()'), self.set_cover) self.connect(self.reset_cover, SIGNAL('clicked()'), self.do_reset_cover) self.connect(self.swap_button, SIGNAL('clicked()'), self.swap_title_author) @@ -303,6 +305,10 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): if not pm.isNull(): self.cover.setPixmap(pm) + def show_format(self, item, *args): + fmt = item.ext + self.emit(SIGNAL('view_format(PyQt_PyObject)'), fmt) + def deduce_author_sort(self): au = unicode(self.authors.text()) authors = string_to_authors(au) diff --git a/src/calibre/gui2/main.py b/src/calibre/gui2/main.py index 0963f7798d..b57387033d 100644 --- a/src/calibre/gui2/main.py +++ b/src/calibre/gui2/main.py @@ -953,9 +953,12 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): self.library_view.model().refresh_ids([id]) for row in rows: + self._metadata_view_id = self.library_view.model().db.id(row.row()) d = MetadataSingleDialog(self, row.row(), self.library_view.model().db, accepted_callback=accepted) + self.connect(d, SIGNAL('view_format(PyQt_PyObject)'), + self.metadata_view_format) d.exec_() if rows: current = self.library_view.currentIndex() @@ -1269,6 +1272,14 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): if fmt_path: self._view_file(fmt_path) + def metadata_view_format(self, fmt): + fmt_path = self.library_view.model().db.\ + format_abspath(self._metadata_view_id, + fmt, index_is_id=True) + if fmt_path: + self._view_file(fmt_path) + + def book_downloaded_for_viewing(self, job): if job.failed: self.device_job_exception(job)