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)
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'))
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'))
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))
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'))
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.'))
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
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)
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)
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)
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
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)
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())
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)
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_()
def copy_to_clipboard(self): m = self.model() QApplication.clipboard().setText(getattr(m, 'as_plain_text', ''))
def copy_category_name_to_clipboard_clicked(self): t = self.category_box.itemText(self.category_box.currentIndex()) QApplication.clipboard().setText(t)
def copy_to_clipboard(self): QApplication.clipboard().setText(self.log.toPlainText())
def copy_item_to_clipboard(self, val): cb = QApplication.clipboard() cb.clear() cb.setText(val)
def copy_to_clipboard(self): QApplication.clipboard().setText(''.join(self.log.plain_text))
def copy_to_clipboard(self): txt = self.tb.toPlainText() QApplication.clipboard().setText(txt)
def copy_to_clipboard(self): QApplication.clipboard().setText(self.as_text)
def copy_to_clipboard(self, char_code): c = QApplication.clipboard() c.setText(codepoint_to_chr(char_code))
def copy_to_clipboard(self, item): cb = QApplication.clipboard() cb.setText(str(item.text()))
def paste_from_clipboard(self, item): cb = QApplication.clipboard() item.setText(cb.text())
def copy_to_clipboard(self): cb = QApplication.clipboard() cb.setText(unicode_type(self.context_item.text()))
def copy_to_clipboard(self, item): cb = QApplication.clipboard() cb.setText(unicode_type(item.text()))
def bd_copy_link(self, url): if url: QApplication.clipboard().setText(url)
def paste_from_clipboard(self): cb = QApplication.clipboard() self.context_item.setText(cb.text())