Remove more old stuff

This commit is contained in:
Drake Arconis
2013-06-18 00:19:25 -04:00
parent 788ea1316f
commit 7a0e3d8abd
12 changed files with 18 additions and 826 deletions

View File

@@ -115,7 +115,6 @@ set(viewer_SOURCE_FILES
llanimstatelabels.cpp
llappearancemgr.cpp
llappviewer.cpp
llassetconverter.cpp
llassetuploadqueue.cpp
llassetuploadresponders.cpp
llattachmentsmgr.cpp
@@ -304,7 +303,6 @@ set(viewer_SOURCE_FILES
llinventorypanel.cpp
lljoystickbutton.cpp
lllandmarklist.cpp
lllocalinventory.cpp
lllogchat.cpp
llloginhandler.cpp
llmainlooprepeater.cpp
@@ -620,7 +618,6 @@ set(viewer_HEADER_FILES
llappearance.h
llappearancemgr.h
llappviewer.h
llassetconverter.h
llassetuploadqueue.h
llassetuploadresponders.h
llattachmentsmgr.h
@@ -809,7 +806,6 @@ set(viewer_HEADER_FILES
lljoystickbutton.h
lllandmarklist.h
lllightconstants.h
lllocalinventory.h
lllogchat.h
llloginhandler.h
llmainlooprepeater.h

View File

@@ -235,28 +235,6 @@
<key>Value</key>
<real>0.0</real>
</map>
<key>AscentUseSystemFolder</key>
<map>
<key>Comment</key>
<string>Enables the System folder for setting and non-permanent asset storage.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>AscentSystemTemporary</key>
<map>
<key>Comment</key>
<string>When enabled, temporary uploads are put in the System Asset folder (if System Folder exists).</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>AscentShowFriendsTag</key>
<map>
<key>Comment</key>

View File

@@ -223,8 +223,8 @@ void LLPrefsAscentSys::refreshValues()
{
//General -----------------------------------------------------------------------------
mDoubleClickTeleport = gSavedSettings.getBOOL("DoubleClickTeleport");
mResetCameraAfterTP = gSavedSettings.getBOOL("OptionRotateCamAfterLocalTP");
mOffsetTPByUserHeight = gSavedSettings.getBOOL("OptionOffsetTPByAgentHeight");
mResetCameraAfterTP = gSavedSettings.getBOOL("OptionRotateCamAfterLocalTP");
mOffsetTPByUserHeight = gSavedSettings.getBOOL("OptionOffsetTPByAgentHeight");
mClearBeaconAfterTeleport = gSavedSettings.getBOOL("ClearBeaconAfterTeleport");
mLiruFlyAfterTeleport = gSavedSettings.getBOOL("LiruFlyAfterTeleport");
mLiruContinueFlying = gSavedSettings.getBOOL("LiruContinueFlyingOnUnsit");
@@ -235,14 +235,12 @@ void LLPrefsAscentSys::refreshValues()
mAlwaysShowFly = gSavedSettings.getBOOL("AscentFlyAlwaysEnabled");
mDisableMinZoom = gSavedSettings.getBOOL("AscentDisableMinZoomDist");
mPowerUser = gSavedSettings.getBOOL("AscentPowerfulWizard");
mUseSystemFolder = gSavedSettings.getBOOL("AscentUseSystemFolder");
mUploadToSystem = gSavedSettings.getBOOL("AscentSystemTemporary");
mFetchInventoryOnLogin = gSavedSettings.getBOOL("FetchInventoryOnLogin");
mEnableLLWind = gSavedSettings.getBOOL("WindEnabled");
mEnableClouds = gSavedSettings.getBOOL("CloudsEnabled");
mEnableClassicClouds = gSavedSettings.getBOOL("SkyUseClassicClouds");
mEnableClassicClouds = gSavedSettings.getBOOL("SkyUseClassicClouds");
mSpeedRez = gSavedSettings.getBOOL("SpeedRez");
mSpeedRezInterval = gSavedSettings.getU32("SpeedRezInterval");
mSpeedRezInterval = gSavedSettings.getU32("SpeedRezInterval");
//Command Line ------------------------------------------------------------------------
mCmdLine = gSavedSettings.getBOOL("AscentCmdLine");
@@ -303,7 +301,6 @@ void LLPrefsAscentSys::refresh()
childSetEnabled("offset_teleport_check", mDoubleClickTeleport);
childSetValue("power_user_check", mPowerUser);
childSetValue("power_user_confirm_check", mPowerUser);
childSetEnabled("temp_in_system_check", mUseSystemFolder);
childSetEnabled("speed_rez_interval", mSpeedRez);
childSetEnabled("speed_rez_seconds", mSpeedRez);
@@ -377,8 +374,8 @@ void LLPrefsAscentSys::cancel()
{
//General -----------------------------------------------------------------------------
gSavedSettings.setBOOL("DoubleClickTeleport", mDoubleClickTeleport);
gSavedSettings.setBOOL("OptionRotateCamAfterLocalTP", mResetCameraAfterTP);
gSavedSettings.setBOOL("OptionOffsetTPByAgentHeight", mOffsetTPByUserHeight);
gSavedSettings.setBOOL("OptionRotateCamAfterLocalTP", mResetCameraAfterTP);
gSavedSettings.setBOOL("OptionOffsetTPByAgentHeight", mOffsetTPByUserHeight);
gSavedSettings.setBOOL("ClearBeaconAfterTeleport", mClearBeaconAfterTeleport);
gSavedSettings.setBOOL("LiruFlyAfterTeleport", mLiruFlyAfterTeleport);
gSavedSettings.setBOOL("LiruContinueFlyingOnUnsit", mLiruContinueFlying);
@@ -388,14 +385,12 @@ void LLPrefsAscentSys::cancel()
gSavedSettings.setBOOL("AscentBuildAlwaysEnabled", mBuildAlwaysEnabled);
gSavedSettings.setBOOL("AscentFlyAlwaysEnabled", mAlwaysShowFly);
gSavedSettings.setBOOL("AscentDisableMinZoomDist", mDisableMinZoom);
gSavedSettings.setBOOL("AscentUseSystemFolder", mUseSystemFolder);
gSavedSettings.setBOOL("AscentSystemTemporary", mUploadToSystem);
gSavedSettings.setBOOL("FetchInventoryOnLogin", mFetchInventoryOnLogin);
gSavedSettings.setBOOL("WindEnabled", mEnableLLWind);
gSavedSettings.setBOOL("CloudsEnabled", mEnableClouds);
gSavedSettings.setBOOL("SkyUseClassicClouds", mEnableClassicClouds);
gSavedSettings.setBOOL("SkyUseClassicClouds", mEnableClassicClouds);
gSavedSettings.setBOOL("SpeedRez", mSpeedRez);
gSavedSettings.setU32("SpeedRezInterval", mSpeedRezInterval);
gSavedSettings.setU32("SpeedRezInterval", mSpeedRezInterval);
//Command Line ------------------------------------------------------------------------
gSavedSettings.setBOOL("AscentCmdLine", mCmdLine);

View File

@@ -54,8 +54,8 @@ protected:
//General -----------------------------------------------------------------------------
BOOL mDoubleClickTeleport;
BOOL mResetCameraAfterTP;
BOOL mOffsetTPByUserHeight;
BOOL mResetCameraAfterTP;
BOOL mOffsetTPByUserHeight;
bool mClearBeaconAfterTeleport;
bool mLiruFlyAfterTeleport;
bool mLiruContinueFlying;
@@ -66,14 +66,12 @@ protected:
BOOL mAlwaysShowFly;
BOOL mDisableMinZoom;
BOOL mPowerUser;
BOOL mUseSystemFolder;
BOOL mUploadToSystem;
BOOL mFetchInventoryOnLogin;
BOOL mEnableLLWind;
BOOL mEnableClouds;
BOOL mEnableClassicClouds;
BOOL mEnableClassicClouds;
BOOL mSpeedRez;
U32 mSpeedRezInterval;
U32 mSpeedRezInterval;
//Command Line ------------------------------------------------------------------------
BOOL mCmdLine;

View File

@@ -1,112 +0,0 @@
// <edit>
#include "llviewerprecompiledheaders.h"
#include "llvfs.h"
#include "llapr.h"
#include "llvfile.h"
#include "llassetconverter.h"
#include "llviewertexturelist.h"
#include "llvorbisencode.h"
#include "llwearable.h"
#include "llbvhloader.h"
#include <boost/bind.hpp>
struct conversion_s
{
std::string extension;
LLAssetType::EType type;
boost::function<bool(const std::string&, const std::string&)> conv_fn;
}conversion_list[] =
{
{ "bmp", LLAssetType::AT_TEXTURE, boost::bind(&LLViewerTextureList::createUploadFile,_1,_2,IMG_CODEC_BMP) },
{ "tga", LLAssetType::AT_TEXTURE, boost::bind(&LLViewerTextureList::createUploadFile,_1,_2,IMG_CODEC_TGA) },
{ "jpg", LLAssetType::AT_TEXTURE, boost::bind(&LLViewerTextureList::createUploadFile,_1,_2,IMG_CODEC_JPEG)},
{ "jpeg", LLAssetType::AT_TEXTURE, boost::bind(&LLViewerTextureList::createUploadFile,_1,_2,IMG_CODEC_JPEG)},
{ "png", LLAssetType::AT_TEXTURE, boost::bind(&LLViewerTextureList::createUploadFile,_1,_2,IMG_CODEC_PNG) },
{ "jp2", LLAssetType::AT_TEXTURE, &LLAssetConverter::copyFile },
{ "j2k", LLAssetType::AT_TEXTURE, &LLAssetConverter::copyFile },
{ "j2c", LLAssetType::AT_TEXTURE, &LLAssetConverter::copyFile },
{ "wav", LLAssetType::AT_SOUND, &encode_vorbis_file },
{ "ogg", LLAssetType::AT_SOUND, &LLAssetConverter::copyFile },
{ "bvh", LLAssetType::AT_ANIMATION, &LLAssetConverter::copyBVH },
{ "animatn", LLAssetType::AT_ANIMATION, &LLAssetConverter::copyFile },
{ "gesture", LLAssetType::AT_GESTURE, &LLAssetConverter::copyFile },
{ "notecard", LLAssetType::AT_NOTECARD, &LLAssetConverter::copyFile },
{ "lsl", LLAssetType::AT_LSL_TEXT, &LLAssetConverter::copyFile },
//tmp ?
};
// static
extern std::string STATUS[];
LLAssetType::EType LLAssetConverter::convert(const std::string &src_filename, const std::string &filename)
{
std::string exten = gDirUtilp->getExtension(src_filename);
for(U32 i = 0;i < sizeof(conversion_list) / sizeof(conversion_list[0]); ++i)
{
if(conversion_list[i].extension == exten)
{
return conversion_list[i].conv_fn(src_filename, filename) ?
conversion_list[i].type : LLAssetType::AT_NONE;
}
}
LLWearableType::EType wear_type = LLWearableType::typeNameToType(exten);
if(wear_type != LLWearableType::WT_NONE && copyFile(src_filename, filename))
{
return LLWearableType::getAssetType(wear_type);
}
llwarns << "Unhandled extension" << llendl;
return LLAssetType::AT_NONE;
}
bool LLAssetConverter::copyFile(const std::string &src_filename, const std::string &dst_filename)
{
S32 src_size;
LLAPRFile src_fp(src_filename, LL_APR_RB, &src_size);
if(!src_fp.getFileHandle()) return false;
LLAPRFile dst_fp(dst_filename, LL_APR_WB);
if(!dst_fp.getFileHandle()) return false;
std::vector<char> buffer(src_size + 1);
src_fp.read(&buffer[0], src_size);
dst_fp.write(&buffer[0], src_size);
return true;
}
bool LLAssetConverter::copyBVH(const std::string &src_filename, const std::string &dst_filename)
{
S32 file_size;
LLAPRFile fp(src_filename, LL_APR_RB, &file_size);
if(!fp.getFileHandle()) return false;
std::vector<char> buffer(file_size + 1);
ELoadStatus load_status = E_ST_OK;
S32 line_number = 0;
LLBVHLoader* loaderp = new LLBVHLoader(&buffer[0], load_status, line_number);
if(load_status == E_ST_NO_XLT_FILE)
{
llwarns << "NOTE: No translation table found." << llendl;
}
else if(load_status != E_ST_OK)
{
llwarns << "ERROR: [line: " << line_number << "] " << STATUS[load_status].c_str() << llendl;
}
buffer.resize(loaderp->getOutputSize());
LLDataPackerBinaryBuffer dp((U8*)&buffer[0], buffer.size());
loaderp->serialize(dp);
delete loaderp;
LLAPRFile apr_file(dst_filename, LL_APR_RB, &file_size);
if(!apr_file.getFileHandle()) return false;
apr_file.write(&buffer[0], buffer.size());
return true;
}
// </edit>

View File

@@ -1,16 +0,0 @@
// <edit>
#ifndef LL_LLASSETCONVERTER_H
#define LL_LLASSETCONVERTER_H
#include "llcommon.h"
#include "llassettype.h"
class LLAssetConverter
{
public:
static LLAssetType::EType convert(const std::string &src_filename, const std::string &filename);
static bool copyFile(const std::string &src_filename, const std::string &dest_filename);
static bool copyBVH(const std::string &src_filename, const std::string &dst_filename);
};
#endif
// </edit>

View File

@@ -6,7 +6,6 @@
#include "llscrolllistctrl.h"
#include "llfloaterbvhpreview.h"
#include "llvoavatar.h"
#include "lllocalinventory.h"
#include "llviewercamera.h"
#include "llviewerwindow.h"
#include "lltoolmgr.h"

View File

@@ -1,561 +0,0 @@
// <edit>
#include "llviewerprecompiledheaders.h"
#include "lllocalinventory.h"
#include "llviewerinventory.h"
#include "llviewercontrol.h"
#include "llpreviewsound.h"
#include "llpreviewanim.h"
#include "llpreviewtexture.h"
#include "llpreviewgesture.h"
#include "llpreviewlandmark.h"
#include "llappviewer.h"
#include "lluictrlfactory.h"
#include "llcombobox.h"
#include "llnotificationsutil.h"
#include "llagent.h" // gAgent
#include "llviewerwindow.h" // alertXml
LLUUID LLLocalInventory::addItem(std::string name, int type, LLUUID asset_id, bool open_automatically)
{
LLUUID item_id = addItem(name, type, asset_id);
if(open_automatically) open(item_id);
return item_id;
}
LLUUID LLLocalInventory::addItem(std::string name, int type, LLUUID asset_id)
{
LLUUID item_id;
item_id.generate();
LLPermissions* perms = new LLPermissions();
perms->set(LLPermissions::DEFAULT);
perms->setOwnerAndGroup(LLUUID::null, LLUUID::null, LLUUID::null, false);
perms->setMaskBase(0);
perms->setMaskEveryone(0);
perms->setMaskGroup(0);
perms->setMaskNext(0);
perms->setMaskOwner(0);
LLViewerInventoryItem* item = new LLViewerInventoryItem(
item_id,
gSystemFolderAssets,
*perms,
asset_id,
(LLAssetType::EType)type,
(LLInventoryType::EType)type,
name,
"",
LLSaleInfo::DEFAULT,
0,
time_corrected());
addItem(item);
return item_id;
}
void LLLocalInventory::addItem(LLViewerInventoryItem* item)
{
//gInventory.addPretendItem(item);
LLInventoryModel::update_map_t update;
++update[item->getParentUUID()];
gInventory.accountForUpdate(update);
gInventory.updateItem(item);
gInventory.notifyObservers();
}
void LLLocalInventory::open(LLUUID item_id)
{
LLViewerInventoryItem* item = gInventory.getItem(item_id);
if(!item)
{
llwarns << "Trying to open non-existent item" << llendl;
return;
}
LLAssetType::EType type = item->getType();
if(type == LLAssetType::AT_SOUND)
{
S32 left, top;
gFloaterView->getNewFloaterPosition(&left, &top);
LLRect rect = gSavedSettings.getRect("PreviewSoundRect");
rect.translate(left - rect.mLeft, top - rect.mTop);
LLPreviewSound* floaterp;
floaterp = new LLPreviewSound("Preview sound",
rect,
"",
item_id);
floaterp->setFocus(TRUE);
gFloaterView->adjustToFitScreen(floaterp, FALSE);
}
else if(type == LLAssetType::AT_ANIMATION)
{
S32 left, top;
gFloaterView->getNewFloaterPosition(&left, &top);
LLRect rect = gSavedSettings.getRect("PreviewAnimRect");
rect.translate(left - rect.mLeft, top - rect.mTop);
LLPreviewAnim* floaterp;
floaterp = new LLPreviewAnim("Preview anim",
rect,
"",
item_id,
LLPreviewAnim::NONE);
floaterp->setFocus(TRUE);
gFloaterView->adjustToFitScreen(floaterp, FALSE);
}
else if(type == LLAssetType::AT_TEXTURE)
{
S32 left, top;
gFloaterView->getNewFloaterPosition(&left, &top);
LLRect rect = gSavedSettings.getRect("PreviewTextureRect");
rect.translate( left - rect.mLeft, top - rect.mTop );
LLPreviewTexture* preview;
preview = new LLPreviewTexture("preview texture",
rect,
"Preview texture",
item_id,
LLUUID::null,
FALSE);
//preview->setSourceID(source_id);
preview->setFocus(TRUE);
gFloaterView->adjustToFitScreen(preview, FALSE);
}
else if(type == LLAssetType::AT_GESTURE)
{
// If only the others were like this
LLPreviewGesture::show("preview gesture", item_id, LLUUID::null, TRUE);
}
else if(type == LLAssetType::AT_LANDMARK)
{
S32 left, top;
gFloaterView->getNewFloaterPosition(&left, &top);
LLRect rect = gSavedSettings.getRect("PreviewLandmarkRect");
rect.translate( left - rect.mLeft, top - rect.mTop );
LLPreviewLandmark* preview;
preview = new LLPreviewLandmark("preview landmark",
rect,
"Preview landmark",
item_id);
preview->setFocus(TRUE);
gFloaterView->adjustToFitScreen(preview, FALSE);
}
else
{
llwarns << "Dunno how to open type " << type << llendl;
}
}
//static
void LLLocalInventory::loadInvCache(std::string filename)
{
std::string extension = gDirUtilp->getExtension(filename);
std::string inv_filename = filename;
if(extension == "gz")
{
LLUUID random;
random.generate();
inv_filename = filename.substr(0, filename.length() - 3) + "." + random.asString();
if(!gunzip_file(filename, inv_filename))
{
// failure... message?
return;
}
}
LLInventoryModel::cat_array_t cats;
LLInventoryModel::item_array_t items;
bool is_cache_obsolete = false;
if(LLInventoryModel::loadFromFile(inv_filename, cats, items, is_cache_obsolete))
{
// create a container category for everything
LLViewerInventoryCategory* container = new LLViewerInventoryCategory(gAgent.getID());
container->rename(gDirUtilp->getBaseFileName(filename, false));
LLUUID container_id;
container_id.generate();
container->setUUID(container_id);
container->setParent(gSystemFolderRoot);
container->setPreferredType(LLFolderType::FT_NONE);
LLInventoryModel::update_map_t container_update;
++container_update[container->getParentUUID()];
gInventory.accountForUpdate(container_update);
gInventory.updateCategory(container);
gInventory.notifyObservers();
LLViewerInventoryCategory* orphaned_items = new LLViewerInventoryCategory(gAgent.getID());
orphaned_items->rename("Orphaned Items");
LLUUID orphaned_items_id;
orphaned_items_id.generate();
orphaned_items->setUUID(orphaned_items_id);
orphaned_items->setParent(container_id);
orphaned_items->setPreferredType(LLFolderType::FT_NONE);
LLInventoryModel::update_map_t orphaned_items_update;
++orphaned_items_update[orphaned_items->getParentUUID()];
gInventory.accountForUpdate(orphaned_items_update);
gInventory.updateCategory(orphaned_items);
gInventory.notifyObservers();
//conflict handling
std::map<LLUUID,LLUUID> conflicting_cats;
int dropped_cats = 0;
int dropped_items = 0;
// Add all categories
LLInventoryModel::cat_array_t::iterator cat_iter = cats.begin();
LLInventoryModel::cat_array_t::iterator cat_end = cats.end();
for(; cat_iter != cat_end; ++cat_iter)
{
// Conditionally change its parent
// Note: Should I search for missing parent id's?
//if the parent is null, it goes in the very root of the tree!
if((*cat_iter)->getParentUUID().isNull())
{
(*cat_iter)->setParent(container_id);
}
// If the parent exists and outside of pretend inventory, generate a new uuid
else if(gInventory.getCategory((*cat_iter)->getParentUUID()))
{
if(!gInventory.isObjectDescendentOf((*cat_iter)->getParentUUID(), gSystemFolderRoot, TRUE))
{
std::map<LLUUID,LLUUID>::iterator itr = conflicting_cats.find((*cat_iter)->getParentUUID());
if(itr == conflicting_cats.end())
{
dropped_cats++;
continue;
}
(*cat_iter)->setParent(itr->second);
}
} else {
//well balls, this is orphaned.
(*cat_iter)->setParent(orphaned_items_id);
}
// If this category already exists, generate a new uuid
if(gInventory.getCategory((*cat_iter)->getUUID()))
{
LLUUID cat_random;
cat_random.generate();
conflicting_cats[(*cat_iter)->getUUID()] = cat_random;
(*cat_iter)->setUUID(cat_random);
}
LLInventoryModel::update_map_t update;
++update[(*cat_iter)->getParentUUID()];
gInventory.accountForUpdate(update);
gInventory.updateCategory(*cat_iter);
gInventory.notifyObservers();
}
// Add all items
LLInventoryModel::item_array_t::iterator item_iter = items.begin();
LLInventoryModel::item_array_t::iterator item_end = items.end();
for(; item_iter != item_end; ++item_iter)
{
// Conditionally change its parent
// Note: Should I search for missing parent id's?
//if the parent is null, it goes in the very root of the tree!
if((*item_iter)->getParentUUID().isNull())
{
(*item_iter)->setParent(container_id);
}
// If the parent exists and outside of pretend inventory, generate a new uuid
if(gInventory.getCategory((*item_iter)->getParentUUID()))
{
if(!gInventory.isObjectDescendentOf((*item_iter)->getParentUUID(), gSystemFolderRoot, TRUE))
{
std::map<LLUUID,LLUUID>::iterator itr = conflicting_cats.find((*item_iter)->getParentUUID());
if(itr == conflicting_cats.end())
{
dropped_items++;
continue;
}
(*item_iter)->setParent(itr->second);
}
} else {
//well balls, this is orphaned.
(*item_iter)->setParent(orphaned_items_id);
}
// Avoid conflicts with real inventory...
// If this item id already exists, generate a new uuid
if(gInventory.getItem((*item_iter)->getUUID()))
{
LLUUID item_random;
item_random.generate();
(*item_iter)->setUUID(item_random);
}
LLInventoryModel::update_map_t update;
++update[(*item_iter)->getParentUUID()];
gInventory.accountForUpdate(update);
gInventory.updateItem(*item_iter);
gInventory.notifyObservers();
}
// Quality time
if(dropped_items || dropped_cats)
{
std::ostringstream message;
message << "Some items were ignored due to conflicts:\n\n";
if(dropped_cats) message << dropped_cats << " folders\n";
if(dropped_items) message << dropped_items << " items\n";
LLSD args;
args["ERROR_MESSAGE"] = message.str();
LLNotificationsUtil::add("ErrorMessage", args);
}
conflicting_cats.clear();// srsly dont think this is need but w/e :D
}
// remove temporary unzipped file
if(extension == "gz")
{
LLFile::remove(inv_filename);
}
}
//static
void LLLocalInventory::saveInvCache(std::string filename, LLFolderView* folder)
{
LLInventoryModel* model = &gInventory;
std::set<LLUUID> selected_items = folder->getSelectionList();
if(selected_items.size() < 1)
{
// No items selected? Wtfboom
return;
}
LLInventoryModel::cat_array_t cats;
LLInventoryModel::item_array_t items;
// Make complete lists of child categories and items
std::set<LLUUID>::iterator sel_iter = selected_items.begin();
std::set<LLUUID>::iterator sel_end = selected_items.end();
for( ; sel_iter != sel_end; ++sel_iter)
{
LLInventoryCategory* cat = model->getCategory(*sel_iter);
if(cat)
{
climb(cat, cats, items);
}
}
// And what about items inside a folder that wasn't selected?
// I guess I will just add selected items, so long as they aren't already added
for(sel_iter = selected_items.begin(); sel_iter != sel_end; ++sel_iter)
{
LLInventoryItem* item = model->getItem(*sel_iter);
if(item)
{
if(std::find(items.begin(), items.end(), item) == items.end())
{
items.push_back(LLPointer<LLViewerInventoryItem>((LLViewerInventoryItem*)item));
LLInventoryCategory* parent = model->getCategory(item->getParentUUID());
if(std::find(cats.begin(), cats.end(), parent) == cats.end())
{
cats.push_back(LLPointer<LLViewerInventoryCategory>((LLViewerInventoryCategory*)parent));
}
}
}
}
LLInventoryModel::saveToFile(filename, cats, items);
}
// static
void LLLocalInventory::climb(LLInventoryCategory* cat,
LLInventoryModel::cat_array_t& cats,
LLInventoryModel::item_array_t& items)
{
LLInventoryModel* model = &gInventory;
// Add this category
cats.push_back(LLPointer<LLViewerInventoryCategory>((LLViewerInventoryCategory*)cat));
LLInventoryModel::cat_array_t *direct_cats;
LLInventoryModel::item_array_t *direct_items;
model->getDirectDescendentsOf(cat->getUUID(), direct_cats, direct_items);
// Add items
LLInventoryModel::item_array_t::iterator item_iter = direct_items->begin();
LLInventoryModel::item_array_t::iterator item_end = direct_items->end();
for( ; item_iter != item_end; ++item_iter)
{
items.push_back(*item_iter);
}
// Do subcategories
LLInventoryModel::cat_array_t::iterator cat_iter = direct_cats->begin();
LLInventoryModel::cat_array_t::iterator cat_end = direct_cats->end();
for( ; cat_iter != cat_end; ++cat_iter)
{
climb(*cat_iter, cats, items);
}
}
LLUUID LLFloaterNewLocalInventory::sLastCreatorId = LLUUID::null;
LLFloaterNewLocalInventory::LLFloaterNewLocalInventory()
: LLFloater()
{
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_new_local_inventory.xml");
}
LLFloaterNewLocalInventory::~LLFloaterNewLocalInventory()
{
}
BOOL LLFloaterNewLocalInventory::postBuild(void)
{
// Fill in default values
getChild<LLLineEditor>("creator_id_line")->setText(std::string("00000000-0000-0000-0000-000000000000"));
getChild<LLLineEditor>("owner_id_line")->setText(gAgent.getID().asString());
getChild<LLLineEditor>("asset_id_line")->setText(std::string("00000000-0000-0000-0000-000000000000"));
getChild<LLLineEditor>("name_line")->setText(std::string(""));
getChild<LLLineEditor>("desc_line")->setText(std::string(""));
// Set up callbacks
childSetAction("ok_btn", onClickOK, this);
return TRUE;
}
// static
void LLFloaterNewLocalInventory::onClickOK(void* user_data)
{
LLFloaterNewLocalInventory* floater = (LLFloaterNewLocalInventory*)user_data;
LLUUID item_id;
item_id.generate();
std::string name = floater->getChild<LLLineEditor>("name_line")->getText();
std::string desc = floater->getChild<LLLineEditor>("desc_line")->getText();
LLUUID asset_id = LLUUID(floater->getChild<LLLineEditor>("asset_id_line")->getText());
LLUUID creator_id = LLUUID(floater->getChild<LLLineEditor>("creator_id_line")->getText());
LLUUID owner_id = LLUUID(floater->getChild<LLLineEditor>("owner_id_line")->getText());
LLAssetType::EType type = LLAssetType::lookup(floater->getChild<LLComboBox>("type_combo")->getValue().asString());
LLInventoryType::EType inv_type = LLInventoryType::IT_NONE;
switch(type)
{
case LLAssetType::AT_TEXTURE:
case LLAssetType::AT_TEXTURE_TGA:
case LLAssetType::AT_IMAGE_TGA:
case LLAssetType::AT_IMAGE_JPEG:
inv_type = LLInventoryType::IT_TEXTURE;
break;
case LLAssetType::AT_SOUND:
case LLAssetType::AT_SOUND_WAV:
inv_type = LLInventoryType::IT_SOUND;
break;
case LLAssetType::AT_CALLINGCARD:
inv_type = LLInventoryType::IT_CALLINGCARD;
break;
case LLAssetType::AT_LANDMARK:
inv_type = LLInventoryType::IT_LANDMARK;
break;
case LLAssetType::AT_SCRIPT:
inv_type = LLInventoryType::IT_LSL;
break;
case LLAssetType::AT_CLOTHING:
inv_type = LLInventoryType::IT_WEARABLE;
break;
case LLAssetType::AT_OBJECT:
inv_type = LLInventoryType::IT_OBJECT;
break;
case LLAssetType::AT_NOTECARD:
inv_type = LLInventoryType::IT_NOTECARD;
break;
case LLAssetType::AT_CATEGORY:
inv_type = LLInventoryType::IT_CATEGORY;
break;
//No longer asset types.
/*case LLFolderType::FT_ROOT_CATEGORY:
case LLFolderType::FT_TRASH:
case LLFolderType::FT_SNAPSHOT_CATEGORY:
case LLFolderType::FT_LOST_AND_FOUND:
inv_type = LLInventoryType::IT_ROOT_CATEGORY;
break;*/
case LLAssetType::AT_LSL_TEXT:
case LLAssetType::AT_LSL_BYTECODE:
inv_type = LLInventoryType::IT_LSL;
break;
case LLAssetType::AT_BODYPART:
inv_type = LLInventoryType::IT_WEARABLE;
break;
case LLAssetType::AT_ANIMATION:
inv_type = LLInventoryType::IT_ANIMATION;
break;
case LLAssetType::AT_GESTURE:
inv_type = LLInventoryType::IT_GESTURE;
break;
//case LLAssetType::AT_SIMSTATE:
default:
//inv_type = LLInventoryType::IT_CALLINGCARD;
break;
}
if(inv_type == LLInventoryType::IT_NONE)
return;
LLPermissions* perms = new LLPermissions();
perms->init(creator_id, owner_id, LLUUID::null, LLUUID::null);
LLViewerInventoryItem* item = new LLViewerInventoryItem(
item_id,
gSystemFolderRoot,
*perms,
asset_id,
type,
inv_type,
name,
desc,
LLSaleInfo::DEFAULT,
0,
0);
LLLocalInventory::addItem(item);
if(floater->childGetValue("chk_open"))
{
LLLocalInventory::open(item_id);
}
LLFloaterNewLocalInventory::sLastCreatorId = creator_id;
floater->close();
}
// </edit>

View File

@@ -1,45 +0,0 @@
// <edit>
#ifndef LL_LLLOCALINVENTORY_H
#define LL_LLLOCALINVENTORY_H
#include "llviewerinventory.h"
#include "llfloater.h"
#include "llfolderview.h"
#include "llinventorymodel.h" // cat_array_t, item_array_t
class LLLocalInventory
{
public:
static LLUUID addItem(std::string name, int type, LLUUID asset_id, bool open);
static LLUUID addItem(std::string name, int type, LLUUID asset_id);
static void addItem(LLViewerInventoryItem* item);
static void open(LLUUID item_id);
static void loadInvCache(std::string filename);
static void saveInvCache(std::string filename, LLFolderView* folder);
static void climb(LLInventoryCategory* cat,
LLInventoryModel::cat_array_t& cats,
LLInventoryModel::item_array_t& items);
};
class LLFloaterNewLocalInventory
: public LLFloater
{
public:
LLFloaterNewLocalInventory();
BOOL postBuild(void);
static void onClickOK(void* user_data);
static LLUUID sLastCreatorId;
private:
virtual ~LLFloaterNewLocalInventory();
};
#endif
// </edit>

View File

@@ -2193,41 +2193,6 @@ bool idle_startup()
}
display_startup();
// <edit> testing adding a local inventory folder...
if (gSavedSettings.getBOOL("AscentUseSystemFolder"))
{
LLViewerInventoryCategory* system_folder = new LLViewerInventoryCategory(gAgent.getID());
system_folder->rename(std::string("System Inventory"));
LLUUID system_folder_id = LLUUID("00000000-0000-0000-0000-000000000001");//"FFFFFFFF-0000-F113-7357-000000000001");
system_folder->setUUID(system_folder_id);
gSystemFolderRoot = system_folder_id;
system_folder->setParent(LLUUID::null);
system_folder->setPreferredType(LLFolderType::FT_NONE);
gInventory.addCategory(system_folder);
LLViewerInventoryCategory* settings_folder = new LLViewerInventoryCategory(gAgent.getID());
settings_folder->rename(std::string("Settings"));
LLUUID settings_folder_id;
settings_folder_id.generate();
settings_folder->setUUID(settings_folder_id);
gSystemFolderSettings = settings_folder_id;
settings_folder->setParent(gSystemFolderRoot);
settings_folder->setPreferredType(LLFolderType::FT_NONE);
gInventory.addCategory(settings_folder);
LLViewerInventoryCategory* assets_folder = new LLViewerInventoryCategory(gAgent.getID());
assets_folder->rename(std::string("Assets"));
LLUUID assets_folder_id;
assets_folder_id.generate();
assets_folder->setUUID(assets_folder_id);
gSystemFolderAssets = assets_folder_id;
assets_folder->setParent(gSystemFolderRoot);
assets_folder->setPreferredType(LLFolderType::FT_NONE);
gInventory.addCategory(assets_folder);
}
display_startup();
// </edit>
LLSD buddy_list = response["buddy-list"];
if(buddy_list.isDefined())
{

View File

@@ -71,7 +71,6 @@
#include "lltrans.h"
// <edit>
#include "llmenugl.h"
#include "lllocalinventory.h"
// </edit>
// tag: vaa emerald local_asset_browser [begin]

View File

@@ -5,8 +5,8 @@
<panel border="true" left="1" bottom="-408" height="408" width="500" label="General" name="User Interface">
<check_box left="10" bottom_delta="-25" control_name="DoubleClickTeleport" follows="top" initial_value="false"
label="Enable teleporting via double-click in-world" tool_tip="Double-clicking on an object/person will teleport you to that location." name="double_click_teleport_check"/>
<check_box left="20" bottom_delta="-18" control_name="OptionRotateCamAfterLocalTP" follows="top" initial_value="false"
label="Reset camera after teleporting" tool_tip="Centers the camera behind you after a local teleport." name="center_after_teleport_check"/>
<check_box left="20" bottom_delta="-18" control_name="OptionRotateCamAfterLocalTP" follows="top" initial_value="false"
label="Reset camera after teleporting" tool_tip="Centers the camera behind you after a local teleport." name="center_after_teleport_check"/>
<check_box bottom_delta="-18" control_name="OptionOffsetTPByAgentHeight" follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
label="Offset TP target by half agent height" tool_tip="Tries to aim the TP so that your feet land at the point you're aiming for." name="offset_teleport_check"/>
<check_box left="10" follows="top" bottom_delta="-18" control_name="ClearBeaconAfterTeleport" name="clear_beacon_after_tp" label="Clear red destination beacon after teleporting"/>
@@ -28,10 +28,6 @@
label="Enable Power User functionality" tool_tip="Adds features deemed too dangerous for normal use. These features can wreak havoc or do bad things if misused - Mostly to yourself or your belongings. If you're sure, activate the checkbox below as well." name="power_user_check"/>
<check_box bottom_delta="-18" enabled="true" follows="top" left="20" initial_value="true"
label="Confirm Power User functionality" tool_tip="Confirms Power User activation. Turn this on at your own risk, and use any features it enables responsibly. Singularity devs won't replace anything you break. We recommend having a backup copy of anything to be victim to these powers. Unlike most checkboxes, you must click Apply or OK before this will activate." name="power_user_confirm_check"/>
<check_box bottom_delta="-18" control_name="AscentUseSystemFolder" follows="top" left="10" initial_value="true"
label="Enable Ascent System Inventory (Requires Restart)" tool_tip="Creates a new folder in the inventory for storing settings files and non-permanent assets." name="system_folder_check"/>
<check_box bottom_delta="-18" control_name="AscentSystemTemporary" follows="top" left="20" initial_value="false"
label="Temporary uploads go in the System Asset folder." tool_tip="Puts temporary uploads in the Asset folder which separates them from actual uploads, making them easier to find." name="temp_in_system_check"/>
<check_box bottom_delta="-18" control_name="FetchInventoryOnLogin" follows="top" left="10" initial_value="true"
label="Automatically fetch the inventory in the background after login" tool_tip="Inventory will preload when you log in, so you don't have to wait for it to load when doing an initial search." name="fetch_inventory_on_login_check"/>
<check_box bottom_delta="-18" control_name="WindEnabled" follows="left|top" initial_value="false" label="Enable Wind Effects" name="enable_wind"/>
@@ -117,9 +113,9 @@
<combo_item name="Rubber" value="Rubber">Rubber</combo_item>
</combo_box>
<text bottom="-19" left_delta="85" name="text_box7" halign="center" width="115">Next Owner Perms</text>
<check_box follows="top" height="16" initial_value="false" label="Copy permission" tool_tip="Next owner can make copies of creations" name="next_owner_copy" control_name="NextOwnerCopy"/>
<check_box follows="top" height="16" initial_value="false" label="Modify permission" tool_tip="Next owner can edit creations" name="next_owner_modify" control_name="NextOwnerModify"/>
<check_box follows="top" height="16" initial_value="true" label="Transfer permission" tool_tip="Next owner can give(or sell) creations" name="next_owner_transfer" control_name="NextOwnerTransfer"/>
<check_box follows="top" height="16" initial_value="false" label="Copy permission" tool_tip="Next owner can make copies of creations" name="next_owner_copy" control_name="NextOwnerCopy"/>
<check_box follows="top" height="16" initial_value="false" label="Modify permission" tool_tip="Next owner can edit creations" name="next_owner_modify" control_name="NextOwnerModify"/>
<check_box follows="top" height="16" initial_value="true" label="Transfer permission" tool_tip="Next owner can give(or sell) creations" name="next_owner_transfer" control_name="NextOwnerTransfer"/>
<check_box bottom="-131" left="5" follows="top" height="16" label="Phantom" name="EmPhantomToggle" control_name="EmeraldBuildPrefs_Phantom"/>
<check_box follows="top" height="16" label="Physical" name="EmPhysicalToggle" control_name="EmeraldBuildPrefs_Physical"/>
<check_box follows="top" height="16" label="Temporary" name="EmTemporaryToggle" control_name="EmeraldBuildPrefs_Temporary"/>
@@ -136,7 +132,7 @@
<combo_item name="High" value="High">High</combo_item>
</combo_box>
<check_box name="EmeraldBuildPrefsEmbedItem" left="5" bottom_delta="-20" follows="top" initial_value="false" label="Put an item into new objects" control_name="EmeraldBuildPrefs_EmbedItem"/>
<drop_target control_name="EmeraldBuildPrefs_Item" bottom_delta="-5" left="10" height="15" name="build_item_add_disp_rect" width="270"/>
<drop_target control_name="EmeraldBuildPrefs_Item" bottom_delta="-5" left="10" height="15" name="build_item_add_disp_rect" width="270"/>
<check_box bottom_delta="4" follows="top" left_delta="274" label="Highlight selected prims" name="EmBuildPrefsRenderHighlight_toggle" control_name="RenderHighlightSelections"/>
<check_box bottom_delta="-20" follows="top" initial_value="false" label="Axis arrow on root prim position" tool_tip="Default behaviour is to show the axis on the center of mass of a linkset. If enabled, the axis will be shown on the root prim of the linkset instead." name="EmBuildPrefsActualRoot_toggle" control_name="AscentBuildPrefs_ActualRoot"/>
</panel>