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)
Esempio n. 2
0
 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