Keep global data in a single object that is easy to pass around as needed, without polluting the global namespace.
Showing the changes to tools/perf/scripts/python (1 of 1 file). Show all
Unified · Split
| @@ -264,17 +264,19 @@ class TreeModel(QAbstractItemModel): · 263 unmodified lines | ||
| 264 | 264 | |
| 265 | 265 | class MainWindow(QMainWindow): |
| 266 | 266 | |
| 267 | − def __init__(self, db, dbname, parent=None): | |
| 267 | + def __init__(self, glb, parent=None): | |
| 268 | 268 | super(MainWindow, self).__init__(parent) |
| 269 | 269 | |
| 270 | + self.glb = glb | |
| 271 | + | |
| 270 | 272 | self.setObjectName("MainWindow") |
| 271 | − self.setWindowTitle("Call Graph: " + dbname) | |
| 273 | + self.setWindowTitle("Call Graph: " + glb.dbname) | |
| 272 | 274 | self.move(100, 100) |
| 273 | 275 | self.resize(800, 600) |
| 274 | 276 | self.setWindowIcon(self.style().standardIcon(QStyle.SP_ComputerIcon)) |
| 275 | 277 | self.setMinimumSize(200, 100) |
| 276 | 278 | |
| 277 | − self.model = TreeModel(db) | |
| 279 | + self.model = TreeModel(glb.db) | |
| 278 | 280 | |
| 279 | 281 | self.view = QTreeView() |
| 280 | 282 | self.view.setModel(self.model) |
| @@ -284,6 +286,17 @@ class MainWindow(QMainWindow): · 3 unmodified lines | ||
| 284 | 286 | |
| 285 | 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 | 300 | # Database reference |
| 288 | 301 | |
| 289 | 302 | class DBRef(): |
| @@ -340,9 +353,12 @@ def Main(): · 50 unmodified lines | ||
| 340 | 353 | |
| 341 | 354 | dbref = DBRef(is_sqlite3, dbname) |
| 342 | 355 | db, dbname = dbref.Open("main") |
| 356 | + glb = Glb(dbref, db, dbname) | |
| 343 | 357 | app = QApplication(sys.argv) |
| 344 | − window = MainWindow(db, dbname) | |
| 345 | − window.show() | |
| 358 | + glb.app = app | |
| 359 | + mainwindow = MainWindow(glb) | |
| 360 | + glb.mainwindow = mainwindow | |
| 361 | + mainwindow.show() | |
| 346 | 362 | err = app.exec_() |
| 347 | 363 | db.close() |
| 348 | 364 | sys.exit(err) |