#3957 Add indication to a folder's context menu that it is the default upload location
parent
452c8e0ea4
commit
cf3352e6f2
|
|
@ -3890,6 +3890,31 @@ void LLInventoryAction::fileUploadLocation(const LLUUID& dest_id, const std::str
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool LLInventoryAction::isFileUploadLocation(const LLUUID& dest_id, const std::string& action)
|
||||||
|
{
|
||||||
|
if (action == "def_model")
|
||||||
|
{
|
||||||
|
return gInventory.findUserDefinedCategoryUUIDForType(LLFolderType::FT_OBJECT) == dest_id;
|
||||||
|
}
|
||||||
|
else if (action == "def_texture")
|
||||||
|
{
|
||||||
|
return gInventory.findUserDefinedCategoryUUIDForType(LLFolderType::FT_TEXTURE) == dest_id;
|
||||||
|
}
|
||||||
|
else if (action == "def_sound")
|
||||||
|
{
|
||||||
|
return gInventory.findUserDefinedCategoryUUIDForType(LLFolderType::FT_SOUND) == dest_id;
|
||||||
|
}
|
||||||
|
else if (action == "def_animation")
|
||||||
|
{
|
||||||
|
return gInventory.findUserDefinedCategoryUUIDForType(LLFolderType::FT_ANIMATION) == dest_id;
|
||||||
|
}
|
||||||
|
else if (action == "def_pbr_material")
|
||||||
|
{
|
||||||
|
return gInventory.findUserDefinedCategoryUUIDForType(LLFolderType::FT_MATERIAL) == dest_id;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void LLInventoryAction::onItemsRemovalConfirmation(const LLSD& notification, const LLSD& response, LLHandle<LLFolderView> root)
|
void LLInventoryAction::onItemsRemovalConfirmation(const LLSD& notification, const LLSD& response, LLHandle<LLFolderView> root)
|
||||||
{
|
{
|
||||||
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
|
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
|
||||||
|
|
|
||||||
|
|
@ -653,6 +653,7 @@ struct LLInventoryAction
|
||||||
static void onItemsRemovalConfirmation(const LLSD& notification, const LLSD& response, LLHandle<LLFolderView> root);
|
static void onItemsRemovalConfirmation(const LLSD& notification, const LLSD& response, LLHandle<LLFolderView> root);
|
||||||
static void removeItemFromDND(LLFolderView* root);
|
static void removeItemFromDND(LLFolderView* root);
|
||||||
static void fileUploadLocation(const LLUUID& dest_id, const std::string& action);
|
static void fileUploadLocation(const LLUUID& dest_id, const std::string& action);
|
||||||
|
static bool isFileUploadLocation(const LLUUID& dest_id, const std::string& action);
|
||||||
|
|
||||||
static void saveMultipleTextures(const std::vector<std::string>& filenames, std::set<LLFolderViewItem*> selected_items, LLInventoryModel* model);
|
static void saveMultipleTextures(const std::vector<std::string>& filenames, std::set<LLFolderViewItem*> selected_items, LLInventoryModel* model);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,7 @@ LLContextMenu* LLInventoryGalleryContextMenu::createMenu()
|
||||||
registrar.add("Inventory.Share", boost::bind(&LLAvatarActions::shareWithAvatars, uuids, gFloaterView->getParentFloater(mGallery)));
|
registrar.add("Inventory.Share", boost::bind(&LLAvatarActions::shareWithAvatars, uuids, gFloaterView->getParentFloater(mGallery)));
|
||||||
|
|
||||||
enable_registrar.add("Inventory.CanSetUploadLocation", boost::bind(&LLInventoryGalleryContextMenu::canSetUploadLocation, this, _2));
|
enable_registrar.add("Inventory.CanSetUploadLocation", boost::bind(&LLInventoryGalleryContextMenu::canSetUploadLocation, this, _2));
|
||||||
|
enable_registrar.add("Inventory.FileUploadLocation.Check", boost::bind(&LLInventoryGalleryContextMenu::isUploadLocationSelected, this, _2));
|
||||||
|
|
||||||
enable_registrar.add("Inventory.EnvironmentEnabled", [](LLUICtrl*, const LLSD&)
|
enable_registrar.add("Inventory.EnvironmentEnabled", [](LLUICtrl*, const LLSD&)
|
||||||
{
|
{
|
||||||
|
|
@ -489,6 +490,12 @@ void LLInventoryGalleryContextMenu::fileUploadLocation(const LLSD& userdata)
|
||||||
LLInventoryAction::fileUploadLocation(mUUIDs.front(), param);
|
LLInventoryAction::fileUploadLocation(mUUIDs.front(), param);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool LLInventoryGalleryContextMenu::isUploadLocationSelected(const LLSD& userdata)
|
||||||
|
{
|
||||||
|
const std::string param = userdata.asString();
|
||||||
|
return LLInventoryAction::isFileUploadLocation(mUUIDs.front(), param);
|
||||||
|
}
|
||||||
|
|
||||||
bool LLInventoryGalleryContextMenu::canSetUploadLocation(const LLSD& userdata)
|
bool LLInventoryGalleryContextMenu::canSetUploadLocation(const LLSD& userdata)
|
||||||
{
|
{
|
||||||
if (mUUIDs.size() != 1)
|
if (mUUIDs.size() != 1)
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,7 @@ protected:
|
||||||
void updateMenuItemsVisibility(LLContextMenu* menu);
|
void updateMenuItemsVisibility(LLContextMenu* menu);
|
||||||
|
|
||||||
void fileUploadLocation(const LLSD& userdata);
|
void fileUploadLocation(const LLSD& userdata);
|
||||||
|
bool isUploadLocationSelected(const LLSD& userdata);
|
||||||
bool canSetUploadLocation(const LLSD& userdata);
|
bool canSetUploadLocation(const LLSD& userdata);
|
||||||
|
|
||||||
static void onRename(const LLSD& notification, const LLSD& response);
|
static void onRename(const LLSD& notification, const LLSD& response);
|
||||||
|
|
|
||||||
|
|
@ -187,6 +187,7 @@ LLInventoryPanel::LLInventoryPanel(const LLInventoryPanel::Params& p) :
|
||||||
mCommitCallbackRegistrar.add("Inventory.BeginIMSession", boost::bind(&LLInventoryPanel::beginIMSession, this));
|
mCommitCallbackRegistrar.add("Inventory.BeginIMSession", boost::bind(&LLInventoryPanel::beginIMSession, this));
|
||||||
mCommitCallbackRegistrar.add("Inventory.Share", boost::bind(&LLAvatarActions::shareWithAvatars, this));
|
mCommitCallbackRegistrar.add("Inventory.Share", boost::bind(&LLAvatarActions::shareWithAvatars, this));
|
||||||
mCommitCallbackRegistrar.add("Inventory.FileUploadLocation", boost::bind(&LLInventoryPanel::fileUploadLocation, this, _2));
|
mCommitCallbackRegistrar.add("Inventory.FileUploadLocation", boost::bind(&LLInventoryPanel::fileUploadLocation, this, _2));
|
||||||
|
mEnableCallbackRegistrar.add("Inventory.FileUploadLocation.Check", boost::bind(&LLInventoryPanel::isUploadLocationSelected, this, _2));
|
||||||
mCommitCallbackRegistrar.add("Inventory.OpenNewFolderWindow", boost::bind(&LLInventoryPanel::openSingleViewInventory, this, LLUUID()));
|
mCommitCallbackRegistrar.add("Inventory.OpenNewFolderWindow", boost::bind(&LLInventoryPanel::openSingleViewInventory, this, LLUUID()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1832,6 +1833,13 @@ void LLInventoryPanel::fileUploadLocation(const LLSD& userdata)
|
||||||
LLInventoryAction::fileUploadLocation(dest, param);
|
LLInventoryAction::fileUploadLocation(dest, param);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool LLInventoryPanel::isUploadLocationSelected(const LLSD& userdata)
|
||||||
|
{
|
||||||
|
const std::string param = userdata.asString();
|
||||||
|
const LLUUID dest = LLFolderBridge::sSelf.get()->getUUID();
|
||||||
|
return LLInventoryAction::isFileUploadLocation(dest, param);
|
||||||
|
}
|
||||||
|
|
||||||
void LLInventoryPanel::openSingleViewInventory(LLUUID folder_id)
|
void LLInventoryPanel::openSingleViewInventory(LLUUID folder_id)
|
||||||
{
|
{
|
||||||
LLPanelMainInventory::newFolderWindow(folder_id.isNull() ? LLFolderBridge::sSelf.get()->getUUID() : folder_id);
|
LLPanelMainInventory::newFolderWindow(folder_id.isNull() ? LLFolderBridge::sSelf.get()->getUUID() : folder_id);
|
||||||
|
|
|
||||||
|
|
@ -225,6 +225,7 @@ public:
|
||||||
void doCreate(const LLSD& userdata);
|
void doCreate(const LLSD& userdata);
|
||||||
bool beginIMSession();
|
bool beginIMSession();
|
||||||
void fileUploadLocation(const LLSD& userdata);
|
void fileUploadLocation(const LLSD& userdata);
|
||||||
|
bool isUploadLocationSelected(const LLSD& userdata);
|
||||||
void openSingleViewInventory(LLUUID folder_id = LLUUID());
|
void openSingleViewInventory(LLUUID folder_id = LLUUID());
|
||||||
void purgeSelectedItems();
|
void purgeSelectedItems();
|
||||||
bool attachObject(const LLSD& userdata);
|
bool attachObject(const LLSD& userdata);
|
||||||
|
|
|
||||||
|
|
@ -686,51 +686,6 @@
|
||||||
function="Inventory.DoToSelected"
|
function="Inventory.DoToSelected"
|
||||||
parameter="remove_from_favorites" />
|
parameter="remove_from_favorites" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu
|
|
||||||
label="Use as default for"
|
|
||||||
layout="topleft"
|
|
||||||
name="upload_def">
|
|
||||||
<menu_item_call
|
|
||||||
label="Image uploads"
|
|
||||||
layout="topleft"
|
|
||||||
name="Image uploads">
|
|
||||||
<menu_item_call.on_click
|
|
||||||
function="Inventory.FileUploadLocation"
|
|
||||||
parameter="texture" />
|
|
||||||
<menu_item_call.on_visible
|
|
||||||
function="Inventory.CanSetUploadLocation" />
|
|
||||||
</menu_item_call>
|
|
||||||
<menu_item_call
|
|
||||||
label="Sound uploads"
|
|
||||||
layout="topleft"
|
|
||||||
name="Sound uploads">
|
|
||||||
<menu_item_call.on_click
|
|
||||||
function="Inventory.FileUploadLocation"
|
|
||||||
parameter="sound" />
|
|
||||||
<menu_item_call.on_visible
|
|
||||||
function="Inventory.CanSetUploadLocation" />
|
|
||||||
</menu_item_call>
|
|
||||||
<menu_item_call
|
|
||||||
label="Animation uploads"
|
|
||||||
layout="topleft"
|
|
||||||
name="Animation uploads">
|
|
||||||
<menu_item_call.on_click
|
|
||||||
function="Inventory.FileUploadLocation"
|
|
||||||
parameter="animation" />
|
|
||||||
<menu_item_call.on_visible
|
|
||||||
function="Inventory.CanSetUploadLocation" />
|
|
||||||
</menu_item_call>
|
|
||||||
<menu_item_call
|
|
||||||
label="Model uploads"
|
|
||||||
layout="topleft"
|
|
||||||
name="Model uploads">
|
|
||||||
<menu_item_call.on_click
|
|
||||||
function="Inventory.FileUploadLocation"
|
|
||||||
parameter="model" />
|
|
||||||
<menu_item_call.on_visible
|
|
||||||
function="Inventory.CanSetUploadLocation" />
|
|
||||||
</menu_item_call>
|
|
||||||
</menu>
|
|
||||||
<menu
|
<menu
|
||||||
label="Upload to folder"
|
label="Upload to folder"
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
|
|
@ -812,54 +767,69 @@
|
||||||
label="Use as default for"
|
label="Use as default for"
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
name="upload_def">
|
name="upload_def">
|
||||||
<menu_item_call
|
<menu_item_check
|
||||||
label="Image uploads"
|
label="Image uploads"
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
name="Image uploads">
|
name="Image uploads">
|
||||||
<menu_item_call.on_click
|
<on_click
|
||||||
function="Inventory.FileUploadLocation"
|
function="Inventory.FileUploadLocation"
|
||||||
parameter="def_texture" />
|
parameter="def_texture" />
|
||||||
<menu_item_call.on_visible
|
<on_visible
|
||||||
function="Inventory.CanSetUploadLocation" />
|
function="Inventory.CanSetUploadLocation" />
|
||||||
</menu_item_call>
|
<on_check
|
||||||
<menu_item_call
|
function="Inventory.FileUploadLocation.Check"
|
||||||
|
parameter="def_texture" />
|
||||||
|
</menu_item_check>
|
||||||
|
<menu_item_check
|
||||||
label="Sound uploads"
|
label="Sound uploads"
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
name="Sound uploads">
|
name="Sound uploads">
|
||||||
<menu_item_call.on_click
|
<on_click
|
||||||
function="Inventory.FileUploadLocation"
|
function="Inventory.FileUploadLocation"
|
||||||
parameter="def_sound" />
|
parameter="def_sound" />
|
||||||
<menu_item_call.on_visible
|
<on_visible
|
||||||
function="Inventory.CanSetUploadLocation" />
|
function="Inventory.CanSetUploadLocation" />
|
||||||
</menu_item_call>
|
<on_check
|
||||||
<menu_item_call
|
function="Inventory.FileUploadLocation.Check"
|
||||||
|
parameter="def_sound" />
|
||||||
|
</menu_item_check>
|
||||||
|
<menu_item_check
|
||||||
label="Animation uploads"
|
label="Animation uploads"
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
name="Animation uploads">
|
name="Animation uploads">
|
||||||
<menu_item_call.on_click
|
<on_click
|
||||||
function="Inventory.FileUploadLocation"
|
function="Inventory.FileUploadLocation"
|
||||||
parameter="def_animation" />
|
parameter="def_animation" />
|
||||||
<menu_item_call.on_visible
|
<on_visible
|
||||||
function="Inventory.CanSetUploadLocation" />
|
function="Inventory.CanSetUploadLocation" />
|
||||||
</menu_item_call>
|
<on_check
|
||||||
<menu_item_call
|
function="Inventory.FileUploadLocation.Check"
|
||||||
|
parameter="def_animation" />
|
||||||
|
</menu_item_check>
|
||||||
|
<menu_item_check
|
||||||
label="Model uploads"
|
label="Model uploads"
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
name="Model uploads">
|
name="Model uploads">
|
||||||
<menu_item_call.on_click
|
<on_click
|
||||||
function="Inventory.FileUploadLocation"
|
function="Inventory.FileUploadLocation"
|
||||||
parameter="def_model" />
|
parameter="def_model" />
|
||||||
<menu_item_call.on_visible
|
<on_visible
|
||||||
function="Inventory.CanSetUploadLocation" />
|
function="Inventory.CanSetUploadLocation" />
|
||||||
</menu_item_call>
|
<on_check
|
||||||
<menu_item_call
|
function="Inventory.FileUploadLocation.Check"
|
||||||
|
parameter="def_model" />
|
||||||
|
</menu_item_check>
|
||||||
|
<menu_item_check
|
||||||
label="PBR material uploads"
|
label="PBR material uploads"
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
name="PBR uploads">
|
name="PBR uploads">
|
||||||
<menu_item_call.on_click
|
<on_click
|
||||||
function="Inventory.FileUploadLocation"
|
function="Inventory.FileUploadLocation"
|
||||||
parameter="def_pbr_material" />
|
parameter="def_pbr_material" />
|
||||||
</menu_item_call>
|
<on_check
|
||||||
|
function="Inventory.FileUploadLocation.Check"
|
||||||
|
parameter="def_pbr_material" />
|
||||||
|
</menu_item_check>
|
||||||
</menu>
|
</menu>
|
||||||
<menu_item_separator
|
<menu_item_separator
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
|
|
|
||||||
|
|
@ -1064,46 +1064,61 @@
|
||||||
label="Use as default for"
|
label="Use as default for"
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
name="upload_def">
|
name="upload_def">
|
||||||
<menu_item_call
|
<menu_item_check
|
||||||
label="Image uploads"
|
label="Image uploads"
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
name="Image uploads">
|
name="Image uploads">
|
||||||
<menu_item_call.on_click
|
<on_click
|
||||||
function="Inventory.FileUploadLocation"
|
function="Inventory.FileUploadLocation"
|
||||||
parameter="def_texture" />
|
parameter="def_texture" />
|
||||||
</menu_item_call>
|
<on_check
|
||||||
<menu_item_call
|
function="Inventory.FileUploadLocation.Check"
|
||||||
|
parameter="def_texture" />
|
||||||
|
</menu_item_check>
|
||||||
|
<menu_item_check
|
||||||
label="Sound uploads"
|
label="Sound uploads"
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
name="Sound uploads">
|
name="Sound uploads">
|
||||||
<menu_item_call.on_click
|
<on_click
|
||||||
function="Inventory.FileUploadLocation"
|
function="Inventory.FileUploadLocation"
|
||||||
parameter="def_sound" />
|
parameter="def_sound" />
|
||||||
</menu_item_call>
|
<on_check
|
||||||
<menu_item_call
|
function="Inventory.FileUploadLocation.Check"
|
||||||
|
parameter="def_sound" />
|
||||||
|
</menu_item_check>
|
||||||
|
<menu_item_check
|
||||||
label="Animation uploads"
|
label="Animation uploads"
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
name="Animation uploads">
|
name="Animation uploads">
|
||||||
<menu_item_call.on_click
|
<on_click
|
||||||
function="Inventory.FileUploadLocation"
|
function="Inventory.FileUploadLocation"
|
||||||
parameter="def_animation" />
|
parameter="def_animation" />
|
||||||
</menu_item_call>
|
<on_check
|
||||||
<menu_item_call
|
function="Inventory.FileUploadLocation.Check"
|
||||||
|
parameter="def_animation" />
|
||||||
|
</menu_item_check>
|
||||||
|
<menu_item_check
|
||||||
label="Model uploads"
|
label="Model uploads"
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
name="Model uploads">
|
name="Model uploads">
|
||||||
<menu_item_call.on_click
|
<on_click
|
||||||
function="Inventory.FileUploadLocation"
|
function="Inventory.FileUploadLocation"
|
||||||
parameter="def_model" />
|
parameter="def_model" />
|
||||||
</menu_item_call>
|
<on_check
|
||||||
<menu_item_call
|
function="Inventory.FileUploadLocation.Check"
|
||||||
|
parameter="def_model" />
|
||||||
|
</menu_item_check>
|
||||||
|
<menu_item_check
|
||||||
label="PBR material uploads"
|
label="PBR material uploads"
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
name="PBR uploads">
|
name="PBR uploads">
|
||||||
<menu_item_call.on_click
|
<on_click
|
||||||
function="Inventory.FileUploadLocation"
|
function="Inventory.FileUploadLocation"
|
||||||
parameter="def_pbr_material" />
|
parameter="def_pbr_material" />
|
||||||
</menu_item_call>
|
<on_check
|
||||||
|
function="Inventory.FileUploadLocation.Check"
|
||||||
|
parameter="def_pbr_material" />
|
||||||
|
</menu_item_check>
|
||||||
</menu>
|
</menu>
|
||||||
<menu_item_separator
|
<menu_item_separator
|
||||||
layout="topleft"
|
layout="topleft"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue