System Inventory beta - Working, but perhaps not as well as I'd like it to.
Signed-off-by: Beeks <HgDelirium@gmail.com>
This commit is contained in:
@@ -117,6 +117,28 @@
|
||||
<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>
|
||||
|
||||
@@ -77,6 +77,8 @@ private:
|
||||
BOOL mAlwaysShowFly;
|
||||
//Disable camera minimum distance
|
||||
BOOL mPowerUser;
|
||||
BOOL mUseSystemFolder;
|
||||
BOOL mUploadToSystem;
|
||||
//Chat/IM -----------------------------------------------------------------------------
|
||||
BOOL mHideNotificationsInChat;
|
||||
BOOL mPlayTypingSound;
|
||||
@@ -109,6 +111,8 @@ LLPrefsAscentSysImpl::LLPrefsAscentSysImpl()
|
||||
{
|
||||
LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_ascent_system.xml");
|
||||
childSetCommitCallback("speed_rez_check", onCommitCheckBox, this);
|
||||
childSetCommitCallback("double_click_teleport_check", onCommitCheckBox, this);
|
||||
childSetCommitCallback("system_folder_check", onCommitCheckBox, this);
|
||||
childSetCommitCallback("show_look_at_check", onCommitCheckBox, this);
|
||||
childSetCommitCallback("enable_clouds", onCommitCheckBox, this);
|
||||
mEnableClouds = gSavedSettings.getBOOL("CloudsEnabled");
|
||||
@@ -125,16 +129,9 @@ void LLPrefsAscentSysImpl::onCommitCheckBox(LLUICtrl* ctrl, void* user_data)
|
||||
|
||||
if (ctrl->getControlName() == "SpeedRez")
|
||||
{
|
||||
if (self->childGetValue("speed_rez_check").asBoolean())
|
||||
{
|
||||
self->childEnable("speed_rez_interval");
|
||||
self->childEnable("speed_rez_seconds");
|
||||
}
|
||||
else
|
||||
{
|
||||
self->childDisable("speed_rez_interval");
|
||||
self->childDisable("speed_rez_seconds");
|
||||
}
|
||||
bool enabled = self->childGetValue("speed_rez_check").asBoolean();
|
||||
self->childSetEnabled("speed_rez_interval", enabled);
|
||||
self->childSetEnabled("speed_rez_seconds", enabled);
|
||||
}
|
||||
else if (ctrl->getName() == "show_look_at_check")
|
||||
{
|
||||
@@ -142,6 +139,17 @@ void LLPrefsAscentSysImpl::onCommitCheckBox(LLUICtrl* ctrl, void* user_data)
|
||||
LLHUDEffectLookAt::sDebugLookAt = lookAt;
|
||||
gSavedSettings.setBOOL("AscentShowLookAt", lookAt);
|
||||
}
|
||||
else if (ctrl->getName() == "double_click_teleport_check")
|
||||
{
|
||||
bool enabled = self->childGetValue("double_click_teleport_check").asBoolean();
|
||||
self->childSetEnabled("center_after_teleport_check", enabled);
|
||||
self->childSetEnabled("offset_teleport_check", enabled);
|
||||
}
|
||||
else if (ctrl->getName() == "system_folder_check")
|
||||
{
|
||||
bool enabled = self->childGetValue("system_folder_check").asBoolean();
|
||||
self->childSetEnabled("temp_in_system_check", enabled);
|
||||
}
|
||||
}
|
||||
|
||||
void LLPrefsAscentSysImpl::refreshValues()
|
||||
@@ -159,6 +167,8 @@ void LLPrefsAscentSysImpl::refreshValues()
|
||||
mAlwaysShowFly = gSavedSettings.getBOOL("AscentFlyAlwaysEnabled");
|
||||
//Disable camera minimum distance
|
||||
mPowerUser = gSavedSettings.getBOOL("AscentPowerfulWizard");
|
||||
mUseSystemFolder = gSavedSettings.getBOOL("AscentUseSystemFolder");
|
||||
mUploadToSystem = gSavedSettings.getBOOL("AscentSystemTemporary");
|
||||
//Chat/IMs ----------------------------------------------------------------------------
|
||||
mHideNotificationsInChat = gSavedSettings.getBOOL("HideNotificationsInChat");
|
||||
mHideTypingNotification = gSavedSettings.getBOOL("AscentHideTypingNotification");
|
||||
@@ -198,7 +208,9 @@ void LLPrefsAscentSysImpl::refresh()
|
||||
//General -----------------------------------------------------------------------------
|
||||
childSetValue("double_click_teleport_check", mDoubleClickTeleport);
|
||||
childSetValue("center_after_teleport_check", mResetCameraAfterTP);
|
||||
childSetEnabled("center_after_teleport_check", mDoubleClickTeleport);
|
||||
childSetValue("offset_teleport_check", mOffsetTPByUserHeight);
|
||||
childSetEnabled("offset_teleport_check", mDoubleClickTeleport);
|
||||
childSetValue("preview_anim_in_world_check", mPreviewAnimInWorld);
|
||||
childSetValue("save_scripts_as_mono_check", mSaveScriptsAsMono);
|
||||
childSetValue("always_rez_in_group_check", mAlwaysRezInGroup);
|
||||
@@ -209,6 +221,9 @@ void LLPrefsAscentSysImpl::refresh()
|
||||
//Disable camera minimum distance
|
||||
childSetValue("power_user_check", mPowerUser);
|
||||
childSetValue("power_user_confirm_check", mPowerUser);
|
||||
childSetValue("system_folder_check", mUseSystemFolder);
|
||||
childSetValue("temp_in_system_check", mUploadToSystem);
|
||||
childSetEnabled("temp_in_system_check", mUseSystemFolder);
|
||||
//Chat --------------------------------------------------------------------------------
|
||||
childSetValue("hide_notifications_in_chat_check", mHideNotificationsInChat);
|
||||
childSetValue("play_typing_sound_check", mPlayTypingSound);
|
||||
@@ -279,16 +294,8 @@ void LLPrefsAscentSysImpl::refresh()
|
||||
childSetValue("enable_clouds", mEnableClouds);
|
||||
gLLWindEnabled = mEnableLLWind;
|
||||
childSetValue("speed_rez_check", mSpeedRez);
|
||||
if (mSpeedRez)
|
||||
{
|
||||
childEnable("speed_rez_interval");
|
||||
childEnable("speed_rez_seconds");
|
||||
}
|
||||
else
|
||||
{
|
||||
childDisable("speed_rez_interval");
|
||||
childDisable("speed_rez_seconds");
|
||||
}
|
||||
childSetEnabled("speed_rez_interval", mSpeedRez);
|
||||
childSetEnabled("speed_rez_seconds", mSpeedRez);
|
||||
//Command Line ------------------------------------------------------------------------
|
||||
|
||||
//Privacy -----------------------------------------------------------------------------
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "llviewerregion.h" // getCapability
|
||||
#include "llassetuploadresponders.h" // LLUpdateAgentInventoryResponder
|
||||
#include "llinventorymodel.h" // gInventory.updateItem
|
||||
#include "llappviewer.h" // gLocalInventoryRoot
|
||||
#include "llappviewer.h" // System Folders
|
||||
#include "llfloaterperms.h" //get default perms
|
||||
|
||||
std::list<DOFloaterHex*> DOFloaterHex::sInstances;
|
||||
@@ -261,7 +261,7 @@ void DOFloaterHex::assetCallback(LLVFS *vfs,
|
||||
}
|
||||
|
||||
// Never enable save if it's a pretend item
|
||||
if(gInventory.isObjectDescendentOf(item->getUUID(), gLocalInventoryRoot))
|
||||
if(gInventory.isObjectDescendentOf(item->getUUID(), gSystemFolderRoot))
|
||||
{
|
||||
floater->childSetEnabled("save_btn", false);
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "llviewerregion.h" // getCapability
|
||||
#include "llassetuploadresponders.h" // LLUpdateAgentInventoryResponder
|
||||
#include "llinventorymodel.h" // gInventory.updateItem
|
||||
#include "llappviewer.h" // gLocalInventoryRoot
|
||||
#include "llappviewer.h" // System Folders
|
||||
#include "llfloaterperms.h" //get default perms
|
||||
#include "lllocalinventory.h"
|
||||
|
||||
@@ -225,7 +225,7 @@ void HGFloaterTextEditor::assetCallback(LLVFS *vfs,
|
||||
}
|
||||
|
||||
// Never enable save if it's a pretend item
|
||||
if(gInventory.isObjectDescendentOf(item->getUUID(), gLocalInventoryRoot))
|
||||
if(gInventory.isObjectDescendentOf(item->getUUID(), gSystemFolderRoot))
|
||||
{
|
||||
floater->childSetEnabled("save_btn", false);
|
||||
}
|
||||
|
||||
@@ -259,7 +259,9 @@ F32 gLogoutMaxTime = LOGOUT_REQUEST_TIME;
|
||||
LLUUID gInventoryLibraryOwner;
|
||||
LLUUID gInventoryLibraryRoot;
|
||||
// <edit>
|
||||
LLUUID gLocalInventoryRoot;
|
||||
LLUUID gSystemFolderRoot;
|
||||
LLUUID gSystemFolderSettings;
|
||||
LLUUID gSystemFolderAssets;
|
||||
// </edit>
|
||||
|
||||
BOOL gDisconnected = FALSE;
|
||||
@@ -632,8 +634,12 @@ bool LLAppViewer::init()
|
||||
writeSystemInfo();
|
||||
|
||||
// Build a string representing the current version number.
|
||||
// <edit> meh
|
||||
gCurrentVersion = "1.0.0.0";
|
||||
gCurrentVersion = llformat("%s %d.%d.%d.%d",
|
||||
LL_CHANNEL,
|
||||
LL_VERSION_MAJOR,
|
||||
LL_VERSION_MINOR,
|
||||
LL_VERSION_PATCH,
|
||||
LL_VERSION_BUILD );
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -308,7 +308,9 @@ extern F32 gSimFrames;
|
||||
extern LLUUID gInventoryLibraryOwner;
|
||||
extern LLUUID gInventoryLibraryRoot;
|
||||
// <edit>
|
||||
extern LLUUID gLocalInventoryRoot;
|
||||
extern LLUUID gSystemFolderRoot;
|
||||
extern LLUUID gSystemFolderSettings;
|
||||
extern LLUUID gSystemFolderAssets;
|
||||
// </edit>
|
||||
|
||||
extern BOOL gDisconnected;
|
||||
|
||||
@@ -777,7 +777,7 @@ BOOL LLFolderViewItem::handleHover( S32 x, S32 y, MASK mask )
|
||||
src = LLToolDragAndDrop::SOURCE_LIBRARY;
|
||||
}
|
||||
// <edit>
|
||||
else if(mListener && gInventory.isObjectDescendentOf(mListener->getUUID(), gLocalInventoryRoot))
|
||||
else if(mListener && gInventory.isObjectDescendentOf(mListener->getUUID(), gSystemFolderRoot))
|
||||
{ // Note: this is only ok if all future pretend folders are subcategories of Pretend Inventory
|
||||
src = LLToolDragAndDrop::SOURCE_LIBRARY;
|
||||
}
|
||||
@@ -2941,7 +2941,6 @@ void LLFolderView::filter( LLInventoryFilter& filter )
|
||||
LLFastTimer t2(LLFastTimer::FTM_FILTER);
|
||||
filter.setFilterCount(llclamp(gSavedSettings.getS32("FilterItemsPerFrame"), 1, 5000));
|
||||
|
||||
|
||||
if (getCompletedFilterGeneration() < filter.getCurrentGeneration())
|
||||
{
|
||||
mFiltered = FALSE;
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
#include "llselectmgr.h"
|
||||
#include "llfloateropenobject.h"
|
||||
// <edit>
|
||||
#include "llappviewer.h" // gLocalInventoryRoot
|
||||
#include "llappviewer.h" // System Folders
|
||||
#include "llfloateranimpreview.h" // for reuploads
|
||||
#include "llfloaterimagepreview.h" // for reuploads
|
||||
#include "llimportobject.h" // for disabling options during import
|
||||
@@ -364,7 +364,7 @@ void LLInvFVBridge::removeBatchNoCheck(LLDynamicArray<LLFolderViewEventListener*
|
||||
--update[item->getParentUUID()];
|
||||
++update[trash_id];
|
||||
// <edit>
|
||||
if(!gInventory.isObjectDescendentOf(item->getUUID(), gLocalInventoryRoot))
|
||||
if(!gInventory.isObjectDescendentOf(item->getUUID(), gSystemFolderRoot))
|
||||
{
|
||||
// </edit>
|
||||
if(start_new_message)
|
||||
@@ -411,7 +411,7 @@ void LLInvFVBridge::removeBatchNoCheck(LLDynamicArray<LLFolderViewEventListener*
|
||||
--update[cat->getParentUUID()];
|
||||
++update[trash_id];
|
||||
// <edit>
|
||||
if(!gInventory.isObjectDescendentOf(cat->getUUID(), gLocalInventoryRoot))
|
||||
if(!gInventory.isObjectDescendentOf(cat->getUUID(), gSystemFolderRoot))
|
||||
{
|
||||
// </edit>
|
||||
if(start_new_message)
|
||||
@@ -450,7 +450,7 @@ void LLInvFVBridge::removeBatchNoCheck(LLDynamicArray<LLFolderViewEventListener*
|
||||
for(; it != end; ++it)
|
||||
{
|
||||
// <edit> trash problem
|
||||
if(gInventory.isObjectDescendentOf(*it, gLocalInventoryRoot))
|
||||
if(gInventory.isObjectDescendentOf(*it, gSystemFolderRoot))
|
||||
{
|
||||
// if it's a category, delete descendents
|
||||
if(gInventory.getCategory(*it))
|
||||
@@ -1148,7 +1148,7 @@ void LLItemBridge::selectItem()
|
||||
if(item && !item->isComplete())
|
||||
{
|
||||
// <edit>
|
||||
if(!(gInventory.isObjectDescendentOf(mUUID, gLocalInventoryRoot)))
|
||||
if(!(gInventory.isObjectDescendentOf(mUUID, gSystemFolderRoot)))
|
||||
// </edit>
|
||||
item->fetchFromServer();
|
||||
}
|
||||
@@ -1298,10 +1298,6 @@ std::string LLItemBridge::getLabelSuffix() const
|
||||
else stempo = EMPTY;
|
||||
suffix = llformat("%s%s%s%s",scopy,smod,sxfer,stempo);
|
||||
}
|
||||
else if (!perm.isOwned())
|
||||
{
|
||||
suffix = " (temporary)";
|
||||
}
|
||||
}
|
||||
return suffix;
|
||||
}
|
||||
@@ -1380,7 +1376,7 @@ BOOL LLItemBridge::removeItem()
|
||||
if(item && !model->isObjectDescendentOf(mUUID, trash_id))
|
||||
{
|
||||
// <edit> trash problem
|
||||
if(gInventory.isObjectDescendentOf(mUUID, gLocalInventoryRoot))
|
||||
if(gInventory.isObjectDescendentOf(mUUID, gSystemFolderRoot))
|
||||
{
|
||||
LLInventoryModel::LLCategoryUpdate up(item->getParentUUID(), -1);
|
||||
gInventory.deleteObject(mUUID);
|
||||
@@ -1641,7 +1637,7 @@ BOOL LLFolderBridge::isUpToDate() const
|
||||
|
||||
// <edit> trying to make it stop trying to fetch Local Inventory
|
||||
//return category->getVersion() != LLViewerInventoryCategory::VERSION_UNKNOWN;
|
||||
return (category->getVersion() != LLViewerInventoryCategory::VERSION_UNKNOWN) || (mUUID == gLocalInventoryRoot) || (gInventory.isObjectDescendentOf(mUUID, gLocalInventoryRoot));
|
||||
return (category->getVersion() != LLViewerInventoryCategory::VERSION_UNKNOWN) || (mUUID == gSystemFolderRoot) || (gInventory.isObjectDescendentOf(mUUID, gSystemFolderRoot));
|
||||
// </edit>
|
||||
}
|
||||
|
||||
@@ -2355,7 +2351,7 @@ BOOL LLFolderBridge::removeItem()
|
||||
if(cat)
|
||||
{
|
||||
// <edit> trash problem
|
||||
if(gInventory.isObjectDescendentOf(cat->getUUID(), gLocalInventoryRoot))
|
||||
if(gInventory.isObjectDescendentOf(cat->getUUID(), gSystemFolderRoot))
|
||||
{
|
||||
S32 descendents = cat->getDescendentCount();
|
||||
if(descendents > 0)
|
||||
@@ -4942,10 +4938,8 @@ void wear_inventory_category_on_avatar_step2( BOOL proceed, void* userdata )
|
||||
}
|
||||
for(i = 0; i < wearable_count; ++i)
|
||||
{
|
||||
|
||||
gAddToOutfit = wear_info->mAppend;
|
||||
|
||||
|
||||
found = found_container.get(i);
|
||||
gWearableList.getAsset(found->mAssetID,
|
||||
found->mName,
|
||||
|
||||
@@ -44,7 +44,7 @@ LLUUID LLLocalInventory::addItem(std::string name, int type, LLUUID asset_id)
|
||||
perms->setMaskOwner(0);
|
||||
LLViewerInventoryItem* item = new LLViewerInventoryItem(
|
||||
item_id,
|
||||
gLocalInventoryRoot,
|
||||
gSystemFolderAssets,
|
||||
*perms,
|
||||
asset_id,
|
||||
(LLAssetType::EType)type,
|
||||
@@ -63,7 +63,6 @@ void LLLocalInventory::addItem(LLViewerInventoryItem* item)
|
||||
//gInventory.addPretendItem(item);
|
||||
LLInventoryModel::update_map_t update;
|
||||
++update[item->getParentUUID()];
|
||||
item->updateServer(TRUE);
|
||||
gInventory.accountForUpdate(update);
|
||||
gInventory.updateItem(item);
|
||||
gInventory.notifyObservers();
|
||||
@@ -185,7 +184,7 @@ void LLLocalInventory::loadInvCache(std::string filename)
|
||||
LLUUID container_id;
|
||||
container_id.generate();
|
||||
container->setUUID(container_id);
|
||||
container->setParent(gLocalInventoryRoot);
|
||||
container->setParent(gSystemFolderRoot);
|
||||
container->setPreferredType(LLAssetType::AT_NONE);
|
||||
LLInventoryModel::update_map_t container_update;
|
||||
++container_update[container->getParentUUID()];
|
||||
@@ -229,7 +228,7 @@ void LLLocalInventory::loadInvCache(std::string filename)
|
||||
// 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(), gLocalInventoryRoot, TRUE))
|
||||
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())
|
||||
@@ -276,7 +275,7 @@ void LLLocalInventory::loadInvCache(std::string filename)
|
||||
// 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(), gLocalInventoryRoot, TRUE))
|
||||
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())
|
||||
@@ -536,7 +535,7 @@ void LLFloaterNewLocalInventory::onClickOK(void* user_data)
|
||||
|
||||
LLViewerInventoryItem* item = new LLViewerInventoryItem(
|
||||
item_id,
|
||||
gLocalInventoryRoot,
|
||||
gSystemFolderRoot,
|
||||
*perms,
|
||||
asset_id,
|
||||
type,
|
||||
|
||||
@@ -2148,19 +2148,6 @@ bool idle_startup()
|
||||
}
|
||||
}
|
||||
|
||||
// <edit> testing adding a local inventory folder...
|
||||
LLViewerInventoryCategory* test_cat = new LLViewerInventoryCategory(gAgent.getID());
|
||||
test_cat->rename(std::string("Pretend Inventory"));
|
||||
LLUUID test_cat_id;
|
||||
test_cat_id.generate();
|
||||
test_cat->setUUID(test_cat_id);
|
||||
gLocalInventoryRoot = test_cat_id;
|
||||
test_cat->setParent(LLUUID::null);
|
||||
test_cat->setPreferredType(LLAssetType::AT_NONE);
|
||||
|
||||
gInventory.addCategory(test_cat);
|
||||
// </edit>
|
||||
|
||||
// OGPX login-flags : we don't currently get those passed back (there is a gendered hack in the code elsewhere)
|
||||
// unsure if OGPX should be getting all these.
|
||||
if (LLUserAuth::getInstance()->mResult["login-flags"].isArray())
|
||||
@@ -2965,6 +2952,40 @@ bool idle_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-F113-7357-000000000100");
|
||||
system_folder->setUUID(system_folder_id);
|
||||
gSystemFolderRoot = system_folder_id;
|
||||
system_folder->setParent(LLUUID::null);
|
||||
system_folder->setPreferredType(LLAssetType::AT_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(LLAssetType::AT_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(LLAssetType::AT_NONE);
|
||||
gInventory.addCategory(assets_folder);
|
||||
}
|
||||
// </edit>
|
||||
|
||||
options.clear();
|
||||
if(LLUserAuth::getInstance()->getOptions("buddy-list", options))
|
||||
{
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
#include "object_flags.h"
|
||||
#include "llimview.h"
|
||||
// <edit>
|
||||
#include "llappviewer.h" // gLocalInventoryRoot
|
||||
#include "llappviewer.h" // System Folders
|
||||
#include "llparcel.h" // always rez
|
||||
#include "llviewerparcelmgr.h" // always rez
|
||||
// </edit>
|
||||
@@ -1161,13 +1161,11 @@ void LLToolDragAndDrop::dropTextureAllFaces(LLViewerObject* hit_obj,
|
||||
return;
|
||||
}
|
||||
LLUUID asset_id = item->getAssetUUID();
|
||||
// <edit>
|
||||
/*BOOL success = handleDropTextureProtections(hit_obj, item, source, src_id);
|
||||
BOOL success = handleDropTextureProtections(hit_obj, item, source, src_id);
|
||||
if(!success)
|
||||
{
|
||||
return;
|
||||
}*/
|
||||
// </edit>
|
||||
}
|
||||
LLViewerImage* image = gImageList.getImage(asset_id);
|
||||
LLViewerStats::getInstance()->incStat(LLViewerStats::ST_EDIT_TEXTURE_COUNT );
|
||||
S32 num_faces = hit_obj->getNumTEs();
|
||||
@@ -1205,13 +1203,11 @@ void LLToolDragAndDrop::dropTextureOneFace(LLViewerObject* hit_obj,
|
||||
return;
|
||||
}
|
||||
LLUUID asset_id = item->getAssetUUID();
|
||||
// <edit>
|
||||
/*BOOL success = handleDropTextureProtections(hit_obj, item, source, src_id);
|
||||
BOOL success = handleDropTextureProtections(hit_obj, item, source, src_id);
|
||||
if(!success)
|
||||
{
|
||||
return;
|
||||
}*/
|
||||
// </edit>
|
||||
}
|
||||
// update viewer side image in anticipation of update from simulator
|
||||
LLViewerImage* image = gImageList.getImage(asset_id);
|
||||
LLViewerStats::getInstance()->incStat(LLViewerStats::ST_EDIT_TEXTURE_COUNT );
|
||||
@@ -1383,8 +1379,11 @@ void LLToolDragAndDrop::dropObject(LLViewerObject* raycast_target,
|
||||
msg->addUUIDFast(_PREHASH_GroupID, parcel->getGroupID());
|
||||
else if(gAgent.isInGroup(parcel->getOwnerID()))
|
||||
msg->addUUIDFast(_PREHASH_GroupID, parcel->getOwnerID());
|
||||
else msg->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID());
|
||||
} else msg->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID());
|
||||
else
|
||||
msg->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID());
|
||||
}
|
||||
else
|
||||
msg->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID());
|
||||
|
||||
msg->nextBlock("RezData");
|
||||
// if it's being rezzed from task inventory, we need to enable
|
||||
@@ -1994,7 +1993,7 @@ EAcceptance LLToolDragAndDrop::willObjectAcceptInventory(LLViewerObject* obj, LL
|
||||
LLViewerInventoryItem* vitem = (LLViewerInventoryItem*)item;
|
||||
// <edit>
|
||||
//if(!vitem->isComplete()) return ACCEPT_NO;
|
||||
if(!vitem->isComplete() && !(gInventory.isObjectDescendentOf(vitem->getUUID(), gLocalInventoryRoot))) return ACCEPT_NO;
|
||||
if(!vitem->isComplete() && !(gInventory.isObjectDescendentOf(vitem->getUUID(), gSystemFolderRoot))) return ACCEPT_NO;
|
||||
// </edit>
|
||||
if (vitem->getIsLinkType()) return ACCEPT_NO; // No giving away links
|
||||
|
||||
@@ -2054,10 +2053,7 @@ EAcceptance LLToolDragAndDrop::willObjectAcceptInventory(LLViewerObject* obj, LL
|
||||
{
|
||||
return ACCEPT_NO_LOCKED;
|
||||
}
|
||||
// <edit> allow dropping textures onto objects
|
||||
//return ACCEPT_NO;
|
||||
return ACCEPT_YES_SINGLE;
|
||||
// </edit>
|
||||
return ACCEPT_NO;
|
||||
}
|
||||
|
||||
|
||||
@@ -2404,7 +2400,7 @@ EAcceptance LLToolDragAndDrop::dad3dTextureObject(
|
||||
locateInventory(item, cat);
|
||||
// <edit>
|
||||
//if(!item || !item->isComplete()) return ACCEPT_NO;
|
||||
if( !item || (!item->isComplete() && !(gInventory.isObjectDescendentOf(item->getUUID(), gLocalInventoryRoot))) ) return ACCEPT_NO;
|
||||
if( !item || (!item->isComplete() && !(gInventory.isObjectDescendentOf(item->getUUID(), gSystemFolderRoot))) ) return ACCEPT_NO;
|
||||
// </edit>
|
||||
EAcceptance rv = willObjectAcceptInventory(obj, item);
|
||||
if((mask & MASK_CONTROL))
|
||||
@@ -2415,9 +2411,6 @@ EAcceptance LLToolDragAndDrop::dad3dTextureObject(
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
// <edit>
|
||||
/*
|
||||
// </edit>
|
||||
if(!obj->permModify())
|
||||
{
|
||||
return ACCEPT_NO_LOCKED;
|
||||
@@ -2427,9 +2420,6 @@ EAcceptance LLToolDragAndDrop::dad3dTextureObject(
|
||||
{
|
||||
return ACCEPT_NO;
|
||||
}
|
||||
// <edit>
|
||||
*/
|
||||
// </edit>
|
||||
|
||||
if(drop && (ACCEPT_YES_SINGLE <= rv))
|
||||
{
|
||||
@@ -2857,13 +2847,11 @@ EAcceptance LLToolDragAndDrop::dad3dRezFromObjectOnLand(
|
||||
locateInventory(item, cat);
|
||||
if(!item || !item->isComplete()) return ACCEPT_NO;
|
||||
|
||||
// <edit>
|
||||
//if(!gAgent.allowOperation(PERM_COPY, item->getPermissions())
|
||||
// || !item->getPermissions().allowTransferTo(LLUUID::null))
|
||||
//{
|
||||
// return ACCEPT_NO_LOCKED;
|
||||
//}
|
||||
// </edit>
|
||||
if(!gAgent.allowOperation(PERM_COPY, item->getPermissions())
|
||||
|| !item->getPermissions().allowTransferTo(LLUUID::null))
|
||||
{
|
||||
return ACCEPT_NO_LOCKED;
|
||||
}
|
||||
if(drop)
|
||||
{
|
||||
dropObject(obj, TRUE, TRUE, FALSE);
|
||||
@@ -2893,14 +2881,12 @@ EAcceptance LLToolDragAndDrop::dad3dRezFromObjectOnObject(
|
||||
//}
|
||||
//return rv;
|
||||
}
|
||||
// <edit>
|
||||
//if(!item->getPermissions().allowCopyBy(gAgent.getID(),
|
||||
// gAgent.getGroupID())
|
||||
// || !item->getPermissions().allowTransferTo(LLUUID::null))
|
||||
//{
|
||||
// return ACCEPT_NO_LOCKED;
|
||||
//}
|
||||
// </edit>a
|
||||
if(!item->getPermissions().allowCopyBy(gAgent.getID(),
|
||||
gAgent.getGroupID())
|
||||
|| !item->getPermissions().allowTransferTo(LLUUID::null))
|
||||
{
|
||||
return ACCEPT_NO_LOCKED;
|
||||
}
|
||||
if(drop)
|
||||
{
|
||||
dropObject(obj, FALSE, TRUE, FALSE);
|
||||
|
||||
@@ -468,167 +468,6 @@ void upload_error(const std::string& error_message, const std::string& label, co
|
||||
LLFilePicker::instance().reset();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class LLFileEnableCloseWindow : public view_listener_t
|
||||
{
|
||||
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
|
||||
@@ -959,6 +798,13 @@ void upload_new_resource(const std::string& src_filename, std::string name,
|
||||
return;
|
||||
}
|
||||
}
|
||||
// <edit>
|
||||
else if(exten == "ogg")
|
||||
{
|
||||
asset_type = LLAssetType::AT_SOUND; // tag it as audio
|
||||
filename = src_filename;
|
||||
}
|
||||
// </edit>
|
||||
else if(exten == "tmp")
|
||||
{
|
||||
// This is a generic .lin resource file
|
||||
@@ -1124,13 +970,6 @@ void upload_new_resource(const std::string& src_filename, std::string name,
|
||||
// </edit>
|
||||
}
|
||||
// <edit>
|
||||
// <edit>
|
||||
else if(exten == "ogg")
|
||||
{
|
||||
asset_type = LLAssetType::AT_SOUND; // tag it as audio
|
||||
filename = src_filename;
|
||||
}
|
||||
// </edit>
|
||||
else if (exten == "animatn")
|
||||
{
|
||||
asset_type = LLAssetType::AT_ANIMATION;
|
||||
@@ -1265,9 +1104,14 @@ void temp_upload_callback(const LLUUID& uuid, void* user_data, S32 result, LLExt
|
||||
perms->setMaskGroup(PERM_ALL);
|
||||
perms->setMaskNext(PERM_ALL);
|
||||
|
||||
LLUUID destination = gInventory.findCategoryUUIDForType(LLAssetType::AT_TEXTURE);
|
||||
if (gSavedSettings.getBOOL("AscentUseSystemFolder") && gSavedSettings.getBOOL("AscentSystemTemporary"))
|
||||
{
|
||||
destination = gSystemFolderAssets;
|
||||
}
|
||||
LLViewerInventoryItem* item = new LLViewerInventoryItem(
|
||||
item_id,
|
||||
gLocalInventoryRoot,
|
||||
destination,
|
||||
*perms,
|
||||
uuid,
|
||||
(LLAssetType::EType)data->mAssetInfo.mType,
|
||||
|
||||
@@ -2001,7 +2001,7 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector3& start, const LLVector3& e
|
||||
|
||||
if (face_hit >= 0 && mDrawable->getNumFaces() > face_hit)
|
||||
{
|
||||
LLFace* face = mDrawable->getFace(face_hit);
|
||||
LLFace* face = mDrawable->getFace(face_hit);
|
||||
|
||||
if (pick_transparent || !face->getTexture() || face->getTexture()->getMask(face->surfaceToTexture(tc, p, n)))
|
||||
{
|
||||
@@ -2414,7 +2414,7 @@ void LLVolumeGeometryManager::rebuildMesh(LLSpatialGroup* group)
|
||||
|
||||
if (group->isState(LLSpatialGroup::MESH_DIRTY))
|
||||
{
|
||||
S32 num_mapped_veretx_buffer = LLVertexBuffer::sMappedCount ;
|
||||
S32 num_mapped_vertex_buffer = LLVertexBuffer::sMappedCount ;
|
||||
|
||||
group->mBuilt = 1.f;
|
||||
|
||||
@@ -2473,7 +2473,7 @@ void LLVolumeGeometryManager::rebuildMesh(LLSpatialGroup* group)
|
||||
}
|
||||
|
||||
//if not all buffers are unmapped
|
||||
if(num_mapped_veretx_buffer != LLVertexBuffer::sMappedCount)
|
||||
if(num_mapped_vertex_buffer != LLVertexBuffer::sMappedCount)
|
||||
{
|
||||
if (++warningsCount > 20) // Do not spam the log file uselessly...
|
||||
{
|
||||
|
||||
@@ -83,6 +83,18 @@
|
||||
tool_tip="Confirms Power User activation. Turn this on at your own risk, and use any features it enables responsibly. Ascent devs will not replace anything you break if you ruin something important. Unlike most checkboxes, you must apply/ok changes before this will activate."
|
||||
mouse_opaque="true" name="power_user_confirm_check" radio_style="false"
|
||||
width="400" />
|
||||
<check_box bottom_delta="-20" control_name="AscentUseSystemFolder" enabled="true"
|
||||
follows="left|top" font="SansSerifSmall" height="16" initial_value="true"
|
||||
label="Enable Ascent System Inventory (Requires Restart)" left="10"
|
||||
tool_tip="Creates a new folder in the inventory for storing settings files and non-permanent assets."
|
||||
mouse_opaque="true" name="system_folder_check" radio_style="false"
|
||||
width="400" />
|
||||
<check_box bottom_delta="-20" control_name="AscentSystemTemporary" enabled="true"
|
||||
follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
|
||||
label="Temporary uploads go in the System Asset folder." left="20"
|
||||
tool_tip="Puts temporary uploads in the Asset folder which separates them from actual uploads, making them easier to find."
|
||||
mouse_opaque="true" name="temp_in_system_check" radio_style="false"
|
||||
width="400" />
|
||||
</panel>
|
||||
<panel border="true" left="1" bottom="-408" height="408" width="500" mouse_opaque="true"
|
||||
follows="left|top|right|bottom" label="Chat/IM" name="Chat/IM">
|
||||
|
||||
Reference in New Issue
Block a user