Skip to content

Commit c1cb9a6

Browse files
committed
Install printer data at plugin startup.
1 parent ec06ac6 commit c1cb9a6

File tree

3 files changed

+39
-10
lines changed

3 files changed

+39
-10
lines changed

plugins/FlashforgeFinderIntegration/Installer.py

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11

22
import os
33
import shutil
4+
import errno
45

56
from UM.i18n import i18nCatalog
67
from UM.Extension import Extension
@@ -18,7 +19,7 @@ def __init__(self):
1819
self.setMenuName("Flashforge Finder")
1920
self.addMenuItem(catalog.i18nc("@item:inmenu", "Install printer support"), self.installFiles)
2021

21-
def installFiles(self):
22+
def installFiles(self, showMessage=True):
2223
Logger.log("i", "Installing printer support files (*.def.json, meshes and scripts) ...")
2324

2425
# Local paths
@@ -44,6 +45,22 @@ def installFiles(self):
4445
"PauseAtLayerFFFinder.py": {
4546
"src": os.path.join(plugin_path, "scripts"),
4647
"dst": os.path.join(resources_path, "scripts")
48+
},
49+
"finder_low.inst.cfg": {
50+
"src": os.path.join(plugin_path, "printer", "quality", "finder"),
51+
"dst": os.path.join(resources_path, "quality", "finder")
52+
},
53+
"finder_standard.inst.cfg": {
54+
"src": os.path.join(plugin_path, "printer", "quality", "finder"),
55+
"dst": os.path.join(resources_path, "quality", "finder")
56+
},
57+
"finder_high.inst.cfg": {
58+
"src": os.path.join(plugin_path, "printer", "quality", "finder"),
59+
"dst": os.path.join(resources_path, "quality", "finder")
60+
},
61+
"finder_hyper.inst.cfg": {
62+
"src": os.path.join(plugin_path, "printer", "quality", "finder"),
63+
"dst": os.path.join(resources_path, "quality", "finder")
4764
}
4865
}
4966

@@ -56,15 +73,22 @@ def installFiles(self):
5673
if not os.path.exists(dst):
5774
Logger.log("i", "Installing resource '%s' into '%s'" % (src, dst))
5875
if not os.path.exists(dst_dir):
59-
os.mkdir(dst_dir)
76+
try:
77+
os.makedirs(dst_dir)
78+
except OSError as e:
79+
if e.errno == errno.EEXIST and os.path.isdir(dst_dir):
80+
pass
81+
else:
82+
raise
6083
shutil.copy2(src, dst, follow_symlinks=False)
6184
restart_required = True
6285

6386
# Display a message to the user
64-
if restart_required:
65-
msg = catalog.i18nc("@info:status", "Flashforge Finder files installed. Please restart Cura.")
66-
else:
67-
msg = catalog.i18nc("@info:status", "Flashforge Finder files were already installed.")
68-
Message(msg).show()
87+
if showMessage:
88+
if restart_required:
89+
msg = catalog.i18nc("@info:status", "Flashforge Finder files installed. Please restart Cura.")
90+
else:
91+
msg = catalog.i18nc("@info:status", "Flashforge Finder files were already installed.")
92+
Message(msg).show()
6993

7094
return

plugins/FlashforgeFinderIntegration/__init__.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,17 @@
88
from UM.Logger import Logger
99
try:
1010
from . import Installer
11-
_registry = { "extension": Installer.Installer() }
11+
_installer = Installer.Installer()
12+
_registry = { "extension": _installer }
1213
except ImportError:
14+
_registry = None
1315
Logger.log("w", "Could not import GXWriter")
1416

1517
def getMetaData():
1618
return {}
1719

1820
def register(app):
19-
return _registry
21+
if _registry is not None:
22+
_installer.installFiles(showMessage=False)
23+
return _registry
24+
return {}

0 commit comments

Comments
 (0)