diff options
| author | Adrian Hunter <adrian.hunter@intel.com> | 2018-10-01 02:28:41 -0400 |
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2018-10-23 13:23:31 -0400 |
| commit | 5f9dfef1bb7fadfb2d001244ef23359982fedd06 (patch) | |
| tree | d5f5e09077b0413879f49b999725914e0063fe85 /tools/perf/scripts/python | |
| parent | b2556c46a69b4c0e6bbf690ac4ca2913cbe90e1e (diff) | |
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>
Diffstat (limited to 'tools/perf/scripts/python')
| -rw-r--r-- | tools/perf/scripts/python/call-graph-from-sql.py | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/tools/perf/scripts/python/call-graph-from-sql.py b/tools/perf/scripts/python/call-graph-from-sql.py index 9d056deab2b1..0a4dc13d4818 100644 --- a/tools/perf/scripts/python/call-graph-from-sql.py +++ b/tools/perf/scripts/python/call-graph-from-sql.py | |||
| @@ -264,17 +264,19 @@ class TreeModel(QAbstractItemModel): | |||
| 264 | 264 | ||
| 265 | class MainWindow(QMainWindow): | 265 | class MainWindow(QMainWindow): |
| 266 | 266 | ||
| 267 | def __init__(self, db, dbname, parent=None): | 267 | def __init__(self, glb, parent=None): |
| 268 | super(MainWindow, self).__init__(parent) | 268 | super(MainWindow, self).__init__(parent) |
| 269 | 269 | ||
| 270 | self.glb = glb | ||
| 271 | |||
| 270 | self.setObjectName("MainWindow") | 272 | self.setObjectName("MainWindow") |
| 271 | self.setWindowTitle("Call Graph: " + dbname) | 273 | self.setWindowTitle("Call Graph: " + glb.dbname) |
| 272 | self.move(100, 100) | 274 | self.move(100, 100) |
| 273 | self.resize(800, 600) | 275 | self.resize(800, 600) |
| 274 | self.setWindowIcon(self.style().standardIcon(QStyle.SP_ComputerIcon)) | 276 | self.setWindowIcon(self.style().standardIcon(QStyle.SP_ComputerIcon)) |
| 275 | self.setMinimumSize(200, 100) | 277 | self.setMinimumSize(200, 100) |
| 276 | 278 | ||
| 277 | self.model = TreeModel(db) | 279 | self.model = TreeModel(glb.db) |
| 278 | 280 | ||
| 279 | self.view = QTreeView() | 281 | self.view = QTreeView() |
| 280 | self.view.setModel(self.model) | 282 | self.view.setModel(self.model) |
| @@ -284,6 +286,17 @@ class MainWindow(QMainWindow): | |||
| 284 | 286 | ||
| 285 | self.setCentralWidget(self.view) | 287 | self.setCentralWidget(self.view) |
| 286 | 288 | ||
| 289 | # Global data | ||
| 290 | |||
| 291 | class Glb(): | ||
| 292 | |||
| 293 | def __init__(self, dbref, db, dbname): | ||
| 294 | self.dbref = dbref | ||
| 295 | self.db = db | ||
| 296 | self.dbname = dbname | ||
| 297 | self.app = None | ||
| 298 | self.mainwindow = None | ||
| 299 | |||
| 287 | # Database reference | 300 | # Database reference |
| 288 | 301 | ||
| 289 | class DBRef(): | 302 | class DBRef(): |
| @@ -340,9 +353,12 @@ def Main(): | |||
| 340 | 353 | ||
| 341 | dbref = DBRef(is_sqlite3, dbname) | 354 | dbref = DBRef(is_sqlite3, dbname) |
| 342 | db, dbname = dbref.Open("main") | 355 | db, dbname = dbref.Open("main") |
| 356 | glb = Glb(dbref, db, dbname) | ||
| 343 | app = QApplication(sys.argv) | 357 | app = QApplication(sys.argv) |
| 344 | window = MainWindow(db, dbname) | 358 | glb.app = app |
| 345 | window.show() | 359 | mainwindow = MainWindow(glb) |
| 360 | glb.mainwindow = mainwindow | ||
| 361 | mainwindow.show() | ||
| 346 | err = app.exec_() | 362 | err = app.exec_() |
| 347 | db.close() | 363 | db.close() |
| 348 | sys.exit(err) | 364 | sys.exit(err) |
