diff --git a/mucapy/main.py b/mucapy/main.py index 6d0ceda..4b05616 100644 --- a/mucapy/main.py +++ b/mucapy/main.py @@ -710,15 +710,25 @@ class CollapsibleDock(QDockWidget): QDockWidget.DockWidgetMovable | QDockWidget.DockWidgetFloatable) - self.toggle_button = QToolButton(self) + # Create a widget for the title bar that contains both toggle button and close button + title_widget = QWidget() + title_layout = QHBoxLayout(title_widget) + title_layout.setContentsMargins(0, 0, 0, 0) + title_layout.setSpacing(0) + + self.toggle_button = QToolButton() self.toggle_button.setIcon(QIcon.fromTheme("arrow-left")) self.toggle_button.setIconSize(QSize(16, 16)) self.toggle_button.setStyleSheet("border: none;") self.toggle_button.clicked.connect(self.toggle_collapse) - self.setTitleBarWidget(self.toggle_button) + title_layout.addWidget(self.toggle_button) + title_layout.addStretch() + + self.setTitleBarWidget(title_widget) self.collapsed = False self.original_size = None + self.original_minimum_width = None def toggle_collapse(self): """Toggle between collapsed and expanded states""" @@ -731,7 +741,9 @@ class CollapsibleDock(QDockWidget): """Collapse the dock widget""" if not self.collapsed: self.original_size = self.size() - self.setFixedWidth(40) + self.original_minimum_width = self.minimumWidth() + self.setMinimumWidth(0) + self.setMaximumWidth(0) self.toggle_button.setIcon(QIcon.fromTheme("arrow-right")) self.collapsed = True @@ -1497,6 +1509,15 @@ class MainWindow(QMainWindow): load_model_action.triggered.connect(self.load_model_directory) model_menu.addAction(load_model_action) + # View menu + view_menu = menubar.addMenu('View') + self.toggle_sidebar_action = QAction('Show Sidebar', self) + self.toggle_sidebar_action.setCheckable(True) + self.toggle_sidebar_action.setChecked(True) + self.toggle_sidebar_action.setShortcut('Ctrl+B') + self.toggle_sidebar_action.triggered.connect(self.toggle_sidebar_visibility) + view_menu.addAction(self.toggle_sidebar_action) + # Camera menu self.camera_menu = menubar.addMenu('Cameras') @@ -2074,6 +2095,13 @@ class MainWindow(QMainWindow): except Exception as e: QMessageBox.warning(self, "Warning", f"Could not open directory: {str(e)}") + def toggle_sidebar_visibility(self): + """Toggle the visibility of the sidebar""" + if self.toggle_sidebar_action.isChecked(): + self.sidebar.expand() + else: + self.sidebar.collapse() + if __name__ == "__main__": app = QApplication(sys.argv)