From 6f53879aaa9d0ca9691761609109be11b0daaf92 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vil=C3=A9m=20Duha?= <vilda.novak@gmail.com>
Date: Fri, 3 Apr 2020 02:31:19 +0200
Subject: [PATCH] BlenderKit: fix a problem with global dict

wasn't found if the path changed and this broke registration of addon.
---
 blenderkit/paths.py | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/blenderkit/paths.py b/blenderkit/paths.py
index 112e2465b..daf56b960 100644
--- a/blenderkit/paths.py
+++ b/blenderkit/paths.py
@@ -84,12 +84,21 @@ def get_temp_dir(subdir=None):
     tempdir = os.path.join(user_preferences.global_dir, 'temp')
     if tempdir.startswith('//'):
         tempdir = bpy.path.abspath(tempdir)
-    if not os.path.exists(tempdir):
-        os.makedirs(tempdir)
-    if subdir is not None:
-        tempdir = os.path.join(tempdir, subdir)
+    try:
         if not os.path.exists(tempdir):
             os.makedirs(tempdir)
+        if subdir is not None:
+            tempdir = os.path.join(tempdir, subdir)
+            if not os.path.exists(tempdir):
+                os.makedirs(tempdir)
+    except:
+        print('Cache directory not found. Resetting Cache folder path.')
+        p = default_global_dict()
+        if p == user_preferences.global_dir:
+            print('Global dir was already default, plese set a global directory in addon preferences to a dir where you have write permissions.')
+            return None
+        user_preferences.global_dir = p
+        tempdir = get_temp_dir(subdir = subdir)
     return tempdir
 
 
-- 
GitLab