Skip to content

Commit

Permalink
Fix bug with updating the timer when the minutes setting changes
Browse files Browse the repository at this point in the history
  • Loading branch information
wheelercj committed May 31, 2022
1 parent 1c851d8 commit d2f2924
Showing 1 changed file with 23 additions and 17 deletions.
40 changes: 23 additions & 17 deletions zq/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,17 +43,12 @@ def __init__(self):
self.timer = QTimer(self)
QObject.connect(self.timer, SIGNAL("timeout()"), self.tick)
self.timer.start(1000)
self.max_individual_seconds = (
settings["meeting minutes"] * 60 + settings["transition seconds"]
)
self.max_individual_seconds = 0
self.update_max_individual_seconds()
self.min_empty_waitlist_seconds = settings["meeting minutes"] / 2 * 60
self.group_seconds = 0 # counts up
self.mode_names = [
"group meeting",
f"{settings['meeting minutes']}-minute individual meetings",
"start",
"end",
]
self.mode_names = []
self.update_mode_names()
self.current_mode = Mode.GROUP
(self.student_names, self.individual_seconds) = load_students(
self.max_individual_seconds
Expand Down Expand Up @@ -133,6 +128,20 @@ def append_name(self, name: str):
self.student_names.append(name)
self.update_timer_message()

def update_mode_names(self):
self.mode_names = [0] * len(Mode)
self.mode_names[Mode.GROUP.value] = "group meeting"
self.mode_names[
Mode.INDIVIDUAL.value
] = f"{settings['meeting minutes']}-minute individual meetings"
self.mode_names[Mode.START.value] = "start"
self.mode_names[Mode.END.value] = "end"

def update_max_individual_seconds(self):
self.max_individual_seconds = (
settings["meeting minutes"] * 60 + settings["transition seconds"]
)

def update_timer_message(self):
if self.current_mode == Mode.START:
set_QTextBrowser_text(self.timer_message, settings["starting message"])
Expand Down Expand Up @@ -171,13 +180,9 @@ def change_minutes(self):
minutes = self.line_edit.text()
if minutes.isdigit() and int(minutes) > 0:
settings["meeting minutes"] = int(minutes)
self.max_individual_seconds = (
int(minutes) * 60 + settings["transition seconds"]
)
self.update_max_individual_seconds()
self.min_empty_waitlist_seconds = int(minutes) / 2 * 60
self.mode_names[
Mode.INDIVIDUAL.value
] = f"{minutes}-minute individual meetings"
self.update_mode_names()
self.update_timer_message()
save_settings()

Expand Down Expand Up @@ -266,8 +271,9 @@ def handle_char_key_pressed(self, key: str):
if user_clicked_save:
if not self.__showing_help and not self.__showing_about:
set_QTextBrowser_text(self.welcome, settings["welcome message"])
if self.current_mode in (Mode.START, Mode.END):
self.update_timer_message()
self.update_mode_names()
self.update_max_individual_seconds()
self.update_timer_message()
self.line_edit.grabKeyboard()
elif key == "n" and len(self.student_names):
(
Expand Down

0 comments on commit d2f2924

Please sign in to comment.