From a763d7336ce78e89131a67d8bd2c28b15ccf1ee7 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Sun, 18 Jun 2017 10:06:43 +0200 Subject: [PATCH 1/2] Add option in preferences / Look & Feel to display the layout buttons directly on the status bar. Default is False. --- src/calibre/gui2/__init__.py | 1 + src/calibre/gui2/init.py | 25 +++++++++++++++-------- src/calibre/gui2/preferences/look_feel.py | 1 + src/calibre/gui2/preferences/look_feel.ui | 7 +++++++ 4 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 45cc47a510..e0ca699e9b 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -123,6 +123,7 @@ def create_defs(): defs['tag_browser_old_look'] = False defs['tag_browser_hide_empty_categories'] = False defs['book_list_tooltips'] = True + defs['show_layout_buttons'] = False defs['bd_show_cover'] = True defs['bd_overlay_cover_size'] = False defs['tags_browser_category_icons'] = {} diff --git a/src/calibre/gui2/init.py b/src/calibre/gui2/init.py index dc19ca433e..c1fd2fb704 100644 --- a/src/calibre/gui2/init.py +++ b/src/calibre/gui2/init.py @@ -587,15 +587,22 @@ class LayoutMixin(object): # {{{ QToolButton:checked { background: rgba(0, 0, 0, 25%); } ''') self.status_bar.addPermanentWidget(button) - self.layout_button = b = QToolButton(self) - b.setAutoRaise(True), b.setCursor(Qt.PointingHandCursor) - b.setPopupMode(b.InstantPopup) - b.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) - b.setText(_('Layout')), b.setIcon(QIcon(I('config.png'))) - b.setMenu(LayoutMenu(self)) - b.setToolTip(_( - 'Show and hide various parts of the calibre main window')) - self.status_bar.addPermanentWidget(b) + if gprefs['show_layout_buttons']: + from calibre.utils.icu import primary_sort_key + for b in sorted(self.layout_buttons, key=lambda b: primary_sort_key(b.label)): + print(b.label) + b.setVisible(True) + self.status_bar.addPermanentWidget(b) + else: + self.layout_button = b = QToolButton(self) + b.setAutoRaise(True), b.setCursor(Qt.PointingHandCursor) + b.setPopupMode(b.InstantPopup) + b.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) + b.setText(_('Layout')), b.setIcon(QIcon(I('config.png'))) + b.setMenu(LayoutMenu(self)) + b.setToolTip(_( + 'Show and hide various parts of the calibre main window')) + self.status_bar.addPermanentWidget(b) self.status_bar.addPermanentWidget(self.jobs_button) self.setStatusBar(self.status_bar) self.status_bar.update_label.linkActivated.connect(self.update_link_clicked) diff --git a/src/calibre/gui2/preferences/look_feel.py b/src/calibre/gui2/preferences/look_feel.py index 66ff475383..8e9e54c926 100644 --- a/src/calibre/gui2/preferences/look_feel.py +++ b/src/calibre/gui2/preferences/look_feel.py @@ -348,6 +348,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): self.opt_hidpi.setVisible(False), self.label_hidpi.setVisible(False) r('ui_style', gprefs, restart_required=True, choices=[(_('System default'), 'system'), (_('calibre style'), 'calibre')]) r('book_list_tooltips', gprefs) + r('show_layout_buttons', gprefs, restart_required=True) r('row_numbers_in_book_list', gprefs) r('tag_browser_old_look', gprefs, restart_required=True) r('tag_browser_hide_empty_categories', gprefs) diff --git a/src/calibre/gui2/preferences/look_feel.ui b/src/calibre/gui2/preferences/look_feel.ui index 255f29cbb5..0a1f849848 100644 --- a/src/calibre/gui2/preferences/look_feel.ui +++ b/src/calibre/gui2/preferences/look_feel.ui @@ -126,6 +126,13 @@ + + + + Show &layout buttons in the status bar (needs restart) + + + From f8ca82dc769f0019afd9b89f082202eaee9a17df Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Sun, 18 Jun 2017 11:38:32 +0200 Subject: [PATCH 2/2] Remove print statement. Use original button order instead of the sorted order used in the layout button. --- src/calibre/gui2/init.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/calibre/gui2/init.py b/src/calibre/gui2/init.py index c1fd2fb704..b429c623af 100644 --- a/src/calibre/gui2/init.py +++ b/src/calibre/gui2/init.py @@ -588,9 +588,7 @@ class LayoutMixin(object): # {{{ ''') self.status_bar.addPermanentWidget(button) if gprefs['show_layout_buttons']: - from calibre.utils.icu import primary_sort_key - for b in sorted(self.layout_buttons, key=lambda b: primary_sort_key(b.label)): - print(b.label) + for b in self.layout_buttons: b.setVisible(True) self.status_bar.addPermanentWidget(b) else: