From 5fb1186483b2c31bbc972e8fbc939c429ec5df26 Mon Sep 17 00:00:00 2001 From: schriftgestalt Date: Thu, 4 Jun 2020 22:44:26 +0200 Subject: [PATCH 1/4] plugin structure --- LabelKey.glyphsPalette/Contents/Info.plist | 16 ++++------------ LabelKey.glyphsPalette/Contents/MacOS/main.py | 11 ----------- LabelKey.glyphsPalette/Contents/MacOS/plugin | Bin 56924 -> 21364 bytes LabelKey.glyphsPalette/Contents/PkgInfo | 1 - 4 files changed, 4 insertions(+), 24 deletions(-) delete mode 100644 LabelKey.glyphsPalette/Contents/MacOS/main.py mode change 100644 => 100755 LabelKey.glyphsPalette/Contents/MacOS/plugin delete mode 100644 LabelKey.glyphsPalette/Contents/PkgInfo diff --git a/LabelKey.glyphsPalette/Contents/Info.plist b/LabelKey.glyphsPalette/Contents/Info.plist index fd13dba..c0d8068 100644 --- a/LabelKey.glyphsPalette/Contents/Info.plist +++ b/LabelKey.glyphsPalette/Contents/Info.plist @@ -1,11 +1,9 @@ - + CFBundleDevelopmentRegion - English - CFBundleDisplayName - Label Key + en CFBundleExecutable plugin CFBundleIdentifier @@ -14,12 +12,10 @@ 6.0 CFBundleName Label Key - CFBundlePackageType - BNDL - CFBundleVersion - 2.0 CFBundleShortVersionString 2.0 + CFBundleVersion + 3 UpdateFeedURL https://github.com/RobertPratley/labelKey/LabelKey.glyphsPalette/Contents/Info.plist productPageURL @@ -30,9 +26,5 @@ Copyright, RobertPratley, 2017 NSPrincipalClass labelKey - PyMainFileNames - - ../MacOS/main.py - diff --git a/LabelKey.glyphsPalette/Contents/MacOS/main.py b/LabelKey.glyphsPalette/Contents/MacOS/main.py deleted file mode 100644 index 98f307d..0000000 --- a/LabelKey.glyphsPalette/Contents/MacOS/main.py +++ /dev/null @@ -1,11 +0,0 @@ -def _run(*scripts): - global __file__ - import os, sys #, site - sys.frozen = 'macosx_plugin' - base = os.environ['RESOURCEPATH'] - for script in scripts: - path = os.path.join(base, script) - __file__ = path - execfile(path, globals(), globals()) - -_run('plugin.py') diff --git a/LabelKey.glyphsPalette/Contents/MacOS/plugin b/LabelKey.glyphsPalette/Contents/MacOS/plugin old mode 100644 new mode 100755 index b21f0e490123246868a0871f758ac53ed4c23d62..82bb118f3e630d7ac8438cf3c21fd24d79043cb4 GIT binary patch literal 21364 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 literal 56924 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

7eMUO`~A7L)S-3ZSj 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 WKHh|^)uOdb{I@%FFuu7ThyM%ug;eJN diff --git a/LabelKey.glyphsPalette/Contents/PkgInfo b/LabelKey.glyphsPalette/Contents/PkgInfo deleted file mode 100644 index 19a9cf6..0000000 --- a/LabelKey.glyphsPalette/Contents/PkgInfo +++ /dev/null @@ -1 +0,0 @@ -BNDL???? \ No newline at end of file From 845e0c3be90e4f1847649dd902b0b92ce0e94881 Mon Sep 17 00:00:00 2001 From: schriftgestalt Date: Thu, 4 Jun 2020 22:45:53 +0200 Subject: [PATCH 2/4] python 3 --- .../Contents/Resources/plugin.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/LabelKey.glyphsPalette/Contents/Resources/plugin.py b/LabelKey.glyphsPalette/Contents/Resources/plugin.py index 0641f38..fde551e 100644 --- a/LabelKey.glyphsPalette/Contents/Resources/plugin.py +++ b/LabelKey.glyphsPalette/Contents/Resources/plugin.py @@ -1,4 +1,5 @@ # encoding: utf-8 +from __future__ import division, print_function, unicode_literals ########################################################################################################### # @@ -11,6 +12,7 @@ # ########################################################################################################### from vanilla import * +import objc import re import os import codecs @@ -19,8 +21,8 @@ class labelKey(PalettePlugin): - - def settings( self ): + @objc.python_method + def settings(self): self.name = 'Label Key' self.width = 160 self.elementHeight = 16 @@ -52,6 +54,7 @@ def settings( self ): colours.append(color) self.colours = dict(zip(colorKeys, colours)) + @objc.python_method def update(self, sender): if hasattr(self.paletteView.frame, 'labels'): delattr(self.paletteView.frame, 'labels') @@ -62,7 +65,8 @@ def update(self, sender): newHeight = self.elementHeight * len(self.order) self.paletteView.frame.resize(self.width, newHeight + 10) - def draw( self, view ): + @objc.python_method + def draw(self, view): keyDiameter = 10 height = view.bounds().size.height for num, i in enumerate(self.order, 1): @@ -73,7 +77,8 @@ def draw( self, view ): self.colours[i].set() NSBezierPath.bezierPathWithOvalInRect_(((0, height - (num * self.elementHeight)), (keyDiameter, keyDiameter))).fill() - def getKeyFile( self ): + @objc.python_method + def getKeyFile(self): keyFile = None try: thisDirPath = os.path.dirname(self.windowController().document().font.filepath) @@ -85,8 +90,8 @@ def getKeyFile( self ): if keyFile is None: keyFile = os.path.expanduser('~/Library/Application Support/Glyphs/Info/labelkey.txt') return keyFile - - def mapKeys( self, keyFile ): + @objc.python_method + def mapKeys(self, keyFile): order = [] colourLabels = {} if os.path.exists(keyFile): @@ -107,6 +112,7 @@ def setWindowController_(self, windowController): import traceback self.logError(traceback.format_exc()) + @objc.python_method def __file__(self): """Please leave this method unchanged""" return __file__ From 25181df936b34387206c0be8fe334e776cae7480 Mon Sep 17 00:00:00 2001 From: schriftgestalt Date: Thu, 4 Jun 2020 22:46:09 +0200 Subject: [PATCH 3/4] avoid warning --- LabelKey.glyphsPalette/Contents/Resources/plugin.py | 1 + 1 file changed, 1 insertion(+) diff --git a/LabelKey.glyphsPalette/Contents/Resources/plugin.py b/LabelKey.glyphsPalette/Contents/Resources/plugin.py index fde551e..3a56e14 100644 --- a/LabelKey.glyphsPalette/Contents/Resources/plugin.py +++ b/LabelKey.glyphsPalette/Contents/Resources/plugin.py @@ -53,6 +53,7 @@ def settings(self): color = NSUnarchiver.unarchiveObjectWithData_(colorData) colours.append(color) self.colours = dict(zip(colorKeys, colours)) + self.order = [] @objc.python_method def update(self, sender): From 94ef45cbab1c657f1fc8d3b260dffbb38a40195b Mon Sep 17 00:00:00 2001 From: schriftgestalt Date: Wed, 1 Sep 2021 10:42:18 +0200 Subject: [PATCH 4/4] update binary --- LabelKey.glyphsPalette/Contents/MacOS/plugin | Bin 21364 -> 120208 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/LabelKey.glyphsPalette/Contents/MacOS/plugin b/LabelKey.glyphsPalette/Contents/MacOS/plugin index 82bb118f3e630d7ac8438cf3c21fd24d79043cb4..3d1b859479f7b5fe89ad69d8523a57c7349f025b 100755 GIT binary patch literal 120208 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 literal 21364 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