diff --git a/moulder/main_window.py b/moulder/main_window.py index 0563765..f79d24d 100644 --- a/moulder/main_window.py +++ b/moulder/main_window.py @@ -56,6 +56,7 @@ class MoulderApp(QMainWindow): self.quit_action.triggered.connect(self._quit_callback) self.moulder.polygon_selected.connect(self._change_density_callback) self.moulder.drawing_mode.connect(self._drawing_mode_callback) + self.moulder.add_vertex_mode.connect(self._add_vertex_mode_callback) self.new_polygon_action.triggered.connect(self.moulder.new_polygon) self.add_vertex_action.triggered.connect(self.moulder.add_vertex) self.delete_polygon_action.triggered.connect( @@ -69,6 +70,12 @@ class MoulderApp(QMainWindow): self.error_spinbox.valueChanged.connect( self._spin_slider_changed_callback) + def _add_vertex_mode_callback(self, add_vertex): + if add_vertex and self.add_vertex_action.isChecked() is False: + self.add_vertex_action.setChecked(True) + elif not add_vertex and self.add_vertex_action.isChecked() is True: + self.add_vertex_action.setChecked(False) + def _drawing_mode_callback(self, drawing): if drawing and self.new_polygon_action.isChecked() is False: self.new_polygon_action.setChecked(True) @@ -94,10 +101,11 @@ class MoulderApp(QMainWindow): self.new_polygon_action = QAction(QIcon.fromTheme("list-add"), "&New Polygon", self) self.new_polygon_action.setCheckable(True) - self.delete_polygon_action = QAction(QIcon.fromTheme("list-remove"), - "&Delete Polygon", self) self.add_vertex_action = QAction(QIcon.fromTheme("document-new"), "&Add Vertex", self) + self.add_vertex_action.setCheckable(True) + self.delete_polygon_action = QAction(QIcon.fromTheme("list-remove"), + "&Delete Polygon", self) def _configure_menubar(self): self.menubar = self.menuBar() diff --git a/moulder/moulder.py b/moulder/moulder.py index c4ea98f..8d60d30 100644 --- a/moulder/moulder.py +++ b/moulder/moulder.py @@ -29,7 +29,7 @@ class Moulder(FigureCanvasQTAgg): # Signal when selected polygon changes polygon_selected = pyqtSignal(float) drawing_mode = pyqtSignal(bool) - add_vertex_signal = pyqtSignal() + add_vertex_mode = pyqtSignal(bool) def __init__(self, parent, x, z, min_depth, max_depth, density_range=[-2000, 2000], width=5, height=4, dpi=100): @@ -134,6 +134,7 @@ class Moulder(FigureCanvasQTAgg): def add_vertex(self): self._add_vertex = not self._add_vertex + # self.add_vertex_mode.emit(True) def new_polygon(self): self._ivert = None @@ -190,10 +191,12 @@ class Moulder(FigureCanvasQTAgg): self.canvas.draw() # self._update_data() self._update_data_plot() + self.add_vertex_mode.emit(False) def cancel_drawing(self): if self._add_vertex: self._add_vertex = False + self.add_vertex_mode.emit(False) else: self.dataax.set_title(self.instructions) self._drawing = False @@ -459,6 +462,7 @@ class Moulder(FigureCanvasQTAgg): return if self._add_vertex: self._add_vertex = False + self.add_vertex_mode.emit(False) if self._ivert is None and self._ipoly is None: return self.background = None