コード例 #1
0
	def __init__(self, parent=None, flags=QtCore.Qt.Widget):
		super(MainWindow, self).__init__(parent, flags)

		splitter_widget = QtGui.QSplitter(QtCore.Qt.Horizontal)

		self.code_object_view = QtGui.QTreeView(splitter_widget)
		self.code_object_view.setHeaderHidden(True)
		self.code_object_view.setModel(QtGui.QStandardItemModel())
		self.code_object_view.selectionModel().currentChanged.connect(self.on_code_object_view_current_changed)

		tab_widget = QtGui.QTabWidget(splitter_widget)

		self.summary_view = QtWebKit.QWebView()
		self.summary_view.page().setLinkDelegationPolicy(QtWebKit.QWebPage.DelegateAllLinks)
		self.summary_view.linkClicked.connect(self.on_summary_view_link_clicked)

		self.disassembly_view = QtWebKit.QWebView()
		self.disassembly_view.page().setLinkDelegationPolicy(QtWebKit.QWebPage.DelegateAllLinks)
		self.disassembly_view.linkClicked.connect(self.on_disassembly_view_link_clicked)

		self.hex_edit = hexedit.HexEdit()

		tab_widget.addTab(self.summary_view, 'Summary')
		tab_widget.addTab(self.disassembly_view, 'Disassembly')
		tab_widget.addTab(self.hex_edit, 'Hex Dump')

		menu = self.menuBar().addMenu('&File')
		menu.addAction('&Open...').triggered.connect(self.on_menu_bar_open_triggered)
		menu.addAction('&Close').triggered.connect(self.on_menu_bar_close_triggered)
		menu.addAction('&Reload').triggered.connect(self.on_menu_bar_reload_triggered)
		menu.addSeparator()
		menu.addAction('E&xit').triggered.connect(Qt.qApp.quit)
		menu = self.menuBar().addMenu('&Help')
		menu.addAction('About...').triggered.connect(self.on_menu_bar_about_triggered)
		menu.addSeparator()
		menu.addAction('About Qt...').triggered.connect(Qt.qApp.aboutQt)

		splitter_widget.setStretchFactor(0, 0)
		splitter_widget.setStretchFactor(1, 1)
		splitter_widget.setSizes([200, splitter_widget.width()-200])

		self.setCentralWidget(splitter_widget)
		self.setWindowTitle('Chrysanthemum')
		self.setWindowIcon(QtGui.QIcon(':/images/icon.png'))
		self.setAcceptDrops(True)
		self.resize(1024, 768)
		
		self.setGeometry(QtGui.QStyle.alignedRect(QtCore.Qt.LeftToRight, QtCore.Qt.AlignCenter, self.size(), QtGui.QDesktopWidget().availableGeometry()))

		self.close()
コード例 #2
0
ファイル: MDIChilldImagesAUI.py プロジェクト: rambasnet/MAKE2
 def OnTextPopupMenuItemSaveSelection(self, event):
     if self.textView.selection_start is not None and self.textView.selection_end is not None:
         selection_start, selection_end = self.textView.getSelection()
         if selection_start > selection_end: #swap if start > end
             selection_start, selection_end = self.textView.selection_end, self.textView.selection_start
         dlg = wx.FileDialog(self, "Save Selection As...", os.getcwd(), "", PlatformMethods.GetWildcard(), wx.SAVE)
         if dlg.ShowModal() == wx.ID_OK:
             path = dlg.GetPath()
             #make a new instance to copy the stuff to
             newmodel = hexedit.HexEdit()
             newmodel.new(path)
             #copy blocks
             t_offset = 0
             for offset, block in self.textViewer.bin.blockReader(selection_start, 1024*1024, endoffset=selection_end):
                 newmodel.bin.write(t_offset, block)
                 newmodel.bin.commit() #write to disk often to keep history small
                 t_offset += len(block)
             newmodel.close()
         dlg.Destroy()
     event.Skip()
コード例 #3
0
ファイル: MDIChilldImagesAUI.py プロジェクト: rambasnet/MAKE2
 def CreateTextViewWindow(self):
     self.panTextView = wx.Panel(id=wx.NewId(), parent=self, pos=wx.Point(0, 0), size=wx.Size(672, 600))
     self.panTextView.SetBackgroundColour(wx.Colour(225, 236, 255))
     self.panTextView.SetAutoLayout(True)
     self.lblTextViewStatus = wx.StaticText(id=wx.NewId(),
           label='Staus', parent=self.panTextView, pos=wx.Point(8, 572),
           size=wx.Size(656, 20), style=wx.ST_NO_AUTORESIZE | wx.SUNKEN_BORDER)
     self.lblTextViewStatus.SetConstraints(LayoutAnchors(self.lblTextViewStatus, True,
           False, True, True))
           
     self.textView = TextViewWindow(self.panTextView, self.lblTextViewStatus, id=wx.NewId(), pos=wx.Point(8, 8), size=wx.Size(656, 555))
     self.textView.SetConstraints(LayoutAnchors(self.textView,
           True, True, True, True))
     self.textView.Bind(wx.EVT_CONTEXT_MENU, self.OnTextViewRightUp)
     self.textView.Bind(wx.EVT_LEFT_UP, self.OnTextViewLeftUp)
 
           
     self.textViewer = hexedit.HexEdit()
     self.textView.setModel(self.textViewer)
     self.textViewer.attach(self)
     return self.panTextView