Esempio n. 1
0
 def copy_cover(self):
     idx = self.currentIndex()
     pmap = self.model().cover_pixmap(idx)
     if pmap is None and idx.row() == 0:
         pmap = self.model().cc
     if pmap is not None:
         QApplication.clipboard().setPixmap(pmap)
Esempio n. 2
0
 def copy_to_clipboard(self, *args):
     QApplication.clipboard().setText(
         'calibre, version %s\n%s: %s\n\n%s' %
         (__version__, unicode_type(
             self.windowTitle()), unicode_type(self.msg_label.text()),
          unicode_type(self.det_msg.toPlainText())))
     self.copy_button.setText(_('Copied'))
Esempio n. 3
0
 def copy_to_clipboard(self, *args):
     text = self.det_msg.toPlainText()
     if not self.only_copy_details:
         text = f'calibre, version {__version__}\n{self.windowTitle()}: {self.msg.text()}\n\n{text}'
     QApplication.clipboard().setText(text)
     if hasattr(self, 'ctc_button'):
         self.ctc_button.setText(_('Copied'))
Esempio n. 4
0
def show_font_face_rule_for_font_file(file_data, added_name, parent=None):
    rule = rule_for_font(BytesIO(file_data), added_name)
    QApplication.clipboard().setText(rule)
    QMessageBox.information(
        parent, _('Font file added'),
        _('The font file <b>{}</b> has been added. The text for the CSS @font-face rule for this file has been copied'
          ' to the clipboard. You should paste it into whichever CSS file you want to add this font to.'
          ).format(added_name))
Esempio n. 5
0
 def copy_to_clipboard(self, *args):
     d = QTextDocument()
     d.setHtml(self.msg_label.text())
     QApplication.clipboard().setText(
         'calibre, version %s (%s, embedded-python: %s)\n%s: %s\n\n%s' %
         (__version__, sys.platform, isfrozen, str(self.windowTitle()),
          str(d.toPlainText()), str(self.det_msg.toPlainText())))
     if hasattr(self, 'ctc_button'):
         self.ctc_button.setText(_('Copied'))
Esempio n. 6
0
 def copy_to_clipboard(self):
     items = []
     for item in (self.items.item(i) for i in range(self.items.count())):
         msg = str(item.text())
         msg = prefix_for_level(item.data(
             Qt.ItemDataRole.UserRole).level) + msg
         items.append(msg)
     if items:
         QApplication.clipboard().setText('\n'.join(items))
def show_font_face_rule_for_font_files(container, added_names, parent=None):
    rules = []
    for name in sorted(added_names):
        rule = rule_for_font(container.open(name), name)
        if rule:
            rules.append(rule)
    if rules:
        QApplication.clipboard().setText('\n\n'.join(rules))
        QMessageBox.information(parent, _('Font files added'), _(
        'The specified font files have been added. The text for the CSS @font-face rules for these files has been copied'
        ' to the clipboard. You should paste it into whichever CSS file you want to add these fonts to.'))
Esempio n. 8
0
 def char_selected(self, c):
     if QApplication.keyboardModifiers() & Qt.Modifier.CTRL:
         self.hide()
     if self.parent() is None or self.parent().focusWidget() is None:
         QApplication.clipboard().setText(c)
         return
     self.parent().activateWindow()
     w = self.parent().focusWidget()
     e = QInputMethodEvent('', [])
     e.setCommitString(c)
     if hasattr(w, 'no_popup'):
         oval = w.no_popup
         w.no_popup = True
     QApplication.sendEvent(w, e)
     if hasattr(w, 'no_popup'):
         w.no_popup = oval
Esempio n. 9
0
 def copy_metadata(self):
     rows = self.gui.library_view.selectionModel().selectedRows()
     if not rows or len(rows) == 0:
         return error_dialog(self.gui,
                             _('Cannot copy metadata'),
                             _('No books selected'),
                             show=True)
     if len(rows) > 1:
         return error_dialog(
             self.gui,
             _('Cannot copy metadata'),
             _('Multiple books selected, can only copy from one book at a time.'
               ),
             show=True)
     db = self.gui.current_db
     book_id = db.id(rows[0].row())
     mi = db.new_api.get_metadata(book_id)
     md = QMimeData()
     md.setText(str(mi))
     md.setData('application/calibre-book-metadata',
                bytearray(metadata_to_opf(mi, default_lang='und')))
     img = db.new_api.cover(book_id, as_image=True)
     if img:
         md.setImageData(img)
     c = QApplication.clipboard()
     c.setMimeData(md)
Esempio n. 10
0
def copy_all(text_browser):
    mf = getattr(text_browser, 'details', text_browser)
    c = QApplication.clipboard()
    md = QMimeData()
    md.setText(mf.toPlainText())
    md.setHtml(mf.toHtml())
    c.setMimeData(md)
Esempio n. 11
0
 def keyPressEvent(self, ev):
     if not self.view.handle_key(ev):
         if ev.key() in (Qt.Key.Key_Enter, Qt.Key.Key_Return):
             return  # The enter key is used by the search box, so prevent it closing the dialog
         if ev.key() == Qt.Key.Key_Slash:
             return self.search.setFocus(Qt.FocusReason.OtherFocusReason)
         if ev.matches(QKeySequence.StandardKey.Copy):
             text = self.view.view.left.selected_text + self.view.view.right.selected_text
             if text:
                 QApplication.clipboard().setText(text)
             return
         if ev.matches(QKeySequence.StandardKey.FindNext):
             self.sbn.click()
             return
         if ev.matches(QKeySequence.StandardKey.FindPrevious):
             self.sbp.click()
             return
         return Dialog.keyPressEvent(self, ev)
Esempio n. 12
0
 def copy(self):
     if not self.is_valid:
         return
     clipboard = QApplication.clipboard()
     if not self.has_selection or self.selection_state.rect is None:
         clipboard.setImage(self.current_image)
     else:
         trim = Trim(self)
         clipboard.setImage(trim.after_image)
         trim.before_image = trim.after_image = None
Esempio n. 13
0
 def paste(self):
     clipboard = QApplication.clipboard()
     md = clipboard.mimeData()
     if md.hasImage():
         img = QImage(md.imageData())
         if not img.isNull():
             self.undo_stack.push(Replace(img, _('Paste image'), self))
     else:
         error_dialog(self, _('No image'), _(
             'No image available in the clipboard'), show=True)
Esempio n. 14
0
 def contextMenuEvent(self, ev):
     self.parent().normalize_state()
     menu = self.createStandardContextMenu()
     menu.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
     ac = menu.addAction(_('Paste and &search'))
     ac.setEnabled(bool(QApplication.clipboard().text()))
     ac.setIcon(QIcon(I('search.png')))
     ac.triggered.connect(self.paste_and_search)
     for action in menu.actions():
         if action.text().startswith(_('&Paste') + '\t'):
             menu.insertAction(action, ac)
             break
     else:
         menu.addAction(ac)
     menu.addSeparator()
     if self.as_url is not None:
         url = self.as_url(self.text())
         if url:
             menu.addAction(_('Copy search as URL'), lambda : QApplication.clipboard().setText(url))
     menu.addAction(_('&Clear search history')).triggered.connect(self.clear_history)
     menu.exec_(ev.globalPos())
Esempio n. 15
0
 def do_paste(self, ignore_excluded_fields=False):
     rows = self.gui.library_view.selectionModel().selectedRows()
     if not rows or len(rows) == 0:
         return error_dialog(self.gui,
                             _('Cannot paste metadata'),
                             _('No books selected'),
                             show=True)
     c = QApplication.clipboard()
     md = c.mimeData()
     if not md.hasFormat('application/calibre-book-metadata'):
         return error_dialog(self.gui,
                             _('Cannot paste metadata'),
                             _('No copied metadata available'),
                             show=True)
     if len(rows) > 1:
         if not confirm(_(
                 'You are pasting metadata onto <b>multiple books</b> ({num_of_books}). Are you'
                 ' sure you want to do that?').format(
                     num_of_books=len(rows)),
                        'paste-onto-multiple',
                        parent=self.gui):
             return
     data = bytes(md.data('application/calibre-book-metadata'))
     mi = OPF(BytesIO(data),
              populate_spine=False,
              read_toc=False,
              try_to_guess_cover=False).to_book_metadata()
     mi.application_id = mi.uuid_id = None
     if ignore_excluded_fields:
         exclude = set()
     else:
         exclude = set(tweaks['exclude_fields_on_paste'])
     paste_cover = 'cover' not in exclude
     cover = md.imageData() if paste_cover else None
     exclude.discard('cover')
     for field in exclude:
         mi.set_null(field)
     db = self.gui.current_db
     book_ids = {db.id(r.row()) for r in rows}
     title_excluded = 'title' in exclude
     authors_excluded = 'authors' in exclude
     for book_id in book_ids:
         if title_excluded:
             mi.title = db.new_api.field_for('title', book_id)
         if authors_excluded:
             mi.authors = db.new_api.field_for('authors', book_id)
         db.new_api.set_metadata(book_id, mi, ignore_errors=True)
     if cover:
         db.new_api.set_cover({book_id: cover for book_id in book_ids})
     self.refresh_books_after_metadata_edit(book_ids)
Esempio n. 16
0
 def show_debug_info(self):
     info = self.device.device_debug_info()
     d = QDialog(self)
     d.l = l = QVBoxLayout()
     d.setLayout(l)
     d.v = v = QPlainTextEdit()
     d.setWindowTitle(self.device.get_gui_name())
     v.setPlainText(info)
     v.setMinimumWidth(400)
     v.setMinimumHeight(350)
     l.addWidget(v)
     bb = d.bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Close)
     bb.accepted.connect(d.accept)
     bb.rejected.connect(d.reject)
     l.addWidget(bb)
     bb.addButton(_('Copy to clipboard'), QDialogButtonBox.ButtonRole.ActionRole)
     bb.clicked.connect(lambda :
             QApplication.clipboard().setText(v.toPlainText()))
     d.exec_()
Esempio n. 17
0
 def copy_to_clipboard(self):
     m = self.model()
     QApplication.clipboard().setText(getattr(m, 'as_plain_text', ''))
Esempio n. 18
0
 def copy_category_name_to_clipboard_clicked(self):
     t = self.category_box.itemText(self.category_box.currentIndex())
     QApplication.clipboard().setText(t)
Esempio n. 19
0
 def copy_to_clipboard(self):
     QApplication.clipboard().setText(self.log.toPlainText())
Esempio n. 20
0
 def copy_item_to_clipboard(self, val):
     cb = QApplication.clipboard()
     cb.clear()
     cb.setText(val)
Esempio n. 21
0
 def copy_to_clipboard(self):
     QApplication.clipboard().setText(''.join(self.log.plain_text))
Esempio n. 22
0
 def copy_to_clipboard(self):
     txt = self.tb.toPlainText()
     QApplication.clipboard().setText(txt)
Esempio n. 23
0
 def copy_to_clipboard(self):
     QApplication.clipboard().setText(self.as_text)
Esempio n. 24
0
 def copy_to_clipboard(self, char_code):
     c = QApplication.clipboard()
     c.setText(codepoint_to_chr(char_code))
Esempio n. 25
0
 def copy_to_clipboard(self, item):
     cb = QApplication.clipboard()
     cb.setText(str(item.text()))
Esempio n. 26
0
 def paste_from_clipboard(self, item):
     cb = QApplication.clipboard()
     item.setText(cb.text())
Esempio n. 27
0
 def copy_to_clipboard(self):
     cb = QApplication.clipboard()
     cb.setText(unicode_type(self.context_item.text()))
Esempio n. 28
0
 def copy_to_clipboard(self, item):
     cb = QApplication.clipboard()
     cb.setText(unicode_type(item.text()))
Esempio n. 29
0
 def bd_copy_link(self, url):
     if url:
         QApplication.clipboard().setText(url)
Esempio n. 30
0
 def paste_from_clipboard(self):
     cb = QApplication.clipboard()
     self.context_item.setText(cb.text())