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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Dinges <blender@dingto.org>2013-06-13 12:06:09 +0400
committerThomas Dinges <blender@dingto.org>2013-06-13 12:06:09 +0400
commit182914873a13485a7b8d7b85884c655fccdefa48 (patch)
tree078082897c6219e4355de67c1b9b0c84cb08ac05 /release
parentc14a4d9ed9d597043fead48fd43adb22b65bce4e (diff)
parent8b4bca6cf056e81b0ae0e4854d2bd93d08d3a932 (diff)
Merged revision(s) 57369-57422 from trunk/blender into soc-2013-dingto.
Skipped r57368 (Wavelength node).
Diffstat (limited to 'release')
-rw-r--r--release/scripts/modules/bpy/utils.py48
-rw-r--r--release/scripts/startup/bl_operators/wm.py14
-rw-r--r--release/scripts/startup/bl_ui/space_info.py5
3 files changed, 40 insertions, 27 deletions
diff --git a/release/scripts/modules/bpy/utils.py b/release/scripts/modules/bpy/utils.py
index b78105dedb5..ec3891e8d76 100644
--- a/release/scripts/modules/bpy/utils.py
+++ b/release/scripts/modules/bpy/utils.py
@@ -482,8 +482,9 @@ def preset_find(name, preset_path, display_name=False, ext=".py"):
return filepath
-def keyconfig_set(filepath):
+def keyconfig_set(filepath, report=None):
from os.path import basename, splitext
+ from itertools import chain
if _bpy.app.debug_python:
print("loading preset:", filepath)
@@ -496,25 +497,36 @@ def keyconfig_set(filepath):
keyfile = open(filepath)
exec(compile(keyfile.read(), filepath, "exec"), {"__file__": filepath})
keyfile.close()
+ error_msg = ""
except:
import traceback
- traceback.print_exc()
-
- kc_new = [kc for kc in keyconfigs if kc not in keyconfigs_old][0]
-
- kc_new.name = ""
-
- # remove duplicates
- name = splitext(basename(filepath))[0]
- while True:
- kc_dupe = keyconfigs.get(name)
- if kc_dupe:
- keyconfigs.remove(kc_dupe)
- else:
- break
-
- kc_new.name = name
- keyconfigs.active = kc_new
+ error_msg = traceback.format_exc()
+
+ if error_msg:
+ if report is not None:
+ report({'ERROR'}, error_msg)
+ print(error_msg)
+
+ kc_new = next(chain(iter(kc for kc in keyconfigs if kc not in keyconfigs_old), (None,)))
+ if kc_new is None:
+ if report is not None:
+ report({'ERROR'}, "Failed to load keymap %r" % filepath)
+ return False
+ else:
+ kc_new.name = ""
+
+ # remove duplicates
+ name = splitext(basename(filepath))[0]
+ while True:
+ kc_dupe = keyconfigs.get(name)
+ if kc_dupe:
+ keyconfigs.remove(kc_dupe)
+ else:
+ break
+
+ kc_new.name = name
+ keyconfigs.active = kc_new
+ return True
def user_resource(resource_type, path="", create=False):
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index a2a8c991259..9cd9131ec4b 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -1199,9 +1199,10 @@ class WM_OT_keyconfig_activate(Operator):
)
def execute(self, context):
- bpy.utils.keyconfig_set(self.filepath)
- return {'FINISHED'}
-
+ if bpy.utils.keyconfig_set(self.filepath, report=self.report):
+ return {'FINISHED'}
+ else:
+ return {'CANCELLED'}
class WM_OT_appconfig_default(Operator):
bl_idname = "wm.appconfig_default"
@@ -1386,9 +1387,10 @@ class WM_OT_keyconfig_import(Operator):
return {'CANCELLED'}
# sneaky way to check we're actually running the code.
- bpy.utils.keyconfig_set(path)
-
- return {'FINISHED'}
+ if bpy.utils.keyconfig_set(path, report=self.report):
+ return {'FINISHED'}
+ else:
+ return {'CANCELLED'}
def invoke(self, context, event):
wm = context.window_manager
diff --git a/release/scripts/startup/bl_ui/space_info.py b/release/scripts/startup/bl_ui/space_info.py
index 7487aaf420d..5d476c01b08 100644
--- a/release/scripts/startup/bl_ui/space_info.py
+++ b/release/scripts/startup/bl_ui/space_info.py
@@ -67,14 +67,13 @@ class INFO_HT_header(Header):
if bpy.app.autoexec_fail is True and bpy.app.autoexec_fail_quiet is False:
layout.operator_context = 'EXEC_DEFAULT'
- row.label("Script failed to auto-run", icon='ERROR')
+ row.label("Auto-run disabled: %s" % bpy.app.autoexec_fail_message, icon='ERROR')
if bpy.data.is_saved:
props = row.operator("wm.open_mainfile", icon='SCREEN_BACK', text="Reload Trusted")
props.filepath = bpy.data.filepath
props.use_scripts = True
- row.operator("script.autoexec_warn_clear", icon='CANCEL')
- row.label("Skipping: (%s)" % bpy.app.autoexec_fail_message)
+ row.operator("script.autoexec_warn_clear", text="Ignore")
return
row.operator("wm.splash", text="", icon='BLENDER', emboss=False)