From 3316e28418a2ce624c61324d8d3fd284afabf71b Mon Sep 17 00:00:00 2001 From: Julian Eisel Date: Fri, 30 Jul 2021 16:23:17 +0200 Subject: 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. --- .../blender/editors/space_userpref/userpref_ops.c | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'source/blender/editors/space_userpref') 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); } -- cgit v1.2.3