[Bf-blender-cvs] [bf1a34d0004] asset-engine: Amber: Fix several issues with edit code when there was no repo present yet.

Bastien Montagne noreply at git.blender.org
Tue Jan 9 11:03:03 CET 2018


Commit: bf1a34d0004fb43c316712bbdfa88d7f4b43bb0d
Author: Bastien Montagne
Date:   Tue Jan 9 11:02:12 2018 +0100
Branches: asset-engine
https://developer.blender.org/rBbf1a34d0004fb43c316712bbdfa88d7f4b43bb0d

Amber: Fix several issues with edit code when there was no repo present yet.

Reported by Campbell on IRC, thanks.

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

M	release/scripts/modules/amber/operators.py
M	release/scripts/modules/amber/repository.py
M	release/scripts/modules/amber/ui.py

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

diff --git a/release/scripts/modules/amber/operators.py b/release/scripts/modules/amber/operators.py
index df010c98c7e..ed57fd5413a 100644
--- a/release/scripts/modules/amber/operators.py
+++ b/release/scripts/modules/amber/operators.py
@@ -72,7 +72,7 @@ class AmberOpsRepositoryAdd(Operator, AmberOpsEditing):
         ae = context.space_data.asset_engine
         path = context.space_data.params.directory
 
-        if getattr(ae, "repo", None) is not None:
+        if getattr(ae, "repo", None):
             self.report({'INFO'}, "Current directory is already an Amber repository, '%s'" % ae.repo.name)
             return {'CANCELLED'}
         if os.path.exists(os.path.join(path, utils.AMBER_DB_NAME)):
@@ -140,6 +140,10 @@ class AmberOpsRepositoryRemove(Operator, AmberOpsEditing):
                     os.rmdir(data_path)
 
         ae.repositories_pg.repositories.remove(ae.repositories_pg.repository_index_active)
+        ae.repositories_pg.repository_index_active -= 1
+        repos = AmberDataRepositoryList()
+        repos.from_pg(ae.repositories_pg)
+        repos.save()
 
         if self.do_erase:
             os.remove(db_path)
diff --git a/release/scripts/modules/amber/repository.py b/release/scripts/modules/amber/repository.py
index c1247691340..ab8d1a3ad3a 100644
--- a/release/scripts/modules/amber/repository.py
+++ b/release/scripts/modules/amber/repository.py
@@ -718,7 +718,7 @@ class AmberDataRepositoryListItemPG(PropertyGroup):
 
 
 class AmberDataRepositoryListPG(PropertyGroup):
-    def repositories_update(self, context):
+    def repositories_active_update(self, context):
         space = context.space_data
         if space and space.type == 'FILE_BROWSER':
             ae = space.asset_engine
@@ -726,7 +726,8 @@ class AmberDataRepositoryListPG(PropertyGroup):
                 space.params.directory = self.repositories[self.repository_index_active].path
 
     repositories = CollectionProperty(name="Repositories", type=AmberDataRepositoryListItemPG)
-    repository_index_active = IntProperty(name="Active Repository", options={'HIDDEN'}, update=repositories_update, default=-1)
+    repository_index_active = IntProperty(name="Active Repository", options={'HIDDEN'},
+                                          update=repositories_active_update, default=-1)
 
 
 class AmberDataRepositoryList:
diff --git a/release/scripts/modules/amber/ui.py b/release/scripts/modules/amber/ui.py
index 2fcab837f55..07d98d01c05 100644
--- a/release/scripts/modules/amber/ui.py
+++ b/release/scripts/modules/amber/ui.py
@@ -69,9 +69,10 @@ class AMBER_PT_repositories(Panel, AmberPanel):
         col.operator("AMBER_OT_repository_remove", text="", icon='ZOOMOUT')
         col.operator("AMBER_OT_repository_remove", text="", icon='PANEL_CLOSE').do_erase = True
 
-        repo = ae.repositories_pg.repositories[ae.repositories_pg.repository_index_active]
-        row = self.layout.row()
-        row.prop(repo, "path", text="")
+        if 0 <= ae.repositories_pg.repository_index_active < len(ae.repositories_pg.repositories):
+            repo = ae.repositories_pg.repositories[ae.repositories_pg.repository_index_active]
+            row = self.layout.row()
+            row.prop(repo, "path", text="")
 
 
 class AMBER_UL_tags_filter(UIList):



More information about the Bf-blender-cvs mailing list