Ejemplo n.º 1
0
 def trigger_copy(self, text, html):
     if text:
         md = QMimeData()
         md.setText(text)
         if html:
             md.setHtml(html)
         QApplication.instance().clipboard().setMimeData(md)
Ejemplo n.º 2
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)
Ejemplo n.º 3
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()
Ejemplo n.º 4
0
def copy_all(web_view):
    web_view = getattr(web_view, 'details', web_view)
    mf = web_view.page().mainFrame()
    c = QApplication.clipboard()
    md = QMimeData()
    md.setText(mf.toPlainText())
    md.setHtml(mf.toHtml())
    c.setMimeData(md)
Ejemplo n.º 5
0
	def mousePressEvent(self, event):
		self.parentWidget().mousePressEvent(event)
		if not self.parentWidget().isDraging():
			super(WebView, self).mousePressEvent(event)
			if event.buttons() == Qt.LeftButton:
				mimeData = QMimeData()
				hitTestResult = self.mainFrame.hitTestContent(event.pos())
				# print(hitTestResult.linkUrl())
				# dragging the scrollbar
				if hitTestResult.isNull():
					self.draging = True
				if hitTestResult.isContentSelected():
					mimeData.setText(self.selectedText())
					mimeData.setHtml(self.selectedHtml())
				elif not hitTestResult.linkUrl().isEmpty():
					mimeData.setUrls([hitTestResult.linkUrl()])
					mimeData.setHtml(hitTestResult.element().toOuterXml())
				elif not hitTestResult.pixmap().isNull():
					mimeData.setImageData(hitTestResult.pixmap())
					mimeData.setUrls([hitTestResult.imageUrl()])
					mimeData.setHtml(hitTestResult.element().toOuterXml())
					# mimeData.setData('application/x-qt-windows-mime;value="FileContents"', QVariant(hitTestResult.pixmap()).toByteArray())
				# elif not hitTestResult.mediaUrl().isEmpty():
				# 	mimeData.setUrls([hitTestResult.mediaUrl()])
				# 	mimeData.setHtml(hitTestResult.element().toOuterXml())
				else:
					return
				# pixmap = hitTestResult.pixmap()
				# pixmap.setMask(QBitmap.fromImage(pixmap.toImage()))
				self.drag.setMimeData(mimeData)
Ejemplo n.º 6
0
 def mousePressEvent(self, event):
     self.parentWidget().mousePressEvent(event)
     if not self.parentWidget().isDraging():
         super(WebView, self).mousePressEvent(event)
         if event.buttons() == Qt.LeftButton:
             mimeData = QMimeData()
             hitTestResult = self.mainFrame.hitTestContent(event.pos())
             # print(hitTestResult.linkUrl())
             # dragging the scrollbar
             if hitTestResult.isNull():
                 self.draging = True
             if hitTestResult.isContentSelected():
                 mimeData.setText(self.selectedText())
                 mimeData.setHtml(self.selectedHtml())
             elif not hitTestResult.linkUrl().isEmpty():
                 mimeData.setUrls([hitTestResult.linkUrl()])
                 mimeData.setHtml(hitTestResult.element().toOuterXml())
             elif not hitTestResult.pixmap().isNull():
                 mimeData.setImageData(hitTestResult.pixmap())
                 mimeData.setUrls([hitTestResult.imageUrl()])
                 mimeData.setHtml(hitTestResult.element().toOuterXml())
                 # mimeData.setData('application/x-qt-windows-mime;value="FileContents"', QVariant(hitTestResult.pixmap()).toByteArray())
             # elif not hitTestResult.mediaUrl().isEmpty():
             # 	mimeData.setUrls([hitTestResult.mediaUrl()])
             # 	mimeData.setHtml(hitTestResult.element().toOuterXml())
             else:
                 return
             # pixmap = hitTestResult.pixmap()
             # pixmap.setMask(QBitmap.fromImage(pixmap.toImage()))
             self.drag.setMimeData(mimeData)
             self.dragStartPos = event.pos()