OSDN Git Service

perf scripts python: exported-sql-viewer.py: Improve TreeModel abstraction
authorAdrian Hunter <adrian.hunter@intel.com>
Thu, 28 Feb 2019 13:00:29 +0000 (15:00 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 1 Mar 2019 17:55:32 +0000 (14:55 -0300)
Instead of passing the tree root, get it from a method that can be
implemented in any derived class.

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

index df854f0..b2a2252 100755 (executable)
@@ -167,9 +167,10 @@ class Thread(QThread):
 
 class TreeModel(QAbstractItemModel):
 
-       def __init__(self, root, parent=None):
+       def __init__(self, glb, parent=None):
                super(TreeModel, self).__init__(parent)
-               self.root = root
+               self.glb = glb
+               self.root = self.GetRoot()
                self.last_row_read = 0
 
        def Item(self, parent):
@@ -562,8 +563,10 @@ class CallGraphRootItem(CallGraphLevelItemBase):
 class CallGraphModel(TreeModel):
 
        def __init__(self, glb, parent=None):
-               super(CallGraphModel, self).__init__(CallGraphRootItem(glb), parent)
-               self.glb = glb
+               super(CallGraphModel, self).__init__(glb, parent)
+
+       def GetRoot(self):
+               return CallGraphRootItem(self.glb)
 
        def columnCount(self, parent=None):
                return 7
@@ -1339,8 +1342,7 @@ class BranchModel(TreeModel):
        progress = Signal(object)
 
        def __init__(self, glb, event_id, where_clause, parent=None):
-               super(BranchModel, self).__init__(BranchRootItem(), parent)
-               self.glb = glb
+               super(BranchModel, self).__init__(glb, parent)
                self.event_id = event_id
                self.more = True
                self.populated = 0
@@ -1364,6 +1366,9 @@ class BranchModel(TreeModel):
                self.fetcher.done.connect(self.Update)
                self.fetcher.Fetch(glb_chunk_sz)
 
+       def GetRoot(self):
+               return BranchRootItem()
+
        def columnCount(self, parent=None):
                return 8