diff --git a/OpenMetaverse.GUI/InventoryTree.cs b/OpenMetaverse.GUI/InventoryTree.cs
index c7352c90..4803cb15 100644
--- a/OpenMetaverse.GUI/InventoryTree.cs
+++ b/OpenMetaverse.GUI/InventoryTree.cs
@@ -97,17 +97,17 @@ namespace OpenMetaverse.GUI
/// Thread-safe method for updating the contents of the specified folder UUID
///
///
- public void UpdateFolder(InventoryFolder folder)
+ public void UpdateFolder(UUID folderID)
{
- if (this.InvokeRequired) this.BeginInvoke((MethodInvoker)delegate { UpdateFolder(folder); });
+ if (this.InvokeRequired) this.BeginInvoke((MethodInvoker)delegate { UpdateFolder(folderID); });
else
{
TreeNode node = null;
TreeNodeCollection children;
- if (folder != Client.InventoryStore.RootFolder)
+ if (folderID != Client.Inventory.Store.RootFolder.UUID)
{
- TreeNode[] found = Nodes.Find(folder.UUID.ToString(), true);
+ TreeNode[] found = Nodes.Find(folderID.ToString(), true);
if (found.Length > 0)
{
node = found[0];
@@ -115,7 +115,7 @@ namespace OpenMetaverse.GUI
}
else
{
- Logger.Log("Received update for unknown TreeView node " + folder.UUID, Helpers.LogLevel.Warning);
+ Logger.Log("Received update for unknown TreeView node " + folderID, Helpers.LogLevel.Warning);
return;
}
}
@@ -123,7 +123,7 @@ namespace OpenMetaverse.GUI
children.Clear();
- List contents = folder.Contents;
+ List contents = Client.Inventory.Store.GetContents(folderID);
if (contents.Count == 0)
{
TreeNode add = children.Add(null, "(empty)");
@@ -139,7 +139,6 @@ namespace OpenMetaverse.GUI
if (inv is InventoryFolder)
{
children[key].Nodes.Add(null, "(loading...)").ForeColor = Color.FromKnownColor(KnownColor.GrayText);
- ((InventoryFolder)inv).OnContentsRetrieved += new InventoryFolder.ContentsRetrieved(InventoryFolder_OnContentsRetrieved);
}
}
}
@@ -149,25 +148,25 @@ namespace OpenMetaverse.GUI
private void InitializeClient(GridClient client)
{
_Client = client;
- _Client.Inventory.OnSkeletonsReceived += new InventoryManager.SkeletonsReceived(Inventory_OnSkeletonsReceived);
+ _Client.Inventory.OnFolderUpdated += new InventoryManager.FolderUpdatedCallback(Inventory_OnFolderUpdated);
+ _Client.Network.OnLogin += new NetworkManager.LoginCallback(Network_OnLogin);
}
- private void Inventory_OnSkeletonsReceived(InventoryManager manager)
+ void Network_OnLogin(LoginStatus login, string message)
{
- _Client.InventoryStore.RootFolder.OnContentsRetrieved += new InventoryFolder.ContentsRetrieved(InventoryFolder_OnContentsRetrieved);
- UpdateFolder(_Client.InventoryStore.RootFolder);
+ if (login == LoginStatus.Success)
+ UpdateFolder(Client.Inventory.Store.RootFolder.UUID);
}
- private void InventoryFolder_OnContentsRetrieved(InventoryFolder folder)
+ void Inventory_OnFolderUpdated(UUID folderID)
{
- UpdateFolder(folder);
+ UpdateFolder(folderID);
}
private void InventoryTree_BeforeExpand(object sender, TreeViewCancelEventArgs e)
{
InventoryFolder folder = (InventoryFolder)e.Node.Tag;
- if (folder.IsStale) folder.RequestContents(InventorySortOrder.ByDate | InventorySortOrder.FoldersByName);
- else UpdateFolder(folder);
+ Client.Inventory.RequestFolderContents(folder.UUID, _Client.Self.AgentID, true, true, InventorySortOrder.ByDate | InventorySortOrder.FoldersByName);
}
}