def setup_menus(self):
        menubar = self.menuBar()
        style = self.style()
        file_menu = menubar.addMenu('File')
        open_action = file_menu.addAction(
            style.standardIcon(QStyle.SP_DialogOpenButton), 'Open PlXx.dat...')
        open_action.setShortcut(QKeySequence('Ctrl+O'))
        open_action.triggered.connect(self.open_file_dialog)
        #        open_action.setStatusTip('Open a dat file')

        save_action = file_menu.addAction(
            style.standardIcon(QStyle.SP_DialogSaveButton), 'Save')
        save_action.setShortcut(QKeySequence('Ctrl+S'))
        save_action.triggered.connect(self.save)

        saveas_action = file_menu.addAction(
            style.standardIcon(QStyle.SP_DialogSaveButton), 'Save As...')
        saveas_action.setShortcut(QKeySequence('Ctrl+Shift+S'))
        saveas_action.triggered.connect(self.saveas)
        file_menu.addSeparator()

        reload_action = file_menu.addAction(
            style.standardIcon(QStyle.SP_BrowserReload), 'Reload From Disk')
        reload_action.triggered.connect(self.reload)

        close_action = file_menu.addAction(
            style.standardIcon(QStyle.SP_DialogCloseButton), 'Close')
        close_action.triggered.connect(self.close_current)

        help_menu = menubar.addMenu('Help')
        about_action = help_menu.addAction(
            style.standardIcon(QStyle.SP_MessageBoxInformation), 'About...')
        about_action.triggered.connect(self.about)
Пример #2
0
    def __init__(self, parent, cover_flow):
        QDialog.__init__(self, parent)
        self._layout = QStackedLayout()
        self.setLayout(self._layout)
        self.setWindowTitle(_('Browse by covers'))
        self.layout().addWidget(cover_flow)

        geom = gprefs.get('cover_browser_dialog_geometry', bytearray(''))
        geom = QByteArray(geom)
        if not self.restoreGeometry(geom):
            h, w = available_height()-60, int(available_width()/1.5)
            self.resize(w, h)
        self.action_fs_toggle = a = QAction(self)
        self.addAction(a)
        a.setShortcuts([QKeySequence('F11', QKeySequence.PortableText),
            QKeySequence('Ctrl+Shift+F', QKeySequence.PortableText)])
        a.triggered.connect(self.toggle_fullscreen)
        self.action_esc_fs = a = QAction(self)
        a.triggered.connect(self.show_normal)
        self.addAction(a)
        a.setShortcuts([QKeySequence('Esc', QKeySequence.PortableText)])

        self.pre_fs_geom = None
        cover_flow.setFocus(Qt.OtherFocusReason)
        self.view_action = a = QAction(self)
        iactions = parent.iactions
        self.addAction(a)
        a.setShortcuts(list(iactions['View'].menuless_qaction.shortcuts())+
                [QKeySequence(Qt.Key_Space)])
        a.triggered.connect(iactions['View'].menuless_qaction.trigger)
        self.sd_action = a = QAction(self)
        self.addAction(a)
        a.setShortcuts(list(iactions['Send To Device'].
            menuless_qaction.shortcuts()))
        a.triggered.connect(iactions['Send To Device'].menuless_qaction.trigger)
Пример #3
0
    def createMenu(self, menu):
        '''
        @param: menu QMenu
        '''
        self._window.removeActions(menu.actions())
        menu.clear()

        group = QActionGroup(menu)

        act = menu.addAction(_('Bookmarks'), self._slotShowSideBar)
        act.setCheckable(True)
        act.setShortcut(QKeySequence('Ctrl+Shift+B'))
        act.setData('Bookmarks')
        act.setChecked(self._activeBar == 'Bookmarks')
        group.addAction(act)

        act = menu.addAction(_('History'), self._slotShowSideBar)
        act.setCheckable(True)
        act.setShortcut(QKeySequence('Ctrl+H'))
        act.setData('History')
        act.setChecked(self._activeBar == 'History')
        group.addAction(act)

        for key, sidebar in self._s_sidebars.items():
            if not sidebar: continue
            # QAction
            act = sidebar.createMenuAction()
            act.setData(key)
            act.setChecked(self._activeBar == key)
            act.triggered.connect(self._slotShowSideBar)
            menu.addAction(act)
            group.addAction(act)

        self._window.addActions(menu.actions())
Пример #4
0
    def __init__(self, img_data, parent=None):
        QDialog.__init__(self, parent)
        self.l = l = QGridLayout(self)
        self.setLayout(l)
        self.setWindowTitle(_('Trim Image'))

        self.bar = b = QToolBar(self)
        l.addWidget(b)
        b.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
        b.setIconSize(QSize(32, 32))

        self.msg = la = QLabel('\xa0' + _(
            'Select a region by dragging with your mouse on the image, and then click trim'
        ))
        self.sz = QLabel('')

        self.canvas = c = Canvas(self)
        c.image_changed.connect(self.image_changed)
        c.load_image(img_data)
        self.undo_action = u = c.undo_action
        u.setShortcut(QKeySequence(QKeySequence.Undo))
        self.redo_action = r = c.redo_action
        r.setShortcut(QKeySequence(QKeySequence.Redo))
        self.trim_action = ac = self.bar.addAction(QIcon(I('trim.png')),
                                                   _('&Trim'), c.trim_image)
        ac.setShortcut(QKeySequence('Ctrl+T'))
        ac.setToolTip(
            '%s [%s]' %
            (_('Trim image by removing borders outside the selected region'),
             ac.shortcut().toString(QKeySequence.NativeText)))
        ac.setEnabled(False)
        c.selection_state_changed.connect(self.selection_changed)
        l.addWidget(c)
        self.bar.addAction(self.trim_action)
        self.bar.addSeparator()
        self.bar.addAction(u)
        self.bar.addAction(r)
        self.bar.addSeparator()
        self.bar.addWidget(la)
        self.bar.addSeparator()
        self.bar.addWidget(self.sz)

        self.bb = bb = QDialogButtonBox(QDialogButtonBox.Ok
                                        | QDialogButtonBox.Cancel)
        bb.accepted.connect(self.accept)
        bb.rejected.connect(self.reject)
        l.addWidget(bb)

        self.tok = b = bb.addButton(_('Trim and OK'),
                                    QDialogButtonBox.ActionRole)
        b.clicked.connect(self.trim_and_accept)
        b.setIcon(self.trim_action.icon())

        self.resize(QSize(900, 600))
        geom = gprefs.get('image-trim-dialog-geometry', None)
        if geom is not None:
            self.restoreGeometry(geom)
        self.setWindowIcon(self.trim_action.icon())
        self.image_data = None
Пример #5
0
class Runner():

    _window = None
    _application = None

    def __init__(self):

        self._application = QApplication(sys.argv)
        self._window = None

        # Main Window Initialized..
        try:
            self._window = yali.gui.YaliWindow.Widget()
        except yali.Error, msg:
            ctx.logger.debug(msg)
            sys.exit(1)

        self._translator = QTranslator()
        self._translator.load(
            "qt_" + QLocale.system().name(),
            QLibraryInfo.location(QLibraryInfo.TranslationsPath))

        ctx.mainScreen = self._window

        screens = self._get_screens(ctx.flags.install_type)
        self._set_steps(screens)

        # These shorcuts for developers :)
        prevScreenShortCut = QShortcut(QKeySequence(Qt.SHIFT + Qt.Key_F1),
                                       self._window)
        nextScreenShortCut = QShortcut(QKeySequence(Qt.SHIFT + Qt.Key_F2),
                                       self._window)
        prevScreenShortCut.activated.connect(self._window.slotBack)
        nextScreenShortCut.activated.connect(self._window.slotNext)

        # VBox utils
        ctx.logger.debug("Starting VirtualBox tools..")
        #FIXME:sh /etc/X11/Xsession.d/98-vboxclient.sh
        yali.util.run_batch("VBoxClient", ["--autoresize"])
        yali.util.run_batch("VBoxClient", ["--clipboard"])

        # Cp Reboot, ShutDown
        yali.util.run_batch("cp", ["/sbin/reboot", "/tmp/reboot"])
        yali.util.run_batch("cp", ["/sbin/shutdown", "/tmp/shutdown"])

        # base connections
        self._application.lastWindowClosed.connect(self._application.quit)
        self._window.signalProcessEvents.connect(
            self._application.processEvents)  #hata olabilir
        self._application.desktop().resized[int].connect(
            self._reinit_screen)  #hata olabilir

        # Font Resize
        fontMinusShortCut = QShortcut(QKeySequence(Qt.CTRL + Qt.Key_Minus),
                                      self._window)
        fontPlusShortCut = QShortcut(QKeySequence(Qt.CTRL + Qt.Key_Plus),
                                     self._window)
        fontMinusShortCut.activated.connect(self._window.setFontMinus)
        fontPlusShortCut.activated.connect(self._window.setFontPlus)
Пример #6
0
    def setupUi(self, *args):  # {{{
        self.resize(990, 670)

        self.download_shortcut = QShortcut(self)
        self.download_shortcut.setKey(QKeySequence('Ctrl+D',
            QKeySequence.PortableText))
        p = self.parent()
        if hasattr(p, 'keyboard'):
            kname = u'Interface Action: Edit Metadata (Edit Metadata) : menu action : download'
            sc = p.keyboard.keys_map.get(kname, None)
            if sc:
                self.download_shortcut.setKey(sc[0])
        self.swap_title_author_shortcut = s = QShortcut(self)
        s.setKey(QKeySequence('Alt+Down', QKeySequence.PortableText))

        self.button_box = bb = QDialogButtonBox(self)
        self.button_box.accepted.connect(self.accept)
        self.button_box.rejected.connect(self.reject)
        self.next_button = QPushButton(QIcon(I('forward.png')), _('Next'),
                self)
        self.next_button.setShortcut(QKeySequence('Alt+Right'))
        self.next_button.clicked.connect(self.next_clicked)
        self.prev_button = QPushButton(QIcon(I('back.png')), _('Previous'),
                self)
        self.prev_button.setShortcut(QKeySequence('Alt+Left'))

        self.button_box.addButton(self.prev_button, bb.ActionRole)
        self.button_box.addButton(self.next_button, bb.ActionRole)
        self.prev_button.clicked.connect(self.prev_clicked)
        bb.setStandardButtons(bb.Ok|bb.Cancel)
        bb.button(bb.Ok).setDefault(True)

        self.scroll_area = QScrollArea(self)
        self.scroll_area.setFrameShape(QScrollArea.NoFrame)
        self.scroll_area.setWidgetResizable(True)
        self.central_widget = QTabWidget(self)
        self.scroll_area.setWidget(self.central_widget)

        self.l = QVBoxLayout(self)
        self.setLayout(self.l)
        self.l.addWidget(self.scroll_area)
        ll = self.button_box_layout = QHBoxLayout()
        self.l.addLayout(ll)
        ll.addSpacing(10)
        ll.addWidget(self.button_box)

        self.setWindowIcon(QIcon(I('edit_input.png')))
        self.setWindowTitle(BASE_TITLE)

        self.create_basic_metadata_widgets()

        if len(self.db.custom_column_label_map):
            self.create_custom_metadata_widgets()

        self.do_layout()
        geom = gprefs.get('metasingle_window_geometry3', None)
        if geom is not None:
            self.restoreGeometry(bytes(geom))
Пример #7
0
 def create_context_menu(self):
     m = QMenu(self)
     m.addAction(_('Set date to undefined') + '\t' + QKeySequence(Qt.Key_Minus).toString(QKeySequence.NativeText),
                 self.clear_date)
     m.addAction(_('Set date to today') + '\t' + QKeySequence(Qt.Key_Equal).toString(QKeySequence.NativeText),
                 self.today_date)
     m.addSeparator()
     populate_standard_spinbox_context_menu(self, m, use_self_for_copy_actions=True)
     return m
Пример #8
0
def keysequence_from_event(ev):  # {{{
    k, mods = ev.key(), int(ev.modifiers())
    if k in (0, Qt.Key.Key_unknown, Qt.Key.Key_Shift, Qt.Key.Key_Control,
             Qt.Key.Key_Alt, Qt.Key.Key_Meta, Qt.Key.Key_AltGr,
             Qt.Key.Key_CapsLock, Qt.Key.Key_NumLock, Qt.Key.Key_ScrollLock):
        return
    letter = QKeySequence(k).toString(QKeySequence.SequenceFormat.PortableText)
    if mods & Qt.Modifier.SHIFT and letter.lower() == letter.upper():
        # Something like Shift+* or Shift+> we have to remove the shift,
        # since it is included in keycode.
        mods = mods & ~Qt.Modifier.SHIFT
    return QKeySequence(k | mods)
Пример #9
0
 def contextMenuEvent(self, ev):
     m = QMenu(self)
     m.addAction(
         _('Set date to undefined') + '\t' +
         QKeySequence(Qt.Key_Minus).toString(QKeySequence.NativeText),
         self.clear_date)
     m.addAction(
         _('Set date to today') + '\t' +
         QKeySequence(Qt.Key_Equal).toString(QKeySequence.NativeText),
         self.today_date)
     m.addSeparator()
     populate_standard_spinbox_context_menu(self, m)
     m.popup(ev.globalPos())
Пример #10
0
    def initUI(self):
        #self._layout = QHBoxLayout(self)
        self._widget = QWidget(self)
        #self._layout.addWidget(self._widget)
        self._menuBar = QMenuBar(self._widget)

        exitAct = QAction(QIcon('exit.png'), '&Exit', self)
        exitAct.setShortcut('Ctrl+Q')
        exitAct.setStatusTip('Exit application')
        exitAct.triggered.connect(qApp.quit)

        self.statusBar()

        #menubar = self.menuBar()
        menubar = self._menuBar
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(exitAct)

        act = self._menuBar.addAction('test')
        act.setShortcut(QKeySequence('Ctrl+M'))

        def testCb():
            print('hello')

        act.triggered.connect(testCb)
        act.setShortcutContext(Qt.WidgetShortcut)
        print('_menuBar parent', self._menuBar.parent())
        print('act parent', act.parent())
        print('_widget parent', self._widget.parent())
        #act.setParent(self)
        #print(act.parent())
        self.addAction(act)
        # This is important for Qt.WidgetShortcut
        # the Example is focused, and it's menu's act can trigger
        # Qt.WidgetShortcut context action
        #self.setFocus()
        #act.parent().setFocus()
        print('focusWidget', QApplication.focusWidget())

        def cb():
            tt = QApplication.focusWidget()
            print(tt)

        from PyQt5.Qt import QShortcut
        self.short0 = QShortcut(QKeySequence('Ctrl+N'), self)
        self.short0.activated.connect(cb)

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Simple menu')
        self.show()
Пример #11
0
    def __init__(self, logger, opts, parent=None):
        MainWindow.__init__(self, opts, parent)
        Ui_MainWindow.__init__(self)
        self.setupUi(self)
        self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
        self.setWindowTitle(__appname__ + _(' - LRF viewer'))

        self.logger = logger
        self.opts = opts
        self.create_document()
        self.spin_box_action = self.spin_box = QSpinBox()
        self.tool_bar.addWidget(self.spin_box)
        self.tool_bar.addSeparator()
        self.slider_action = self.slider = QSlider(Qt.Orientation.Horizontal)
        self.tool_bar.addWidget(self.slider)
        self.tool_bar.addSeparator()
        self.search = SearchBox2(self)
        self.search.initialize('lrf_viewer_search_history')
        self.search_action = self.tool_bar.addWidget(self.search)
        self.search.search.connect(self.find)

        self.action_next_page.setShortcuts([
            QKeySequence.StandardKey.MoveToNextPage,
            QKeySequence(Qt.Key.Key_Space)
        ])
        self.action_previous_page.setShortcuts([
            QKeySequence.StandardKey.MoveToPreviousPage,
            QKeySequence(Qt.Key.Key_Backspace)
        ])
        self.action_next_match.setShortcuts(QKeySequence.StandardKey.FindNext)
        self.addAction(self.action_next_match)
        self.action_next_page.triggered[(bool)].connect(self.next)
        self.action_previous_page.triggered[(bool)].connect(self.previous)
        self.action_back.triggered[(bool)].connect(self.back)
        self.action_forward.triggered[(bool)].connect(self.forward)
        self.action_next_match.triggered[(bool)].connect(self.next_match)
        self.action_open_ebook.triggered[(bool)].connect(self.open_ebook)
        self.action_configure.triggered[(bool)].connect(self.configure)
        self.spin_box.valueChanged[(int)].connect(self.go_to_page)
        self.slider.valueChanged[(int)].connect(self.go_to_page)

        self.graphics_view.setRenderHint(QPainter.RenderHint.Antialiasing,
                                         True)
        self.graphics_view.setRenderHint(QPainter.RenderHint.TextAntialiasing,
                                         True)
        self.graphics_view.setRenderHint(
            QPainter.RenderHint.SmoothPixmapTransform, True)

        self.closed = False
Пример #12
0
    def _loadSettings(self):
        settings = Settings()
        # Url settings
        settings.beginGroup('Web-URL-Settings')
        self._homepage = settings.value('homepage', 'app:start', type=QUrl)
        settings.endGroup()
        # Browser Window settings
        settings.beginGroup('Browser-View-Settings')
        showStatusBar = settings.value('showStatusBar', False)
        showBookmarksToolbar = settings.value('showBookmarksToolbar', False)
        showNavigationToolbar = settings.value('showNavigationToolbar', True)
        showMenuBar = settings.value('showMenuBar', False)
        # Make sure both menubar and navigationbar are not hidden
        if not showNavigationToolbar:
            showMenuBar = True
            settings.setValue('showMenubar', True)
        settings.endGroup()

        settings.beginGroup('Shortcuts')
        self._useTabNumberShortcuts = settings.value('useTabNumberShortcuts',
                                                     True)
        self._useSpeedDialNumberShortcuts = settings.value(
            'useSpeedDialNumberShortcuts', True)
        self._useSingleKeyShortcuts = settings.value('useSingleKeyShortcuts',
                                                     False)
        settings.endGroup()

        settings.beginGroup('Web-Browser-Settings')
        quitAction = self._mainMenu.action('Standard/Quit')
        if settings.value('closeAppWithCtrlQ', True):
            quitAction.setShortcut(
                gVar.appTools.actionShortcut(QKeySequence.Quit,
                                             QKeySequence('Ctrl+Q')))
        else:
            quitAction.setShortcut(QKeySequence())
        settings.endGroup()

        self._statusBarVisible = showStatusBar
        self.statusBar().setVisible(not self.isFullScreen() and showStatusBar)
        self._bookmarksToolbar.setVisible(showBookmarksToolbar)
        self._navigationToolbar.setVisible(showNavigationToolbar)
        if not const.OS_MACOS:
            self._menuBarVisible = showMenuBar
            self.menuBar().setVisible(not self.isFullScreen() and showMenuBar)
        showSuperMenu = self.isFullScreen() or not showMenuBar
        # TODO: debug code
        showSuperMenu = True
        self._navigationToolbar.setSuperMenuVisible(showSuperMenu)
Пример #13
0
 def key_press_event(self, ev, which=0):
     code = ev.key()
     if self.capture == 0 or code in (0, Qt.Key_unknown, Qt.Key_Shift,
                                      Qt.Key_Control, Qt.Key_Alt,
                                      Qt.Key_Meta, Qt.Key_AltGr,
                                      Qt.Key_CapsLock, Qt.Key_NumLock,
                                      Qt.Key_ScrollLock):
         return QWidget.keyPressEvent(self, ev)
     button = getattr(self, 'button%d' % which)
     button.setStyleSheet('QPushButton { font-weight: normal}')
     mods = int(ev.modifiers()) & ~Qt.KeypadModifier
     txt = unicode(ev.text())
     if txt and txt.lower() == txt.upper():
         # We have a symbol like ! or > etc. In this case the value of code
         # already includes Shift, so remove it
         mods &= ~Qt.ShiftModifier
     sequence = QKeySequence(code | mods)
     button.setText(sequence.toString(QKeySequence.NativeText))
     self.capture = 0
     dup_desc = self.dup_check(sequence)
     if dup_desc is not None:
         error_dialog(self,
                      _('Already assigned'),
                      unicode(sequence.toString(QKeySequence.NativeText)) +
                      ' ' + _('already assigned to') + ' ' + dup_desc,
                      show=True)
         self.clear_clicked(which=which)
Пример #14
0
 def setModelData(self, editor, model, index):
     self.closeEditor.emit(editor, self.NoHint)
     custom_keys = editor.custom_keys
     sc = index.data(Qt.ItemDataRole.UserRole).data
     if custom_keys is None:
         candidates = []
         for ckey in sc['default_keys']:
             ckey = QKeySequence(ckey,
                                 QKeySequence.SequenceFormat.PortableText)
             matched = False
             for s in editor.all_shortcuts:
                 if s is editor.shortcut:
                     continue
                 for k in s['keys']:
                     if k == ckey:
                         matched = True
                         break
             if not matched:
                 candidates.append(ckey)
         candidates = tuple(candidates)
         sc['set_to_default'] = True
     else:
         sc['set_to_default'] = False
         candidates = custom_keys
     sc['keys'] = candidates
     self.changed_signal.emit()
Пример #15
0
 def key_press_event(self, ev, which=0):
     code = ev.key()
     if self.capture == 0 or code in (0, Qt.Key.Key_unknown,
                                      Qt.Key.Key_Shift, Qt.Key.Key_Control,
                                      Qt.Key.Key_Alt, Qt.Key.Key_Meta,
                                      Qt.Key.Key_AltGr, Qt.Key.Key_CapsLock,
                                      Qt.Key.Key_NumLock,
                                      Qt.Key.Key_ScrollLock):
         return QWidget.keyPressEvent(self, ev)
     sequence = QKeySequence(code
                             | (int(ev.modifiers())
                                & (~Qt.KeyboardModifier.KeypadModifier)))
     setattr(self, 'shortcut%d' % which, sequence)
     self.clear_button(which)
     self.capture = 0
     dup_desc = self.dup_check(sequence, self.key)
     if dup_desc is not None:
         error_dialog(self,
                      _('Already assigned'),
                      unicode_type(
                          sequence.toString(
                              QKeySequence.SequenceFormat.NativeText)) +
                      ' ' + _('already assigned to') + ' ' + dup_desc,
                      show=True)
         self.clear_clicked(which=which)
Пример #16
0
 def toggleTetris(self):
     self.tetris = Dialog(_("Tetris"), None, True, QKeySequence(Qt.Key_F6))
     _tetris = Tetris(self.tetris)
     self.tetris.addWidget(_tetris)
     self.tetris.resize(240, 500)
     _tetris.start()
     self.tetris.exec_()
Пример #17
0
    def initialize(self, shortcut, all_shortcuts):
        self.header.setText('<b>%s: %s</b>' %
                            (_('Customize'), shortcut['name']))
        self.all_shortcuts = all_shortcuts
        self.shortcut = shortcut

        self.default_keys = [
            QKeySequence(k, QKeySequence.SequenceFormat.PortableText)
            for k in shortcut['default_keys']
        ]
        self.current_keys = list(shortcut['keys'])
        default = ', '.join([
            unicode_type(k.toString(k.NativeText)) for k in self.default_keys
        ])
        if not default:
            default = _('None')
        current = ', '.join([
            unicode_type(k.toString(k.NativeText)) for k in self.current_keys
        ])
        if not current:
            current = _('None')

        self.use_default.setText(
            _('&Default: %(deflt)s [Currently not conflicting: %(curr)s]') %
            dict(deflt=default, curr=current))

        if shortcut['set_to_default']:
            self.use_default.setChecked(True)
        else:
            self.use_custom.setChecked(True)
            for key, which in zip(self.current_keys, [1, 2]):
                button = getattr(self, 'button%d' % which)
                button.setText(key.toString(key.NativeText))
Пример #18
0
    def contextMenuEvent(self, ev):
        menu = self.createStandardContextMenu()
        for action in menu.actions():
            parts = action.text().split('\t')
            if len(parts) == 2 and QKeySequence(
                    QKeySequence.StandardKey.Paste).toString(
                        QKeySequence.SequenceFormat.NativeText) in parts[-1]:
                menu.insertAction(action, self.action_paste_and_match_style)
                break
        else:
            menu.addAction(self.action_paste_and_match_style)
        st = self.text()
        m = QMenu(_('Fonts'))
        m.addAction(self.action_bold), m.addAction(
            self.action_italic), m.addAction(self.action_underline)
        menu.addMenu(m)

        if st and st.strip():
            self.create_change_case_menu(menu)
        parent = self._parent()
        if hasattr(parent, 'toolbars_visible'):
            vis = parent.toolbars_visible
            menu.addAction(
                _('%s toolbars') % (_('Hide') if vis else _('Show')),
                parent.toggle_toolbars)
        menu.addSeparator()
        menu.addAction(_('Smarten punctuation'), parent.smarten_punctuation)
        menu.exec_(ev.globalPos())
Пример #19
0
 def _ADD_CHECKABLE_ACTION(self, name, menu, icon, trName, slot, shortcut):
     action = menu.addAction(icon, trName)
     action.setShortcut(QKeySequence(shortcut))
     action.setCheckable(True)
     action.triggered.connect(slot)
     self._actions[name] = action
     return action
Пример #20
0
def index_to_key_sequence(idx):
    mods = []
    for i, x in enumerate(('ALT', 'CTRL', 'META', 'SHIFT')):
        if idx[i] == 'y':
            mods.append(x.capitalize())
    mods.append(idx[4:])
    return QKeySequence('+'.join(mods))
Пример #21
0
    def create_action(self, spec=None, attr='qaction', shortcut_name=None):
        if spec is None:
            spec = self.action_spec
        text, icon, tooltip, shortcut = spec
        if icon is not None:
            action = QAction(QIcon(I(icon)), text, self.gui)
        else:
            action = QAction(text, self.gui)
        if attr == 'qaction':
            if hasattr(self.action_menu_clone_qaction, 'rstrip'):
                mt = unicode_type(self.action_menu_clone_qaction)
            else:
                mt = action.text()
            self.menuless_qaction = ma = QAction(action.icon(), mt, self.gui)
            ma.triggered.connect(action.trigger)
        for a in ((action, ma) if attr == 'qaction' else (action,)):
            a.setAutoRepeat(self.auto_repeat)
            text = tooltip if tooltip else text
            a.setToolTip(text)
            a.setStatusTip(text)
            a.setWhatsThis(text)
        shortcut_action = action
        desc = tooltip if tooltip else None
        if attr == 'qaction':
            shortcut_action = ma
        if shortcut is not None:
            keys = ((shortcut,) if isinstance(shortcut, string_or_bytes) else
                    tuple(shortcut))
            if shortcut_name is None and spec[0]:
                shortcut_name = unicode_type(spec[0])

            if shortcut_name and self.action_spec[0] and not (
                    attr == 'qaction' and self.popup_type == QToolButton.InstantPopup):
                try:
                    self.gui.keyboard.register_shortcut(self.unique_name + ' - ' + attr,
                        shortcut_name, default_keys=keys,
                        action=shortcut_action, description=desc,
                        group=self.action_spec[0])
                except NameConflict as e:
                    try:
                        prints(unicode_type(e))
                    except:
                        pass
                    shortcut_action.setShortcuts([QKeySequence(key,
                        QKeySequence.PortableText) for key in keys])
                else:
                    self.shortcut_action_for_context_menu = shortcut_action
                    if isosx:
                        # In Qt 5 keyboard shortcuts dont work unless the
                        # action is explicitly added to the main window
                        self.gui.addAction(shortcut_action)

        if attr is not None:
            setattr(self, attr, action)
        if attr == 'qaction' and self.action_add_menu:
            menu = QMenu()
            action.setMenu(menu)
            if self.action_menu_clone_qaction:
                menu.addAction(self.menuless_qaction)
        return action
Пример #22
0
 def contextMenuEvent(self, ev):
     m = QMenu(self)
     m.addAction(_('Set to undefined') + '\t' + QKeySequence(Qt.Key_Space).toString(QKeySequence.NativeText),
                 self.clear_to_undefined)
     m.addSeparator()
     populate_standard_spinbox_context_menu(self, m)
     m.popup(ev.globalPos())
Пример #23
0
    def __init__(self):
        QWidget.__init__(self)

        self.v_box = QVBoxLayout()
        self.v_dir = QVBoxLayout()
        self.v_ext = QVBoxLayout()
        self.v_av = QVBoxLayout()
        self.H_default_save_dir = QHBoxLayout()
        self.H_default_ext = QHBoxLayout()
        self.H_av = QHBoxLayout()
        self.H_save = QHBoxLayout()

        self.settings = xml.ParseXMLSettings()

        self.txt_default_dir = QLineEdit(self)
        self.drpdwn_av = QComboBox(self)
        self.drpdwn_ext = QComboBox(self)

        self.shortcut = QShortcut(QKeySequence('Ctrl+W'), self)
        self.shortcut.activated.connect(self.close)

        self.initUI()

        self.v_box.addSpacing(12)
        self.H_av.addSpacing(12)
        self.H_default_ext.addSpacing(12)
        self.H_default_save_dir.addSpacing(12)
        self.H_save.addSpacing(12)

        self.setLayout(self.v_box)

        self.setGeometry(200, 200, 250, 150)
        self.setWindowTitle('Global Settings')
Пример #24
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)
        self.retranslateUi(self)

        self.itemBlockSize = 25
        self.menubar.setNativeMenuBar(False)

        self.inboxSc = QShortcut(QKeySequence('Alt+1'), self)
        self.mailSc = QShortcut(QKeySequence('Alt+2'), self)
        self.closeSC1 = QShortcut(QKeySequence('Ctrl+W'), self)
        self.closeSC2 = QShortcut(QKeySequence('Ctrl+Q'), self)
        self.writeSc = QShortcut(QKeySequence('Ctrl+N'), self)

        self._connectActions()
        self.tabWidget.setCurrentIndex(0)
        self.treeWidget.setFocus()
        self.treeWidget.setStyleSheet("QTreeView::item { height: 22px }")
        self.treeWidget.setColumnWidth(0, 250)
        self.text = ""
        centerPoint = QDesktopWidget().availableGeometry().center()
        qtRectangle = self.frameGeometry()
        qtRectangle.moveCenter(centerPoint)
        self.move(qtRectangle.topLeft())
        try:
            self.inbox = inbox()
            self.thread = Thread(target=self.inbox.refresh_mail)
            self.getMessages()
            self.getContacts()
            self.decryption = decryption()
            self.contactBook = contactBook()
            if "--updatedTrue" in arg:
                QMessageBox.about(self, "Security", "Updated Successfully!")
            elif "--updatedFalse" in arg:
                QMessageBox.about(
                    self, "Security",
                    "A Problem Occured While Updating\nPlease try again later!"
                )
            elif "--updatedEmpty" in arg:
                QMessageBox.about(
                    self, "Security",
                    "You're already up-to-date.\nNo changes were made.")

        except WizardError as e:
            self.d = Dialog1(self)
            self.d.textBrowser.setText(str(e))
            self.d.show()
Пример #25
0
 def choose_tab(self, key):
     self.choose_tab_pending = None
     if not self.tab_tree.activate_marked_tab(key):
         if not key & Qt.Key_Escape:
             key = QKeySequence(key).toString()
             self.show_status_message(
                 _('No tab with mark: %s') % key, 5, 'error')
     self.tab_tree.mark_tabs(unmark=True)
Пример #26
0
    def _init(self):
        self.setTitle('Hi&story')

        icon = IconProvider.standardIcon(QStyle.SP_ArrowBack)
        act = self.addAction(icon, '&Back', self._goBack)
        act.setShortcut(
            gVar.appTools.actionShortcut(QKeySequence.Back,
                                         Qt.ALT + Qt.Key_Left,
                                         QKeySequence.Forward,
                                         Qt.ALT + Qt.Key_Right))

        icon = IconProvider.standardIcon(QStyle.SP_ArrowForward)
        act = self.addAction(icon, '&Forward', self._goForward)
        act.setShortcut(
            gVar.appTools.actionShortcut(QKeySequence.Forward,
                                         Qt.ALT + Qt.Key_Right,
                                         QKeySequence.Back,
                                         Qt.ALT + Qt.Key_Left))

        act = self.addAction(QIcon.fromTheme('go-home'), '&Home', self._goHome)
        act.setShortcut(QKeySequence(Qt.ALT + Qt.Key_Home))

        icon = QIcon.fromTheme('deep-history',
                               QIcon(':/icons/menu/history.svg'))
        act = self.addAction(icon, 'Show &All History')
        act.triggered.connect(self._showHistoryManager)
        act.setShortcut(QKeySequence(Qt.CTRL + Qt.SHIFT + Qt.Key_H))

        self.addSeparator()

        self.aboutToShow.connect(self._aboutToHide)
        self.aboutToHide.connect(self._aboutToShow)

        self._menuMostVisited = Menu('Most Visited', self)
        self._menuMostVisited.aboutToShow.connect(self._aboutToShowMostVisited)

        self._menuClosedTabs = Menu('Closed Tabs')
        self._menuClosedTabs.aboutToShow.connect(self._aboutToShowClosedTabs)

        self._menuClosedWindows = Menu('Closed Windows')
        self._menuClosedWindows.aboutToShow.connect(
            self._aboutToShowClosedWindows)

        self.addMenu(self._menuMostVisited)
        self.addMenu(self._menuClosedTabs)
        self.addMenu(self._menuClosedWindows)
Пример #27
0
    def _init(self):
        self.setTitle('&Bookmarks')

        act = self.addAction('Bookmark &This Page', self._bookmarkPage)
        act.setShortcut(QKeySequence('Ctrl+D'))
        self.addAction('Bookmark &All Tabs', self._bookmarkAllTabs)
        act = self.addAction(QIcon.fromTheme('bookmarks-organize'),
                             'Organize &Bookmarks')
        # NOTE: if use self.addAction(icon, label, self._showBookmarksManager)
        # will cause connection random invalid, so here connect triggered
        # separately.
        act.triggered.connect(self._showBookmarksManager)
        act.setShortcut(QKeySequence('Ctrl+Shift+O'))
        self.addSeparator()

        self.aboutToShow.connect(self._aboutToShow)
        self.aboutToShow.connect(self._menuAboutToShow)
        self.menuMiddleClicked.connect(self._menuMiddleClicked)
Пример #28
0
    def actionShortcut(self, shortcut, fallBack, shortcutRtl=QKeySequence(),
            fallbackRtl=QKeySequence()):
        '''
        @param: shortcut QKeySequence
        @param: fallBack QKeySequence
        @param: shortcutRtl QKeySequence
        @param: fallbackRtl QKeySequence
        @return: QKeySequence
        '''
        if QApplication.isRightToLeft() and (not shortcutRtl.isEmpty() or not fallbackRtl.isEmpty()):
            if shortcutRtl.isEmpty():
                return fallbackRtl
            else:
                return shortcutRtl

        if not shortcut:
            return fallBack
        else:
            return shortcut
Пример #29
0
 def toggleConsole(self):
     if not self.terminal:
         terminal = QTermWidget()
         terminal.setScrollBarPosition(QTermWidget.ScrollBarRight)
         terminal.setColorScheme(1)
         terminal.sendText("export TERM='xterm'\nclear\n")
         self.terminal = Dialog(_("Terminal"), terminal, True,
                                QKeySequence(Qt.Key_F11))
         self.terminal.resize(700, 500)
     self.terminal.exec_()
Пример #30
0
 def get_match(self, event_or_sequence, ignore=tuple()):
     q = event_or_sequence
     if isinstance(q, QKeyEvent):
         q = QKeySequence(q.key()|(int(q.modifiers()) & (~Qt.KeyboardModifier.KeypadModifier)))
     for key in self.order:
         if key not in ignore:
             for seq in self.get_sequences(key):
                 if seq.matches(q) == QKeySequence.SequenceMatch.ExactMatch:
                     return key
     return None