From 63caaa2ecd9732048b4bd844594cc08e3b56a4ed Mon Sep 17 00:00:00 2001 From: Clemens Richter Date: Tue, 18 Apr 2017 13:03:59 +0200 Subject: [PATCH] clunky, but functional auto-auto-scroll --- grc/multirds_tmc_parser.xml | 16 +--------------- python/rds_parser_table_qt.py | 2 +- python/tmc_parser.py | 20 +++++++++++++------- 3 files changed, 15 insertions(+), 23 deletions(-) diff --git a/grc/multirds_tmc_parser.xml b/grc/multirds_tmc_parser.xml index 7f70b2d..ce2f26a 100644 --- a/grc/multirds_tmc_parser.xml +++ b/grc/multirds_tmc_parser.xml @@ -9,7 +9,7 @@ #if not $label() #set $label = '"%s"'%$id #end if -$(parser) = multirds.tmc_parser($workdir, $log, $debug, $writeDB,$maxheight,$auto_scroll) +$(parser) = multirds.tmc_parser($workdir, $log, $debug, $writeDB,$maxheight) $(win) = $(parser).getqtwidget() $(gui_hint()($win)) @@ -66,20 +66,6 @@ $(gui_hint()($win)) False - - auto_scroll - auto_scroll - True - bool - - - write Database writeDB diff --git a/python/rds_parser_table_qt.py b/python/rds_parser_table_qt.py index a13f1fa..d9d3660 100644 --- a/python/rds_parser_table_qt.py +++ b/python/rds_parser_table_qt.py @@ -74,7 +74,7 @@ class rds_parser_table_qt(gr.sync_block):#START self.message_port_register_out(pmt.intern('ctrl')) self.message_port_register_out(pmt.intern('tmc_raw')) - self.TMC_without_CT=False + self.TMC_without_CT=True self.log=log self.debug=debug self.writeDB=writeDB diff --git a/python/tmc_parser.py b/python/tmc_parser.py index 44ddc5c..36c37cf 100644 --- a/python/tmc_parser.py +++ b/python/tmc_parser.py @@ -33,7 +33,7 @@ class tmc_parser(gr.sync_block): """ docstring for block tmc_parser """ - def __init__(self, workdir,log,debug,writeDB,maxheight,auto_scroll): + def __init__(self, workdir,log,debug,writeDB,maxheight): gr.sync_block.__init__(self, name="tmc_parser", in_sig=None, @@ -42,7 +42,7 @@ class tmc_parser(gr.sync_block): self.debug=debug self.workdir=workdir self.writeDB=writeDB - self.qtwidget=tmc_parser_Widget(self,maxheight,auto_scroll) + self.qtwidget=tmc_parser_Widget(self,maxheight) self.message_port_register_in(pmt.intern('in')) self.set_msg_handler(pmt.intern('in'), self.handle_msg) self.tmc_meta={} @@ -245,15 +245,22 @@ class tmc_parser(gr.sync_block): return return_string class tmc_parser_Widget(QtGui.QWidget): def print_tmc_msg(self,tmc_msg): + sb=self.logOutput.verticalScrollBar() + oldmax=sb.maximum() + auto_scroll= abs(oldmax-sb.value())<60#auto_scroll if scrollbar was at max + #print("%i %i %r"%(sb.maximum(),sb.value(),auto_scroll)) ef=unicode(self.event_filter.text().toUtf8(), encoding="UTF-8").lower() lf=unicode(self.location_filter.text().toUtf8(), encoding="UTF-8").lower() filters=[{"type":"location", "str":lf},{"type":"event", "str":ef}] if self.parser.tmc_messages.matchFilter(tmc_msg,filters): self.logOutput.append(Qt.QString.fromUtf8(tmc_msg.log_string())) self.logOutput.append(Qt.QString.fromUtf8(tmc_msg.multi_str())) - if self.auto_scroll: - scroll_max=self.logOutput.verticalScrollBar().maximum() - self.logOutput.verticalScrollBar().setValue(scroll_max) + #print("new message") + if auto_scroll: + sb=self.logOutput.verticalScrollBar() + new_max=sb.maximum() + sb.setValue(new_max) + #print("scrolling %i %i %r"%(oldmax,new_max,sb.value())) #code.interact(local=locals()) def updateui(self): print("updating ui") @@ -264,12 +271,11 @@ class tmc_parser_Widget(QtGui.QWidget): filters=[{"type":"location", "str":lf},{"type":"event", "str":ef}] self.logOutput.append(Qt.QString.fromUtf8(self.parser.tmc_messages.getLogString(filters))) print("filter changed") - def __init__(self, parser,maxheight,auto_scroll): + def __init__(self, parser,maxheight): QtGui.QWidget.__init__(self) layout = Qt.QVBoxLayout() self.setLayout(layout) self.parser=parser - self.auto_scroll=auto_scroll self.tmc_message_label=QtGui.QLabel("TMC messages:") self.event_filter=QtGui.QLineEdit()#QPlainTextEdit ? self.location_filter=QtGui.QLineEdit(u"Baden-Württemberg")