1 '''
2 The heart of the new VDB QT gui!
3 '''
4 from PyQt4 import QtCore, QtGui
5
6 import vdb
7 import vtrace
8
9
10 import vqt.main as vq_main
11 import vqt.qpython as vq_python
12 import vqt.application as vq_app
13
14 import vtrace.qt as vtrace_qt
15
16 import envi.qt as envi_qt
17 import envi.qt.memory as e_mem_qt
50
51 -class VdbWindow(vq_app.VQMainCmdWindow, vtrace.Notifier):
52
53 @QtCore.pyqtSlot(int)
55 print 'THREAD SELECTED!', tid
56
58 vtrace.Notifier.__init__(self)
59
60 self._db = db
61 self._db_t = vdb.VdbTrace(db)
62 self._db.registerNotifier(vtrace.NOTIFY_ALL, self)
63
64 vq_app.VQMainCmdWindow.__init__(self, 'Vdb', db)
65
66 tbar = vtrace_qt.VQTraceToolBar(self._db_t, parent=self)
67 self.addToolBar(QtCore.Qt.TopToolBarArea, tbar)
68
69 self.vqAddMenuField('&File.&Quit', self.menuFileQuit)
70 self.vqAddMenuField('&View.&Memory', self.menuViewMemory)
71 self.vqAddMenuField('&View.&Memory Maps', self.menuViewMemMaps)
72 self.vqAddMenuField('&View.&Threads', self.menuViewThreads)
73 self.vqAddMenuField('&View.&Registers', self.menuViewRegisters)
74 self.vqAddMenuField('&View.&File Descriptors', self.menuViewFileDesc)
75 self.vqAddMenuField('&View.&Layouts.&Load', self.menuViewLayoutsLoad)
76 self.vqAddMenuField('&View.&Layouts.&Save', self.menuViewLayoutsSave)
77 self.vqAddMenuField('&View.&Layouts.&Clear', self.menuViewLayoutsClear)
78 self.vqAddMenuField('&Tools.&Python', self.menuToolsPython)
79
87
90
93
96
99
102
105
107 fname = QtGui.QFileDialog.getOpenFileName(self, 'Load Layout')
108 if fname == None:
109 return
110
111 self.vqClearDockWidgets()
112
113 settings = QtCore.QSettings(fname, QtCore.QSettings.IniFormat)
114 self.vqRestoreGuiSettings(settings)
115
117 fname = QtGui.QFileDialog.getSaveFileName(self, 'Save Layout')
118 if fname == None:
119 return
120
121 settings = QtCore.QSettings(fname, QtCore.QSettings.IniFormat)
122 self.vqSaveGuiSettings(settings)
123
126
129
130 - def notify(self, event, trace):
132
141