[Bf-extensions-cvs] [97e08ebb] master: 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)

Vilém Duha noreply at git.blender.org
Tue Jan 7 11:43:58 CET 2020


Commit: 97e08ebb2038ce1506bd3624928373b29e06cb57
Author: Vilém Duha
Date:   Tue Jan 7 11:04:50 2020 +0100
Branches: master
https://developer.blender.org/rBA97e08ebb2038ce1506bd3624928373b29e06cb57

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)

===================================================================

M	blenderkit/__init__.py
M	blenderkit/search.py
M	blenderkit/ui.py

===================================================================

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,



More information about the Bf-extensions-cvs mailing list