new_polygon_action is Checkable

This commit is contained in:
Santiago Soler
2018-02-15 15:49:10 -03:00
parent 7ceba477c3
commit 2e079ed696
2 changed files with 14 additions and 0 deletions

View File

@@ -55,6 +55,7 @@ class MoulderApp(QMainWindow):
self.about_action.triggered.connect(self._about_callback)
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.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(
@@ -68,6 +69,12 @@ class MoulderApp(QMainWindow):
self.error_spinbox.valueChanged.connect(
self._spin_slider_changed_callback)
def _drawing_mode_callback(self, drawing):
if drawing and self.new_polygon_action.isChecked() is False:
self.new_polygon_action.setChecked(True)
elif not drawing and self.new_polygon_action.isChecked() is True:
self.new_polygon_action.setChecked(False)
def _define_actions(self):
self.configure_action = QAction(QIcon.fromTheme('preferences-system'),
'&Configure...', self)
@@ -86,6 +93,7 @@ class MoulderApp(QMainWindow):
self.about_action = QAction("&About", self)
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"),

View File

@@ -28,6 +28,8 @@ class Moulder(FigureCanvasQTAgg):
# Signal when selected polygon changes
polygon_selected = pyqtSignal(float)
drawing_mode = pyqtSignal(bool)
add_vertex_signal = pyqtSignal()
def __init__(self, parent, x, z, min_depth, max_depth,
density_range=[-2000, 2000], width=5, height=4, dpi=100):
@@ -143,6 +145,7 @@ class Moulder(FigureCanvasQTAgg):
self.canvas.draw()
self.background = self.canvas.copy_from_bbox(self.modelax.bbox)
self._drawing = True
self.drawing_mode.emit(self._drawing)
self._xy = []
self._drawing_plot = Line2D([], [], **LINE_ARGS)
self._drawing_plot.set_animated(True)
@@ -194,6 +197,7 @@ class Moulder(FigureCanvasQTAgg):
else:
self.dataax.set_title(self.instructions)
self._drawing = False
self.drawing_mode.emit(self._drawing)
self._xy = []
if self._drawing_plot is not None:
self._drawing_plot.remove()
@@ -231,6 +235,7 @@ class Moulder(FigureCanvasQTAgg):
self._ipoly = None
self._lastevent = None
self._drawing = False
self.drawing_mode.emit(self._drawing)
self._add_vertex = False
self._xy = []
self._drawing_plot = None
@@ -436,6 +441,7 @@ class Moulder(FigureCanvasQTAgg):
self._drawing_plot = None
self._xy = None
self._drawing = False
self.drawing_mode.emit(self._drawing)
self._ipoly = len(self.polygons) - 1
self.lines[self._ipoly].set_color([0, 1, 0, 0])
self.dataax.set_title(self.instructions)