Example #1
0
    def show_context_menu(self, point):
        self.context_item = self.table.itemAt(point)
        case_menu = QMenu(_('Change Case'))
        action_upper_case = case_menu.addAction(_('Upper Case'))
        action_lower_case = case_menu.addAction(_('Lower Case'))
        action_swap_case = case_menu.addAction(_('Swap Case'))
        action_title_case = case_menu.addAction(_('Title Case'))
        action_capitalize = case_menu.addAction(_('Capitalize'))

        action_upper_case.triggered.connect(self.upper_case)
        action_lower_case.triggered.connect(self.lower_case)
        action_swap_case.triggered.connect(self.swap_case)
        action_title_case.triggered.connect(self.title_case)
        action_capitalize.triggered.connect(self.capitalize)

        m = self.au_context_menu = QMenu()
        ca = m.addAction(_('Copy'))
        ca.triggered.connect(self.copy_to_clipboard)
        ca = m.addAction(_('Paste'))
        ca.triggered.connect(self.paste_from_clipboard)
        m.addSeparator()

        if self.context_item is not None and self.context_item.column() == 0:
            ca = m.addAction(_('Copy to author sort'))
            ca.triggered.connect(self.copy_au_to_aus)
        else:
            ca = m.addAction(_('Copy to author'))
            ca.triggered.connect(self.copy_aus_to_au)
        m.addSeparator()
        m.addMenu(case_menu)
        m.exec_(self.table.mapToGlobal(point))
Example #2
0
    def __init__(self):
        self.checked = QIcon(I('ok.png'))
        self.empty = QIcon(I('blank.png'))
        self.current_search_action = QAction(self.empty, _('*current search'), self)
        self.current_search_action.triggered.connect(partial(self.apply_virtual_library, library='*'))
        self.addAction(self.current_search_action)
        self.keyboard.register_shortcut(
            'vl-from-current-search', _('Virtual library from current search'), description=_(
                'Create a temporary Virtual library from the current search'), group=_('Miscellaneous'),
            default_keys=('Ctrl+*',), action=self.current_search_action)

        self.search_based_vl_name = None
        self.search_based_vl = None

        self.virtual_library_menu = QMenu()

        self.virtual_library.clicked.connect(self.virtual_library_clicked)
        self.clear_vl.clicked.connect(lambda x: (self.apply_virtual_library(), self.clear_additional_restriction()))

        self.virtual_library_tooltip = \
            _('Use a "virtual library" to show only a subset of the books present in this library')
        self.virtual_library.setToolTip(self.virtual_library_tooltip)

        self.search_restriction = ComboBoxWithHelp(self)
        self.search_restriction.setVisible(False)
        self.search_count.setText(_("(all books)"))
        self.ar_menu = QMenu(_('Additional restriction'))
        self.edit_menu = QMenu(_('Edit Virtual Library'))
        self.rm_menu = QMenu(_('Remove Virtual Library'))
Example #3
0
    def __init__(self, shortcuts, parent=None):
        QDialog.__init__(self, parent)
        self.setupUi(self)

        for x in ('text', 'background'):
            getattr(self, 'change_%s_color_button' % x).clicked.connect(
                partial(self.change_color, x, reset=False))
            getattr(self, 'reset_%s_color_button' % x).clicked.connect(
                partial(self.change_color, x, reset=True))
        self.css.setToolTip(
            _('Set the user CSS stylesheet. This can be used to customize the look of all books.'
              ))

        self.shortcuts = shortcuts
        self.shortcut_config = ShortcutConfig(shortcuts, parent=self)
        bb = self.buttonBox
        bb.button(bb.RestoreDefaults).clicked.connect(self.restore_defaults)

        with zipfile.ZipFile(
                P('viewer/hyphenate/patterns.zip', allow_user_override=False),
                'r') as zf:
            pats = [x.split('.')[0].replace('-', '_') for x in zf.namelist()]
        names = list(map(get_language, pats))
        pmap = {}
        for i in range(len(pats)):
            pmap[names[i]] = pats[i]
        for x in sorted(names):
            self.hyphenate_default_lang.addItem(x, QVariant(pmap[x]))
        self.hyphenate_pats = pats
        self.hyphenate_names = names
        p = self.tabs.widget(1)
        p.layout().addWidget(self.shortcut_config)

        if isxp:
            self.hyphenate.setVisible(False)
            self.hyphenate_default_lang.setVisible(False)
            self.hyphenate_label.setVisible(False)

        self.themes = load_themes()
        self.save_theme_button.clicked.connect(self.save_theme)
        self.load_theme_button.m = m = QMenu()
        self.load_theme_button.setMenu(m)
        m.triggered.connect(self.load_theme)
        self.delete_theme_button.m = m = QMenu()
        self.delete_theme_button.setMenu(m)
        m.triggered.connect(self.delete_theme)

        opts = config().parse()
        self.load_options(opts)
        self.init_load_themes()

        self.clear_search_history_button.clicked.connect(
            self.clear_search_history)
        self.resize(self.width(),
                    min(self.height(), max(575,
                                           min_available_height() - 25)))
Example #4
0
 def build_email_entries(self, sync_menu):
     from calibre.gui2.device import DeviceAction
     for ac in self.email_actions:
         self.removeAction(ac)
     self.email_actions = []
     self.memory = []
     opts = email_config().parse()
     if opts.accounts:
         self.email_to_menu = QMenu(_('Email to') + '...', self)
         ac = self.addMenu(self.email_to_menu)
         self.email_actions.append(ac)
         self.email_to_and_delete_menu = QMenu(
             _('Email to and delete from library') + '...', self)
         keys = sorted(opts.accounts.keys())
         for account in keys:
             formats, auto, default = opts.accounts[account]
             subject = opts.subjects.get(account, '')
             alias = opts.aliases.get(account, '')
             dest = 'mail:' + account + ';' + formats + ';' + subject
             action1 = DeviceAction(dest, False, False, I('mail.png'), alias
                                    or account)
             action2 = DeviceAction(dest, True, False, I('mail.png'),
                                    (alias or account) + ' ' +
                                    _('(delete from library)'))
             self.email_to_menu.addAction(action1)
             self.email_to_and_delete_menu.addAction(action2)
             map(self.memory.append, (action1, action2))
             if default:
                 ac = DeviceAction(dest, False, False, I('mail.png'),
                                   _('Email to') + ' ' + (alias or account))
                 self.addAction(ac)
                 self.email_actions.append(ac)
                 ac.a_s.connect(sync_menu.action_triggered)
             action1.a_s.connect(sync_menu.action_triggered)
             action2.a_s.connect(sync_menu.action_triggered)
         action1 = DeviceAction('choosemail:', False, False, I('mail.png'),
                                _('Select recipients'))
         action2 = DeviceAction(
             'choosemail:', True, False, I('mail.png'),
             _('Select recipients') + ' ' + _('(delete from library)'))
         self.email_to_menu.addAction(action1)
         self.email_to_and_delete_menu.addAction(action2)
         map(self.memory.append, (action1, action2))
         tac1 = DeviceAction('choosemail:', False, False, I('mail.png'),
                             _('Email to selected recipients...'))
         self.addAction(tac1)
         tac1.a_s.connect(sync_menu.action_triggered)
         self.memory.append(tac1)
         ac = self.addMenu(self.email_to_and_delete_menu)
         self.email_actions.append(ac)
         action1.a_s.connect(sync_menu.action_triggered)
         action2.a_s.connect(sync_menu.action_triggered)
     else:
         ac = self.addAction(_('Setup email based sharing of books'))
         self.email_actions.append(ac)
         ac.triggered.connect(self.setup_email)
Example #5
0
    def __init__(self, parent):
        QMenuBar.__init__(self, parent)

        # Menu items
        self._fileM = QMenu(self.tr("File"))
        self._editM = QMenu(self.tr("Edit"))
        self._viewM = QMenu(self.tr("View"))
        self._optionM = QMenu(self.tr("Options"))

        self.addMenu(self._fileM)
        self.addMenu(self._editM)
        self.addMenu(self._viewM)
        self.addMenu(self._optionM)

        # Actions
        self._connectDatabaseA = QAction(self.tr("Connect a PostGIS database"),
                                         self.parent())
        self._connectDatabaseA.setShortcut(QKeySequence("Ctrl+Shift+C"))
        self.parent().connect(self._connectDatabaseA, SIGNAL("triggered()"),
                              self.parent().dialConnectDatabase)

        self._importDatabaseDataA = QAction(
            self.tr("Import data from database"), self.parent())
        self._importDatabaseDataA.setShortcut(QKeySequence("Ctrl+Shift+I"))
        self.parent().connect(self._importDatabaseDataA, SIGNAL("triggered()"),
                              self.parent().dialImportDatabaseData)

        self._importVectorFileDataA = QAction(
            self.tr("Import vector from file"), self.parent())
        self._importVectorFileDataA.setShortcut(QKeySequence("Ctrl+Shift+V"))
        self.parent().connect(self._importVectorFileDataA,
                              SIGNAL("triggered()"),
                              self.parent().dialImportVectorFileData)

        self._importRasterFileDataA = QAction(
            self.tr("Import raster data from file"), self.parent())
        self._importRasterFileDataA.setShortcut(QKeySequence("Ctrl+Shift+R"))
        self.parent().connect(self._importRasterFileDataA,
                              SIGNAL("triggered()"),
                              self.parent().dialImportRasterFileData)

        self._colorLayerA = QAction(self.tr("Select layer color"),
                                    self.parent())
        self.parent().connect(self._colorLayerA, SIGNAL("triggered()"),
                              self.parent().dialSelectLayerColor)

        # Add actions to menu
        self._fileM.addAction(self._importVectorFileDataA)
        self._fileM.addAction(self._importRasterFileDataA)
        self._fileM.addSeparator()
        self._fileM.addAction(self._connectDatabaseA)
        self._fileM.addAction(self._importDatabaseDataA)

        self._viewM.addAction(self._colorLayerA)
Example #6
0
 def show_context_menu(self, point):
     idx = self.currentIndex()
     if idx and idx.isValid() and not idx.data(Qt.UserRole).toPyObject():
         m = QMenu()
         m.addAction(QIcon(I('view.png')),
                     _('View this cover at full size'), self.show_cover)
         m.exec_(QCursor.pos())
Example #7
0
    def contextMenuEvent(self, event):
        popup_menu = self.createStandardContextMenu()
 
        # Select the word under the cursor.
        cursor = self.textCursor()
        cursor.select(QTextCursor.WordUnderCursor)
        self.setTextCursor(cursor)
 
        # Check if the selected word is misspelled and offer spelling
        # suggestions if it is.
        if self.textCursor().hasSelection() and self._active:
            text = unicode(self.textCursor().selectedText())
            if not self.dict.check(text):
                spell_menu = QMenu('Spelling Suggestions')
                for word in self.dict.suggest(text):
                    action = SpellAction(word, spell_menu)
                    action.correct.connect(self.correctWord)
                    spell_menu.addAction(action)
                # Only add the spelling suggests to the menu if there are
                # suggestions.
                if len(spell_menu.actions()) != 0:
                    popup_menu.insertSeparator(popup_menu.actions()[0])
                    popup_menu.insertMenu(popup_menu.actions()[0], spell_menu)
 
        popup_menu.exec_(event.globalPos())
Example #8
0
    def contextMenuEvent(self, event):  #pos):
        popup_menu = self.textEdit.createStandardContextMenu()  #pos)

        # Select the word under the cursor.
        cursor = self.textEdit.textCursor()
        cursor.select(QTextCursor.WordUnderCursor)
        self.textEdit.setTextCursor(cursor)

        # Check if the selected word is misspelled and offer spelling
        # suggestions if it is.
        if self.textEdit.textCursor().hasSelection():
            text = unicode(self.textEdit.textCursor().selectedText())
            if not self.dict.check(text):
                #print "o0mad to0 dict :D"
                spell_menu = QMenu(u'شاید منظورتان این بوده:')
                #print spell_menu
                for word in self.dict.suggest(text):
                    action = SpellAction(word, spell_menu)
                    action.correct.connect(self.correctWord)
                    spell_menu.addAction(action)
                    #print word
                # Only add the spelling suggests to the menu if there are
                # suggestions.
                print len(spell_menu.actions())
                #print spell_menu.actions()
                if len(spell_menu.actions()) != 0:
                    popup_menu.insertSeparator(popup_menu.actions()[0])
                    popup_menu.insertMenu(popup_menu.actions()[0], spell_menu)

        popup_menu.exec_(QCursor.pos(
        ))  #self.textEdit.mapToGlobal(QPoint(0, 0)))#.globalPos())
Example #9
0
 def showContextMenu(self, position):
     SuggestionContextMenu = self.ui.textEdit.createStandardContextMenu()
     cursor = self.ui.textEdit.textCursor()
     cursor.select(QTextCursor.WordUnderCursor)
     self.ui.textEdit.setTextCursor(cursor)
     if self.ui.textEdit.textCursor().hasSelection():
         a = self.ui.textEdit.textCursor().selectedText()
         if a[-1] == u'।':
             a = a.remove(u'।')
             cursor.movePosition(QTextCursor.Left, QTextCursor.KeepAnchor)
             self.ui.textEdit.setTextCursor(cursor)
         text = unicode(a).encode('utf-8')
         if not self.checker.spell(text):
             ignoreAction = QAction('Ignore', SuggestionContextMenu)
             ignoreAction.triggered.connect(self.ignoreSelection)
             addAction = QAction('Add to Dictionary', SuggestionContextMenu)
             addAction.triggered.connect(self.addWord)
             SuggestionContextMenu.insertSeparator(
                 SuggestionContextMenu.actions()[0])
             SuggestionContextMenu.insertAction(
                 SuggestionContextMenu.actions()[0], addAction)
             SuggestionContextMenu.insertAction(
                 SuggestionContextMenu.actions()[0], ignoreAction)
             SuggestionMenu = QMenu('Spelling Suggestions')
             for word in self.checker.suggest(text):
                 word = word.decode('utf-8')
                 action = SuggestAction(word, SuggestionMenu)
                 action.correct.connect(self.replaceCorrect)
                 SuggestionMenu.addAction(action)
             if len(SuggestionMenu.actions()) != 0:
                 SuggestionContextMenu.insertMenu(
                     SuggestionContextMenu.actions()[0], SuggestionMenu)
     cursor.clearSelection()
     SuggestionContextMenu.exec_(self.ui.textEdit.mapToGlobal(position))
     self.ui.textEdit.setTextCursor(cursor)
Example #10
0
 def show_context_menu(self, pos):
     menu = QMenu(self)
     menu.addAction(actions['edit-toc'])
     menu.addAction(_('&Expand all'), self.view.expandAll)
     menu.addAction(_('&Collapse all'), self.view.collapseAll)
     menu.addAction(self.refresh_action)
     menu.exec_(self.view.mapToGlobal(pos))
Example #11
0
 def create_toolbars(self):
     self.action_bar = b = self.addToolBar(_('File actions tool bar'))
     b.setObjectName('action_bar')  # Needed for saveState
     for x in ('undo', 'redo'):
         b.addAction(actions['editor-%s' % x])
     self.edit_bar = b = self.addToolBar(_('Edit actions tool bar'))
     for x in ('cut', 'copy', 'paste'):
         b.addAction(actions['editor-%s' % x])
     self.tools_bar = b = self.addToolBar(_('Editor tools'))
     if self.syntax == 'html':
         b.addAction(actions['fix-html-current'])
     if self.syntax in {'xml', 'html', 'css'}:
         b.addAction(actions['pretty-current'])
     if self.syntax in {'html', 'css'}:
         b.addAction(actions['insert-image'])
     if self.syntax == 'html':
         self.format_bar = b = self.addToolBar(_('Format text'))
         for x in ('bold', 'italic', 'underline', 'strikethrough',
                   'subscript', 'superscript', 'color', 'background-color'):
             b.addAction(actions['format-text-%s' % x])
         ac = b.addAction(QIcon(I('format-text-heading.png')),
                          _('Change paragraph to heading'))
         m = QMenu()
         ac.setMenu(m)
         b.widgetForAction(ac).setPopupMode(QToolButton.InstantPopup)
         for name in tuple('h%d' % d for d in range(1, 7)) + ('p', ):
             m.addAction(actions['rename-block-tag-%s' % name])
Example #12
0
    def __init__(self, parent, db):
        QObject.__init__(self, parent)
        self.internet_connection_failed = False
        self._parent = parent
        self.no_internet_msg = _('Cannot download news as no internet connection '
                'is active')
        self.no_internet_dialog = d = error_dialog(self._parent,
                self.no_internet_msg, _('No internet connection'),
                show_copy_button=False)
        d.setModal(False)

        self.recipe_model = RecipeModel()
        self.db = db
        self.lock = QMutex(QMutex.Recursive)
        self.download_queue = set([])

        self.news_menu = QMenu()
        self.news_icon = QIcon(I('news.png'))
        self.scheduler_action = QAction(QIcon(I('scheduler.png')), _('Schedule news download'), self)
        self.news_menu.addAction(self.scheduler_action)
        self.scheduler_action.triggered[bool].connect(self.show_dialog)
        self.cac = QAction(QIcon(I('user_profile.png')), _('Add a custom news source'), self)
        self.cac.triggered[bool].connect(self.customize_feeds)
        self.news_menu.addAction(self.cac)
        self.news_menu.addSeparator()
        self.all_action = self.news_menu.addAction(
                _('Download all scheduled news sources'),
                self.download_all_scheduled)

        self.timer = QTimer(self)
        self.timer.start(int(self.INTERVAL * 60 * 1000))
        self.timer.timeout.connect(self.check)
        self.oldest = gconf['oldest_news']
        QTimer.singleShot(5 * 1000, self.oldest_check)
Example #13
0
    def create_toolbars(self):
        self.action_bar = b = self.addToolBar(_('File actions tool bar'))
        b.setObjectName('action_bar')  # Needed for saveState
        for x in ('undo', 'redo'):
            b.addAction(getattr(self.canvas, '%s_action' % x))
        self.edit_bar = b = self.addToolBar(_('Edit actions tool bar'))
        for x in ('copy', 'paste'):
            ac = actions['editor-%s' % x]
            setattr(self, 'action_' + x, b.addAction(ac.icon(), x, getattr(self, x)))
        self.update_clipboard_actions()

        b.addSeparator()
        self.action_trim = ac = b.addAction(QIcon(I('trim.png')), _('Trim image'), self.canvas.trim_image)
        self.action_rotate = ac = b.addAction(QIcon(I('rotate-right.png')), _('Rotate image'), self.canvas.rotate_image)
        self.action_resize = ac = b.addAction(QIcon(I('resize.png')), _('Resize image'), self.resize_image)
        b.addSeparator()
        self.action_filters = ac = b.addAction(QIcon(I('filter.png')), _('Image filters'))
        b.widgetForAction(ac).setPopupMode(QToolButton.InstantPopup)
        self.filters_menu = m = QMenu()
        ac.setMenu(m)
        m.addAction(_('Auto-trim image'), self.canvas.autotrim_image)
        m.addAction(_('Sharpen image'), self.sharpen_image)
        m.addAction(_('Blur image'), self.blur_image)
        m.addAction(_('De-speckle image'), self.canvas.despeckle_image)

        self.info_bar = b = self.addToolBar(_('Image information bar'))
        self.fmt_label = QLabel('')
        b.addWidget(self.fmt_label)
        b.addSeparator()
        self.size_label = QLabel('')
        b.addWidget(self.size_label)
Example #14
0
 def __init__(self):
     self.saved_search.changed.connect(self.saved_searches_changed)
     self.clear_button.clicked.connect(self.saved_search.clear)
     self.save_search_button.clicked.connect(
         self.saved_search.save_search_button_clicked)
     self.copy_search_button.clicked.connect(
         self.saved_search.copy_search_button_clicked)
     # self.saved_searches_changed()
     self.saved_search.initialize(self.search,
                                  colorize=True,
                                  help_text=_('Saved Searches'))
     self.saved_search.setToolTip(
         _('Choose saved search or enter name for new saved search'))
     self.saved_search.setStatusTip(self.saved_search.toolTip())
     for x in ('copy', 'save'):
         b = getattr(self, x + '_search_button')
         b.setStatusTip(b.toolTip())
     self.save_search_button.setToolTip(
         '<p>' + _("Save current search under the name shown in the box. "
                   "Press and hold for a pop-up options menu.") + '</p>')
     self.save_search_button.setMenu(QMenu())
     self.save_search_button.menu().addAction(
         QIcon(I('plus.png')), _('Create saved search'),
         self.saved_search.save_search_button_clicked)
     self.save_search_button.menu().addAction(
         QIcon(I('trash.png')), _('Delete saved search'),
         self.saved_search.delete_current_search)
     self.save_search_button.menu().addAction(
         QIcon(I('search.png')), _('Manage saved searches'),
         partial(self.do_saved_search_edit, None))
Example #15
0
        def ac(name, text, icon, tooltip):
            icon = QIcon(I(icon))
            ac = self.location_actions.addAction(icon, text)
            setattr(self, 'location_' + name, ac)
            ac.setAutoRepeat(False)
            ac.setCheckable(True)
            receiver = partial(self._location_selected, name)
            ac.triggered.connect(receiver)
            self.tooltips[name] = tooltip

            m = QMenu(parent)
            self._mem.append(m)
            a = m.addAction(icon, tooltip)
            a.triggered.connect(receiver)
            if name != 'library':
                self._mem.append(a)
                a = m.addAction(QIcon(I('eject.png')), _('Eject this device'))
                a.triggered.connect(self._eject_requested)
                self._mem.append(a)
                a = m.addAction(QIcon(I('config.png')),
                                _('Configure this device'))
                a.triggered.connect(self._configure_requested)
                self._mem.append(a)

            else:
                ac.setToolTip(tooltip)
            ac.setMenu(m)
            ac.calibre_name = name

            self.all_actions.append(ac)
            return ac
Example #16
0
    def __init__(self, parent):
        QDialog.__init__(self, parent)
        self.setWindowTitle(_('Create ToC from XPath'))
        self.l = l = QVBoxLayout()
        self.setLayout(l)
        self.la = la = QLabel(
            _('Specify a series of XPath expressions for the different levels of'
              ' the Table of Contents. You can use the wizard buttons to help'
              ' you create XPath expressions.'))
        la.setWordWrap(True)
        l.addWidget(la)
        self.widgets = []
        for i in xrange(5):
            la = _('Level %s ToC:') % ('&%d' % (i + 1))
            xp = XPathEdit(self)
            xp.set_msg(la)
            self.widgets.append(xp)
            l.addWidget(xp)

        self.bb = bb = QDialogButtonBox(QDialogButtonBox.Ok
                                        | QDialogButtonBox.Cancel)
        bb.accepted.connect(self.accept)
        bb.rejected.connect(self.reject)
        self.ssb = b = bb.addButton(_('&Save settings'), bb.ActionRole)
        b.clicked.connect(self.save_settings)
        self.load_button = b = bb.addButton(_('&Load settings'), bb.ActionRole)
        self.load_menu = QMenu(b)
        b.setMenu(self.load_menu)
        self.setup_load_button()
        l.addStretch()
        l.addWidget(bb)
        self.resize(self.sizeHint() + QSize(50, 75))
Example #17
0
    def context_menu(self):
        popup_menu = HintedTextEdit.createStandardContextMenu(self)

        # Select the word under the cursor.
        cursor = self.textCursor()
        cursor.select(QTextCursor.WordUnderCursor)
        self.setTextCursor(cursor)

        # Check if the selected word is misspelled and offer spelling
        # suggestions if it is.
        spell_menu = None
        if self.textCursor().hasSelection():
            text = ustr(self.textCursor().selectedText())
            if not self.spellcheck.check(text):
                spell_menu = QMenu(N_('Spelling Suggestions'))
                for word in self.spellcheck.suggest(text):
                    action = SpellAction(word, spell_menu)
                    self.connect(action, SIGNAL('correct'), self.correct)
                    spell_menu.addAction(action)
                # Only add the spelling suggests to the menu if there are
                # suggestions.
                if len(spell_menu.actions()) > 0:
                    popup_menu.addSeparator()
                    popup_menu.addMenu(spell_menu)

        return popup_menu, spell_menu
Example #18
0
    def setupMenu(self):
        self.menu = QMenu("New")
        self.standardDevices = self.menu.addMenu(_("Standard"))
        self.lvmDevices = self.menu.addMenu(_("LVM"))
        self.raidDevices = self.menu.addMenu(_("RAID"))

        self.createPartition = self.standardDevices.addAction(_("Partition"))
        self.createPartition.setWhatsThis(_("General purpose of partition creation"))
        self.createPartition.setVisible(False)
        self.createPhysicalVolume = self.lvmDevices.addAction(_("Physical Volume"))
        self.createPhysicalVolume.setWhatsThis(_("Create LVM formatted partition"))
        self.createPhysicalVolume.setVisible(False)
        self.createVolumeGroup = self.lvmDevices.addAction(_("Volume Group"))
        self.createVolumeGroup.setWhatsThis(_("Requires at least 1 free LVM formatted partition"))
        self.createVolumeGroup.setVisible(False)
        self.createLogicalVolume = self.lvmDevices.addAction(_("Logical Volume"))
        self.createLogicalVolume.setWhatsThis(_("Create Logical Volume on selected Volume Group"))
        self.createLogicalVolume.setVisible(False)
        self.createRaidMember = self.raidDevices.addAction(_("Member"))
        self.createRaidMember.setWhatsThis(_("Create Raid formatted partition"))
        self.createRaidMember.setVisible(False)
        self.createRaidArray= self.raidDevices.addAction(_("Array"))
        self.createRaidArray.setWhatsThis(_("Requires at least 2 free Raid formatted partition"))
        self.createRaidArray.setVisible(False)

        self.ui.newButton.setMenu(self.menu)
Example #19
0
 def context_menu(self, pos):
     m = QMenu()
     if self.items.count() > 0:
         m.addAction(QIcon(I('edit-copy.png')),
                     _('Copy list of errors to clipboard'),
                     self.copy_to_clipboard)
     if list(m.actions()):
         m.exec_(self.mapToGlobal(pos))
Example #20
0
 def build_menu(self, action):
     m = action.menu()
     ac = MenuAction(action, self)
     if m is None:
         m = QMenu()
         m.addAction(action)
     ac.setMenu(m)
     return ac
Example #21
0
 def show_context_menu(self, point):
     item = self.folders.itemAt(point)
     if item is None:
         return
     m = QMenu(self)
     m.addAction(QIcon(I('mimetypes/dir.png')), _('Create new folder'),
                 partial(self.create_folder, item))
     m.popup(self.folders.mapToGlobal(point))
Example #22
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':
            mt = (action.text() if self.action_menu_clone_qaction is True else
                  unicode(self.action_menu_clone_qaction))
            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, basestring) else tuple(shortcut))
            if shortcut_name is None and spec[0]:
                shortcut_name = unicode(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(e))
                    except:
                        pass
                    shortcut_action.setShortcuts([
                        QKeySequence(key, QKeySequence.PortableText)
                        for key in keys
                    ])

        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
Example #23
0
 def contextMenuEvent(self, ev):
     cm = QMenu(self)
     paste = cm.addAction(_('Paste Cover'))
     copy = cm.addAction(_('Copy Cover'))
     if not QApplication.instance().clipboard().mimeData().hasImage():
         paste.setEnabled(False)
     copy.triggered.connect(self.copy_to_clipboard)
     paste.triggered.connect(self.paste_from_clipboard)
     cm.exec_(ev.globalPos())
Example #24
0
    def __init__(self,
            prompt='>>> ',
            continuation='... ',
            parent=None):
        QTextEdit.__init__(self, parent)
        self.shutting_down = False
        self.compiler = CommandCompiler()
        self.buf = self.old_buf = []
        self.history = History([''], dynamic.get('console_history', []))
        self.prompt_frame = None
        self.allow_output = False
        self.prompt_frame_format = QTextFrameFormat()
        self.prompt_frame_format.setBorder(1)
        self.prompt_frame_format.setBorderStyle(QTextFrameFormat.BorderStyle_Solid)
        self.prompt_len = len(prompt)

        self.doc.setMaximumBlockCount(int(prefs['scrollback']))
        self.lexer = PythonLexer(ensurenl=False)
        self.tb_lexer = PythonTracebackLexer()

        self.context_menu = cm = QMenu(self) # {{{
        cm.theme = ThemeMenu(cm)
        # }}}

        self.formatter = Formatter(prompt, continuation, style=prefs['theme'])
        p = QPalette()
        p.setColor(p.Base, QColor(self.formatter.background_color))
        p.setColor(p.Text, QColor(self.formatter.color))
        self.setPalette(p)

        self.key_dispatcher = { # {{{
                Qt.Key_Enter : self.enter_pressed,
                Qt.Key_Return : self.enter_pressed,
                Qt.Key_Up : self.up_pressed,
                Qt.Key_Down : self.down_pressed,
                Qt.Key_Home : self.home_pressed,
                Qt.Key_End : self.end_pressed,
                Qt.Key_Left : self.left_pressed,
                Qt.Key_Right : self.right_pressed,
                Qt.Key_Backspace : self.backspace_pressed,
                Qt.Key_Delete : self.delete_pressed,
        } # }}}

        motd = textwrap.dedent('''\
        # Python {0}
        # {1} {2}
        '''.format(sys.version.splitlines()[0], __appname__,
            __version__))

        sys.excepthook = self.unhandled_exception

        self.controllers = []
        QTimer.singleShot(0, self.launch_controller)


        with EditBlock(self.cursor):
            self.render_block(motd)
Example #25
0
 def contextMenuEvent(self, ev):
     menu = QMenu(self)
     ca = self.pageAction(QWebPage.Copy)
     if ca.isEnabled():
         menu.addAction(ca)
     menu.addAction(actions['reload-preview'])
     menu.addAction(QIcon(I('debug.png')), _('Inspect element'),
                    self.inspect)
     menu.exec_(ev.globalPos())
Example #26
0
 def build_context_menu(self):
     cm = QMenu(self)
     paste = cm.addAction(_('Paste Cover'))
     copy = cm.addAction(_('Copy Cover'))
     if not QApplication.instance().clipboard().mimeData().hasImage():
         paste.setEnabled(False)
     copy.triggered.connect(self.copy_to_clipboard)
     paste.triggered.connect(self.paste_from_clipboard)
     return cm
Example #27
0
 def create_application_menubar(cls):
     mb = QMenuBar(None)
     menu = QMenu()
     for action in cls.get_menubar_actions():
         menu.addAction(action)
         cls.__actions.append(action)
         yield action
     mb.addMenu(menu)
     cls.___menu_bar = mb
     cls.___menu = menu
Example #28
0
 def contextMenuEvent(self, ev):
     m = QMenu(self)
     m.addAction(_('Sort alphabetically'), self.sort_alphabetically)
     hidden = self.current_db.prefs['virt_libs_hidden']
     if hidden:
         s = m._s = m.addMenu(_('Restore hidden tabs'))
         for x in hidden:
             s.addAction(x, partial(self.restore, x))
     m.addAction(_('Hide virtual library tabs'), self.disable_bar)
     m.exec_(ev.globalPos())
Example #29
0
    def genesis(self):
        # This method is called once per plugin, do initial setup here
        self.menu = QMenu(self.gui)
        self.old_actions_unique_map = {}

        icon_resources = self.load_resources(PLUGIN_ICONS)

        self.qaction.setMenu(self.menu)
        #self.qaction.setIcon(get_icon(PLUGIN_ICONS[0]))
        self.menu.aboutToShow.connect(self.about_to_show_menu)
Example #30
0
    def __init__(self):
        self.checked = QIcon(I('ok.png'))
        self.empty = QIcon(I('blank.png'))
        self.search_based_vl_name = None
        self.search_based_vl = None

        self.virtual_library_menu = QMenu()

        self.virtual_library.clicked.connect(self.virtual_library_clicked)

        self.virtual_library_tooltip = \
            _('Use a "virtual library" to show only a subset of the books present in this library')
        self.virtual_library.setToolTip(self.virtual_library_tooltip)

        self.search_restriction = ComboBoxWithHelp(self)
        self.search_restriction.setVisible(False)
        self.search_count.setText(_("(all books)"))
        self.ar_menu = QMenu(_('Additional restriction'))
        self.edit_menu = QMenu(_('Edit Virtual Library'))
        self.rm_menu = QMenu(_('Remove Virtual Library'))