Skip to content

copy_file

CopyFile

Bases: LoaderPlugin

Copy the published file to be pasted at the desired location

Source code in client/ayon_core/plugins/load/copy_file.py
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class CopyFile(load.LoaderPlugin):
    """Copy the published file to be pasted at the desired location"""

    representations = {"*"}
    product_types = {"*"}

    label = "Copy File"
    order = 10
    icon = "copy"
    color = get_default_entity_icon_color()

    def load(self, context, name=None, namespace=None, data=None):
        path = self.filepath_from_context(context)
        self.log.info("Added copy to clipboard: {0}".format(path))
        self.copy_file_to_clipboard(path)

    @staticmethod
    def copy_file_to_clipboard(path):
        from qtpy import QtCore, QtWidgets

        clipboard = QtWidgets.QApplication.clipboard()
        assert clipboard, "Must have running QApplication instance"

        # Build mime data for clipboard
        data = QtCore.QMimeData()
        url = QtCore.QUrl.fromLocalFile(path)
        data.setUrls([url])

        # Set to Clipboard
        clipboard.setMimeData(data)