class SideBar(QWidget): def __init__(self, manager, window): super().__init__(window) self._window = window # BrowserWindow self._layout = None # QVBoxLayout self._titleBar = None # DockTitleBarWidget self._manager = manager # SideBarManager self.setObjectName('sidebar') self.setAttribute(Qt.WA_DeleteOnClose) self._layout = QVBoxLayout(self) self._layout.setContentsMargins(0, 0, 0, 0) self._layout.setSpacing(0) self.setLayout(self._layout) self._titleBar = DockTitleBarWidget('', self) self._layout.addWidget(self._titleBar) def showBookmarks(self): self._titleBar.setTitle(_('Bookmarks')) bar = BookmarksSideBar(self._window) self.setWidget(bar) def showHistory(self): self._titleBar.setTitle(_('History')) bar = HistorySideBar(self._window) self.setWidget(bar) def setTitle(self, title): self._titleBar.setTitle(title) def setWidget(self, widget): if self._layout.count() == 2: self._layout.removeItem(self._layout.itemAt(1)) if widget: self._layout.addWidget(widget) # Q_SLOTS def close(self): self._manager.closeSideBar() p = self.parentWidget() if p: p.setFocus() super().close()