Skip to content

Commit 8420989

Browse files
authored
Merge pull request #408 from vshekar/autoproc-table-widget
Added Autoproc log widget and fixed font
2 parents 2c4868a + c7f1917 commit 8420989

File tree

2 files changed

+28
-16
lines changed

2 files changed

+28
-16
lines changed

gui/control_main.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -972,13 +972,18 @@ def createSampleTab(self):
972972
if "pass-" in part:
973973
visit_name = f"mx{part.split('-')[1]}-1"
974974
fast_dp_summary_file = Path(f'{getBlConfig("visitDirectory")}/{visit_name}/fast_dp_dir/fast_dp.summary.csv')
975-
summaryTableGB = QtWidgets.QGroupBox()
976-
summaryTableGB.setTitle("FastDP Summary")
975+
auto_proc_summary_file = Path(f'{getBlConfig("visitDirectory")}/{visit_name}/autoProc_dir/autoPROC.summary.csv')
976+
log_widget_tabs = QtWidgets.QTabWidget()
977977
summaryTableLayout = QtWidgets.QVBoxLayout()
978-
self.summaryTableWidget = get_summary_widget(fast_dp_summary_file)
979-
summaryTableLayout.addWidget(self.summaryTableWidget)
980-
summaryTableGB.setLayout(summaryTableLayout)
981-
vBoxMainColLayout.addWidget(summaryTableGB)
978+
self.fastdp_summary_table_widget = get_summary_widget(fast_dp_summary_file)
979+
self.auto_proc_summary_table_widget = get_summary_widget(auto_proc_summary_file)
980+
self.user_log_widget = LogViewerWidget()
981+
982+
log_widget_tabs.addTab(self.fastdp_summary_table_widget, "Fast DP Summary")
983+
log_widget_tabs.addTab(self.auto_proc_summary_table_widget, "AutoPROC Summary")
984+
log_widget_tabs.addTab(self.user_log_widget, "User Message Log")
985+
986+
vBoxMainColLayout.addWidget(log_widget_tabs)
982987

983988
self.mainColFrame.setLayout(vBoxMainColLayout)
984989
self.mainToolBox.addItem(self.mainColFrame, "Collection Parameters")

gui/widgets/log_widget.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import sys
22
from qtpy.QtWidgets import (
33
QTextEdit,
4+
QPlainTextEdit,
45
QVBoxLayout,
56
QWidget,
67
QTableWidget,
@@ -9,7 +10,7 @@
910
QAbstractScrollArea,
1011
)
1112
from qtpy.QtCore import QTimer, Qt
12-
from qtpy.QtGui import QTextOption
13+
from qtpy.QtGui import QTextOption, QTextCursor, QFont, QFontDatabase
1314
import csv
1415
from pathlib import Path
1516

@@ -41,10 +42,14 @@ def __init__(self, log_file, max_height=500, parent=None):
4142
self.auto_scroll = True # Auto-scroll is enabled by default
4243

4344
def initUI(self, max_height):
44-
self.text_edit = QTextEdit(self)
45+
self.text_edit = QPlainTextEdit(self)
4546
self.text_edit.setReadOnly(True)
4647
self.text_edit.setWordWrapMode(QTextOption.NoWrap)
4748

49+
fixed = QFontDatabase.systemFont(QFontDatabase.FixedFont)
50+
fixed.setStyleHint(QFont.Monospace)
51+
self.text_edit.setFont(fixed)
52+
4853
layout = QVBoxLayout(self)
4954
layout.addWidget(self.text_edit)
5055
self.setLayout(layout)
@@ -71,15 +76,17 @@ def update_log(self):
7176
f.seek(self.last_position)
7277
new_lines = f.readlines()
7378
self.last_position = f.tell()
74-
79+
new_lines = [ln for ln in new_lines if ln.strip()]
7580
if new_lines:
76-
# self.text_edit.append("".join(new_lines))
77-
cursor = self.text_edit.textCursor()
78-
cursor.movePosition(cursor.End) # Move cursor to the end
79-
cursor.insertText("".join(new_lines)) # Insert text directly
80-
if self.auto_scroll:
81-
self.text_edit.moveCursor(QTextEdit().textCursor().End)
82-
81+
self.add_lines(new_lines)
82+
83+
def add_lines(self, text):
84+
cursor = self.text_edit.textCursor()
85+
cursor.movePosition(cursor.End) # Move cursor to the end
86+
cursor.insertText("".join(text)) # Insert text directly
87+
if self.auto_scroll:
88+
self.text_edit.moveCursor(QTextCursor.End)
89+
8390

8491
class CSVTableWidget(QTableWidget):
8592
def __init__(self, parent=None, file_path=None):

0 commit comments

Comments
 (0)