Пример #1
0
def create_toolbar_button(text,
                          parent=None,
                          icon_name=None,
                          icon_size=22,
                          enabled=True,
                          checkable=False,
                          checked=False,
                          shortcut=None,
                          onclick=None):
    # RJLRJL modified to work with PyQt5
    if icon_name:
        button = QtWidgets.QAction(get_icon(icon_name, size=icon_size),
                                   gettext(text), parent)
    else:
        button = QtWidgets.QAction(gettext(text), parent)
    if checkable:
        button.setCheckable(True)
        button.setChecked(checked)
    if not enabled:
        button.setEnabled(False)
    if shortcut:
        button.setShortcut(shortcut)
        show_shortcut_hint(button)
    if onclick:
        if checkable:
            button.toggled[bool].connect(onclick)
        else:
            button.triggered.connect(onclick)
    return button
Пример #2
0
 def create_refresh_action(self, allow_refresh=True):
     action = QtWidgets.QAction(get_icon("view-refresh"), gettext("&Refresh"), self)
     action.setShortcut("Ctrl+R")
     show_shortcut_hint(action)
     action.triggered[bool].connect(self.click_refresh)
     action.setEnabled(allow_refresh)
     return action
Пример #3
0
 def create_find_action(self):
     action = QtWidgets.QAction(get_icon("edit-find"), gettext("&Find"), self)
     action.setShortcut(QtGui.QKeySequence.Find)
     action.setToolTip(gettext("Find on active panel"))
     show_shortcut_hint(action)
     action.setCheckable(True)
     return action
Пример #4
0
    def create_main_toolbar(self, allow_refresh=True):
        toolbar = self.addToolBar(gettext("Diff"))
        toolbar.setMovable (False)
        toolbar.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon)

        self.show_find = self.create_find_action()
        toolbar.addAction(self.show_find)
        toolbar.addAction(self.create_toggle_view_mode())
        self.view_refresh = self.create_refresh_action(allow_refresh)
        if allow_refresh:
            toolbar.addAction(self.view_refresh)

        if has_ext_diff():
            show_ext_diff_menu = self.create_ext_diff_action()
            toolbar.addAction(show_ext_diff_menu)
            widget = toolbar.widgetForAction(show_ext_diff_menu)
            widget.setPopupMode(QtWidgets.QToolButton.InstantPopup)
            widget.setShortcut("Alt+E")
            show_shortcut_hint(widget)

        show_view_menu = self.create_view_menu()
        toolbar.addAction(show_view_menu)
        widget = toolbar.widgetForAction(show_view_menu)
        widget.setPopupMode(QtWidgets.QToolButton.InstantPopup)
        widget.setShortcut("Alt+V")
        show_shortcut_hint(widget)

        spacer = QtWidgets.QWidget()
        spacer.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        toolbar.addWidget(spacer)

        self.throbber = ToolBarThrobberWidget(self)
        toolbar.addWidget(self.throbber)
        return toolbar
Пример #5
0
 def create_toggle_view_mode(self):
     action = QtWidgets.QAction(get_icon("view-split-left-right"), gettext("Unidiff"), self)
     action.setToolTip(gettext("Toggle between Side by side and Unidiff view modes"))
     action.setShortcut("Ctrl+U")
     show_shortcut_hint(action)
     action.setCheckable(True)
     action.setChecked(False);
     action.toggled[bool].connect(self.click_toggle_view_mode)
     return action
Пример #6
0
    def __init__(self, window, text_edit, show_action):
        QtWidgets.QToolBar.__init__(self, gettext("Find"), window)
        self.text_edits = []
        if isinstance(text_edit, list) or isinstance(text_edit, tuple):
            self.set_text_edits(text_edit)
        else:
            self.set_text_edits([text_edit])
        self.show_action = show_action

        self.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon)
        self.setMovable(False)

        find_label = QtWidgets.QLabel(gettext("Find: "), self)
        self.addWidget(find_label)

        self.find_text = QtWidgets.QLineEdit(self)
        self.addWidget(self.find_text)
        find_label.setBuddy(self.find_text)

        self.found_palette = QtGui.QPalette()
        self.not_found_palette = QtGui.QPalette()
        self.not_found_palette.setColor(QtGui.QPalette.Active,
                                        QtGui.QPalette.Base, QtCore.Qt.red)
        self.not_found_palette.setColor(QtGui.QPalette.Active,
                                        QtGui.QPalette.Text, QtCore.Qt.white)

        prev = self.addAction(get_icon("go-previous"), gettext("Previous"))
        prev.setShortcut(QtGui.QKeySequence.FindPrevious)
        show_shortcut_hint(prev)

        next = self.addAction(get_icon("go-next"), gettext("Next"))
        next.setShortcut(QtGui.QKeySequence.FindNext)
        show_shortcut_hint(next)

        self.case_sensitive = QtWidgets.QCheckBox(gettext("Case sensitive"),
                                                  self)
        self.addWidget(self.case_sensitive)
        self.whole_words = QtWidgets.QCheckBox(gettext("Whole words"), self)
        self.addWidget(self.whole_words)

        close_find = QtWidgets.QAction(self)
        close_find.setIcon(self.style().standardIcon(
            QtWidgets.QStyle.SP_DialogCloseButton))
        self.addAction(close_find)
        close_find.setShortcut((QtCore.Qt.Key_Escape))
        close_find.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut)
        close_find.setStatusTip(gettext("Close find"))
        self.show_action.toggled[bool].connect(self.show_action_toggle)
        close_find.triggered[bool].connect(self.close_triggered)
        self.find_text.textChanged['QString'].connect(self.find_text_changed)
        next.triggered[bool].connect(self.find_next)
        prev.triggered[bool].connect(self.find_prev)
        self.case_sensitive.stateChanged[int].connect(self.find_text_changed)
        self.whole_words.stateChanged[int].connect(self.find_text_changed)
        self.find_text.returnPressed.connect(self.find_next)
Пример #7
0
 def add_toolbar_menu(self,
                      text,
                      menu,
                      icon_name=None,
                      icon_size=0,
                      enabled=True,
                      shortcut=None):
     button = self.add_toolbar_button(text,
                                      icon_name=icon_name,
                                      icon_size=icon_size or self.icon_size,
                                      enabled=enabled,
                                      menu=menu)
     widget = self.toolbar.widgetForAction(button)
     widget.setPopupMode(QtWidgets.QToolButton.InstantPopup)
     if shortcut:
         widget.setShortcut(shortcut)
         show_shortcut_hint(widget)
     return button