diff --git a/clusterview2.ui b/clusterview2.ui index 571eca0..b8bd6c4 100644 --- a/clusterview2.ui +++ b/clusterview2.ui @@ -314,6 +314,8 @@ + + @@ -387,6 +389,11 @@ Generate Random Points + + + Clear Canvas + + diff --git a/clusterview2/points.py b/clusterview2/points.py index 86d7bfd..0a3558e 100644 --- a/clusterview2/points.py +++ b/clusterview2/points.py @@ -287,6 +287,9 @@ class PointSet: for point in self._points: yield point + def clear_points(self): + self._points = [] + @property def point_size(self): return self._point_size diff --git a/clusterview2_ui.py b/clusterview2_ui.py index 6a5216a..6e97a9e 100644 --- a/clusterview2_ui.py +++ b/clusterview2_ui.py @@ -152,6 +152,8 @@ class Ui_MainWindow(object): self.action_exit.setObjectName("action_exit") self.action_generate_random_points = QtWidgets.QAction(MainWindow) self.action_generate_random_points.setObjectName("action_generate_random_points") + self.action_clear_canvas = QtWidgets.QAction(MainWindow) + self.action_clear_canvas.setObjectName("action_clear_canvas") self.menu_file.addAction(self.action_load_point_configuration) self.menu_file.addAction(self.action_save_point_configuration) self.menu_file.addSeparator() @@ -163,6 +165,8 @@ class Ui_MainWindow(object): self.tool_bar.addAction(self.action_move_points) self.tool_bar.addAction(self.action_edit_points) self.tool_bar.addAction(self.action_delete_points) + self.tool_bar.addSeparator() + self.tool_bar.addAction(self.action_clear_canvas) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) @@ -199,3 +203,4 @@ class Ui_MainWindow(object): self.action_load_point_configuration.setText(_translate("MainWindow", "Load Point Configuration")) self.action_exit.setText(_translate("MainWindow", "Exit")) self.action_generate_random_points.setText(_translate("MainWindow", "Generate Random Points")) + self.action_clear_canvas.setText(_translate("MainWindow", "Clear Canvas")) diff --git a/main_window.py b/main_window.py index b6eb186..e680e4e 100644 --- a/main_window.py +++ b/main_window.py @@ -105,6 +105,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.action_edit_points.triggered.connect(self._edit_points) self.action_delete_points.triggered.connect(self._delete_points) self.action_move_points.triggered.connect(self._move_points) + self.action_clear_canvas.triggered.connect(self._clear_canvas) (self.action_generate_random_points .triggered.connect(self._generate_random_points)) @@ -167,6 +168,11 @@ class MainWindow(QMainWindow, Ui_MainWindow): clear_selection() self.opengl_widget.update() + def _clear_canvas(self): + PointManager.point_set.clear_points() + refresh_point_list(self) + self.opengl_widget.update() + def _clustering(self): if len(list(PointManager.point_set.points)) == 0: error_dialog = QErrorMessage() @@ -183,7 +189,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): def _reset(self): self._off_mode() self.number_of_clusters.setEnabled(True) - self.number_of_clusters.setValue(0) + self.number_of_clusters.setValue(4) self.clustering_button.setEnabled(False) self.clustering_solved = False PointManager.clusters = []