Browse Source

clunky, but functional auto-auto-scroll

master
Clemens Richter 9 years ago
parent
commit
63caaa2ecd
  1. 16
      grc/multirds_tmc_parser.xml
  2. 2
      python/rds_parser_table_qt.py
  3. 20
      python/tmc_parser.py

16
grc/multirds_tmc_parser.xml

@ -9,7 +9,7 @@
#if not $label() #if not $label()
#set $label = '"%s"'%$id #set $label = '"%s"'%$id
#end if #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() $(win) = $(parser).getqtwidget()
$(gui_hint()($win)) $(gui_hint()($win))
</make> </make>
@ -66,20 +66,6 @@ $(gui_hint()($win))
<key>False</key> <key>False</key>
</option> </option>
</param> </param>
<param>
<name>auto_scroll</name>
<key>auto_scroll</key>
<value>True</value>
<type>bool</type>
<option>
<name>Enable</name>
<key>True</key>
</option>
<option>
<name>Disable</name>
<key>False</key>
</option>
</param>
<param> <param>
<name>write Database</name> <name>write Database</name>
<key>writeDB</key> <key>writeDB</key>

2
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('ctrl'))
self.message_port_register_out(pmt.intern('tmc_raw')) self.message_port_register_out(pmt.intern('tmc_raw'))
self.TMC_without_CT=False self.TMC_without_CT=True
self.log=log self.log=log
self.debug=debug self.debug=debug
self.writeDB=writeDB self.writeDB=writeDB

20
python/tmc_parser.py

@ -33,7 +33,7 @@ class tmc_parser(gr.sync_block):
""" """
docstring for block tmc_parser 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, gr.sync_block.__init__(self,
name="tmc_parser", name="tmc_parser",
in_sig=None, in_sig=None,
@ -42,7 +42,7 @@ class tmc_parser(gr.sync_block):
self.debug=debug self.debug=debug
self.workdir=workdir self.workdir=workdir
self.writeDB=writeDB 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.message_port_register_in(pmt.intern('in'))
self.set_msg_handler(pmt.intern('in'), self.handle_msg) self.set_msg_handler(pmt.intern('in'), self.handle_msg)
self.tmc_meta={} self.tmc_meta={}
@ -245,15 +245,22 @@ class tmc_parser(gr.sync_block):
return return_string return return_string
class tmc_parser_Widget(QtGui.QWidget): class tmc_parser_Widget(QtGui.QWidget):
def print_tmc_msg(self,tmc_msg): 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() ef=unicode(self.event_filter.text().toUtf8(), encoding="UTF-8").lower()
lf=unicode(self.location_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}] filters=[{"type":"location", "str":lf},{"type":"event", "str":ef}]
if self.parser.tmc_messages.matchFilter(tmc_msg,filters): 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.log_string()))
self.logOutput.append(Qt.QString.fromUtf8(tmc_msg.multi_str())) self.logOutput.append(Qt.QString.fromUtf8(tmc_msg.multi_str()))
if self.auto_scroll: #print("new message")
scroll_max=self.logOutput.verticalScrollBar().maximum() if auto_scroll:
self.logOutput.verticalScrollBar().setValue(scroll_max) 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()) #code.interact(local=locals())
def updateui(self): def updateui(self):
print("updating ui") print("updating ui")
@ -264,12 +271,11 @@ class tmc_parser_Widget(QtGui.QWidget):
filters=[{"type":"location", "str":lf},{"type":"event", "str":ef}] filters=[{"type":"location", "str":lf},{"type":"event", "str":ef}]
self.logOutput.append(Qt.QString.fromUtf8(self.parser.tmc_messages.getLogString(filters))) self.logOutput.append(Qt.QString.fromUtf8(self.parser.tmc_messages.getLogString(filters)))
print("filter changed") print("filter changed")
def __init__(self, parser,maxheight,auto_scroll): def __init__(self, parser,maxheight):
QtGui.QWidget.__init__(self) QtGui.QWidget.__init__(self)
layout = Qt.QVBoxLayout() layout = Qt.QVBoxLayout()
self.setLayout(layout) self.setLayout(layout)
self.parser=parser self.parser=parser
self.auto_scroll=auto_scroll
self.tmc_message_label=QtGui.QLabel("TMC messages:") self.tmc_message_label=QtGui.QLabel("TMC messages:")
self.event_filter=QtGui.QLineEdit()#QPlainTextEdit ? self.event_filter=QtGui.QLineEdit()#QPlainTextEdit ?
self.location_filter=QtGui.QLineEdit(u"Baden-Württemberg") self.location_filter=QtGui.QLineEdit(u"Baden-Württemberg")

Loading…
Cancel
Save