def __init__(self, parent=None, show_linenumes=False): super(JsCodeEditor, self).__init__(parent) self.setFont(get_os_monospace_font()) self._show_linenums = show_linenumes if self._show_linenums: self.ui_line_numbers = JsCodeEditLineNums(self) self.blockCountChanged.connect(self.update_linenum_width) self.updateRequest.connect(self.update_line_numbers) self.update_linenum_width(0) self.setAutoFillBackground(True) # default distance is 80 self.setTabStopDistance(self.fontMetrics().width('9999')) self.highlighter = JsHighlighter(self.document()) # code completion self.completer = DwarfCompleter() self.completer.setWidget(self) self.completer.setCompletionMode(QCompleter.PopupCompletion) self.completer.setCaseSensitivity(Qt.CaseInsensitive) self.completer.insertText.connect(self.insertCompletion)
def __init__(self, parent=None, show_linenumes=False): super(JsCodeEditor, self).__init__(parent) self.setFont(get_os_monospace_font()) self._show_linenums = show_linenumes keywords = [] keywords_path = '.keywords.json' if os.path.exists(keywords_path): with open(keywords_path, 'r') as f: try: keywords = json.load(f) except: pass if self._show_linenums: self.ui_line_numbers = JsCodeEditLineNums(self) self.blockCountChanged.connect(self.update_linenum_width) self.updateRequest.connect(self.update_line_numbers) self.update_linenum_width(0) self.setAutoFillBackground(True) # default distance is 80 self.setTabStopDistance(self.fontMetrics().width('9999')) self.highlighter = JsHighlighter(keywords, parent=self.document()) # code completion self.completer = DwarfCompleter(keywords) self.completer.setWidget(self) self.completer.setCompletionMode(QCompleter.PopupCompletion) self.completer.setCaseSensitivity(Qt.CaseInsensitive) self.completer.insertText.connect(self.insertCompletion)
def __init__(self, parent=None): super(DisassemblyView, self).__init__(parent=parent) self._app_window = parent self.setAutoFillBackground(True) # setting font self.font = utils.get_os_monospace_font() self.font.setFixedPitch(True) self.setFont(self.font) self._char_width = self.fontMetrics().width("2") self._char_height = self.fontMetrics().height() self._base_line = self.fontMetrics().ascent() self._history = [] self._lines = [] self._range = None self._max_instructions = 128 self._longest_bytes = 0 self._longest_mnemonic = 0 self.capstone_arch = 0 self.capstone_mode = 0 self.keystone_arch = 0 self.keystone_mode = 0 self.on_arch_changed() self._ctrl_colors = { 'background': QColor('#181818'), 'foreground': QColor('#666'), 'jump_arrows': QColor('#444'), 'jump_arrows_hover': QColor('#ef5350'), 'divider': QColor('#666'), 'line': QColor('#111'), 'selection_fg': QColor(Qt.white), 'selection_bg': QColor('#ef5350') } self._jump_color = QColor('#39a') self._header_height = 0 self._ver_spacing = 2 self._dash_pen = QPen(self._ctrl_colors['jump_arrows'], 2.0, Qt.DashLine) self._solid_pen = QPen(self._ctrl_colors['jump_arrows'], 2.0, Qt.SolidLine) self._line_pen = QPen(self._ctrl_colors['divider'], 0, Qt.SolidLine) self._breakpoint_linewidth = 5 self._jumps_width = 100 self.setMouseTracking(True) self.current_jump = -1 self._current_line = -1 self._display_jumps = True self._follow_jumps = True self.pos = 0
def __init__(self, parent=None): super(JavaTraceView, self).__init__(parent=parent) self.data = [] self.search_result = [] # setting font self.font = utils.get_os_monospace_font() self.font.setFixedPitch(True) self.setFont(self.font) self._char_width = self.fontMetrics().width("2") self._char_height = self.fontMetrics().height() self._base_line = self.fontMetrics().ascent() self._has_scrolled = False self._data_height = 0 self.verticalScrollBar().rangeChanged.connect(self._scroll_bottom) self.verticalScrollBar().valueChanged.connect(self._check_scroll)
def __init__(self, parent=None): super(DisassemblyView, self).__init__(parent=parent) _prefs = Prefs() self._uppercase_hex = (_prefs.get('dwarf_ui_hexstyle', 'upper').lower() == 'upper') self._app_window = parent self.debug_panel = None self.setAutoFillBackground(True) self._running_disasm = False # setting font self.font = utils.get_os_monospace_font() self.font.setFixedPitch(True) self.setFont(self.font) self._char_width = QFontMetricsF(self.font).width( '#') # self.fontMetrics().width("#") if (self._char_width % 1) < .5: self.font.setLetterSpacing(QFont.AbsoluteSpacing, -(self._char_width % 1.0)) self._char_width -= self._char_width % 1.0 else: self.font.setLetterSpacing(QFont.AbsoluteSpacing, 1.0 - (self._char_width % 1.0)) self._char_width += 1.0 - (self._char_width % 1.0) self._char_height = self.fontMetrics().height() self._base_line = self.fontMetrics().ascent() self._history = [] self._lines = [] self._longest_bytes = 0 self._longest_mnemonic = 0 self._ctrl_colors = { 'background': QColor('#181818'), 'foreground': QColor('#666'), 'jump_arrows': QColor('#444'), 'jump_arrows_hover': QColor('#ef5350'), 'divider': QColor('#666'), 'line': QColor('#111'), 'selection_fg': QColor(Qt.white), 'selection_bg': QColor('#ef5350') } self._jump_color = QColor('#39a') self._header_height = 0 self._ver_spacing = 2 self._dash_pen = QPen(self._ctrl_colors['jump_arrows'], 2.0, Qt.DashLine) self._solid_pen = QPen(self._ctrl_colors['jump_arrows'], 2.0, Qt.SolidLine) self._line_pen = QPen(self._ctrl_colors['divider'], 0, Qt.SolidLine) self._breakpoint_linewidth = 5 self._jumps_width = 100 self.setMouseTracking(True) self.current_jump = -1 self._current_line = -1 self._display_jumps = True self._follow_jumps = True self.pos = 0
def __init__(self, parent=None): super(DisassemblyView, self).__init__(parent=parent) _prefs = Prefs() self._uppercase_hex = (_prefs.get('dwarf_ui_hexstyle', 'upper').lower() == 'upper') self._app_window = parent self.setAutoFillBackground(True) self._app_window.dwarf.onApplyContext.connect(self.on_arch_changed) # setting font self.font = utils.get_os_monospace_font() self.font.setFixedPitch(True) self.setFont(self.font) self._char_width = QFontMetricsF(self.font).width( '#') # self.fontMetrics().width("#") if (self._char_width % 1) < .5: self.font.setLetterSpacing(QFont.AbsoluteSpacing, -(self._char_width % 1.0)) self._char_width -= self._char_width % 1.0 else: self.font.setLetterSpacing(QFont.AbsoluteSpacing, 1.0 - (self._char_width % 1.0)) self._char_width += 1.0 - (self._char_width % 1.0) self._char_height = self.fontMetrics().height() self._base_line = self.fontMetrics().ascent() self._history = [] self._lines = [] self._range = None self._longest_bytes = 0 self._longest_mnemonic = 0 self._running_disasm = False self.capstone_arch = 0 self.capstone_mode = 0 self.keystone_arch = 0 self.keystone_mode = 0 self.on_arch_changed() self._ctrl_colors = { 'background': QColor('#181818'), 'foreground': QColor('#666'), 'jump_arrows': QColor('#444'), 'jump_arrows_hover': QColor('#ef5350'), 'divider': QColor('#666'), 'line': QColor('#111'), 'selection_fg': QColor(Qt.white), 'selection_bg': QColor('#ef5350') } self._jump_color = QColor('#39a') self._header_height = 0 self._ver_spacing = 2 self._dash_pen = QPen(self._ctrl_colors['jump_arrows'], 2.0, Qt.DashLine) self._solid_pen = QPen(self._ctrl_colors['jump_arrows'], 2.0, Qt.SolidLine) self._line_pen = QPen(self._ctrl_colors['divider'], 0, Qt.SolidLine) self._breakpoint_linewidth = 5 self._jumps_width = 100 self.setMouseTracking(True) self.current_jump = -1 self._current_line = -1 self._display_jumps = True self._follow_jumps = True self.pos = 0 # hacky way to let plugins hook this and inject menu actions self.menu_extra_menu_hooks = [] """ this is one more way for allowing plugin hooks and perform additional operation on the range object """ self.run_default_disassembler = True