forked from IPKM/nmreval
242-uncaught-exception (#252)
close issue #242 Co-authored-by: Dominik Demuth <dominik.demuth@physik.tu-darmstadt.de> Reviewed-on: IPKM/nmreval#252
This commit is contained in:
parent
04d384363a
commit
24f77f753c
@ -1,5 +1,8 @@
|
|||||||
|
import logging
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
from PyQt5 import QtWidgets
|
||||||
|
|
||||||
from .codeeditor import _make_textformats
|
from .codeeditor import _make_textformats
|
||||||
from ..Qt import QtWidgets, QtCore, QtGui
|
from ..Qt import QtWidgets, QtCore, QtGui
|
||||||
from nmreval.configs import config_paths
|
from nmreval.configs import config_paths
|
||||||
@ -113,3 +116,27 @@ class QLog(QtWidgets.QDialog):
|
|||||||
|
|
||||||
for lines in text[-100:]:
|
for lines in text[-100:]:
|
||||||
self.plainTextEdit.appendPlainText(lines[:-1])
|
self.plainTextEdit.appendPlainText(lines[:-1])
|
||||||
|
|
||||||
|
|
||||||
|
class ConsoleDock(QtWidgets.QDockWidget):
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
super().__init__(parent=parent)
|
||||||
|
|
||||||
|
self.code = QtWidgets.QPlainTextEdit(parent)
|
||||||
|
self.code.highlight = LogHighlighter(self.code.document())
|
||||||
|
self.code.setReadOnly(True)
|
||||||
|
self.code.setMaximumBlockCount(50)
|
||||||
|
self.setWidget(self.code)
|
||||||
|
|
||||||
|
|
||||||
|
class QTextHandler(logging.Handler):
|
||||||
|
def __init__(self, parent):
|
||||||
|
super().__init__()
|
||||||
|
|
||||||
|
self.console = ConsoleDock(parent)
|
||||||
|
self.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
|
||||||
|
|
||||||
|
def emit(self, record):
|
||||||
|
msg = self.format(record)
|
||||||
|
self.console.code.appendPlainText(msg)
|
||||||
|
self.console.show()
|
||||||
|
@ -10,7 +10,7 @@ from ..Qt import QtGui, QtWidgets, QtCore
|
|||||||
@contextmanager
|
@contextmanager
|
||||||
def busy_cursor():
|
def busy_cursor():
|
||||||
try:
|
try:
|
||||||
cursor = QtGui.QCursor(QtCore.Qt.ForbiddenCursor)
|
cursor = QtGui.QCursor(QtCore.Qt.CursorShape.ForbiddenCursor)
|
||||||
QtWidgets.QApplication.setOverrideCursor(cursor)
|
QtWidgets.QApplication.setOverrideCursor(cursor)
|
||||||
yield
|
yield
|
||||||
|
|
||||||
|
3
src/gui_qt/main/console.py
Normal file
3
src/gui_qt/main/console.py
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
@ -12,6 +12,7 @@ from nmreval.lib.logger import logger
|
|||||||
from nmreval.io.sessionwriter import NMRWriter
|
from nmreval.io.sessionwriter import NMRWriter
|
||||||
|
|
||||||
from .management import UpperManagement
|
from .management import UpperManagement
|
||||||
|
from ..lib.logger import ConsoleDock, QTextHandler
|
||||||
from ..Qt import QtGui, QtPrintSupport
|
from ..Qt import QtGui, QtPrintSupport
|
||||||
from ..data.shift_graphs import QShift
|
from ..data.shift_graphs import QShift
|
||||||
from ..data.signaledit import QPreviewDialog, QBaselineDialog
|
from ..data.signaledit import QPreviewDialog, QBaselineDialog
|
||||||
@ -62,6 +63,11 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
|
|||||||
self.eval = None
|
self.eval = None
|
||||||
self.editor = None
|
self.editor = None
|
||||||
|
|
||||||
|
self.logtext = QTextHandler(self)
|
||||||
|
logger.addHandler(self.logtext)
|
||||||
|
self.addDockWidget(QtCore.Qt.DockWidgetArea.BottomDockWidgetArea, self.logtext.console)
|
||||||
|
self.logtext.console.hide()
|
||||||
|
|
||||||
self.movedialog = QMover(self)
|
self.movedialog = QMover(self)
|
||||||
|
|
||||||
self.current_graph_widget = None
|
self.current_graph_widget = None
|
||||||
|
Loading…
Reference in New Issue
Block a user