From cdfe8401dc6c3a31f8181dff2ddd73cc241d2560 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Thu, 5 Apr 2018 16:32:33 +0200 Subject: [PATCH] Add CopyToClipboard global action --- .../plugins/global/load/copy_to_clipboard.py | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 colorbleed/plugins/global/load/copy_to_clipboard.py diff --git a/colorbleed/plugins/global/load/copy_to_clipboard.py b/colorbleed/plugins/global/load/copy_to_clipboard.py new file mode 100644 index 0000000000..c773ebfeb3 --- /dev/null +++ b/colorbleed/plugins/global/load/copy_to_clipboard.py @@ -0,0 +1,32 @@ +from avalon import api + + +class CopyToClipboardLoader(api.Loader): + """Copy published file to clipboard to allow to paste the content""" + representations = ["*"] + families = ["*"] + + label = "Copy to Clipboard" + order = 20 + icon = "clipboard" + color = "#999999" + + def load(self, context, name=None, namespace=None, data=None): + self.log.info("Added to clipboard: {0}".format(self.fname)) + self.copy_file_to_clipboard(self.fname) + + @staticmethod + def copy_file_to_clipboard(path): + from avalon.vendor.Qt import QtCore, QtWidgets + + app = QtWidgets.QApplication.instance() + assert app, "Must have running QApplication instance" + + # Build mime data for clipboard + mime = QtCore.QMimeData() + mime.setText(path) + mime.setUrls([QtCore.QUrl.fromLocalFile(path)]) + + # Set to Clipboard + clipboard = app.clipboard() + clipboard.setMimeData(mime)