summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorKaalleen <36401965+kaalleen@users.noreply.github.com>2021-07-21 17:20:04 +0200
committerGitHub <noreply@github.com>2021-07-21 17:20:04 +0200
commit1f725f42bbd299b6e5192a5404471a4fd89ae7f8 (patch)
tree891b05809f85db54e15b89aebcc15a715be4c6ce /lib
parentc5b78273456836d328945b546dc5f14213488e5f (diff)
install custom palette extension (#1171)
Diffstat (limited to 'lib')
-rw-r--r--lib/extensions/__init__.py2
-rw-r--r--lib/extensions/install_custom_palette.py42
2 files changed, 44 insertions, 0 deletions
diff --git a/lib/extensions/__init__.py b/lib/extensions/__init__.py
index 9a11e3bd..64e6af02 100644
--- a/lib/extensions/__init__.py
+++ b/lib/extensions/__init__.py
@@ -18,6 +18,7 @@ from .global_commands import GlobalCommands
from .import_threadlist import ImportThreadlist
from .input import Input
from .install import Install
+from .install_custom_palette import InstallCustomPalette
from .layer_commands import LayerCommands
from .lettering import Lettering
from .lettering_custom_font_dir import LetteringCustomFontDir
@@ -57,6 +58,7 @@ __all__ = extensions = [StitchPlanPreview,
Cleanup,
BreakApart,
ImportThreadlist,
+ InstallCustomPalette,
Simulator,
Reorder,
DuplicateParams,
diff --git a/lib/extensions/install_custom_palette.py b/lib/extensions/install_custom_palette.py
new file mode 100644
index 00000000..da546cad
--- /dev/null
+++ b/lib/extensions/install_custom_palette.py
@@ -0,0 +1,42 @@
+# Authors: see git history
+#
+# Copyright (c) 2021 Authors
+# Licensed under the GNU GPL version 3.0 or later. See the file LICENSE for details.
+
+import os
+import shutil
+
+import inkex
+
+from ..i18n import _
+from ..utils import guess_inkscape_config_path
+from .base import InkstitchExtension
+
+
+class InstallCustomPalette(InkstitchExtension):
+ def __init__(self, *args, **kwargs):
+ InkstitchExtension.__init__(self, *args, **kwargs)
+ self.arg_parser.add_argument("-f", "--filepath", type=str, default="", dest="filepath")
+
+ def effect(self):
+ gpl = self.options.filepath
+ if not os.path.isfile(gpl):
+ inkex.errormsg(_("File does not exist."))
+
+ palette_name = os.path.basename(gpl)
+ if not palette_name.endswith('.gpl'):
+ inkex.errormsg(_("Wrong file type. Ink/Stitch only accepts gpl color palettes."))
+
+ if not palette_name.startswith('InkStitch'):
+ palette_name = 'InkStitch %s' % palette_name
+
+ palette_path = os.path.join(guess_inkscape_config_path(), 'palettes')
+
+ if not os.path.isdir(palette_path):
+ inkex.errormsg(_("Ink/Stitch cannot find your palette folder automatically. Please install your palette manually."))
+ dest = os.path.join(palette_path, palette_name)
+ shutil.copyfile(gpl, dest)
+
+ if not os.path.isfile(dest):
+ inkex.errormsg("Something wwent wrong. Ink/Stitch wasn't able to copy your palette "
+ "file into the Inkscape palettes folder. Please do it manually.")