diff --git a/src/View/Geometry/mainwindow_ui_reach.py b/src/View/Geometry/mainwindow_ui_reach.py index 747b6ca4f7cf128fe8e371083b9fa995956dfe50..897b6987ffec12356483aa8c3132d57f8e21d546 100644 --- a/src/View/Geometry/mainwindow_ui_reach.py +++ b/src/View/Geometry/mainwindow_ui_reach.py @@ -191,7 +191,8 @@ class Ui_MainWindow(object): self.canvas_1.setObjectName("canvas_1") self.toolbar_1 = navigation_toolbar_2qt.PamHyrNavigationToolbar2QT( - self.canvas_1, self.centralwidget + self.canvas_1, self.centralwidget, + items = ["home", "zoom", "save", "iso", "back/forward", "move"] ) self.verticalLayout_canvas_1.addWidget(self.toolbar_1) @@ -207,7 +208,8 @@ class Ui_MainWindow(object): self.canvas_2.setObjectName("canvas_2") self.toolbar_2 = navigation_toolbar_2qt.PamHyrNavigationToolbar2QT( - self.canvas_2, self.centralwidget + self.canvas_2, self.centralwidget, + items = ["home", "zoom", "save", "iso", "back/forward", "move"] ) self.verticalLayout_canvas_2.addWidget(self.toolbar_2) @@ -222,7 +224,8 @@ class Ui_MainWindow(object): self.canvas_3.setObjectName("canvas_3") self.toolbar_3 = navigation_toolbar_2qt.PamHyrNavigationToolbar2QT( - self.canvas_3, self.centralwidget + self.canvas_3, self.centralwidget, + items = ["home", "zoom", "save", "iso", "back/forward", "move"] ) self.verticalLayout_canvas_3.addWidget(self.toolbar_3) diff --git a/src/View/Plot/navigation_toolbar_2qt.py b/src/View/Plot/navigation_toolbar_2qt.py index 1cca7cf04d18a98ca78edb869017ce8dd96a54ff..a2f6ce31c4dbc926d982d6375da3b483c999d325 100644 --- a/src/View/Plot/navigation_toolbar_2qt.py +++ b/src/View/Plot/navigation_toolbar_2qt.py @@ -38,70 +38,91 @@ class PamHyrNavigationToolbar2QT(NavigationToolbar2QT): """ isometric_signal = pyqtSignal(str) - def __init__(self, canvas, parent): + def __init__(self, canvas, parent, items = ["home", "move", "zoom", "save"]): """ Args: canvas: canvas de matplotlib parent: parent du canvas """ self.my_canvas = canvas - self.toolitems = [ - (None, None, None, None), - - ('Home', _translate("Toolbar", 'Vue originale'), 'home', 'home'), - (None, None, None, None), - - ('Back', _translate("Toolbar", 'Retour à la vue précédente'), 'back', 'back'), - ('Forward', _translate("Toolbar", 'Passer à la vue suivante'), 'forward', 'forward'), - (None, None, None, None), - ('Pan', _translate( - "Toolbar", - 'Panoramique des axes avec la souris gauche, zoom avec la droite' - ), 'move', 'pan'), - (None, None, None, None), - - ('Zoom', _translate("Toolbar", 'Zoom'), 'zoom_to_rect', 'zoom'), - (None, None, None, None), - - ('Isometric_view', _translate( - "Toolbar", 'Vue isométrique (Shift+W)' - ), '', 'isometric_view'), - (None, None, None, None), - - ('GlobalView', _translate( - "Toolbar", 'Vue globale automatique (Shift+X)' - ), '', 'non_isometric_view'), - - (None, None, None, None), - - ('Save', _translate( - "Toolbar", 'Enregistrer la figure' - ), 'filesave', 'save_figure'), + self._items = items + self.toolitems = [ (None, None, None, None), ] + icons = [] + + if "home" in items: + self.toolitems.append(('Home', _translate("Toolbar", 'Default view'), 'home', 'home')) + self.toolitems.append((None, None, None, None)) + + if "back/forward" in items: + self.toolitems.append(('Back', _translate("Toolbar", 'Back to previous view'), 'back', 'back')) + self.toolitems.append(('Forward', _translate("Toolbar", 'Return to next view'), 'forward', 'forward')) + self.toolitems.append((None, None, None, None)) + + if "move" in items: + self.toolitems.append( + ('Pan', _translate( + "Toolbar", + 'Axes panoramic' + ), 'move', 'pan')) + self.toolitems.append((None, None, None, None)) + + if "zoom" in items: + self.toolitems.append(('Zoom', _translate("Toolbar", 'Zoom'), 'zoom_to_rect', 'zoom')) + self.toolitems.append((None, None, None, None)) + + icon_zoom = QtGui.QIcon() + icon_zoom.addPixmap(QtGui.QPixmap( + f"{os.path.dirname(os.path.dirname(file_path))}/resources/icons/zoom.png" + )) + + icons.append(("zoom",icon_zoom)) + + if "iso" in items: + self.toolitems.append( + ('Isometric_view', _translate( + "Toolbar", 'Isometric view (Shift+W)' + ), '', 'isometric_view') + ) + self.toolitems.append((None, None, None, None)) + + self.toolitems.append( + ('GlobalView', _translate( + "Toolbar", 'Auto scale view (Shift+X)' + ), '', 'non_isometric_view') + ) + self.toolitems.append((None, None, None, None)), + + icon_btn_isometric_view = QtGui.QIcon() + icon_btn_isometric_view.addPixmap( + QtGui.QPixmap(f"{os.path.dirname(os.path.dirname(file_path))}/resources" + f"/icons/zoom_fit_11.png")) + + icon_btn_global_view = QtGui.QIcon() + icon_btn_global_view.addPixmap( + QtGui.QPixmap(f"{os.path.dirname(os.path.dirname(file_path))}/resources/icons" + f"/zoom_fit.png")) + + icons.append(("isometric_view", icon_btn_isometric_view)) + icons.append(("non_isometric_view", icon_btn_global_view)) + + if "save" in items: + self.toolitems.append( + ('Save', _translate( + "Toolbar", 'Save the figure' + ), 'filesave', 'save_figure') + ) + self.toolitems.append((None, None, None, None)) + NavigationToolbar2QT.__init__(self, canvas, parent) btn_size = QSize(30, 30) - - icon_zoom = QtGui.QIcon() - icon_zoom.addPixmap(QtGui.QPixmap( - f"{os.path.dirname(os.path.dirname(file_path))}/resources/icons/zoom.png" - )) - icon_btn_isometric_view = QtGui.QIcon() - icon_btn_isometric_view.addPixmap( - QtGui.QPixmap(f"{os.path.dirname(os.path.dirname(file_path))}/resources" - f"/icons/zoom_fit_11.png")) - - icon_btn_global_view = QtGui.QIcon() - icon_btn_global_view.addPixmap( - QtGui.QPixmap(f"{os.path.dirname(os.path.dirname(file_path))}/resources/icons" - f"/zoom_fit.png")) - actions = self.findChildren(QAction) - self._actions["zoom"].setIcon(icon_zoom) - self._actions["isometric_view"].setIcon(icon_btn_isometric_view) - self._actions["non_isometric_view"].setIcon(icon_btn_global_view) + + for a, i in icons: + self._actions[a].setIcon(i) self.addSeparator() @@ -124,7 +145,7 @@ class PamHyrNavigationToolbar2QT(NavigationToolbar2QT): fname, filter = qt_compat._getSaveFileName( self.canvas.parent(), - _translate("MainWindow_reach", "Choisissez un nom de fichier à sauvegarder"), + _translate("MainWindow_reach", "Select destination file"), start, filters, selectedFilter)