perf scripts python: call-graph-from-sql.py: Add a class for global data

Keep global data in a single object that is easy to pass around as
needed, without polluting the global namespace.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lkml.kernel.org/r/20181001062853.28285-8-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Adrian Hunter 2018-10-01 09:28:41 +03:00 committed by Arnaldo Carvalho de Melo
parent b2556c46a6
commit 5f9dfef1bb
1 changed files with 21 additions and 5 deletions

View File

@ -264,17 +264,19 @@ class TreeModel(QAbstractItemModel):
class MainWindow(QMainWindow):
def __init__(self, db, dbname, parent=None):
def __init__(self, glb, parent=None):
super(MainWindow, self).__init__(parent)
self.glb = glb
self.setObjectName("MainWindow")
self.setWindowTitle("Call Graph: " + dbname)
self.setWindowTitle("Call Graph: " + glb.dbname)
self.move(100, 100)
self.resize(800, 600)
self.setWindowIcon(self.style().standardIcon(QStyle.SP_ComputerIcon))
self.setMinimumSize(200, 100)
self.model = TreeModel(db)
self.model = TreeModel(glb.db)
self.view = QTreeView()
self.view.setModel(self.model)
@ -284,6 +286,17 @@ class MainWindow(QMainWindow):
self.setCentralWidget(self.view)
# Global data
class Glb():
def __init__(self, dbref, db, dbname):
self.dbref = dbref
self.db = db
self.dbname = dbname
self.app = None
self.mainwindow = None
# Database reference
class DBRef():
@ -340,9 +353,12 @@ def Main():
dbref = DBRef(is_sqlite3, dbname)
db, dbname = dbref.Open("main")
glb = Glb(dbref, db, dbname)
app = QApplication(sys.argv)
window = MainWindow(db, dbname)
window.show()
glb.app = app
mainwindow = MainWindow(glb)
glb.mainwindow = mainwindow
mainwindow.show()
err = app.exec_()
db.close()
sys.exit(err)