From c84f83153900009f1c7743e3b21792ab1a730257 Mon Sep 17 00:00:00 2001
From: Vilem Duha <vilem.duha@gmail.com>
Date: Thu, 1 Jul 2021 12:09:55 +0200
Subject: [PATCH] BlenderKit: many post-release fixes

Fix for rerequests recursion crash
rename timers
fix manual link
attemt to fix mysterious crashes on some machines by limiting some calls to assetbar operator, and not copying image into it's preview so often
fix search when & was present
add a popup when appending a scene
improve starup dialog with an image
---
 blenderkit/__init__.py          |  29 +++++++++++---
 blenderkit/bg_blender.py        |   7 ++++
 blenderkit/categories.py        |   1 +
 blenderkit/download.py          |  43 ++++++++++++++------
 blenderkit/paths.py             |   2 +-
 blenderkit/rerequests.py        |  14 ++++---
 blenderkit/search.py            |  61 +++++++++++++++++++++-------
 blenderkit/tasks_queue.py       |   4 ++
 blenderkit/thumbnails/intro.jpg | Bin 0 -> 66605 bytes
 blenderkit/ui.py                |  16 ++++++--
 blenderkit/ui_panels.py         |  68 +++++++++++++++++++++++++-------
 blenderkit/utils.py             |  16 ++++++--
 12 files changed, 201 insertions(+), 60 deletions(-)
 create mode 100644 blenderkit/thumbnails/intro.jpg

diff --git a/blenderkit/__init__.py b/blenderkit/__init__.py
index e80436260..c58e5d997 100644
--- a/blenderkit/__init__.py
+++ b/blenderkit/__init__.py
@@ -155,10 +155,10 @@ def scene_load(context):
 @bpy.app.handlers.persistent
 def check_timers_timer():
     ''' checks if all timers are registered regularly. Prevents possible bugs from stopping the addon.'''
-    if not bpy.app.timers.is_registered(search.timer_update):
-        bpy.app.timers.register(search.timer_update)
-    if not bpy.app.timers.is_registered(download.timer_update):
-        bpy.app.timers.register(download.timer_update)
+    if not bpy.app.timers.is_registered(search.search_timer):
+        bpy.app.timers.register(search.search_timer)
+    if not bpy.app.timers.is_registered(download.download_timer):
+        bpy.app.timers.register(download.download_timer)
     if not (bpy.app.timers.is_registered(tasks_queue.queue_worker)):
         bpy.app.timers.register(tasks_queue.queue_worker)
     if not bpy.app.timers.is_registered(bg_blender.bg_update):
@@ -1542,7 +1542,7 @@ class BlenderKitSceneSearchProps(PropertyGroup, BlenderKitCommonSearchProps):
     )
     switch_after_append: BoolProperty(
         name='Switch to scene after download',
-        default=False
+        default=True
     )
 
 
@@ -1714,6 +1714,13 @@ class BlenderKitAddonPreferences(AddonPreferences):
         update=utils.save_prefs
     )
 
+    # single_timer: BoolProperty(
+    #     name="Use timers",
+    #     description="Use timers for BlenderKit. Usefull for debugging since timers seem to be unstable",
+    #     default=True,
+    #     update=utils.save_prefs
+    # )
+
     experimental_features: BoolProperty(
         name="Enable experimental features",
         description="Enable all experimental features of BlenderKit. Use at your own risk.",
@@ -1773,6 +1780,15 @@ class BlenderKitAddonPreferences(AddonPreferences):
             layout.prop(self, "categories_fix")
 
 
+# # @bpy.app.handlers.persistent
+# def blenderkit_timer():
+#
+#
+# if not user_preferences.use_timers:
+#     search.search_timer()
+#     download.download_timer()
+#     tasks_queue.queue_worker()
+#     bg_blender.bg_update()
 # registration
 classes = (
 
@@ -1800,6 +1816,7 @@ classes = (
 )
 
 
+
 def register():
     for cls in classes:
         bpy.utils.register_class(cls)
@@ -1874,6 +1891,8 @@ def register():
             if a.type == 'PREFERENCES':
                 tasks_queue.add_task((bpy.ops.wm.blenderkit_welcome, ('INVOKE_DEFAULT',)), fake_context=True,
                                      fake_context_area='PREFERENCES')
+                #save preferences after manually enabling the addon
+                tasks_queue.add_task((bpy.ops.wm.save_userpref, ()), fake_context=False,)
 
 
 def unregister():
diff --git a/blenderkit/bg_blender.py b/blenderkit/bg_blender.py
index 01c625386..c4294b304 100644
--- a/blenderkit/bg_blender.py
+++ b/blenderkit/bg_blender.py
@@ -108,11 +108,14 @@ def bg_update():
     '''monitoring of background process'''
     text = ''
     #utils.p('timer search')
+    # utils.p('start bg_blender timer bg_update')
 
     s = bpy.context.scene
 
     global bg_processes
     if len(bg_processes) == 0:
+        # utils.p('end bg_blender timer bg_update')
+
         return 2
     #cleanup dead processes first
     remove_processes = []
@@ -156,7 +159,11 @@ def bg_update():
     # if len(bg_processes) == 0:
     #     bpy.app.timers.unregister(bg_update)
     if len(bg_processes) > 0:
+        # utils.p('end bg_blender timer bg_update')
+
         return .3
+    # utils.p('end bg_blender timer bg_update')
+
     return 1.
 
 
diff --git a/blenderkit/categories.py b/blenderkit/categories.py
index 46d10f86c..3a0d26243 100644
--- a/blenderkit/categories.py
+++ b/blenderkit/categories.py
@@ -84,6 +84,7 @@ def get_category_path(categories, category):
                     category_path.insert(0, slug)
                 return category_path
             check_categories.append(ch)
+    return category_path
 
 def get_category_name_path(categories, category):
     '''finds the category in all possible subcategories and returns the path to it'''
diff --git a/blenderkit/download.py b/blenderkit/download.py
index 7cffff443..f0c101a1c 100644
--- a/blenderkit/download.py
+++ b/blenderkit/download.py
@@ -17,7 +17,7 @@
 # ##### END GPL LICENSE BLOCK #####
 
 
-from blenderkit import paths, append_link, utils, ui, colors, tasks_queue, rerequests, resolutions
+from blenderkit import paths, append_link, utils, ui, colors, tasks_queue, rerequests, resolutions, ui_panels
 
 import threading
 import time
@@ -62,7 +62,7 @@ def check_missing():
     for l in missing:
         asset_data = l['asset_data']
 
-        downloaded = check_existing(asset_data, resolution=asset_data['resolution'])
+        downloaded = check_existing(asset_data, resolution=asset_data.get('resolution'))
         if downloaded:
             try:
                 l.reload()
@@ -315,11 +315,11 @@ def append_asset(asset_data, **kwargs):  # downloaders=[], location=None,
         sprops = s.blenderkit_scene
 
         scene = append_link.append_scene(file_names[0], link=sprops.append_link == 'LINK', fake_user=False)
-        print('scene appended')
+        # print('scene appended')
         if scene is not None:
             props = scene.blenderkit
             asset_main = scene
-            print(sprops.switch_after_append)
+            # print(sprops.switch_after_append)
             if sprops.switch_after_append:
                 bpy.context.window_manager.windows[0].scene = scene
 
@@ -563,7 +563,7 @@ def replace_resolution_appended(file_paths, asset_data, resolution):
 
 
 # @bpy.app.handlers.persistent
-def timer_update():
+def download_timer():
     # TODO might get moved to handle all blenderkit stuff, not to slow down.
     '''
     check for running and finished downloads.
@@ -571,10 +571,14 @@ def timer_update():
     Finished downloads are processed and linked/appended to scene.
      '''
     global download_threads
+    # utils.p('start download timer')
+
     # bk_logger.debug('timer download')
 
     if len(download_threads) == 0:
-        return 2.0
+        # utils.p('end download timer')
+
+        return 2
     s = bpy.context.scene
     for threaddata in download_threads:
         t = threaddata[0]
@@ -589,13 +593,14 @@ def timer_update():
             if sr is not None:
                 for r in sr:
                     if asset_data['id'] == r['id']:
-                        r['downloaded'] = tcom.progress
-
+                        r['downloaded'] = 0.5#tcom.progress
         if not t.is_alive():
             if tcom.error:
                 sprops = utils.get_search_props()
                 sprops.report = tcom.report
                 download_threads.remove(threaddata)
+                # utils.p('end download timer')
+
                 return
             file_paths = paths.get_download_filepaths(asset_data, tcom.passargs['resolution'])
 
@@ -661,6 +666,8 @@ def timer_update():
                                 sres['downloaded'] = 100
 
                 bk_logger.debug('finished download thread')
+    # utils.p('end download timer')
+
     return .5
 
 
@@ -753,6 +760,7 @@ class Downloader(threading.Thread):
     # def main_download_thread(asset_data, tcom, scene_id, api_key):
     def run(self):
         '''try to download file from blenderkit'''
+        # utils.p('start downloader thread')
         asset_data = self.asset_data
         tcom = self.tcom
         scene_id = self.scene_id
@@ -832,6 +840,8 @@ class Downloader(threading.Thread):
         tcom.report = f'Unpacking files'
         self.asset_data['resolution'] = self.resolution
         resolutions.send_to_bg(self.asset_data, file_name, command='unpack')
+        # utils.p('end downloader thread')
+
 
 
 class ThreadCom:  # object passed to threads to read background process stdout info
@@ -1226,7 +1236,7 @@ def show_enum_values(obj, prop_name):
 class BlenderkitDownloadOperator(bpy.types.Operator):
     """Download and link asset to scene. Only link if asset already available locally"""
     bl_idname = "scene.blenderkit_download"
-    bl_label = "BlenderKit Asset Download"
+    bl_label = "Download"
     bl_options = {'REGISTER', 'UNDO', 'INTERNAL'}
 
     # asset_type: EnumProperty(
@@ -1258,6 +1268,8 @@ class BlenderkitDownloadOperator(bpy.types.Operator):
 
     invoke_resolution: BoolProperty(name='Replace resolution popup',
                                     description='pop up to ask which resolution to download', default=False)
+    invoke_scene_settings: BoolProperty(name='Scene import settings popup',
+                                    description='pop up scene import settings', default=False)
 
     resolution: EnumProperty(
         items=available_resolutions_callback,
@@ -1376,7 +1388,10 @@ class BlenderkitDownloadOperator(bpy.types.Operator):
 
     def draw(self, context):
         layout = self.layout
-        layout.prop(self, 'resolution', expand=True, icon_only=False)
+        if self.invoke_resolution:
+            layout.prop(self, 'resolution', expand=True, icon_only=False)
+        if self.invoke_scene_settings:
+            ui_panels.draw_scene_import_settings(self, context)
 
     def invoke(self, context, event):
         # if self.close_window:
@@ -1399,6 +1414,8 @@ class BlenderkitDownloadOperator(bpy.types.Operator):
                 self.resolution = 'ORIGINAL'
             return wm.invoke_props_dialog(self)
 
+        if self.invoke_scene_settings:
+            return wm.invoke_props_dialog(self)
         # if self.close_window:
         #     time.sleep(0.1)
         #     context.area.tag_redraw()
@@ -1416,7 +1433,7 @@ def register_download():
     bpy.app.handlers.save_pre.append(scene_save)
     user_preferences = bpy.context.preferences.addons['blenderkit'].preferences
     if user_preferences.use_timers:
-        bpy.app.timers.register(timer_update)
+        bpy.app.timers.register(download_timer)
 
 
 def unregister_download():
@@ -1424,5 +1441,5 @@ def unregister_download():
     bpy.utils.unregister_class(BlenderkitKillDownloadOperator)
     bpy.app.handlers.load_post.remove(scene_load)
     bpy.app.handlers.save_pre.remove(scene_save)
-    if bpy.app.timers.is_registered(timer_update):
-        bpy.app.timers.unregister(timer_update)
+    if bpy.app.timers.is_registered(download_timer):
+        bpy.app.timers.unregister(download_timer)
diff --git a/blenderkit/paths.py b/blenderkit/paths.py
index 0ca55271a..57511108c 100644
--- a/blenderkit/paths.py
+++ b/blenderkit/paths.py
@@ -27,7 +27,7 @@ BLENDERKIT_API = "/api/v1/"
 BLENDERKIT_REPORT_URL = "usage_report/"
 BLENDERKIT_USER_ASSETS = "/my-assets"
 BLENDERKIT_PLANS = "/plans/pricing/"
-BLENDERKIT_MANUAL = "https://youtu.be/1hVgcQhIAo8"
+BLENDERKIT_MANUAL = "https://youtu.be/pSay3yaBWV0"
 BLENDERKIT_MODEL_UPLOAD_INSTRUCTIONS_URL = "https://www.blenderkit.com/docs/upload/"
 BLENDERKIT_MATERIAL_UPLOAD_INSTRUCTIONS_URL = "https://www.blenderkit.com/docs/uploading-material/"
 BLENDERKIT_BRUSH_UPLOAD_INSTRUCTIONS_URL = "https://www.blenderkit.com/docs/uploading-brush/"
diff --git a/blenderkit/rerequests.py b/blenderkit/rerequests.py
index 6a2659c28..f9c515598 100644
--- a/blenderkit/rerequests.py
+++ b/blenderkit/rerequests.py
@@ -22,10 +22,11 @@ from blenderkit import ui, utils, paths, tasks_queue, bkit_oauth
 import requests
 import bpy
 import logging
+
 bk_logger = logging.getLogger('rerequests')
 
 
-def rerequest(method, url, **kwargs):
+def rerequest(method, url, recursion=0, **kwargs):
     # first get any additional args from kwargs
     immediate = False
     if kwargs.get('immediate'):
@@ -34,10 +35,11 @@ def rerequest(method, url, **kwargs):
     # first normal attempt
     try:
         response = requests.request(method, url, **kwargs)
-    except:
-        return rerequest(method, url, **kwargs)
+    except Exception as e:
+        print(e)
+        return None
 
-    bk_logger.debug(url+ str( kwargs))
+    bk_logger.debug(url + str(kwargs))
     bk_logger.debug(response.status_code)
 
     if response.status_code == 401:
@@ -53,7 +55,7 @@ def rerequest(method, url, **kwargs):
             if user_preferences.api_key != '':
                 if user_preferences.enable_oauth and user_preferences.api_key_refresh != '':
                     tasks_queue.add_task((ui.add_report, (
-                    'refreshing token. If this fails, please login in BlenderKit Login panel.', 10)))
+                        'refreshing token. If this fails, please login in BlenderKit Login panel.', 10)))
                     refresh_url = paths.get_bkit_url()
                     auth_token, refresh_token, oauth_response = bkit_oauth.refresh_token(
                         user_preferences.api_key_refresh, refresh_url)
@@ -80,7 +82,7 @@ def rerequest(method, url, **kwargs):
                         tasks_queue.add_task((ui.add_report, (
                             'Refreshing token failed.Please login manually.', 10)))
                         # tasks_queue.add_task((bkit_oauth.write_tokens, ('', '', '')))
-                        tasks_queue.add_task((bpy.ops.wm.blenderkit_login,( 'INVOKE_DEFAULT',)),fake_context = True)
+                        tasks_queue.add_task((bpy.ops.wm.blenderkit_login, ('INVOKE_DEFAULT',)), fake_context=True)
     return response
 
 
diff --git a/blenderkit/search.py b/blenderkit/search.py
index 4c57135d1..dbe25d617 100644
--- a/blenderkit/search.py
+++ b/blenderkit/search.py
@@ -48,6 +48,7 @@ import copy
 import json
 import math
 import unicodedata
+import urllib
 import queue
 import logging
 
@@ -80,7 +81,7 @@ reports_queue = queue.Queue()
 rtips = ['Click or drag model or material in scene to link/append ',
          "Please rate responsively and plentifully. This helps us distribute rewards to the authors.",
          "Click on brushes to link them into scene.",
-         "All materials and brushes are free.",
+         "All materials are free.",
          "Storage for public assets is unlimited.",
          "Locked models are available if you subscribe to Full plan.",
          "Login to upload your own models, materials or brushes.",
@@ -246,7 +247,7 @@ def parse_result(r):
         durl, tname, small_tname = '', '', ''
 
         if r['assetType'] == 'hdr':
-            tname = paths.extract_filename_from_url(r['thumbnailMiddleUrlNonsquared'])
+            tname = paths.extract_filename_from_url(r['thumbnailLargeUrlNonsquared'])
         else:
             tname = paths.extract_filename_from_url(r['thumbnailMiddleUrl'])
         small_tname = paths.extract_filename_from_url(r['thumbnailSmallUrl'])
@@ -349,10 +350,10 @@ def parse_result(r):
 
 
 # @bpy.app.handlers.persistent
-def timer_update():
+def search_timer():
     # this makes a first search after opening blender. showing latest assets.
     # utils.p('timer search')
-
+    # utils.p('start search timer')
     global first_time
     preferences = bpy.context.preferences.addons['blenderkit'].preferences
     if first_time and not bpy.app.background:  # first time
@@ -367,6 +368,8 @@ def timer_update():
             utils.get_largest_area()
             ui.update_ui_size(ui.active_area_pointer, ui.active_region_pointer)
             ui.add_report(text='BlenderKit Tip: ' + random.choice(rtips), timeout=12, color=colors.GREEN)
+        # utils.p('end search timer')
+
         return 3.0
 
     # if preferences.first_run:
@@ -377,10 +380,14 @@ def timer_update():
 
     global search_threads
     if len(search_threads) == 0:
+        # utils.p('end search timer')
+
         return 1.0
     # don't do anything while dragging - this could switch asset during drag, and make results list length different,
     # causing a lot of throuble.
     if bpy.context.scene.blenderkitUI.dragging:
+        # utils.p('end search timer')
+
         return 0.5
     for thread in search_threads:
         # TODO this doesn't check all processes when one gets removed,
@@ -415,6 +422,8 @@ def timer_update():
 
             while not reports_queue.empty():
                 props.report = str(reports_queue.get())
+                # utils.p('end search timer')
+
                 return .2
 
             rdata = thread[0].result
@@ -422,7 +431,10 @@ def timer_update():
 
             ok, error = check_errors(rdata)
             if ok:
-                bpy.ops.object.run_assetbar_fix_context()
+                ui_props = bpy.context.scene.blenderkitUI
+
+                if not ui_props.assetbar_on:
+                    bpy.ops.object.run_assetbar_fix_context()
 
 
 
@@ -447,7 +459,6 @@ def timer_update():
                 wm['search results orig'] = wm[search_name + ' orig']
 
                 load_previews()
-                ui_props = bpy.context.scene.blenderkitUI
                 if len(result_field) < ui_props.scrolloffset or not (thread[0].params.get('get_next')):
                     # jump back
                     ui_props.scrolloffset = 0
@@ -457,7 +468,7 @@ def timer_update():
                 if len(wm['search results']) == 0:
                     tasks_queue.add_task((ui.add_report, ('No matching results found.',)))
                 # undo push
-                bpy.ops.wm.undo_push_context(message='Get BlenderKit search')
+                # bpy.ops.wm.undo_push_context(message='Get BlenderKit search')
 
             else:
                 bk_logger.error(error)
@@ -466,6 +477,7 @@ def timer_update():
 
             # print('finished search thread')
             mt('preview loading finished')
+    # utils.p('end search timer')
 
     return .3
 
@@ -642,6 +654,7 @@ class ThumbDownloader(threading.Thread):
 
     def run(self):
         # print('thumb downloader', self.url)
+        # utils.p('start thumbdownloader thread')
         r = None
         try:
             r = requests.get(self.url, stream=False)
@@ -655,6 +668,8 @@ class ThumbDownloader(threading.Thread):
             # with open(path, 'wb') as f:
             #     for chunk in r.iter_content(1048576*4):
             #         f.write(chunk)
+        # utils.p('end thumbdownloader thread')
+
 
 
 def write_gravatar(a_id, gravatar_path):
@@ -800,7 +815,8 @@ def query_to_url(query={}, params={}):
             order.append('-score,_score')
         else:
             order.append('_score')
-    requeststring += '+order:' + ','.join(order)
+    if requeststring.find('+order:')==-1:
+        requeststring += '+order:' + ','.join(order)
 
     requeststring += '&addon_version=%s' % params['addon_version']
     if params.get('scene_uuid') is not None:
@@ -843,6 +859,8 @@ class Searcher(threading.Thread):
         params = self.params
 
         t = time.time()
+        # utils.p('start search thread')
+
         mt('search thread started')
         # tempdir = paths.get_temp_dir('%s_search' % query['asset_type'])
         # json_filepath = os.path.join(tempdir, '%s_searchresult.json' % query['asset_type'])
@@ -856,6 +874,8 @@ class Searcher(threading.Thread):
         except requests.exceptions.RequestException as e:
             bk_logger.error(e)
             reports_queue.put(str(e))
+            # utils.p('end search thread')
+
             return
 
         mt('search response is back ')
@@ -875,10 +895,14 @@ class Searcher(threading.Thread):
             # it means it's a server error that has a clear message.
             # That's why it gets processed in the update timer, where it can be passed in messages to user.
             self.result = rdata
+            # utils.p('end search thread')
+
             return
         # print('number of results: ', len(rdata.get('results', [])))
         if self.stopped():
             utils.p('stopping search : ' + str(query))
+            # utils.p('end search thread')
+
             return
 
         mt('search finished')
@@ -896,7 +920,7 @@ class Searcher(threading.Thread):
             thumb_small_filepaths.append(imgpath)
 
             if d["assetType"] == 'hdr':
-                larege_thumb_url = d['thumbnailMiddleUrlNonsquared']
+                larege_thumb_url = d['thumbnailLargeUrlNonsquared']
 
             else:
                 larege_thumb_url = d['thumbnailMiddleUrl']
@@ -945,10 +969,12 @@ class Searcher(threading.Thread):
         for k in thumb_full_download_threads.keys():
             if k not in thumb_full_filepaths:
                 killthreads_full.append(k)  # do actual killing here?
-        # TODO do the killing/ stopping here! remember threads might have finished inbetween!
+        # TODO do the killing/ stopping here. remember threads might have finished inbetween.
 
         if self.stopped():
             utils.p('stopping search : ' + str(query))
+            # utils.p('end search thread')
+
             return
 
         # this loop handles downloading of small thumbnails
@@ -973,6 +999,8 @@ class Searcher(threading.Thread):
                                 i += 1
         if self.stopped():
             utils.p('stopping search : ' + str(query))
+            # utils.p('end search thread')
+
             return
         idx = 0
         while len(thumb_sml_download_threads) > 0:
@@ -984,6 +1012,8 @@ class Searcher(threading.Thread):
                     i += 1
 
         if self.stopped():
+            # utils.p('end search thread')
+
             utils.p('stopping search : ' + str(query))
             return
 
@@ -995,6 +1025,7 @@ class Searcher(threading.Thread):
                 #                           daemon=True)
                 thread.start()
                 thumb_full_download_threads[imgpath] = thread
+        # utils.p('end search thread')
         mt('thumbnails finished')
 
 
@@ -1002,7 +1033,9 @@ def build_query_common(query, props):
     '''add shared parameters to query'''
     query_common = {}
     if props.search_keywords != '':
-        query_common["query"] = props.search_keywords
+        # keywords = urllib.parse.urlencode(props.search_keywords)
+        keywords = props.search_keywords.replace('&','%26')
+        query_common["query"] = keywords
 
     if props.search_verification_status != 'ALL' and utils.profile_is_validator():
         query_common['verification_status'] = props.search_verification_status.lower()
@@ -1504,7 +1537,7 @@ def register_search():
 
     user_preferences = bpy.context.preferences.addons['blenderkit'].preferences
     if user_preferences.use_timers:
-        bpy.app.timers.register(timer_update)
+        bpy.app.timers.register(search_timer)
 
     categories.load_categories()
 
@@ -1515,5 +1548,5 @@ def unregister_search():
     for c in classes:
         bpy.utils.unregister_class(c)
 
-    if bpy.app.timers.is_registered(timer_update):
-        bpy.app.timers.unregister(timer_update)
+    if bpy.app.timers.is_registered(search_timer):
+        bpy.app.timers.unregister(search_timer)
diff --git a/blenderkit/tasks_queue.py b/blenderkit/tasks_queue.py
index f52cfd639..0d9918788 100644
--- a/blenderkit/tasks_queue.py
+++ b/blenderkit/tasks_queue.py
@@ -58,6 +58,8 @@ def add_task(task, wait = 0, only_last = False, fake_context = False, fake_conte
 
 
 def queue_worker():
+    # utils.p('start queue worker timer')
+
     #bk_logger.debug('timer queue worker')
     time_step = 2.0
     q = get_queue()
@@ -110,6 +112,8 @@ def queue_worker():
         # print('queue while 2')
     for task in back_to_queue:
         q.put(task)
+    # utils.p('end queue worker timer')
+
     return 2.0
 
 
diff --git a/blenderkit/thumbnails/intro.jpg b/blenderkit/thumbnails/intro.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..52ce56e390a75aa2590f7277877d53b2841f3f81
GIT binary patch
literal 66605
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%0Dm+YUUOypU~`PR8bkv9hIW
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

literal 0
HcmV?d00001

diff --git a/blenderkit/ui.py b/blenderkit/ui.py
index 295ded3b3..68c19cf07 100644
--- a/blenderkit/ui.py
+++ b/blenderkit/ui.py
@@ -483,12 +483,14 @@ def draw_callback_2d_progress(self, context):
 
                 loc = view3d_utils.location_3d_to_region_2d(bpy.context.region, bpy.context.space_data.region_3d,
                                                             d['location'])
+                # print('drawing downloader')
                 if loc is not None:
                     if asset_data['assetType'] == 'model':
                         # models now draw with star trek mode, no need to draw percent for the image.
                         draw_downloader(loc[0], loc[1], percent=tcom.progress, img=img, text=tcom.report)
                     else:
                         draw_downloader(loc[0], loc[1], percent=tcom.progress, img=img, text=tcom.report)
+                # utils.p('end drawing downlaoders  downloader')
         else:
             draw_progress(x, y - index * 30, text='downloading %s' % asset_data['name'],
                           percent=tcom.progress)
@@ -1192,8 +1194,8 @@ class AssetBarOperator(bpy.types.Operator):
 
         # timers testing - seems timers might be causing crashes. testing it this way now.
         if not user_preferences.use_timers:
-            search.timer_update()
-            download.timer_update()
+            search.search_timer()
+            download.download_timer()
             tasks_queue.queue_worker()
             bg_blender.bg_update()
 
@@ -1451,7 +1453,7 @@ class AssetBarOperator(bpy.types.Operator):
                     if not asset_data.get('canDownload'):
                         message = "Let's support asset creators and Open source."
                         link_text = 'Unlock the asset.'
-                        url = paths.get_bkit_url() + '/get-blenderkit/' + asset_data['id'] + '/?from_addon'
+                        url = paths.get_bkit_url() + '/get-blenderkit/' + asset_data['id'] + '/?from_addon=True'
                         bpy.ops.wm.blenderkit_url_dialog('INVOKE_REGION_WIN', url=url, message=message,
                                                          link_text=link_text)
                         return {'RUNNING_MODAL'}
@@ -1626,6 +1628,14 @@ class AssetBarOperator(bpy.types.Operator):
                                                           invoke_resolution=True,
                                                           max_resolution=asset_data.get('max_resolution', 0)
                                                           )
+                    elif ui_props.asset_type == 'SCENE':
+                        bpy.ops.scene.blenderkit_download('INVOKE_DEFAULT',
+                                                          asset_index=asset_search_index,
+                                                          # replace_resolution=True,
+                                                          invoke_resolution=False,
+                                                          invoke_scene_settings=True,
+                                                          max_resolution=asset_data.get('max_resolution', 0)
+                                                          )
                     else:
                         bpy.ops.scene.blenderkit_download(  # asset_type=ui_props.asset_type,
                             asset_index=asset_search_index,
diff --git a/blenderkit/ui_panels.py b/blenderkit/ui_panels.py
index 3c5f4dcf7..fe91658cf 100644
--- a/blenderkit/ui_panels.py
+++ b/blenderkit/ui_panels.py
@@ -36,6 +36,7 @@ from bpy.props import (
 
 import bpy
 import os
+import random
 import logging
 
 bk_logger = logging.getLogger('blenderkit')
@@ -887,6 +888,15 @@ class VIEW3D_PT_blenderkit_categories(Panel):
     def draw(self, context):
         draw_panel_categories(self, context)
 
+def draw_scene_import_settings(self, context):
+    s = context.scene
+    props = s.blenderkit_scene
+    layout = self.layout
+    layout.prop(props, 'switch_after_append')
+    # layout.label(text='Import method:')
+    row = layout.row()
+    row.prop(props, 'append_link', expand=True, icon_only=False)
+
 
 class VIEW3D_PT_blenderkit_import_settings(Panel):
     bl_category = "BlenderKit"
@@ -931,11 +941,8 @@ class VIEW3D_PT_blenderkit_import_settings(Panel):
 
             row.prop(props, 'append_method', expand=True, icon_only=False)
         if ui_props.asset_type == 'SCENE':
-            props = s.blenderkit_scene
-            layout.prop(props, 'switch_after_append')
-            layout.label(text='Import method:')
-            row = layout.row()
-            row.prop(props, 'append_link', expand=True, icon_only=False)
+            draw_scene_import_settings(self,context)
+
         if ui_props.asset_type == 'HDR':
             props = s.blenderkit_HDR
 
@@ -1113,13 +1120,19 @@ class BlenderKitWelcomeOperator(bpy.types.Operator):
         if self.step == 0:
             user_preferences = bpy.context.preferences.addons['blenderkit'].preferences
 
-            message = "BlenderKit connects from Blender to an online, " \
-                      "community built shared library of models, " \
-                      "materials, and brushes. " \
-                      "Use addon preferences to set up where files will be saved in the Global directory setting."
+            # message = "BlenderKit connects from Blender to an online, " \
+            #           "community built shared library of models, " \
+            #           "materials, and brushes. " \
+            #           "Use addon preferences to set up where files will be saved in the Global directory setting."
+            #
+            # utils.label_multiline(layout, text=message, width=300)
+
+            layout.template_icon(icon_value=self.img.preview.icon_id, scale=18)
+
+            # utils.label_multiline(layout, text="\n Let's start by searching for some cool materials?", width=300)
+            op = layout.operator("wm.url_open", text='Watch Video Tutorial', icon='QUESTION')
+            op.url = paths.BLENDERKIT_MANUAL
 
-            utils.label_multiline(layout, text=message, width=300)
-            utils.label_multiline(layout, text="\n Let's start by searching for some cool materials?", width=300)
         else:
             message = "Operator Tutorial called with invalid step"
 
@@ -1131,14 +1144,36 @@ class BlenderKitWelcomeOperator(bpy.types.Operator):
             # bpy.context.window_manager.windows[0].screen.areas[5].spaces[0].show_region_ui = False
             print('running search no')
             ui_props = bpy.context.scene.blenderkitUI
-            ui_props.asset_type = 'MATERIAL'
-            bpy.context.scene.blenderkit_mat.search_keywords = 'ice'
+            random_searches = [
+                ('MATERIAL','ice'),
+                ('MODEL','car'),
+                ('MODEL','vase'),
+                ('MODEL','grass'),
+                ('MODEL','plant'),
+                ('MODEL','man'),
+                ('MATERIAL','metal'),
+                ('MATERIAL','wood'),
+                ('MATERIAL','floor'),
+                ('MATERIAL','bricks'),
+            ]
+            random_search = random.choice(random_searches)
+            ui_props.asset_type = random_search[0]
+
+            bpy.context.scene.blenderkit_mat.search_keywords = ''#random_search[1]
+            bpy.context.scene.blenderkit_mat.search_keywords = '+is_free:true+score_gte:1000+order:-created'#random_search[1]
             # search.search()
         return {'FINISHED'}
 
     def invoke(self, context, event):
         wm = bpy.context.window_manager
-        return wm.invoke_props_dialog(self)
+        img = utils.get_thumbnail('intro.jpg')
+        utils.img_to_preview(img, copy_original = True)
+        self.img = img
+        w, a, r = utils.get_largest_area(area_type='VIEW_3D')
+        if a is not None:
+            a.spaces.active.show_region_ui = True
+
+        return wm.invoke_props_dialog(self, width = 500)
 
 
 def draw_asset_context_menu(layout, context, asset_data, from_panel=False):
@@ -1779,8 +1814,9 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
         # top draggabe bar with name of the asset
         top_row = layout.row()
         top_drag_bar = top_row.box()
+        bcats  = bpy.context.window_manager['bkit_categories']
 
-        cat_path = categories.get_category_path(bpy.context.window_manager['bkit_categories'],
+        cat_path = categories.get_category_path(bcats,
                                                 self.asset_data['category'])[1:]
         for i,c in enumerate(cat_path):
             cat_path[i] = c.capitalize()
@@ -1821,6 +1857,8 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
         sr = bpy.context.window_manager['search results']
         asset_data = sr[ui_props.active_index]
         self.img = ui.get_large_thumbnail_image(asset_data)
+        utils.img_to_preview(self.img, copy_original = True)
+
         self.asset_type = asset_data['assetType']
         self.asset_id = asset_data['id']
         # self.tex = utils.get_hidden_texture(self.img)
diff --git a/blenderkit/utils.py b/blenderkit/utils.py
index bae1244d8..3d1f3eaed 100644
--- a/blenderkit/utils.py
+++ b/blenderkit/utils.py
@@ -337,9 +337,14 @@ def get_hidden_texture(name, force_reload=False):
     return t
 
 
-def img_to_preview(img):
-    img.preview.image_size = (img.size[0], img.size[1])
-    img.preview.image_pixels_float = img.pixels[:]
+def img_to_preview(img, copy_original = False):
+    if bpy.app.version[0]>=3:
+        img.preview_ensure()
+    if not copy_original:
+        return;
+    if img.preview.image_size != img.size:
+        img.preview.image_size = (img.size[0], img.size[1])
+        img.preview.image_pixels_float = img.pixels[:]
     # img.preview.icon_size = (img.size[0], img.size[1])
     # img.preview.icon_pixels_float = img.pixels[:]
 
@@ -852,11 +857,14 @@ def get_fake_context(context, area_type='VIEW_3D'):
         # print(w,a,r)
     return C_dict
 
+# def is_url(text):
+
 
 def label_multiline(layout, text='', icon='NONE', width=-1):
     ''' draw a ui label, but try to split it in multiple lines.'''
     if text.strip() == '':
         return
+    text = text.replace('\r\n','\n')
     lines = text.split('\n')
     if width > 0:
         threshold = int(width / 5.5)
@@ -865,6 +873,8 @@ def label_multiline(layout, text='', icon='NONE', width=-1):
     maxlines = 8
     li = 0
     for l in lines:
+        # if is_url(l):
+
         while len(l) > threshold:
             i = l.rfind(' ', 0, threshold)
             if i < 1:
-- 
GitLab