* Fixes mantis http://opensimulator.org/mantis/view.php?id=4044. Turns out folders were never being removed from trash when they were singled out for purging in trash. They were being removed when Trash was purged as a whole. That behavior is now fixed for the new InventoryService set.

* Removed left-overs from AssetInventoryServer.
This commit is contained in:
Diva Canto
2009-08-22 10:24:26 -07:00
parent 8ef758d826
commit b03eeeb9f6
19 changed files with 150 additions and 89 deletions

View File

@@ -789,23 +789,15 @@ namespace OpenSim.Region.Framework.Scenes
}
/// <summary>
/// Removes an inventory folder. Although there is a packet in the Linden protocol for this, it may be
/// legacy and not currently used (purge folder is used to remove folders from trash instead).
/// Removes an inventory folder. This packet is sent when the user
/// right-clicks a folder that's already in trash and chooses "purge"
/// </summary>
/// <param name="remoteClient"></param>
/// <param name="folderID"></param>
private void RemoveInventoryFolder(IClientAPI remoteClient, UUID folderID)
private void RemoveInventoryFolder(IClientAPI remoteClient, List<UUID> folderIDs)
{
// Unclear is this handler is ever called by the Linden client, but it might
InventoryFolderBase folder = new InventoryFolderBase(folderID);
folder.Owner = remoteClient.AgentId;
InventoryFolderBase trash = InventoryService.GetFolderForType(remoteClient.AgentId, AssetType.TrashFolder);
if (trash != null)
{
folder.ParentID = trash.ID;
InventoryService.MoveFolder(folder);
}
m_log.DebugFormat("[SCENE INVENTORY]: RemoveInventoryFolders count {0}", folderIDs.Count);
InventoryService.DeleteFolders(remoteClient.AgentId, folderIDs);
}
private SceneObjectGroup GetGroupByPrim(uint localID)

View File

@@ -552,7 +552,7 @@ namespace OpenSim.Region.Framework.Scenes
public void HandleMoveInventoryFolder(IClientAPI remoteClient, UUID folderID, UUID parentID)
{
InventoryFolderBase folder = new InventoryFolderBase(folderID);
InventoryFolderBase folder = new InventoryFolderBase(folderID, remoteClient.AgentId);
folder = InventoryService.GetFolder(folder);
if (folder != null)
{