From 21f706baeadd30939c12302ce2b35a6961f000ca Mon Sep 17 00:00:00 2001 From: Taylor Bockman Date: Thu, 5 Sep 2019 18:34:49 -0700 Subject: [PATCH] Enable resetting of the cluster solver --- clusterview.ui | 7 +++++++ clusterview/mode_handlers.py | 12 ++++++++++++ clusterview_ui.py | 4 ++++ main_window.py | 16 +++++++++++++++- 4 files changed, 38 insertions(+), 1 deletion(-) diff --git a/clusterview.ui b/clusterview.ui index e7968b4..51d9afb 100644 --- a/clusterview.ui +++ b/clusterview.ui @@ -159,6 +159,13 @@ + + + + Reset + + + diff --git a/clusterview/mode_handlers.py b/clusterview/mode_handlers.py index b982f2a..816d757 100644 --- a/clusterview/mode_handlers.py +++ b/clusterview/mode_handlers.py @@ -371,6 +371,18 @@ def group(ctx): ctx.opengl_widget.update() +def reset_centroid_count_and_colors(): + global __centroid_count + global __remaining_colors + + __centroid_count = 0 + __remaining_colors = [c for c in Color if + c not in [Color.BLUE, Color.GREY]] + + for point in PointManager.point_set.points: + point.color = Color.GREY + + # Simple dispatcher to make it easy to dispatch the right mode # function when the OpenGL window is acted on. MODE_HANDLER_MAP = { diff --git a/clusterview_ui.py b/clusterview_ui.py index b3b4276..4fad721 100644 --- a/clusterview_ui.py +++ b/clusterview_ui.py @@ -86,6 +86,9 @@ class Ui_MainWindow(object): self.group_button.setEnabled(False) self.group_button.setObjectName("group_button") self.formLayout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.group_button) + self.reset_button = QtWidgets.QPushButton(self.groupBox_3) + self.reset_button.setObjectName("reset_button") + self.formLayout.setWidget(6, QtWidgets.QFormLayout.LabelRole, self.reset_button) self.verticalLayout.addWidget(self.groupBox_3) spacerItem = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) self.verticalLayout.addItem(spacerItem) @@ -171,6 +174,7 @@ class Ui_MainWindow(object): self.choose_centroids_button.setText(_translate("MainWindow", "Choose Centroids")) self.solve_button.setText(_translate("MainWindow", "Solve")) self.group_button.setText(_translate("MainWindow", "Group")) + self.reset_button.setText(_translate("MainWindow", "Reset")) self.groupBox_2.setTitle(_translate("MainWindow", "Canvas Information")) self.label.setText(_translate("MainWindow", "Mouse Position:")) self.menu_file.setTitle(_translate("MainWindow", "File")) diff --git a/main_window.py b/main_window.py index ddfe101..26b5afe 100644 --- a/main_window.py +++ b/main_window.py @@ -9,7 +9,8 @@ from clusterview.colors import Color from clusterview.mode import Mode from clusterview.mode_handlers import (group, MODE_HANDLER_MAP, ogl_keypress_handler, - refresh_point_list) + refresh_point_list, + reset_centroid_count_and_colors) from clusterview.opengl_widget import (clear_selection, initialize_gl, mouse_leave, paint_gl, resize_gl, set_drawing_context) @@ -67,8 +68,11 @@ class MainWindow(QMainWindow, Ui_MainWindow): self)) self.choose_centroids_button.clicked.connect(self.__choose_centroids) + self.group_button.clicked.connect(self.__group) + self.reset_button.clicked.connect(self.__reset_grouping) + # ----------------------------------------------- # OpenGL Graphics Handlers are set # here and defined in clusterview.opengl_widget. @@ -159,6 +163,16 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.__off_mode() self.opengl_widget.update() + def __reset_grouping(self): + self.__off_mode() + self.number_of_centroids.setEnabled(True) + self.number_of_centroids.setValue(0) + self.choose_centroids_button.setEnabled(True) + self.solve_button.setEnabled(False) + self.group_button.setEnabled(False) + PointManager.centroids = [] + reset_centroid_count_and_colors() + @property def mode(self): """