OSDN Git Service

perf scripts python: exported-sql-viewer.py: Add HBoxLayout and VBoxLayout
authorAdrian Hunter <adrian.hunter@intel.com>
Wed, 21 Aug 2019 08:32:12 +0000 (11:32 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 7 Oct 2019 15:22:17 +0000 (12:22 -0300)
Add layout classes HBoxLayout and VBoxLayout.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lore.kernel.org/lkml/20190821083216.1340-3-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/scripts/python/exported-sql-viewer.py

index 18ad046..9767a5f 100755 (executable)
@@ -980,20 +980,41 @@ class CallTreeModel(CallGraphModelBase):
                ids.insert(0, query.value(1))
                return ids
 
-# Vertical widget layout
+# Vertical layout
 
-class VBox():
+class HBoxLayout(QHBoxLayout):
 
-       def __init__(self, w1, w2, w3=None):
-               self.vbox = QWidget()
-               self.vbox.setLayout(QVBoxLayout())
+       def __init__(self, *children):
+               super(HBoxLayout, self).__init__()
+
+               self.layout().setContentsMargins(0, 0, 0, 0)
+               for child in children:
+                       if child.isWidgetType():
+                               self.layout().addWidget(child)
+                       else:
+                               self.layout().addLayout(child)
+
+# Horizontal layout
+
+class VBoxLayout(QVBoxLayout):
 
-               self.vbox.layout().setContentsMargins(0, 0, 0, 0)
+       def __init__(self, *children):
+               super(VBoxLayout, self).__init__()
 
-               self.vbox.layout().addWidget(w1)
-               self.vbox.layout().addWidget(w2)
-               if w3:
-                       self.vbox.layout().addWidget(w3)
+               self.layout().setContentsMargins(0, 0, 0, 0)
+               for child in children:
+                       if child.isWidgetType():
+                               self.layout().addWidget(child)
+                       else:
+                               self.layout().addLayout(child)
+
+# Vertical layout widget
+
+class VBox():
+
+       def __init__(self, *children):
+               self.vbox = QWidget()
+               self.vbox.setLayout(VBoxLayout(*children))
 
        def Widget(self):
                return self.vbox