From d15672df661ae3632e6b671d607accdc6dfb3750 Mon Sep 17 00:00:00 2001 From: Joerg Wunsch Date: Mon, 25 Mar 2024 11:22:48 +0100 Subject: [PATCH] Add dialog to change log level This sets the global AVRDUDE verbosity level, based on a radio button group. quell_progress right now not supported --- src/python/adgui.py | 28 +++++- src/python/adgui.ui | 56 ++++++++++++ src/python/loglevel.ui | 201 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 284 insertions(+), 1 deletion(-) create mode 100644 src/python/loglevel.ui diff --git a/src/python/adgui.py b/src/python/adgui.py index 5bd8e767..a13ab345 100755 --- a/src/python/adgui.py +++ b/src/python/adgui.py @@ -100,6 +100,7 @@ from ui_adgui import Ui_MainWindow from ui_about import Ui_About from ui_device import Ui_Device from ui_devinfo import Ui_DevInfo +from ui_loglevel import Ui_LogLevel class About(QDialog): def __init__(self): @@ -119,14 +120,21 @@ class DevInfo(QDialog): self.ui = Ui_DevInfo() self.ui.setupUi(self) +class LogLevel(QDialog): + def __init__(self): + super().__init__() + self.ui = Ui_LogLevel() + self.ui.setupUi(self) + class MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) -class adgui(): +class adgui(QObject): def __init__(self, argv): + super().__init__() self.logstring = "Welcome to AVRDUDE!\n" self.app = QApplication(sys.argv) @@ -135,6 +143,7 @@ class adgui(): self.about = About() self.device = Device() self.devinfo = DevInfo() + self.loglevel = LogLevel() self.window.ui.actionAbout.triggered.connect(self.about.show) self.window.ui.actionDevice.triggered.connect(self.device.show) @@ -143,6 +152,16 @@ class adgui(): (success, message) = avrdude_init() self.initialized = success self.log(message) + self.loglevel.ui.radioButton.toggled.connect(self.loglevel_changed) + self.loglevel.ui.radioButton_2.toggled.connect(self.loglevel_changed) + self.loglevel.ui.radioButton_3.toggled.connect(self.loglevel_changed) + self.loglevel.ui.radioButton_4.toggled.connect(self.loglevel_changed) + self.loglevel.ui.radioButton_5.toggled.connect(self.loglevel_changed) + self.loglevel.ui.radioButton_6.toggled.connect(self.loglevel_changed) + self.loglevel.ui.radioButton_7.toggled.connect(self.loglevel_changed) + self.loglevel.ui.radioButton_8.toggled.connect(self.loglevel_changed) + self.loglevel.ui.radioButton_9.toggled.connect(self.loglevel_changed) + self.window.ui.actionLog_level.triggered.connect(self.loglevel.show) if not success: self.window.ui.actionDevice.setEnabled(False) self.window.ui.actionProgrammer.setEnabled(False) @@ -243,6 +262,13 @@ class adgui(): self.update_device_info() self.window.ui.actionDevice_Info.setEnabled(True) + def loglevel_changed(self, checked: bool): + btn = self.sender() + if checked: + # we abuse the tooltip for the verbosity value + val = int(btn.toolTip()) + ad.cvar.verbose = val + def main(): gui = adgui(sys.argv) diff --git a/src/python/adgui.ui b/src/python/adgui.ui index 4c66cd36..d9fa6a1b 100644 --- a/src/python/adgui.ui +++ b/src/python/adgui.ui @@ -116,6 +116,7 @@ Settings + @@ -157,6 +158,61 @@ About ... + + + OS Error + + + + + Warning + + + + + Error + + + + + Warning + + + + + Info + + + + + Notice + + + + + Notice 2 + + + + + Debug + + + + + Trace + + + + + Trace 2 + + + + + Log level … + + diff --git a/src/python/loglevel.ui b/src/python/loglevel.ui new file mode 100644 index 00000000..b05a9280 --- /dev/null +++ b/src/python/loglevel.ui @@ -0,0 +1,201 @@ + + + LogLevel + + + + 0 + 0 + 277 + 317 + + + + Log Level + + + + + 180 + 30 + 81 + 241 + + + + Qt::Vertical + + + QDialogButtonBox::Ok + + + + + + 20 + 10 + 141 + 301 + + + + Log Level + + + + + 10 + 30 + 107 + 23 + + + + OS Error + + + + + + 10 + 60 + 107 + 23 + + + + Error + + + + + + 10 + 90 + 107 + 23 + + + + Warning + + + + + + 10 + 120 + 107 + 23 + + + + Info + + + true + + + + + + 10 + 150 + 107 + 23 + + + + Notice + + + + + + 10 + 180 + 107 + 23 + + + + Notice 2 + + + + + + 10 + 210 + 107 + 23 + + + + Debug + + + + + + 10 + 240 + 107 + 23 + + + + Trace + + + + + + 10 + 270 + 107 + 23 + + + + Trace 2 + + + + + + + + buttonBox + accepted() + LogLevel + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + LogLevel + reject() + + + 316 + 260 + + + 286 + 274 + + + + +