Skip to content

Instantly share code, notes, and snippets.

@herronelou
Created October 23, 2023 23:46
Show Gist options
  • Save herronelou/ced839c1ab7e4048a80491acae499d2d to your computer and use it in GitHub Desktop.
Save herronelou/ced839c1ab7e4048a80491acae499d2d to your computer and use it in GitHub Desktop.
Mime Cleaner to allow pasting from PyCharm to Nuke
from PySide2 import QtCore, QtWidgets
class MimeCleaner(QtCore.QObject):
""" Event filter to clean-up MimeData when pasting from PyCharm"""
def __init__(self):
super(MimeCleaner, self).__init__()
QtWidgets.QApplication.instance().installEventFilter(self)
def eventFilter(self, widget, event):
if event.type() is QtCore.QEvent.KeyPress and event.key() == QtCore.Qt.Key_V:
if QtWidgets.QApplication.keyboardModifiers() & QtCore.Qt.ControlModifier:
if isinstance(widget, QtWidgets.QPlainTextEdit):
self.sanitize_mime()
return False
def remove(self):
QtWidgets.QApplication.instance().removeEventFilter(self)
@staticmethod
def sanitize_mime():
clipboard = QtWidgets.QApplication.clipboard()
mime_data = clipboard.mimeData()
new_mime_data = QtCore.QMimeData()
for mime_format in mime_data.formats():
if mime_format not in ['text/uri-list']:
new_mime_data.setData(mime_format, mime_data.data(mime_format))
clipboard.setMimeData(new_mime_data)
mdc = MimeCleaner()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment