From 6df507a9627b7b5e35a1fd999cec7cc5d556dac4 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 9 Nov 2013 09:20:34 +0530 Subject: [PATCH] Add a toolbar with buttons to control the preview panel --- imgsrc/view-refresh.svg | 1566 ++++++++++++++++++++++++ resources/images/auto-reload.png | Bin 0 -> 46804 bytes resources/images/view-refresh.png | Bin 0 -> 3743 bytes src/calibre/gui2/__init__.py | 1 + src/calibre/gui2/tweak_book/preview.py | 25 +- src/calibre/gui2/tweak_book/ui.py | 7 +- 6 files changed, 1595 insertions(+), 4 deletions(-) create mode 100644 imgsrc/view-refresh.svg create mode 100644 resources/images/auto-reload.png create mode 100644 resources/images/view-refresh.png diff --git a/imgsrc/view-refresh.svg b/imgsrc/view-refresh.svg new file mode 100644 index 0000000000..4ab18c929b --- /dev/null +++ b/imgsrc/view-refresh.svg @@ -0,0 +1,1566 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/auto-reload.png b/resources/images/auto-reload.png new file mode 100644 index 0000000000000000000000000000000000000000..5590b33953178deb716c1f8500756320e1da41d9 GIT binary patch literal 46804 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

oCx!vm<_xaq6LzzGopZfsVU!KzkZX-J~ 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 JPDHLkV1mXr+o%8l literal 0 HcmV?d00001 diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 67d4b80750..01a4310c82 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -876,6 +876,7 @@ class Application(QApplication): 'MessageBoxWarning': u'dialog_warning.png', 'MessageBoxCritical': u'dialog_error.png', 'MessageBoxQuestion': u'dialog_question.png', + 'BrowserReload': u'view-refresh.png', # These two are used to calculate the sizes for the doc widget # title bar buttons, therefore, they have to exist. The actual # icon is not used. diff --git a/src/calibre/gui2/tweak_book/preview.py b/src/calibre/gui2/tweak_book/preview.py index f4a68b287b..bbc6e9b01e 100644 --- a/src/calibre/gui2/tweak_book/preview.py +++ b/src/calibre/gui2/tweak_book/preview.py @@ -12,7 +12,7 @@ from Queue import Queue, Empty from PyQt4.Qt import ( QWidget, QVBoxLayout, QApplication, QSize, QNetworkAccessManager, - QNetworkReply, QTimer, QNetworkRequest, QUrl, Qt, QNetworkDiskCache) + QNetworkReply, QTimer, QNetworkRequest, QUrl, Qt, QNetworkDiskCache, QToolBar) from PyQt4.QtWebKit import QWebView from calibre import prints @@ -20,7 +20,7 @@ from calibre.constants import iswindows from calibre.ebooks.oeb.polish.parsing import parse from calibre.ebooks.oeb.base import serialize, OEB_DOCS from calibre.ptempfile import PersistentTemporaryDirectory -from calibre.gui2.tweak_book import current_container, editors, tprefs +from calibre.gui2.tweak_book import current_container, editors, tprefs, actions from calibre.gui2.viewer.documentview import apply_settings from calibre.gui2.viewer.config import config from calibre.utils.ipc.simple_worker import offload_worker @@ -269,6 +269,19 @@ class Preview(QWidget): l.setContentsMargins(0, 0, 0, 0) self.view = WebView(self) l.addWidget(self.view) + self.bar = QToolBar(self) + l.addWidget(self.bar) + + ac = actions['auto-reload-preview'] + ac.setCheckable(True) + ac.setChecked(True) + ac.toggled.connect(self.auto_reload_toggled) + self.auto_reload_toggled(ac.isChecked()) + self.bar.addAction(ac) + + ac = actions['reload-preview'] + ac.triggered.connect(self.refresh) + self.bar.addAction(ac) self.current_name = None self.last_sync_request = None @@ -301,7 +314,13 @@ class Preview(QWidget): self.view.clear() def start_refresh_timer(self): - self.refresh_timer.start(tprefs['preview_refresh_time'] * 1000) + if actions['auto-reload-preview'].isChecked(): + self.refresh_timer.start(tprefs['preview_refresh_time'] * 1000) def stop_refresh_timer(self): self.refresh_timer.stop() + + def auto_reload_toggled(self, checked): + actions['auto-reload-preview'].setToolTip(_( + 'Auto reload preview when text changes in editor') if not checked else _( + 'Disable auto reload of preview')) diff --git a/src/calibre/gui2/tweak_book/ui.py b/src/calibre/gui2/tweak_book/ui.py index 34491d1b68..1ff98cecd4 100644 --- a/src/calibre/gui2/tweak_book/ui.py +++ b/src/calibre/gui2/tweak_book/ui.py @@ -141,7 +141,8 @@ class Main(MainWindow): def reg(icon, text, target, sid, keys, description): ac = actions[sid] = QAction(QIcon(I(icon)), text, self) ac.setObjectName('action-' + sid) - ac.triggered.connect(target) + if target is not None: + ac.triggered.connect(target) if isinstance(keys, type('')): keys = (keys,) self.keyboard.register_shortcut( @@ -193,6 +194,10 @@ class Main(MainWindow): 'smarten-punctuation.png', _('&Smarten punctuation'), partial( self.boss.polish, 'smarten_punctuation', _('Smarten punctuation')), 'smarten-punctuation', (), _('Smarten punctuation')) + # Preview actions + self.action_auto_reload_preview = reg('auto-reload.png', _('Auto reload preview'), None, 'auto-reload-preview', (), _('Auto reload preview')) + self.action_reload_preview = reg('view-refresh.png', _('Refresh preview'), None, 'reload-preview', (), _('Refresh preview')) + def create_menubar(self): b = self.menuBar()