From 17b2317a4f2ae1fd2be850f3a47e02715d551518 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 10 Jun 2017 13:02:00 +0530 Subject: [PATCH] Hide splitter andles when only one panel is displayed --- src/calibre/gui2/widgets.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/widgets.py b/src/calibre/gui2/widgets.py index 209586196a..5e6b3b5309 100644 --- a/src/calibre/gui2/widgets.py +++ b/src/calibre/gui2/widgets.py @@ -1013,8 +1013,12 @@ class Splitter(QSplitter): def __init__(self, name, label, icon, initial_show=True, initial_side_size=120, connect_button=True, - orientation=Qt.Horizontal, side_index=0, parent=None, shortcut=None): + orientation=Qt.Horizontal, side_index=0, parent=None, + shortcut=None, hide_handle_on_single_panel=True): QSplitter.__init__(self, parent) + if hide_handle_on_single_panel: + self.state_changed.connect(self.update_handle_width) + self.original_handle_width = self.handleWidth() self.resize_timer = QTimer(self) self.resize_timer.setSingleShot(True) self.desired_side_size = initial_side_size @@ -1064,6 +1068,9 @@ class Splitter(QSplitter): self.desired_side_size = self.side_index_size self.state_changed.emit(not self.is_side_index_hidden) + def update_handle_width(self, not_one_panel): + self.setHandleWidth(self.original_handle_width if not_one_panel else 0) + @property def is_side_index_hidden(self): sizes = list(self.sizes())