aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs12
-rw-r--r--OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs20
2 files changed, 30 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs
index 964efda..7840571 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs
@@ -346,7 +346,15 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
346 InventoryFolderBase root = m_Scene.InventoryService.GetRootFolder(client.AgentId); 346 InventoryFolderBase root = m_Scene.InventoryService.GetRootFolder(client.AgentId);
347 InventoryCollection content = m_Scene.InventoryService.GetFolderContent(client.AgentId, root.ID); 347 InventoryCollection content = m_Scene.InventoryService.GetFolderContent(client.AgentId, root.ID);
348 348
349 inv.SendBulkUpdateInventory(content.Folders.ToArray(), content.Items.ToArray()); 349 List<InventoryFolderBase> keep = new List<InventoryFolderBase>();
350
351 foreach (InventoryFolderBase f in content.Folders)
352 {
353 if (f.Name != "My Suitcase" && f.Name != "Current Outfit")
354 keep.Add(f);
355 }
356
357 inv.SendBulkUpdateInventory(keep.ToArray(), content.Items.ToArray());
350 } 358 }
351 } 359 }
352 } 360 }
@@ -379,7 +387,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
379 387
380 foreach (InventoryFolderBase f in content.Folders) 388 foreach (InventoryFolderBase f in content.Folders)
381 { 389 {
382 if (f.Name != "My Suitcase") 390 if (f.Name != "My Suitcase" && f.Name != "Current Outfit")
383 { 391 {
384 f.Name = f.Name + " (Unavailable)"; 392 f.Name = f.Name + " (Unavailable)";
385 keep.Add(f); 393 keep.Add(f);
diff --git a/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs b/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs
index 784f136..c9f4d5a 100644
--- a/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs
+++ b/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs
@@ -472,6 +472,22 @@ namespace OpenSim.Services.HypergridService
472 return null; 472 return null;
473 } 473 }
474 474
475 private XInventoryFolder GetCurrentOutfitXFolder(UUID userID)
476 {
477 XInventoryFolder root = GetRootXFolder(userID);
478 if (root == null)
479 return null;
480
481 XInventoryFolder[] folders = m_Database.GetFolders(
482 new string[] { "agentID", "type", "parentFolderID" },
483 new string[] { userID.ToString(), ((int)AssetType.CurrentOutfitFolder).ToString(), root.folderID.ToString() });
484
485 if (folders.Length == 0)
486 return null;
487
488 return folders[0];
489 }
490
475 private XInventoryFolder GetSuitcaseXFolder(UUID principalID) 491 private XInventoryFolder GetSuitcaseXFolder(UUID principalID)
476 { 492 {
477 // Warp! Root folder for travelers 493 // Warp! Root folder for travelers
@@ -510,6 +526,7 @@ namespace OpenSim.Services.HypergridService
510 if (m_SuitcaseTrees.TryGetValue(principalID, out t)) 526 if (m_SuitcaseTrees.TryGetValue(principalID, out t))
511 return t; 527 return t;
512 528
529 // Get the tree of the suitcase folder
513 t = GetFolderTreeRecursive(folder); 530 t = GetFolderTreeRecursive(folder);
514 m_SuitcaseTrees.AddOrUpdate(principalID, t, 5*60); // 5minutes 531 m_SuitcaseTrees.AddOrUpdate(principalID, t, 5*60); // 5minutes
515 return t; 532 return t;
@@ -555,6 +572,9 @@ namespace OpenSim.Services.HypergridService
555 List<XInventoryFolder> tree = new List<XInventoryFolder>(); 572 List<XInventoryFolder> tree = new List<XInventoryFolder>();
556 tree.Add(suitcase); // Warp! the tree is the real root folder plus the children of the suitcase folder 573 tree.Add(suitcase); // Warp! the tree is the real root folder plus the children of the suitcase folder
557 tree.AddRange(GetFolderTree(principalID, suitcase.folderID)); 574 tree.AddRange(GetFolderTree(principalID, suitcase.folderID));
575 // Also add the Current Outfit folder to the list of available folders
576 tree.Add(GetCurrentOutfitXFolder(principalID));
577
558 XInventoryFolder f = tree.Find(delegate(XInventoryFolder fl) 578 XInventoryFolder f = tree.Find(delegate(XInventoryFolder fl)
559 { 579 {
560 if (fl.folderID == folderID) return true; 580 if (fl.folderID == folderID) return true;