mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 16:58:12 +00:00
New UI Redesign in pyqt6 (#56)
* Initial commit for new UI * Initial commit for new UI * WIP * Status bar updates and has an icon for online / offline * Add log_viewer.py * Use JSON for delete_engine_download API * Fix class issue with Downloaders * Move Config class to new ui * Add engine_browser.py * Add a close event handler to the main window * Fix issue with engine manager not deleting engines properly * Rearrange all the files * Add icons and resources * Cache system info in RenderServerProxy * Toolbar polish * Fix resource path in status bar * Add config_dir to misc_helper.py * Add try block to zeroconf setup * Add add_job.py * Add raw args to add_job.py
This commit is contained in:
60
src/ui/console.py
Normal file
60
src/ui/console.py
Normal file
@@ -0,0 +1,60 @@
|
||||
import sys
|
||||
import logging
|
||||
|
||||
from PyQt6.QtGui import QFont
|
||||
from PyQt6.QtWidgets import QMainWindow, QVBoxLayout, QWidget, QPlainTextEdit
|
||||
from PyQt6.QtCore import pyqtSignal, QObject
|
||||
|
||||
|
||||
# Create a custom logging handler that emits a signal
|
||||
class QSignalHandler(logging.Handler, QObject):
|
||||
new_record = pyqtSignal(str)
|
||||
|
||||
def __init__(self):
|
||||
logging.Handler.__init__(self)
|
||||
QObject.__init__(self)
|
||||
|
||||
def emit(self, record):
|
||||
msg = self.format(record)
|
||||
self.new_record.emit(msg) # Emit signal
|
||||
|
||||
|
||||
class ConsoleWindow(QMainWindow):
|
||||
def __init__(self, buffer_handler):
|
||||
super().__init__()
|
||||
self.buffer_handler = buffer_handler
|
||||
self.log_handler = None
|
||||
self.init_ui()
|
||||
self.init_logging()
|
||||
|
||||
def init_ui(self):
|
||||
self.setGeometry(100, 100, 600, 800)
|
||||
self.setWindowTitle("Log Output")
|
||||
|
||||
self.text_edit = QPlainTextEdit(self)
|
||||
self.text_edit.setReadOnly(True)
|
||||
self.text_edit.setFont(QFont("Courier", 10))
|
||||
|
||||
layout = QVBoxLayout()
|
||||
layout.addWidget(self.text_edit)
|
||||
layout.setContentsMargins(0, 0, 0, 0)
|
||||
|
||||
central_widget = QWidget()
|
||||
central_widget.setLayout(layout)
|
||||
self.setCentralWidget(central_widget)
|
||||
|
||||
def init_logging(self):
|
||||
|
||||
self.buffer_handler.new_record.connect(self.append_log_record)
|
||||
# Display all messages that were buffered before the window was opened
|
||||
for record in self.buffer_handler.get_buffer():
|
||||
self.text_edit.appendPlainText(record)
|
||||
|
||||
self.log_handler = QSignalHandler()
|
||||
# self.log_handler.new_record.connect(self.append_log_record)
|
||||
self.log_handler.setFormatter(self.buffer_handler.formatter)
|
||||
logging.getLogger().addHandler(self.log_handler)
|
||||
logging.getLogger().setLevel(logging.INFO)
|
||||
|
||||
def append_log_record(self, record):
|
||||
self.text_edit.appendPlainText(record)
|
||||
Reference in New Issue
Block a user