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:
authorJulian Eisel <julian@blender.org>2021-07-30 17:23:17 +0300
committerJulian Eisel <julian@blender.org>2021-07-30 17:25:34 +0300
commit3316e28418a2ce624c61324d8d3fd284afabf71b (patch)
treeb9f546de61a72d696113576a2fed7836516e3763 /source/blender/editors/space_userpref
parente7e9364d23b14aad07d167cea00c2bd54bedfb07 (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')
-rw-r--r--source/blender/editors/space_userpref/userpref_ops.c44
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);
}