Esempio n. 1
0
 def _copy_links(self, lines):
     urls = QUrl.fromStringList(lines)
     cb = QApplication.instance().clipboard()
     md = QMimeData()
     md.setText('\n'.join(lines))
     md.setUrls(urls)
     cb.setMimeData(md)
Esempio n. 2
0
 def copy_image(self, name):
     path = get_path_for_name(name)
     if not path:
         return error_dialog(self, _('Image not found'), _(
             "Failed to find the image {}").format(name), show=True)
     try:
         img = image_from_path(path)
     except Exception:
         return error_dialog(self, _('Invalid image'), _(
             "Failed to load the image {}").format(name), show=True)
     url = QUrl.fromLocalFile(path)
     md = QMimeData()
     md.setImageData(img)
     md.setUrls([url])
     QApplication.instance().clipboard().setMimeData(md)
Esempio n. 3
0
def drag_data(self):
    m = self.model()
    db = m.db
    selected = self.get_selected_ids()
    ids = ' '.join(map(str, selected))
    md = QMimeData()
    md.setData('application/calibre+from_library', ids.encode('utf-8'))
    fmt = prefs['output_format']

    def url_for_id(i):
        try:
            ans = db.format_path(i, fmt, index_is_id=True)
        except:
            ans = None
        if ans is None:
            fmts = db.formats(i, index_is_id=True)
            if fmts:
                fmts = fmts.split(',')
            else:
                fmts = []
            for f in fmts:
                try:
                    ans = db.format_path(i, f, index_is_id=True)
                except:
                    ans = None
        if ans is None:
            ans = db.abspath(i, index_is_id=True)
        return QUrl.fromLocalFile(ans)

    md.setUrls([url_for_id(i) for i in selected])
    drag = QDrag(self)
    col = self.selectionModel().currentIndex().column()
    try:
        md.column_name = self.column_map[col]
    except AttributeError:
        md.column_name = 'title'
    drag.setMimeData(md)
    cover = self.drag_icon(m.cover(self.currentIndex().row()),
                           len(selected) > 1)
    drag.setHotSpot(QPoint(-15, -15))
    drag.setPixmap(cover)
    return drag