diff options
author | Vilém Duha <vilda.novak@gmail.com> | 2020-01-07 13:04:50 +0300 |
---|---|---|
committer | Vilém Duha <vilda.novak@gmail.com> | 2020-01-07 13:43:45 +0300 |
commit | 97e08ebb2038ce1506bd3624928373b29e06cb57 (patch) | |
tree | f4df5623da8bae9203109acaecde45f958916eac /blenderkit | |
parent | c1cdc9cf23976c928e915aa14493981e343e50f6 (diff) |
BlenderKit: assetbar now can be open after search ends automatically.
also can start on blender startup, it's an option in preferences(by default False)
Diffstat (limited to 'blenderkit')
-rw-r--r-- | blenderkit/__init__.py | 7 | ||||
-rw-r--r-- | blenderkit/search.py | 11 | ||||
-rw-r--r-- | blenderkit/ui.py | 13 |
3 files changed, 23 insertions, 8 deletions
diff --git a/blenderkit/__init__.py b/blenderkit/__init__.py index db8d1bf4..af323336 100644 --- a/blenderkit/__init__.py +++ b/blenderkit/__init__.py @@ -1333,6 +1333,12 @@ class BlenderKitAddonPreferences(AddonPreferences): default=False ) + show_on_start: BoolProperty( + name="Show assetbar when starting blender", + description="Show assetbar when starting blender", + default=False + ) + global_dir: StringProperty( name="Global Files Directory", description="Global storage for your assets, will use subdirectories for the contents", @@ -1413,6 +1419,7 @@ class BlenderKitAddonPreferences(AddonPreferences): def draw(self, context): layout = self.layout + layout.prop(self, "show_on_start") if self.api_key.strip() == '': if self.enable_oauth: diff --git a/blenderkit/search.py b/blenderkit/search.py index 6ae86819..56c1d0cb 100644 --- a/blenderkit/search.py +++ b/blenderkit/search.py @@ -117,8 +117,17 @@ def fetch_server_data(): categories.fetch_categories_thread(api_key) +first_time = True + @bpy.app.handlers.persistent def timer_update(): # TODO might get moved to handle all blenderkit stuff. + #this makes a first search after opening blender. showing latest assets. + global first_time + preferences = bpy.context.preferences.addons['blenderkit'].preferences + if first_time: + first_time = False + if preferences.show_on_start: + search() global search_threads # don't do anything while dragging - this could switch asset type during drag, and make results list length different, @@ -163,7 +172,7 @@ def timer_update(): # TODO might get moved to handle all blenderkit stuff. result_field = [] ok, error = check_errors(rdata) if ok: - + bpy.ops.object.run_assetbar_fix_context() for r in rdata['results']: # TODO remove this fix when filesSize is fixed. # this is a temporary fix for too big numbers from the server. diff --git a/blenderkit/ui.py b/blenderkit/ui.py index ab31c07a..b29e24af 100644 --- a/blenderkit/ui.py +++ b/blenderkit/ui.py @@ -1730,18 +1730,17 @@ class RunAssetBarWithContext(bpy.types.Operator): # def modal(self, context, event): # return {'RUNNING_MODAL'} - - - def invoke(self, context, event): + def execute(self, context): C_dict = bpy.context.copy() - C_dict.update(region = 'WINDOW') - if context.area.type != 'VIEW_3D': - w,a,r = get_largest_3dview() - override = {'window': w, 'screen': w.screen, 'area': a, 'region' : r} + C_dict.update(region='WINDOW') + if context.area is None or context.area.type != 'VIEW_3D': + w, a, r = get_largest_3dview() + override = {'window': w, 'screen': w.screen, 'area': a, 'region': r} C_dict.update(override) bpy.ops.view3d.blenderkit_asset_bar(C_dict, 'INVOKE_REGION_WIN', keep_running=True, do_search=False) return {'RUNNING_MODAL'} + classess = ( AssetBarOperator, RunAssetBarWithContext, |