diff options
author | Julian Eisel <julian@blender.org> | 2021-07-30 17:23:17 +0300 |
---|---|---|
committer | Julian Eisel <julian@blender.org> | 2021-07-30 17:25:34 +0300 |
commit | 3316e28418a2ce624c61324d8d3fd284afabf71b (patch) | |
tree | b9f546de61a72d696113576a2fed7836516e3763 /source/blender/editors/space_userpref/userpref_ops.c | |
parent | e7e9364d23b14aad07d167cea00c2bd54bedfb07 (diff) |
Preferences: Move "Register File Association" to preferences level
The operator was register as a "file" operator, which are by convention
used for File Browser operators only. Move it to the "preferences"
operators, where it's displayed in the UI too.
Diffstat (limited to 'source/blender/editors/space_userpref/userpref_ops.c')
-rw-r--r-- | source/blender/editors/space_userpref/userpref_ops.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/source/blender/editors/space_userpref/userpref_ops.c b/source/blender/editors/space_userpref/userpref_ops.c index 7c799f0d97b..79f5d1818cb 100644 --- a/source/blender/editors/space_userpref/userpref_ops.c +++ b/source/blender/editors/space_userpref/userpref_ops.c @@ -26,11 +26,16 @@ #include "DNA_screen_types.h" #include "BLI_listbase.h" +#ifdef WIN32 +# include "BLI_winstuff.h" +#endif #include "BKE_context.h" #include "BKE_main.h" #include "BKE_preferences.h" +#include "BKE_report.h" + #include "RNA_access.h" #include "RNA_define.h" #include "RNA_types.h" @@ -188,6 +193,43 @@ static void PREFERENCES_OT_asset_library_remove(wmOperatorType *ot) /** \} */ +/* -------------------------------------------------------------------- */ +/** \name Associate File Type Operator (Windows only) + * \{ */ + +static int associate_blend_exec(bContext *UNUSED(C), wmOperator *op) +{ +#ifdef WIN32 + WM_cursor_wait(true); + if (BLI_windows_register_blend_extension(true)) { + BKE_report(op->reports, RPT_INFO, "File association registered"); + WM_cursor_wait(false); + return OPERATOR_FINISHED; + } + else { + BKE_report(op->reports, RPT_ERROR, "Unable to register file association"); + WM_cursor_wait(false); + return OPERATOR_CANCELLED; + } +#else + BKE_report(op->reports, RPT_WARNING, "Operator Not supported"); + return OPERATOR_CANCELLED; +#endif +} + +static void PREFERENCES_OT_associate_blend(struct wmOperatorType *ot) +{ + /* identifiers */ + ot->name = "Register File Association"; + ot->description = "Use this installation for .blend files and to display thumbnails"; + ot->idname = "PREFERENCES_OT_associate_blend"; + + /* api callbacks */ + ot->exec = associate_blend_exec; +} + +/** \} */ + void ED_operatortypes_userpref(void) { WM_operatortype_append(PREFERENCES_OT_reset_default_theme); @@ -197,4 +239,6 @@ void ED_operatortypes_userpref(void) WM_operatortype_append(PREFERENCES_OT_asset_library_add); WM_operatortype_append(PREFERENCES_OT_asset_library_remove); + + WM_operatortype_append(PREFERENCES_OT_associate_blend); } |