From 2ef3eea690179691c5b8291cee4c1c99a2ef8ef9 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 9 Feb 2022 11:58:06 -0500 Subject: [PATCH] report-xfstests: Preserve the current property page when switching runs Signed-off-by: Anna Schumaker --- reporter/__init__.py | 4 ++-- reporter/testproperties.py | 16 +++++++++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/reporter/__init__.py b/reporter/__init__.py index 748d633..1c63c86 100644 --- a/reporter/__init__.py +++ b/reporter/__init__.py @@ -39,9 +39,9 @@ class TestViewer(Gtk.Box): SizeGroup.add_widget(self.switcher) def set_test_result(self, file): - self.stack.clear() + current = self.stack.clear() self.viewer.clear() if file and file.get_is_test_result(): results = testresults.TestResults(file.path) - self.stack.show_properties(results) + self.stack.show_properties(results, current) self.viewer.show_results(results) diff --git a/reporter/testproperties.py b/reporter/testproperties.py index e7dbe9f..3bdef6b 100644 --- a/reporter/testproperties.py +++ b/reporter/testproperties.py @@ -122,20 +122,26 @@ class NotRunView(Gtk.ListView): class Stack(Gtk.Stack): def __init__(self): - Gtk.Stack.__init__(self, transition_type=Gtk.StackTransitionType.OVER_LEFT_RIGHT) + Gtk.Stack.__init__(self) common.SizeGroup.add_widget(self) def clear(self): + current = self.get_visible_child_name() pages = self.get_pages() children = [ pages.get_item(i).get_child() for i in range(pages.get_n_items()) ] for child in children: self.remove(child) + return current - def show_properties(self, results): + def show_properties(self, results, current): + self.set_transition_type(Gtk.StackTransitionType.NONE) for version in results.versions: - self.add_page(View(results.properties[version]), version, Gtk.PolicyType.NEVER) - self.add_page(NotRunView(results.skipped), "[not run]", Gtk.PolicyType.AUTOMATIC) + self.add_page(View(results.properties[version]), version, Gtk.PolicyType.NEVER, current) + self.add_page(NotRunView(results.skipped), "[not run]", Gtk.PolicyType.AUTOMATIC, current) + self.set_transition_type(Gtk.StackTransitionType.OVER_LEFT_RIGHT) - def add_page(self, child, name, policy): + def add_page(self, child, name, policy, current): window = Gtk.ScrolledWindow(vscrollbar_policy=policy, child=child) self.add_titled(window, name, name) + if current == name: + self.set_visible_child(window)