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:
authorSybren A. Stüvel <sybren@blender.org>2019-08-15 11:21:04 +0300
committerSybren A. Stüvel <sybren@blender.org>2019-08-16 16:02:09 +0300
commit078d02f55743cd34c51c4dd7ca710b22441a12da (patch)
treed615010391448947904fb44d47e7defb666709ef
parentecc3b033a7d2bc71f3c75cd8152a647d18457ba1 (diff)
User Preferences: Added "Enabled add-ons only" preference
This checkbox replaces the "Disabled" and "Enabled" entries in the filter drop-down. As a result, it now takes a single click to limit the shown entries to enabled add-ons only. This is also an actual flag in the preferences, and thus its state is saved between runs on Blender (in contrast to the filter, which is always reset to "All"). Reviewed by: brecht, billreynish
-rw-r--r--release/scripts/startup/bl_operators/userpref.py2
-rw-r--r--release/scripts/startup/bl_ui/__init__.py2
-rw-r--r--release/scripts/startup/bl_ui/space_userpref.py18
-rw-r--r--source/blender/makesdna/DNA_userdef_types.h1
-rw-r--r--source/blender/makesrna/intern/rna_userdef.c6
5 files changed, 20 insertions, 9 deletions
diff --git a/release/scripts/startup/bl_operators/userpref.py b/release/scripts/startup/bl_operators/userpref.py
index 034aa9fff6c..6ec6855296c 100644
--- a/release/scripts/startup/bl_operators/userpref.py
+++ b/release/scripts/startup/bl_operators/userpref.py
@@ -667,6 +667,7 @@ class PREFERENCES_OT_addon_install(Operator):
info = addon_utils.module_bl_info(mod)
# show the newly installed addon.
+ context.preferences.view.show_addons_enabled_only = False
context.window_manager.addon_filter = 'All'
context.window_manager.addon_search = info["name"]
break
@@ -796,6 +797,7 @@ class PREFERENCES_OT_addon_show(Operator):
info["show_expanded"] = True
context.preferences.active_section = 'ADDONS'
+ context.preferences.view.show_addons_enabled_only = False
context.window_manager.addon_filter = 'All'
context.window_manager.addon_search = info["name"]
bpy.ops.screen.userpref_show('INVOKE_DEFAULT')
diff --git a/release/scripts/startup/bl_ui/__init__.py b/release/scripts/startup/bl_ui/__init__.py
index 690a922b0d5..5daacbb2e44 100644
--- a/release/scripts/startup/bl_ui/__init__.py
+++ b/release/scripts/startup/bl_ui/__init__.py
@@ -126,8 +126,6 @@ def register():
items = [
('All', "All", "All Add-ons"),
('User', "User", "All Add-ons Installed by User"),
- ('Enabled', "Enabled", "All Enabled Add-ons"),
- ('Disabled', "Disabled", "All Disabled Add-ons"),
]
items_unique = set()
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index 87baea9cdd8..ce4a6fb835e 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -1744,6 +1744,7 @@ class USERPREF_PT_addons(Panel):
row.operator("preferences.addon_refresh", icon='FILE_REFRESH', text="Refresh")
row = layout.row()
+ row.prop(context.preferences.view, "show_addons_enabled_only")
row.prop(context.window_manager, "addon_filter", text="")
row.prop(context.window_manager, "addon_search", text="", icon='VIEWZOOM')
@@ -1770,6 +1771,7 @@ class USERPREF_PT_addons(Panel):
"(see console for details)",
)
+ show_enabled_only = context.preferences.view.show_addons_enabled_only
filter = context.window_manager.addon_filter
search = context.window_manager.addon_search.lower()
support = context.window_manager.addon_support
@@ -1786,13 +1788,15 @@ class USERPREF_PT_addons(Panel):
continue
# check if addon should be visible with current filters
- if (
- (filter == "All") or
- (filter == info["category"]) or
- (filter == "Enabled" and is_enabled) or
- (filter == "Disabled" and not is_enabled) or
- (filter == "User" and (mod.__file__.startswith(addon_user_dirs)))
- ):
+ is_visible = (
+ (filter == "All") or
+ (filter == info["category"]) or
+ (filter == "User" and (mod.__file__.startswith(addon_user_dirs)))
+ )
+ if show_enabled_only:
+ is_visible = is_visible and is_enabled
+
+ if is_visible:
if search and search not in info["name"].lower():
if info["author"]:
if search not in info["author"].lower():
diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h
index b8914c7a74f..3cb96ce8bf8 100644
--- a/source/blender/makesdna/DNA_userdef_types.h
+++ b/source/blender/makesdna/DNA_userdef_types.h
@@ -868,6 +868,7 @@ typedef enum eUserPref_Flag {
USER_NONEGFRAMES = (1 << 24),
USER_TXT_TABSTOSPACES_DISABLE = (1 << 25),
USER_TOOLTIPS_PYTHON = (1 << 26),
+ USER_ADDONS_ENABLED_ONLY = (1 << 27),
} eUserPref_Flag;
typedef enum eUserPref_PrefFlag {
diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
index a449ed850e9..77ca48fc05d 100644
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@ -4090,6 +4090,12 @@ static void rna_def_userdef_view(BlenderRNA *brna)
"Show the frames per second screen refresh rate, while animation is played back");
RNA_def_property_update(prop, 0, "rna_userdef_update");
+ prop = RNA_def_property(srna, "show_addons_enabled_only", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_ADDONS_ENABLED_ONLY);
+ RNA_def_property_ui_text(prop,
+ "Enabled Add-ons Only",
+ "Only show enabled add-ons. Un-check to see all installed add-ons");
+
static const EnumPropertyItem factor_display_items[] = {
{USER_FACTOR_AS_FACTOR, "FACTOR", 0, "Factor", "Display factors as values between 0 and 1"},
{USER_FACTOR_AS_PERCENTAGE, "PERCENTAGE", 0, "Percentage", "Display factors as percentages"},