perf scripts python: exported-sql-viewer.py: Factor out ReportVars
authorAdrian Hunter <adrian.hunter@intel.com>
Fri, 22 Feb 2019 07:27:23 +0000 (09:27 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 22 Feb 2019 19:52:07 +0000 (16:52 -0300)
Factor out ReportVars to provide a single container for information from
report dialogs.

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

index d3ffb3e9d1fce65351d7cc61f0fd791c939fb745..03428df8ddd55a44a6985041e13b42e151234513 100755 (executable)
@@ -1398,18 +1398,26 @@ class BranchModel(TreeModel):
        def HasMoreRecords(self):
                return self.more
 
+# Report Variables
+
+class ReportVars():
+
+       def __init__(self, where_clause = ""):
+               self.where_clause = where_clause
+
+       def UniqueId(self):
+               return str(self.where_clause)
+
 # Branch window
 
 class BranchWindow(QMdiSubWindow):
 
-       def __init__(self, glb, event_id, name, where_clause, parent=None):
+       def __init__(self, glb, event_id, name, report_vars, parent=None):
                super(BranchWindow, self).__init__(parent)
 
-               model_name = "Branch Events " + str(event_id)
-               if len(where_clause):
-                       model_name = where_clause + " " + model_name
+               model_name = "Branch Events " + str(event_id) +  " " + report_vars.UniqueId()
 
-               self.model = LookupCreateModel(model_name, lambda: BranchModel(glb, event_id, where_clause))
+               self.model = LookupCreateModel(model_name, lambda: BranchModel(glb, event_id, report_vars.where_clause))
 
                self.view = QTreeView()
                self.view.setUniformRowHeights(True)
@@ -1703,7 +1711,7 @@ class ReportDialogBase(QDialog):
                self.glb = glb
 
                self.name = ""
-               self.where_clause = ""
+               self.report_vars = ReportVars()
 
                self.setWindowTitle(title)
                self.setMinimumWidth(600)
@@ -1742,6 +1750,7 @@ class ReportDialogBase(QDialog):
                self.setLayout(self.vbox);
 
        def Ok(self):
+               vars = self.report_vars
                self.name = self.data_items[0].value
                if not self.name:
                        self.ShowMessage("Report name is required")
@@ -1751,14 +1760,14 @@ class ReportDialogBase(QDialog):
                                return
                for d in self.data_items[1:]:
                        if len(d.value):
-                               if len(self.where_clause):
-                                       self.where_clause += " AND "
-                               self.where_clause += d.value
-               if len(self.where_clause):
+                               if len(vars.where_clause):
+                                       vars.where_clause += " AND "
+                               vars.where_clause += d.value
+               if len(vars.where_clause):
                        if self.partial:
-                               self.where_clause = " AND ( " + self.where_clause + " ) "
+                               vars.where_clause = " AND ( " + vars.where_clause + " ) "
                        else:
-                               self.where_clause = " WHERE " + self.where_clause + " "
+                               vars.where_clause = " WHERE " + vars.where_clause + " "
                else:
                        self.ShowMessage("No selection")
                        return
@@ -2383,13 +2392,13 @@ class MainWindow(QMainWindow):
                CallGraphWindow(self.glb, self)
 
        def NewBranchView(self, event_id):
-               BranchWindow(self.glb, event_id, "", "", self)
+               BranchWindow(self.glb, event_id, "", ReportVars(), self)
 
        def NewSelectedBranchView(self, event_id):
                dialog = SelectedBranchDialog(self.glb, self)
                ret = dialog.exec_()
                if ret:
-                       BranchWindow(self.glb, event_id, dialog.name, dialog.where_clause, self)
+                       BranchWindow(self.glb, event_id, dialog.name, dialog.report_vars, self)
 
        def NewTableView(self, table_name):
                TableWindow(self.glb, table_name, self)