Example #1
0
    def createMimeDataFromSelection(self):
        result = QMimeData()
        cursor = self.textCursor()
        selection = cursor.selectedText()
        selection = selection.replace('\u2029', '\n')
        selection = selection.replace('\u2028', '\n')
        result.setText(selection)

        # create an xml representation of the selected document structure
        traversal = TextDocumentSelectionTraversal()
        frame = traversal.traverse(self.textCursor(), self.document())

        print('\n-----------------------------------------------')
        printer = StructurePrinter(frame, self.outPut)
        printer.traverse()
        print('-----------------------------------------------')

        return

        sp = AppXmlPrinter(frame, None)
        sp.traverse()

        blafasel = '''<?xml version="1.0" encoding="utf-8"?>
<article version="5.0" xml:lang="en"
         xmlns="http://docbook.org/ns/docbook"
         xmlns:xlink="http://www.w3.org/1999/xlink">
  <title></title></article>'''
        result.setData("application/xml", blafasel)
        return result
Example #2
0
    def createMimeDataFromSelection(self):
        result = QMimeData()
        cursor = self.textCursor()
        selection = cursor.selectedText()
        selection = selection.replace('\u2029', '\n')
        selection = selection.replace('\u2028', '\n')
        result.setText(selection)

        # create an xml representation of the selected document structure 
        traversal = TextDocumentSelectionTraversal()
        frame = traversal.traverse(self.textCursor(), self.document())

        print('\n-----------------------------------------------')
        printer = StructurePrinter(frame, self.outPut)
        printer.traverse()
        print('-----------------------------------------------')

        return

        sp = AppXmlPrinter(frame, None)
        sp.traverse()

        blafasel = '''<?xml version="1.0" encoding="utf-8"?>
<article version="5.0" xml:lang="en"
         xmlns="http://docbook.org/ns/docbook"
         xmlns:xlink="http://www.w3.org/1999/xlink">
  <title></title></article>'''
        result.setData("application/xml", blafasel)
        return result
Example #3
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(unicode_type(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)
Example #4
0
def set_clipboard(**kwargs):
	text = kwargs.get('text', None)
	html = kwargs.get('html', None)
	internal = kwargs.get('internal', False)
	kwargs['internal'] = True # set internal for nested invocations
	if text is not None and html is not None:
		raise ValueError()
	if internal:
		if not os.fork():
			os.close(sys.stdin.fileno())
			os.close(sys.stdout.fileno())
			os.close(sys.stderr.fileno())
			mime = QMimeData()
			mime.setData('text/application', b'queso')
			if text is not None:
				mime.setText(text)
			if html is not None:
				mime.setHtml(html)
			clip = get_application().clipboard()
			clip.setMimeData(mime)
			clip.dataChanged.connect(get_application().exit)
			sys.exit(get_application().exec_())
	else:
		p = multiprocessing.get_context('spawn').Process(target=set_clipboard, kwargs=kwargs, daemon=True)
		p.start()
Example #5
0
 def mime_data_for_copy(self):
     md = QMimeData()
     text = self.lineEdit().selectedText()
     md.setText(text or self.dateTime().toString())
     md.setData(
         self.MIME_TYPE,
         self.dateTime().toString(Qt.DateFormat.ISODate).encode('ascii'))
     return md
 def mimeData(self, indexes):
     result = QMimeData()
     node = self.qt_index_to_node(indexes[0])
     if node is not None:
         path_data = encode_seq_component_tree_node_path(
             self._project_tree_controller.active_node.abs_name_path,
             node.abs_name_path)
         result.setData(SEQUENCE_COMPONENT_TREE_NODE_PATH_MEDIA_TYPE,
                        path_data)
     return result
 def mimeData(self, indices):
     mimeData = QMimeData()
     encodedData = QByteArray()
     stream = QDataStream(encodedData, QIODevice.WriteOnly)
     for index in indices:
         if index.column() == 1:
             d = QVariant(self.data(index, Qt.DecorationRole))
         else:
             d = QVariant(self.data(index, Qt.DisplayRole).toString())
         stream << d
     mimeData.setData('application/target.tableitem.creepy', encodedData)
     return mimeData
Example #8
0
 def drag_data(self):
     m = self.model()
     rows = self.selectionModel().selectedRows()
     paths = [force_unicode(p, enc=filesystem_encoding) for p in m.paths(rows) if p]
     md = QMimeData()
     md.setData("application/calibre+from_device", b"dummy")
     md.setUrls([QUrl.fromLocalFile(p) for p in paths])
     drag = QDrag(self)
     drag.setMimeData(md)
     cover = self.drag_icon(m.cover(self.currentIndex().row()), len(paths) > 1)
     drag.setHotSpot(QPoint(-15, -15))
     drag.setPixmap(cover)
     return drag
Example #9
0
 def drag_data(self):
     m = self.model()
     rows = self.selectionModel().selectedRows()
     paths = [force_unicode(p, enc=filesystem_encoding) for p in m.paths(rows) if p]
     md = QMimeData()
     md.setData('application/calibre+from_device', 'dummy')
     md.setUrls([QUrl.fromLocalFile(p) for p in paths])
     drag = QDrag(self)
     drag.setMimeData(md)
     cover = self.drag_icon(m.cover(self.currentIndex().row()), len(paths) >
             1)
     drag.setHotSpot(QPoint(-15, -15))
     drag.setPixmap(cover)
     return drag
Example #10
0
 def mimeData(self, indexes):
     '''
     @param: indexes QModelIndexList
     @return: QMimeData
     '''
     mimeData = QMimeData()
     self._tmpMimeItems = []
     for index in indexes:
         # If item's parent (=folder) is also selected, we will just move the
         # whole folder
         if index.isValid() and index.column() == 0 and index.parent() not in indexes:
             item = index.internalPointer()
             assert(isinstance(item, BookmarkItem))
             self._tmpMimeItems.append(item)
     mimeData.setData(self.MIMETYPE, b'')
     return mimeData
Example #11
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(unicode(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)
Example #12
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
Example #13
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
Example #14
0
    def mouseMoveEvent(self, event):
        '''
        @param: event QMouseEvent
        '''
        super().mouseMoveEvent(event)

        if gVar.app.plugins().processMouseMove(const.ON_TabBar, self, event):
            return

        if self.count() == 1 and gVar.app.windowCount() == 1:
            return

        if not self._dragStartPosition.isNull():
            offset = 0
            eventY = event.pos().y()
            if eventY < 0:
                offset = abs(eventY)
            elif eventY > self.height():
                offset = eventY - self.height()
            if offset > QApplication.startDragDistance() * 3:
                global_ = self.mapToGlobal(self._dragStartPosition)
                w = QApplication.widgetAt(global_)
                if w:
                    mouse = QMouseEvent(QEvent.MouseButtonRelease,
                                        w.mapFromGlobal(global_),
                                        Qt.LeftButton, Qt.LeftButton,
                                        event.modifiers())
                    QApplication.sendEvent(w, mouse)
                drag = QDrag(self)
                mime = QMimeData()
                mime.setData(self.MIMETYPE, b'')
                drag.setMimeData(mime)
                drag.setPixmap(self.tabPixmap(self.currentIndex()))
                if drag.exec_() == Qt.IgnoreAction:
                    self._tabWidget.detachTabByIndex(self.currentIndex())
                return
Example #15
0
 def mimeData(self, indexes):
     data = ','.join(str(i.row()) for i in indexes)
     md = QMimeData()
     md.setData('application/calibre_charcode_indices',
                data.encode('utf-8'))
     return md
Example #16
0
 def mimeData(self, indexes):
     data = ",".join(str(i.row()) for i in indexes)
     md = QMimeData()
     md.setData("application/calibre_charcode_indices", data.encode("utf-8"))
     return md
Example #17
0
 def mimeData(self, indexes):
     data = ','.join(str(i.row()) for i in indexes)
     md = QMimeData()
     md.setData('application/calibre_charcode_indices', data.encode('utf-8'))
     return md
Example #18
0
 def mimeData(self, indexes):
     result = QMimeData()
     node = self.qt_index_to_node(indexes[0])
     path_data = encode_project_tree_node_path(node.abs_name_path)
     result.setData(PROJECT_TREE_NODE_PATH_MEDIA_TYPE, path_data)
     return result
Example #19
0
 def date_time_copied(self, text):
     md = QMimeData()
     md.setText(text or self.dateTime().toString())
     md.setData(LineEditForDateTimeEdit.MIME_TYPE,
                self.dateTime().toString(Qt.ISODate).encode('ascii'))
     QApplication.instance().clipboard().setMimeData(md)