From 9fb17f963a87f8b8b76f3bdbfb1ac595f96c7b38 Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Sat, 20 Apr 2019 12:21:57 +0200 Subject: [PATCH] job killer icon change --- pype/ftrack/actions/action_job_killer.py | 2 +- res/ftrack/action_icons/JobKiller-512.png | Bin 14539 -> 0 bytes res/ftrack/action_icons/JobKiller.svg | 374 ++++++++++++++++++++++ 3 files changed, 375 insertions(+), 1 deletion(-) delete mode 100644 res/ftrack/action_icons/JobKiller-512.png create mode 100644 res/ftrack/action_icons/JobKiller.svg diff --git a/pype/ftrack/actions/action_job_killer.py b/pype/ftrack/actions/action_job_killer.py index 8334e1a4f5..393b6a91a1 100644 --- a/pype/ftrack/actions/action_job_killer.py +++ b/pype/ftrack/actions/action_job_killer.py @@ -18,7 +18,7 @@ class JobKiller(BaseAction): description = 'Killing selected running jobs' #: roles that are allowed to register this action role_list = ['Pypeclub', 'Administrator'] - icon = '{}/ftrack/action_icons/JobKiller-512.png'.format( + icon = '{}/ftrack/action_icons/JobKiller.svg'.format( os.environ.get('PYPE_STATICS_SERVER', '') ) diff --git a/res/ftrack/action_icons/JobKiller-512.png b/res/ftrack/action_icons/JobKiller-512.png deleted file mode 100644 index 059d70b53c4d401354b39acb6c4e2d32622f1ccd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14539 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 BJOcm# diff --git a/res/ftrack/action_icons/JobKiller.svg b/res/ftrack/action_icons/JobKiller.svg new file mode 100644 index 0000000000..595c780a9b --- /dev/null +++ b/res/ftrack/action_icons/JobKiller.svg @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +