Hide splitter andles when only one panel is displayed

This commit is contained in:
Kovid Goyal 2017-06-10 13:02:00 +05:30
parent d7886a0001
commit 17b2317a4f
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -1013,8 +1013,12 @@ class Splitter(QSplitter):
def __init__(self, name, label, icon, initial_show=True, def __init__(self, name, label, icon, initial_show=True,
initial_side_size=120, connect_button=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) 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 = QTimer(self)
self.resize_timer.setSingleShot(True) self.resize_timer.setSingleShot(True)
self.desired_side_size = initial_side_size self.desired_side_size = initial_side_size
@ -1064,6 +1068,9 @@ class Splitter(QSplitter):
self.desired_side_size = self.side_index_size self.desired_side_size = self.side_index_size
self.state_changed.emit(not self.is_side_index_hidden) 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 @property
def is_side_index_hidden(self): def is_side_index_hidden(self):
sizes = list(self.sizes()) sizes = list(self.sizes())