Grid Inventory feature upgrade: renaming folders should now be correct, subfolders work, moving folders works.

Tested only in MYSQL, but may work in MSSQL and sqlite.
Probably not working in standalone mode.
This commit is contained in:
Brian McBee
2007-12-15 04:57:14 +00:00
parent 53b5fa4974
commit 8a8c89a0f3
16 changed files with 281 additions and 21 deletions

View File

@@ -141,6 +141,24 @@ namespace OpenSim.Framework.Data.SQLite
invFoldersDa.Update(ds, "inventoryfolders");
}
private void moveFolder(InventoryFolderBase folder)
{
DataTable inventoryFolderTable = ds.Tables["inventoryfolders"];
DataRow inventoryRow = inventoryFolderTable.Rows.Find(folder.folderID);
if (inventoryRow == null)
{
inventoryRow = inventoryFolderTable.NewRow();
fillFolderRow(inventoryRow, folder);
inventoryFolderTable.Rows.Add(inventoryRow);
}
else
{
moveFolderRow(inventoryRow, folder);
}
invFoldersDa.Update(ds, "inventoryfolders");
}
private void addItem(InventoryItemBase item)
{
DataTable inventoryItemTable = ds.Tables["inventoryitems"];
@@ -403,6 +421,15 @@ namespace OpenSim.Framework.Data.SQLite
addFolder(folder);
}
/// <summary>
/// Moves a folder based on its ID with folder
/// </summary>
/// <param name="folder">The inventory folder</param>
public void moveInventoryFolder(InventoryFolderBase folder)
{
moveFolder(folder);
}
/// <summary>
/// Delete a folder
/// </summary>
@@ -534,6 +561,11 @@ namespace OpenSim.Framework.Data.SQLite
row["version"] = folder.version;
}
private void moveFolderRow(DataRow row, InventoryFolderBase folder)
{
row["UUID"] = folder.folderID;
row["parentID"] = folder.parentID;
}
/***********************************************************************
*