def __init__(self): super(ExtendedSelectionMode, self).__init__() self.extended_sel_modifier = QtCore.Qt.ControlModifier self.matched_sel_modifier = QtCore.Qt.AltModifier self.continuation_characters = ('.',) self.word_sel_shortcut = QtGui.QKeySequence('Ctrl+W') self.action_select_word = QtWidgets.QAction(self.editor) self.action_select_word.setText('Select word') self.action_select_word.setShortcut(self.word_sel_shortcut) self.action_select_word.triggered.connect(self.perform_word_selection) self.action_select_word.setShortcutContext( QtCore.Qt.WidgetShortcut) self.extended_sel_shortcut = QtGui.QKeySequence('Ctrl+Shift+W') self.action_select_extended_word = QtWidgets.QAction(self.editor) self.action_select_extended_word.setText('Select extended word') self.action_select_extended_word.setShortcut( self.extended_sel_shortcut) self.action_select_extended_word.triggered.connect( self.perform_extended_selection) self.action_select_extended_word.setShortcutContext( QtCore.Qt.WidgetShortcut) self.matched_sel_shortcut = QtGui.QKeySequence('Ctrl+E') self.action_select_matched = QtWidgets.QAction(self.editor) self.action_select_matched.setText('Matched select') self.action_select_matched.setShortcut(self.matched_sel_shortcut) self.action_select_matched.triggered.connect( self.perform_matched_selection) self.action_select_matched.setShortcutContext( QtCore.Qt.WidgetShortcut) self.line_sel_shortcut = QtGui.QKeySequence('Ctrl+Shift+L') self.action_select_line = QtWidgets.QAction(self.editor) self.action_select_line.setText('Select line') self.action_select_line.setShortcut(self.line_sel_shortcut) self.action_select_line.triggered.connect(self.perform_line_selection) self.action_select_line.setShortcutContext( QtCore.Qt.WidgetShortcut)
def _init_actions(self, create_standard_actions): """ Init context menu action """ menu_advanced = QtWidgets.QMenu(_('Advanced')) self.add_menu(menu_advanced) self._sub_menus = { 'Advanced': menu_advanced } if create_standard_actions: # Undo action = QtWidgets.QAction(_('Undo'), self) action.setShortcut('Ctrl+Z') action.setIcon(icons.icon( 'edit-undo', ':/pyqode-icons/rc/edit-undo.png', 'fa.undo')) action.triggered.connect(self.undo) self.undoAvailable.connect(action.setVisible) action.setVisible(False) self.add_action(action, sub_menu=None) self.action_undo = action # Redo action = QtWidgets.QAction(_('Redo'), self) action.setShortcut('Ctrl+Y') action.setIcon(icons.icon( 'edit-redo', ':/pyqode-icons/rc/edit-redo.png', 'fa.repeat')) action.triggered.connect(self.redo) self.redoAvailable.connect(action.setVisible) action.setVisible(False) self.add_action(action, sub_menu=None) self.action_redo = action # Copy action = QtWidgets.QAction(_('Copy'), self) action.setShortcut(QtGui.QKeySequence.Copy) action.setIcon(icons.icon( 'edit-copy', ':/pyqode-icons/rc/edit-copy.png', 'fa.copy')) action.triggered.connect(self.copy) self.add_action(action, sub_menu=None) self.action_copy = action # cut action = QtWidgets.QAction(_('Cut'), self) action.setShortcut(QtGui.QKeySequence.Cut) action.setIcon(icons.icon( 'edit-cut', ':/pyqode-icons/rc/edit-cut.png', 'fa.cut')) action.triggered.connect(self.cut) self.add_action(action, sub_menu=None) self.action_cut = action # paste action = QtWidgets.QAction(_('Paste'), self) action.setShortcut(QtGui.QKeySequence.Paste) action.setIcon(icons.icon( 'edit-paste', ':/pyqode-icons/rc/edit-paste.png', 'fa.paste')) action.triggered.connect(self.paste) self.add_action(action, sub_menu=None) self.action_paste = action # duplicate line action = QtWidgets.QAction(_('Duplicate line'), self) action.setShortcut('Ctrl+D') action.triggered.connect(self.duplicate_line) self.add_action(action, sub_menu=None) self.action_duplicate_line = action # swap line up action = QtWidgets.QAction(_('Swap line up'), self) action.setShortcut(QtGui.QKeySequence( QtCore.Qt.AltModifier + QtCore.Qt.Key_Up)) action.triggered.connect(self.swapLineUp) self.add_action(action, sub_menu=None) self.action_swap_line_up = action # swap line down action = QtWidgets.QAction(_('Swap line down'), self) action.setShortcut(QtGui.QKeySequence( QtCore.Qt.AltModifier + QtCore.Qt.Key_Down)) action.triggered.connect(self.swapLineDown) self.add_action(action, sub_menu=None) self.action_swap_line_down = action # select all action = QtWidgets.QAction(_('Select all'), self) action.setShortcut(QtGui.QKeySequence.SelectAll) action.triggered.connect(self.selectAll) self.action_select_all = action self.add_action(self.action_select_all, sub_menu=None) self.add_separator(sub_menu=None) if create_standard_actions: # indent action = QtWidgets.QAction(_('Indent'), self) action.setShortcut('Tab') action.setIcon(icons.icon( 'format-indent-more', ':/pyqode-icons/rc/format-indent-more.png', 'fa.indent')) action.triggered.connect(self.indent) self.add_action(action) self.action_indent = action # unindent action = QtWidgets.QAction(_('Un-indent'), self) action.setShortcut('Shift+Tab') action.setIcon(icons.icon( 'format-indent-less', ':/pyqode-icons/rc/format-indent-less.png', 'fa.dedent')) action.triggered.connect(self.un_indent) self.add_action(action) self.action_un_indent = action self.add_separator() # goto action = QtWidgets.QAction(_('Go to line'), self) action.setShortcut('Ctrl+G') action.setIcon(icons.icon( 'go-jump', ':/pyqode-icons/rc/goto-line.png', 'fa.share')) action.triggered.connect(self.goto_line) self.add_action(action) self.action_goto_line = action