Skip to content

Commit 677b296

Browse files
Allow Clearing the Logger (#65)
1 parent 85e51b8 commit 677b296

4 files changed

Lines changed: 27 additions & 1 deletion

File tree

src/petab_gui/controllers/logger_controller.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
"""File containing the controller of the logger widget."""
22
from datetime import datetime
33

4+
from pyarrow import timestamp
5+
46

57
class LoggerController:
68
"""Mainly responsible for handling the logger widget."""
@@ -30,3 +32,11 @@ def log_message(self, message, color="black"):
3032
f"[{timestamp}]\t <span style='color: {color};'>{message}</span>"
3133
for view in self.views:
3234
view.logger.append(full_message)
35+
36+
def clear_log(self):
37+
"""Clear the logger."""
38+
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
39+
clear_message = f"[{timestamp}]\t Logger cleared."
40+
for view in self.views:
41+
view.logger.clear()
42+
view.logger.append(clear_message)

src/petab_gui/controllers/mother_controller.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,12 @@ def setup_actions(self):
350350
actions["show_plot"].toggled.connect(
351351
lambda checked: self.view.plot_dock.setVisible(checked)
352352
)
353+
# Clear Log
354+
actions["clear_log"] = QAction(
355+
qta.icon("mdi6.delete"),
356+
"Clear Log", self.view
357+
)
358+
actions["clear_log"].triggered.connect(self.logger.clear_log)
353359

354360
return actions
355361

src/petab_gui/utils.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import antimony
1212
import os
1313
import math
14+
import numpy as np
1415

1516

1617
def _checkAntimonyReturnCode(code):

src/petab_gui/views/task_bar.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
from PySide6.QtWidgets import QMenu, QStyle
1+
from PySide6.QtWidgets import QMenu
22
from PySide6.QtGui import QAction
3+
import qtawesome as qta
34

45

56
class BasicMenu:
@@ -88,12 +89,20 @@ def __init__(self, parent, actions):
8889
super().__init__(parent, actions)
8990

9091
# Add actions to the menu for re-adding tables
92+
visibility_header = QAction(
93+
qta.icon("fa5s.eye"), "Visibility", parent
94+
)
95+
visibility_header.setEnabled(False)
96+
self.menu.addAction(visibility_header)
97+
self.menu.addSeparator()
9198
self.menu.addAction(actions["show_measurement"])
9299
self.menu.addAction(actions["show_observable"])
93100
self.menu.addAction(actions["show_parameter"])
94101
self.menu.addAction(actions["show_condition"])
95102
self.menu.addAction(actions["show_logger"])
96103
self.menu.addAction(actions["show_plot"])
104+
self.menu.addSeparator()
105+
self.menu.addAction(actions["clear_log"])
97106

98107

99108
class TaskBar:

0 commit comments

Comments
 (0)