Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'archipack/archipack_material.py')
-rw-r--r--archipack/archipack_material.py49
1 files changed, 24 insertions, 25 deletions
diff --git a/archipack/archipack_material.py b/archipack/archipack_material.py
index 2bcd3e40..cbec80cd 100644
--- a/archipack/archipack_material.py
+++ b/archipack/archipack_material.py
@@ -225,6 +225,8 @@ class MaterialSetManager():
self.objects = {}
# hold reference of dynamic enumerator
self.enums = {}
+ self.default_enum = [('DEFAULT', 'Default', '', 0)]
+
def get_filename(self, object_type):
@@ -262,9 +264,9 @@ class MaterialSetManager():
material_sets = {}
# create file object, and set open mode
- if os.path.exists(filename):
- try:
- f = open(filename, 'r')
+
+ try:
+ with open(filename, 'r') as f:
lines = f.readlines()
for line in lines:
@@ -272,17 +274,15 @@ class MaterialSetManager():
if str(s_key) not in material_sets.keys():
material_sets[s_key] = []
material_sets[s_key].append(mat_name.strip())
- except:
- print("Archipack: An error occurred while loading {}".format(filename))
- pass
- finally:
- f.close()
+ except:
+ print("Archipack: material preset for {} not found".format(object_type))
+ pass
- s_keys = material_sets.keys()
- for s_key in s_keys:
- self.register_set(object_type, s_key, material_sets[s_key])
+ s_keys = material_sets.keys()
+ for s_key in s_keys:
+ self.register_set(object_type, s_key, material_sets[s_key])
- self.make_enum(object_type, s_keys)
+ self.make_enum(object_type, s_keys)
def save(self, object_type):
# always save in user prefs
@@ -330,17 +330,15 @@ class MaterialSetManager():
if object_type not in self.objects.keys():
self.load(object_type)
if object_type not in self.objects.keys():
- print("Archipack: Unknown object type {}".format(object_type))
+ # print("Archipack: Unknown object type {}".format(object_type))
return None
if set_name not in self.objects[object_type].keys():
- print("Archipack: set {} not found".format(set_name))
+ # print("Archipack: set {} not found".format(set_name))
return None
return self.objects[object_type][set_name]
def make_enum(self, object_type, s_keys):
- if len(s_keys) < 1:
- self.enums[object_type] = [('DEFAULT', 'Default', '', 0)]
- else:
+ if len(s_keys) > 0:
self.enums[object_type] = [(s.upper(), s.capitalize(), '', i) for i, s in enumerate(s_keys)]
def get_enum(self, object_type):
@@ -351,7 +349,10 @@ class MaterialSetManager():
if object_type not in self.objects.keys():
self.objects[object_type] = {}
- return self.enums[object_type]
+ if object_type in self.enums:
+ return self.enums[object_type]
+
+ return self.default_enum
def material_enum(self, context):
@@ -411,7 +412,7 @@ class archipack_material(PropertyGroup):
mats = setman.get_materials(self.category, self.material)
- if mats is None:
+ if mats is None or len(mats) < 1:
return False
for ob in sel:
@@ -484,13 +485,11 @@ class ARCHIPACK_OT_material(Operator):
res = False
pass
- if res:
- # print("ARCHIPACK_OT_material.apply {} {}".format(self.category, self.material))
- return {'FINISHED'}
- else:
+ if not res:
print("Archipack: unable to add material {} for {}".format(self.material, self.category))
- self.report({'WARNING'}, 'Material {} for {} not found'.format(self.material, self.category))
- return {'CANCELLED'}
+ # self.report({'WARNING'}, 'Material {} for {} not found'.format(self.material, self.category))
+
+ return {'FINISHED'}
class ARCHIPACK_OT_material_add(Operator):