chiark / gitweb /
Add support for machine-independent quickprint ini settings
authorYouness Alaoui <kakaroto@kakaroto.homelinux.net>
Tue, 3 Mar 2015 21:02:11 +0000 (16:02 -0500)
committerYouness Alaoui <kakaroto@kakaroto.homelinux.net>
Tue, 3 Mar 2015 21:44:43 +0000 (16:44 -0500)
Cura/util/resources.py

index 22ba918c8cc14f3096022572ba7a9530ac033a0c..2a9e8eeb109d6ec443ade17764d59b48229cb989 100644 (file)
@@ -12,6 +12,7 @@ import platform
 import locale
 
 import gettext
+import profile
 
 if sys.platform.startswith('darwin'):
        try:
@@ -51,26 +52,27 @@ def getDefaultMachineProfiles():
        path = os.path.normpath(os.path.join(resourceBasePath, 'machine_profiles', '*.ini'))
        return glob.glob(path)
 
+def getSimpleModeIniFiles(subdir):
+       machine_type = profile.getMachineSetting('machine_type')
+       paths = []
+       paths.append(os.path.normpath(os.path.expanduser(os.path.join('~', '.Cura', 'quickprint', machine_type, subdir))))
+       paths.append(os.path.normpath(os.path.expanduser(os.path.join('~', '.Cura', 'quickprint', subdir))))
+       paths.append(os.path.normpath(os.path.join(resourceBasePath, 'quickprint', machine_type, subdir)))
+       paths.append(os.path.normpath(os.path.join(resourceBasePath, 'quickprint', subdir)))
+       for path in paths:
+               if os.path.isdir(path):
+                       return sorted(glob.glob(os.path.join(path, '*.ini')))
+       return []
+
+
 def getSimpleModeProfiles():
-       path = os.path.normpath(os.path.join(resourceBasePath, 'quickprint', 'profiles', '*.ini'))
-       user_path = os.path.normpath(os.path.expanduser(os.path.join('~', '.Cura', 'quickprint', 'profiles')))
-       if os.path.isdir(user_path):
-               return sorted(glob.glob(user_path))
-       return sorted(glob.glob(path))
+       return getSimpleModeIniFiles('profiles')
 
 def getSimpleModeMaterials():
-       path = os.path.normpath(os.path.join(resourceBasePath, 'quickprint', 'materials', '*.ini'))
-       user_path = os.path.normpath(os.path.expanduser(os.path.join('~', '.Cura', 'quickprint', 'materials')))
-       if os.path.isdir(user_path):
-               return sorted(glob.glob(user_path))
-       return sorted(glob.glob(path))
+       return getSimpleModeIniFiles('materials')
 
 def getSimpleModeOptions():
-       path = os.path.normpath(os.path.join(resourceBasePath, 'quickprint', 'options', '*.ini'))
-       user_path = os.path.normpath(os.path.expanduser(os.path.join('~', '.Cura', 'quickprint', 'options')))
-       if os.path.isdir(user_path):
-               return sorted(glob.glob(user_path))
-       return sorted(glob.glob(path))
+       return getSimpleModeIniFiles('options')
 
 def setupLocalization(selectedLanguage = None):
        #Default to english