From ae9d8bcea3a32be96f0f6b2db0399a890a7da831 Mon Sep 17 00:00:00 2001 From: Maxime Perrotin Date: Thu, 15 Feb 2018 14:50:34 +0100 Subject: [PATCH] Make sure last item put on the MSC is visible Automatic scroll up when streaming --- asn1_value_editor/mscStreamingScene.py | 7 ++++++- asn1_value_editor/test_msc_streaming.py | 14 ++------------ 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/asn1_value_editor/mscStreamingScene.py b/asn1_value_editor/mscStreamingScene.py index 1cf47ce..3dbedc4 100644 --- a/asn1_value_editor/mscStreamingScene.py +++ b/asn1_value_editor/mscStreamingScene.py @@ -70,6 +70,7 @@ class MscStreamingScene(MscGraphBasicMSCScene): rst = super(MscStreamingScene, self).addMessage2(graphMsg) self.streamingControl(rst) + rst.ensureVisible() return rst @@ -79,6 +80,7 @@ class MscStreamingScene(MscGraphBasicMSCScene): y = y - self.globalDiff rst = super(MscStreamingScene, self).addCondition(instance, y, label) self.streamingControl(rst) + rst.ensureVisible() return rst @@ -88,6 +90,7 @@ class MscStreamingScene(MscGraphBasicMSCScene): pos = instance.mapFromScene(0, y) rst = super(MscStreamingScene, self).addTimer(instance, pos, label) self.streamingControl(rst) + rst.ensureVisible() return rst @@ -118,6 +121,7 @@ class MscStreamingScene(MscGraphBasicMSCScene): y = y - self.globalDiff rst = super(MscStreamingScene, self).addProcedure(instance, y, label) self.streamingControl(rst) + rst.ensureVisible() return rst @@ -136,8 +140,9 @@ class MscStreamingScene(MscGraphBasicMSCScene): def streamingControl(self, element): ''' Scroll up in streaming mode ''' - #self.visible_items.append(element) + _ = element if len(self.visible_items) > self.max_items: + #print "stream up" item = self.visible_items.popleft() firstY = item.pos().y() self.removeGenericItem(item) diff --git a/asn1_value_editor/test_msc_streaming.py b/asn1_value_editor/test_msc_streaming.py index 80361d8..471690a 100755 --- a/asn1_value_editor/test_msc_streaming.py +++ b/asn1_value_editor/test_msc_streaming.py @@ -64,20 +64,10 @@ def test_msc(): next_y, "Pong({})".format(counter)) add_item(item) - + print "next y = ", next_y msc_scene.mousePressEvent = click -# for _ in xrange (10): -# item = msc_scene.addMessage(gui_instance, -# taste_instance, -# next_y, -# "Ping({})".format(counter)) -# add_item(item) -# item = msc_scene.addMessage(taste_instance, -# gui_instance, -# next_y, -# "Pong({})".format(counter)) -# add_item(item) + app.exec_() -- GitLab