Merge branch 'DRTVWR-518-ui' of https://bitbucket.org/lindenlab/viewer
commit
c2addaf78e
|
|
@ -246,8 +246,6 @@ public:
|
|||
void dumpSelectionInformation();
|
||||
|
||||
virtual S32 notify(const LLSD& info) ;
|
||||
|
||||
void setShowEmptyMessage(bool show_msg) { mShowEmptyMessage = show_msg; }
|
||||
|
||||
bool useLabelSuffix() { return mUseLabelSuffix; }
|
||||
virtual void updateMenu();
|
||||
|
|
|
|||
|
|
@ -365,6 +365,7 @@ set(viewer_SOURCE_FILES
|
|||
llfloaterhandler.cpp
|
||||
llfloaterhelpbrowser.cpp
|
||||
llfloaterhoverheight.cpp
|
||||
llfloaterhowto.cpp
|
||||
llfloaterhud.cpp
|
||||
llfloaterimagepreview.cpp
|
||||
llfloaterimsessiontab.cpp
|
||||
|
|
@ -1137,6 +1138,7 @@ set(viewer_HEADER_FILES
|
|||
llfloaterhandler.h
|
||||
llfloaterhelpbrowser.h
|
||||
llfloaterhoverheight.h
|
||||
llfloaterhowto.h
|
||||
llfloaterhud.h
|
||||
llfloaterimagepreview.h
|
||||
llfloaterimnearbychat.h
|
||||
|
|
|
|||
|
|
@ -94,8 +94,10 @@
|
|||
icon="Command_HowTo_Icon"
|
||||
label_ref="Command_HowTo_Label"
|
||||
tooltip_ref="Command_HowTo_Tooltip"
|
||||
execute_function="Help.ToggleHowTo"
|
||||
is_running_function="Help.HowToVisible"
|
||||
execute_function="Floater.ToggleOrBringToFront"
|
||||
execute_parameters="how_to"
|
||||
is_running_function="Floater.IsOpen"
|
||||
is_running_parameters="how_to"
|
||||
/>
|
||||
<command name="inventory"
|
||||
available_in_toybox="true"
|
||||
|
|
|
|||
|
|
@ -6934,7 +6934,7 @@
|
|||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>https://guidebooks.secondlife.io/welcome</string>
|
||||
<string>http://guidebooks.secondlife.io/welcome/index.html</string>
|
||||
</map>
|
||||
<key>HighResSnapshot</key>
|
||||
<map>
|
||||
|
|
|
|||
|
|
@ -676,17 +676,6 @@
|
|||
<key>Value</key>
|
||||
<string></string>
|
||||
</map>
|
||||
<key>FavoritesFolder</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>User's chosen folder which will be shown in the Favorites tab (UUID)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string></string>
|
||||
</map>
|
||||
<key>SnapshotBaseDir</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,73 @@
|
|||
/**
|
||||
* @file llfloaterhowto.cpp
|
||||
* @brief A variant of web floater meant to open guidebook
|
||||
*
|
||||
* $LicenseInfo:firstyear=2021&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2021, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "llfloaterhowto.h"
|
||||
|
||||
#include "llfloaterreg.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llweb.h"
|
||||
|
||||
|
||||
const S32 STACK_WIDTH = 300;
|
||||
const S32 STACK_HEIGHT = 505; // content will be 500
|
||||
|
||||
LLFloaterHowTo::LLFloaterHowTo(const Params& key) :
|
||||
LLFloaterWebContent(key)
|
||||
{
|
||||
mShowPageTitle = false;
|
||||
}
|
||||
|
||||
BOOL LLFloaterHowTo::postBuild()
|
||||
{
|
||||
LLFloaterWebContent::postBuild();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void LLFloaterHowTo::onOpen(const LLSD& key)
|
||||
{
|
||||
LLFloaterWebContent::Params p(key);
|
||||
std::string url = gSavedSettings.getString("GuidebookURL");
|
||||
p.url = LLWeb::expandURLSubstitutions(url, LLSD());
|
||||
p.show_chrome = false;
|
||||
|
||||
LLFloaterWebContent::onOpen(p);
|
||||
|
||||
// Elements from LLFloaterWebContent did not pick up restored size (save_rect) of LLFloaterHowTo
|
||||
// set the stack size and position (alternative to preferred_media_size)
|
||||
LLLayoutStack *stack = getChild<LLLayoutStack>("stack1");
|
||||
LLRect stack_rect = stack->getRect();
|
||||
stack->reshape(STACK_WIDTH, STACK_HEIGHT);
|
||||
stack->setOrigin(stack_rect.mLeft, stack_rect.mTop - STACK_HEIGHT);
|
||||
stack->updateLayout();
|
||||
}
|
||||
|
||||
LLFloaterHowTo* LLFloaterHowTo::getInstance()
|
||||
{
|
||||
return LLFloaterReg::getTypedInstance<LLFloaterHowTo>("how_to");
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
/**
|
||||
* @file llfloaterhowto.h
|
||||
* @brief A variant of web floater meant to open guidebook
|
||||
*
|
||||
* $LicenseInfo:firstyear=2021&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2021, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#ifndef LL_LLFLOATERHOWTO_H
|
||||
#define LL_LLFLOATERHOWTO_H
|
||||
|
||||
#include "llfloaterwebcontent.h"
|
||||
|
||||
class LLMediaCtrl;
|
||||
|
||||
|
||||
class LLFloaterHowTo :
|
||||
public LLFloaterWebContent
|
||||
{
|
||||
public:
|
||||
|
||||
LLFloaterHowTo(const Params& key);
|
||||
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
|
||||
static LLFloaterHowTo* getInstance();
|
||||
|
||||
private:
|
||||
/*virtual*/ BOOL postBuild();
|
||||
};
|
||||
|
||||
#endif // LL_LLFLOATERHOWTO_H
|
||||
|
||||
|
|
@ -161,35 +161,6 @@ bool isMarketplaceSendAction(const std::string& action)
|
|||
return ("send_to_marketplace" == action);
|
||||
}
|
||||
|
||||
bool isPanelActive(const std::string& panel_name)
|
||||
{
|
||||
LLInventoryPanel *active_panel = LLInventoryPanel::getActiveInventoryPanel(FALSE);
|
||||
return (active_panel && (active_panel->getName() == panel_name));
|
||||
}
|
||||
|
||||
bool isParentSystemFolder(const LLInventoryModel* model, const LLUUID& folder_id)
|
||||
{
|
||||
if (!model || folder_id.isNull()) return false;
|
||||
|
||||
LLViewerInventoryCategory* cat = model->getCategory(folder_id);
|
||||
if (cat)
|
||||
{
|
||||
if (cat->getPreferredType() == LLFolderType::FT_ROOT_INVENTORY)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (LLFolderType::lookupIsProtectedType(cat->getPreferredType()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return isParentSystemFolder(model, cat->getParentUUID());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Used by LLFolderBridge as callback for directory fetching recursion
|
||||
class LLRightClickInventoryFetchDescendentsObserver : public LLInventoryFetchDescendentsObserver
|
||||
{
|
||||
|
|
@ -997,7 +968,8 @@ void LLInvFVBridge::getClipboardEntries(bool show_asset_id,
|
|||
//}
|
||||
// </FS>
|
||||
|
||||
if (!isPanelActive("All Items"))
|
||||
LLInventoryPanel *active_panel = LLInventoryPanel::getActiveInventoryPanel(FALSE);
|
||||
if (active_panel && (active_panel->getName() != "All Items"))
|
||||
{
|
||||
items.push_back(std::string("Show in Main Panel"));
|
||||
}
|
||||
|
|
@ -1085,7 +1057,7 @@ void LLInvFVBridge::addTrashContextMenuOptions(menuentry_vec_t &items,
|
|||
}
|
||||
}
|
||||
items.push_back(std::string("Purge Item"));
|
||||
if (!isItemRemovable() || isPanelActive("Favorite Items"))
|
||||
if (!isItemRemovable())
|
||||
{
|
||||
disabled_items.push_back(std::string("Purge Item"));
|
||||
}
|
||||
|
|
@ -1106,7 +1078,7 @@ void LLInvFVBridge::addDeleteContextMenuOptions(menuentry_vec_t &items,
|
|||
|
||||
items.push_back(std::string("Delete"));
|
||||
|
||||
if (!isItemRemovable() || isPanelActive("Favorite Items"))
|
||||
if (!isItemRemovable())
|
||||
{
|
||||
disabled_items.push_back(std::string("Delete"));
|
||||
}
|
||||
|
|
@ -4433,7 +4405,6 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items
|
|||
disabled_items.push_back(std::string("New Clothes"));
|
||||
disabled_items.push_back(std::string("New Body Parts"));
|
||||
disabled_items.push_back(std::string("upload_def"));
|
||||
disabled_items.push_back(std::string("Set Favorites folder"));
|
||||
}
|
||||
if (favorites == mUUID)
|
||||
{
|
||||
|
|
@ -4461,7 +4432,6 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items
|
|||
disabled_items.push_back(std::string("New Clothes"));
|
||||
disabled_items.push_back(std::string("New Body Parts"));
|
||||
disabled_items.push_back(std::string("upload_def"));
|
||||
disabled_items.push_back(std::string("Set Favorites folder"));
|
||||
}
|
||||
if (marketplace_listings_id == mUUID)
|
||||
{
|
||||
|
|
@ -4470,14 +4440,14 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items
|
|||
disabled_items.push_back(std::string("Cut"));
|
||||
disabled_items.push_back(std::string("Delete"));
|
||||
}
|
||||
|
||||
if (isPanelActive("Favorite Items"))
|
||||
{
|
||||
disabled_items.push_back(std::string("Delete"));
|
||||
}
|
||||
if(trash_id == mUUID)
|
||||
{
|
||||
bool is_recent_panel = isPanelActive("Recent Items");
|
||||
bool is_recent_panel = false;
|
||||
LLInventoryPanel *active_panel = LLInventoryPanel::getActiveInventoryPanel(FALSE);
|
||||
if (active_panel && (active_panel->getName() == "Recent Items"))
|
||||
{
|
||||
is_recent_panel = true;
|
||||
}
|
||||
|
||||
// This is the trash.
|
||||
items.push_back(std::string("Empty Trash"));
|
||||
|
|
@ -4534,14 +4504,6 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items
|
|||
items.push_back(std::string("New Settings"));
|
||||
items.push_back(std::string("upload_def"));
|
||||
|
||||
if (model->findUserDefinedCategoryUUIDForType(LLFolderType::FT_FAVORITE) == mUUID)
|
||||
{
|
||||
items.push_back(std::string("Reset Favorites folder"));
|
||||
}
|
||||
else if (!LLFolderType::lookupIsProtectedType(getPreferredType()) && !isParentSystemFolder(model, mUUID))
|
||||
{
|
||||
items.push_back(std::string("Set Favorites folder"));
|
||||
}
|
||||
if (!LLEnvironment::instance().isInventoryEnabled())
|
||||
{
|
||||
disabled_items.push_back("New Settings");
|
||||
|
|
|
|||
|
|
@ -576,11 +576,6 @@ const LLUUID LLInventoryModel::findUserDefinedCategoryUUIDForType(LLFolderType::
|
|||
cat_id = LLUUID(gSavedPerAccountSettings.getString("AnimationUploadFolder"));
|
||||
break;
|
||||
}
|
||||
case LLFolderType::FT_FAVORITE:
|
||||
{
|
||||
cat_id = LLUUID(gSavedPerAccountSettings.getString("FavoritesFolder"));
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -192,8 +192,6 @@ LLInventoryPanel::LLInventoryPanel(const LLInventoryPanel::Params& p) :
|
|||
mCommitCallbackRegistrar.add("Inventory.BeginIMSession", boost::bind(&LLInventoryPanel::beginIMSession, this));
|
||||
mCommitCallbackRegistrar.add("Inventory.Share", boost::bind(&LLAvatarActions::shareWithAvatars, this));
|
||||
mCommitCallbackRegistrar.add("Inventory.FileUploadLocation", boost::bind(&LLInventoryPanel::fileUploadLocation, this, _2));
|
||||
mCommitCallbackRegistrar.add("Inventory.SetFavoritesFolder", boost::bind(&LLInventoryPanel::setFavoritesFolder, this, _2));
|
||||
mCommitCallbackRegistrar.add("Inventory.ResetFavoritesFolder", boost::bind(&LLInventoryPanel::resetFavoritesFolder, this, _2));
|
||||
mCommitCallbackRegistrar.add("Inventory.CustomAction", boost::bind(&LLInventoryPanel::onCustomAction, this, _2)); // <FS:Ansariel> Prevent warning "No callback found for: 'Inventory.CustomAction' in control: Find Links"
|
||||
}
|
||||
|
||||
|
|
@ -1614,16 +1612,6 @@ void LLInventoryPanel::fileUploadLocation(const LLSD& userdata)
|
|||
}
|
||||
}
|
||||
|
||||
void LLInventoryPanel::setFavoritesFolder(const LLSD& userdata)
|
||||
{
|
||||
gSavedPerAccountSettings.setString("FavoritesFolder", LLFolderBridge::sSelf.get()->getUUID().asString());
|
||||
}
|
||||
|
||||
void LLInventoryPanel::resetFavoritesFolder(const LLSD& userdata)
|
||||
{
|
||||
gSavedPerAccountSettings.setString("FavoritesFolder", "");
|
||||
}
|
||||
|
||||
void LLInventoryPanel::purgeSelectedItems()
|
||||
{
|
||||
if (!mFolderRoot.get()) return;
|
||||
|
|
@ -2080,96 +2068,6 @@ LLInventoryRecentItemsPanel::LLInventoryRecentItemsPanel( const Params& params)
|
|||
mInvFVBridgeBuilder = &RECENT_ITEMS_BUILDER;
|
||||
}
|
||||
|
||||
static LLDefaultChildRegistry::Register<LLInventoryFavoriteItemsPanel> t_favorites_inventory_panel("favorites_inventory_panel");
|
||||
|
||||
LLInventoryFavoriteItemsPanel::LLInventoryFavoriteItemsPanel(const Params& params)
|
||||
: LLInventoryPanel(params)
|
||||
{
|
||||
std::string ctrl_name = "FavoritesFolder";
|
||||
if (gSavedPerAccountSettings.controlExists(ctrl_name))
|
||||
{
|
||||
LLPointer<LLControlVariable> cntrl_ptr = gSavedPerAccountSettings.getControl(ctrl_name);
|
||||
if (cntrl_ptr.notNull())
|
||||
{
|
||||
mFolderChangedSignal = cntrl_ptr->getCommitSignal()->connect(boost::bind(&LLInventoryFavoriteItemsPanel::updateFavoritesRootFolder, this));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LLInventoryFavoriteItemsPanel::setSelectCallback(const boost::function<void(const std::deque<LLFolderViewItem*>& items, BOOL user_action)>& cb)
|
||||
{
|
||||
if (mFolderRoot.get())
|
||||
{
|
||||
mFolderRoot.get()->setSelectCallback(cb);
|
||||
mSelectionCallback = cb;
|
||||
}
|
||||
}
|
||||
|
||||
void LLInventoryFavoriteItemsPanel::initFromParams(const Params& p)
|
||||
{
|
||||
Params fav_params(p);
|
||||
fav_params.start_folder.id = gInventory.findUserDefinedCategoryUUIDForType(LLFolderType::FT_FAVORITE);
|
||||
LLInventoryPanel::initFromParams(fav_params);
|
||||
updateFavoritesRootFolder();
|
||||
}
|
||||
|
||||
void LLInventoryFavoriteItemsPanel::updateFavoritesRootFolder()
|
||||
{
|
||||
const LLUUID& folder_id = gInventory.findUserDefinedCategoryUUIDForType(LLFolderType::FT_FAVORITE);
|
||||
|
||||
bool is_favorites_set = (folder_id != gInventory.findCategoryUUIDForTypeInRoot(LLFolderType::FT_FAVORITE, true, gInventory.getRootFolderID()));
|
||||
|
||||
if (!is_favorites_set || folder_id != getRootFolderID())
|
||||
{
|
||||
LLUUID root_id = folder_id;
|
||||
if (mFolderRoot.get())
|
||||
{
|
||||
removeItemID(getRootFolderID());
|
||||
mFolderRoot.get()->destroyView();
|
||||
}
|
||||
|
||||
mCommitCallbackRegistrar.pushScope();
|
||||
{
|
||||
LLFolderView* folder_view = createFolderRoot(root_id);
|
||||
mFolderRoot = folder_view->getHandle();
|
||||
|
||||
addItemID(root_id, mFolderRoot.get());
|
||||
|
||||
|
||||
LLRect scroller_view_rect = getRect();
|
||||
scroller_view_rect.translate(-scroller_view_rect.mLeft, -scroller_view_rect.mBottom);
|
||||
LLScrollContainer::Params scroller_params(mParams.scroll());
|
||||
scroller_params.rect(scroller_view_rect);
|
||||
|
||||
if (mScroller)
|
||||
{
|
||||
removeChild(mScroller);
|
||||
delete mScroller;
|
||||
mScroller = NULL;
|
||||
}
|
||||
mScroller = LLUICtrlFactory::create<LLFolderViewScrollContainer>(scroller_params);
|
||||
addChild(mScroller);
|
||||
mScroller->addChild(mFolderRoot.get());
|
||||
mFolderRoot.get()->setScrollContainer(mScroller);
|
||||
mFolderRoot.get()->setFollowsAll();
|
||||
mFolderRoot.get()->addChild(mFolderRoot.get()->mStatusTextBox);
|
||||
|
||||
if (!mSelectionCallback.empty())
|
||||
{
|
||||
mFolderRoot.get()->setSelectCallback(mSelectionCallback);
|
||||
}
|
||||
}
|
||||
mCommitCallbackRegistrar.popScope();
|
||||
mFolderRoot.get()->setCallbackRegistrar(&mCommitCallbackRegistrar);
|
||||
|
||||
if (is_favorites_set)
|
||||
{
|
||||
buildNewViews(folder_id);
|
||||
}
|
||||
mFolderRoot.get()->setShowEmptyMessage(!is_favorites_set);
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************************************/
|
||||
/* Asset Pre-Filtered Inventory Panel related class */
|
||||
/************************************************************************/
|
||||
|
|
|
|||
|
|
@ -227,8 +227,6 @@ public:
|
|||
void doCreate(const LLSD& userdata);
|
||||
bool beginIMSession();
|
||||
void fileUploadLocation(const LLSD& userdata);
|
||||
void setFavoritesFolder(const LLSD& userdata);
|
||||
void resetFavoritesFolder(const LLSD& userdata);
|
||||
void purgeSelectedItems();
|
||||
bool attachObject(const LLSD& userdata);
|
||||
static void idle(void* user_data);
|
||||
|
|
@ -382,26 +380,6 @@ private:
|
|||
EViewsInitializationState mViewsInitialized; // Whether views have been generated
|
||||
};
|
||||
|
||||
class LLInventoryFavoriteItemsPanel : public LLInventoryPanel
|
||||
{
|
||||
public:
|
||||
struct Params : public LLInitParam::Block<Params, LLInventoryPanel::Params>
|
||||
{};
|
||||
|
||||
void initFromParams(const Params& p);
|
||||
bool isSelectionRemovable() { return false; }
|
||||
void setSelectCallback(const boost::function<void(const std::deque<LLFolderViewItem*>& items, BOOL user_action)>& cb);
|
||||
|
||||
protected:
|
||||
LLInventoryFavoriteItemsPanel(const Params& params);
|
||||
~LLInventoryFavoriteItemsPanel() { mFolderChangedSignal.disconnect(); }
|
||||
void updateFavoritesRootFolder();
|
||||
|
||||
boost::signals2::connection mFolderChangedSignal;
|
||||
boost::function<void(const std::deque<LLFolderViewItem*>& items, BOOL user_action)> mSelectionCallback;
|
||||
friend class LLUICtrlFactory;
|
||||
};
|
||||
|
||||
/************************************************************************/
|
||||
/* Asset Pre-Filtered Inventory Panel related class */
|
||||
/* Exchanges filter's flexibility for speed of generation and */
|
||||
|
|
|
|||
|
|
@ -507,6 +507,12 @@ void LLLandmarksPanel::onAddAction(const LLSD& userdata) const
|
|||
{
|
||||
args["dest_folder"] = view_model->getUUID();
|
||||
}
|
||||
if ("add_landmark_root" == command_name
|
||||
&& mCurrentSelectedList == mLandmarksInventoryPanel)
|
||||
{
|
||||
args["dest_folder"] = mLandmarksInventoryPanel->getRootFolderID();
|
||||
}
|
||||
// else will end up in favorites
|
||||
LLFloaterReg::showInstance("add_landmark", args);
|
||||
}
|
||||
// [RLVa:KB] - Checked: 2012-02-08 (RLVa-1.4.5) | Added: RLVa-1.4.5
|
||||
|
|
|
|||
|
|
@ -276,16 +276,6 @@ BOOL LLPanelMainInventory::postBuild()
|
|||
}
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
|
||||
mFavoriteItemsPanel = getChild<LLInventoryFavoriteItemsPanel>("Favorite Items");
|
||||
if (mFavoriteItemsPanel)
|
||||
{
|
||||
LLInventoryFilter& recent_filter = mFavoriteItemsPanel->getFilter();
|
||||
recent_filter.setEmptyLookupMessage("InventoryFavoritItemsNotSelected");
|
||||
recent_filter.markDefault();
|
||||
mFavoriteItemsPanel->setSelectCallback(boost::bind(&LLPanelMainInventory::onSelectionChange, this, mFavoriteItemsPanel, _1, _2));
|
||||
}
|
||||
|
||||
// <FS:Ansariel> Only if we actually have it!
|
||||
//mSearchTypeCombo = getChild<LLComboBox>("search_type");
|
||||
mSearchTypeCombo = findChild<LLComboBox>("search_type");
|
||||
|
|
@ -1913,7 +1903,7 @@ BOOL LLPanelMainInventory::isActionEnabled(const LLSD& userdata)
|
|||
// </FS:Ansariel>
|
||||
if (command_name == "delete")
|
||||
{
|
||||
return getActivePanel()->isSelectionRemovable() && (getActivePanel() != mFavoriteItemsPanel);
|
||||
return getActivePanel()->isSelectionRemovable();
|
||||
}
|
||||
if (command_name == "save_texture")
|
||||
{
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@
|
|||
class LLComboBox;
|
||||
class LLFolderViewItem;
|
||||
class LLInventoryPanel;
|
||||
class LLInventoryFavoriteItemsPanel;
|
||||
class LLSaveFolderState;
|
||||
class LLFilterEditor;
|
||||
class LLTabContainer;
|
||||
|
|
@ -164,7 +163,6 @@ private:
|
|||
LLHandle<LLFloater> mFinderHandle;
|
||||
LLInventoryPanel* mActivePanel;
|
||||
LLInventoryPanel* mWornItemsPanel;
|
||||
LLInventoryFavoriteItemsPanel* mFavoriteItemsPanel;
|
||||
bool mResortActivePanel;
|
||||
LLSaveFolderState* mSavedFolderState;
|
||||
std::string mFilterText;
|
||||
|
|
|
|||
|
|
@ -2659,9 +2659,10 @@ bool idle_startup()
|
|||
// on with this install.
|
||||
gSavedSettings.setBOOL("ShowStartLocation", TRUE);
|
||||
|
||||
// Open Conversation floater on first login.
|
||||
// <FS:Ansariel> Disabled...
|
||||
//LLFloaterReg::toggleInstanceOrBringToFront("how_to");
|
||||
|
||||
// <FS:Ansariel> [FS Communication UI]
|
||||
//LLFloaterReg::toggleInstanceOrBringToFront("im_container");
|
||||
LLFloaterReg::toggleInstanceOrBringToFront("fs_im_container");
|
||||
// </FS:Ansariel> [FS Communication UI]
|
||||
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@
|
|||
#include "llfloatergroups.h"
|
||||
#include "llfloaterhelpbrowser.h"
|
||||
#include "llfloaterhoverheight.h"
|
||||
#include "llfloaterhowto.h"
|
||||
#include "llfloaterhud.h"
|
||||
#include "llfloaterimagepreview.h"
|
||||
#include "llfloaterimsession.h"
|
||||
|
|
@ -445,7 +446,7 @@ void LLViewerFloaterReg::registerFloaters()
|
|||
//LLFloaterReg::add("search", "floater_search.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSearch>);
|
||||
LLFloaterReg::add("my_profile", "floater_my_web_profile.xml", (LLFloaterBuildFunc)&LLFloaterWebProfile::create);
|
||||
LLFloaterReg::add("profile", "floater_web_profile.xml", (LLFloaterBuildFunc)&LLFloaterWebProfile::create);
|
||||
LLFloaterReg::add("how_to", "floater_how_to.xml", (LLFloaterBuildFunc)&LLFloaterWebContent::create);
|
||||
LLFloaterReg::add("how_to", "floater_how_to.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterHowTo>);
|
||||
|
||||
LLFloaterReg::add("big_preview", "floater_big_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterBigPreview>);
|
||||
|
||||
|
|
|
|||
|
|
@ -1654,11 +1654,6 @@ void remove_inventory_category(
|
|||
LLNotificationsUtil::add("CannotRemoveProtectedCategories");
|
||||
return;
|
||||
}
|
||||
const LLUUID fav_id = gInventory.findUserDefinedCategoryUUIDForType(LLFolderType::FT_FAVORITE);
|
||||
if ((cat_id == fav_id) || gInventory.isObjectDescendentOf(fav_id, cat_id))
|
||||
{
|
||||
gSavedPerAccountSettings.setString("FavoritesFolder", "");
|
||||
}
|
||||
|
||||
// <FS:Ansariel> [UDP-Msg]
|
||||
if (AISAPI::isAvailable())
|
||||
|
|
@ -1736,12 +1731,6 @@ void purge_descendents_of(const LLUUID& id, LLPointer<LLInventoryCallback> cb)
|
|||
LLPointer<LLViewerInventoryCategory> cat = gInventory.getCategory(id);
|
||||
if (cat.notNull())
|
||||
{
|
||||
const LLUUID fav_id = gInventory.findUserDefinedCategoryUUIDForType(LLFolderType::FT_FAVORITE);
|
||||
if ((id == fav_id) || gInventory.isObjectDescendentOf(fav_id, id))
|
||||
{
|
||||
gSavedPerAccountSettings.setString("FavoritesFolder", "");
|
||||
}
|
||||
|
||||
if (LLClipboard::instance().hasContents())
|
||||
{
|
||||
// Remove items from clipboard or it will remain active even if there is nothing to paste/copy
|
||||
|
|
|
|||
|
|
@ -6229,13 +6229,6 @@ bool tools_visible_take_object()
|
|||
return !is_selection_buy_not_take();
|
||||
}
|
||||
|
||||
bool enable_how_to_visible(const LLSD& param)
|
||||
{
|
||||
LLFloaterWebContent::Params p;
|
||||
p.target = "__help_how_to";
|
||||
return LLFloaterReg::instanceVisible("how_to", p);
|
||||
}
|
||||
|
||||
class LLToolsEnableBuyOrTake : public view_listener_t
|
||||
{
|
||||
bool handleEvent(const LLSD& userdata)
|
||||
|
|
@ -9758,15 +9751,7 @@ class LLToggleHowTo : public view_listener_t
|
|||
{
|
||||
bool handleEvent(const LLSD& userdata)
|
||||
{
|
||||
LLFloaterWebContent::Params p;
|
||||
std::string url = gSavedSettings.getString("HowToHelpURL");
|
||||
p.url = LLWeb::expandURLSubstitutions(url, LLSD());
|
||||
p.show_chrome = false;
|
||||
p.target = "__help_how_to";
|
||||
p.show_page_title = false;
|
||||
p.preferred_media_size = LLRect(0, 460, 335, 0);
|
||||
|
||||
LLFloaterReg::toggleInstanceOrBringToFront("how_to", p);
|
||||
LLFloaterReg::toggleInstanceOrBringToFront("how_to");
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
|
@ -11747,7 +11732,6 @@ void initialize_menus()
|
|||
// Help menu
|
||||
// most items use the ShowFloater method
|
||||
view_listener_t::addMenu(new LLToggleHowTo(), "Help.ToggleHowTo");
|
||||
enable.add("Help.HowToVisible", boost::bind(&enable_how_to_visible, _2));
|
||||
|
||||
// Advanced menu
|
||||
view_listener_t::addMenu(new LLAdvancedToggleConsole(), "Advanced.ToggleConsole");
|
||||
|
|
|
|||
|
|
@ -647,18 +647,6 @@
|
|||
name="Worn Items"
|
||||
show_item_link_overlays="true"
|
||||
width="290" />
|
||||
<favorites_inventory_panel
|
||||
name="Favorite Items"
|
||||
label="Favorites"
|
||||
show_empty_message="false"
|
||||
follows="all"
|
||||
height="338"
|
||||
layout="topleft"
|
||||
width="290"
|
||||
left_delta="0"
|
||||
border="false"
|
||||
bevel_style="none"
|
||||
scroll.reserve_scroll_corner="false"/>
|
||||
</tab_container>
|
||||
<panel
|
||||
follows="left|right|bottom"
|
||||
|
|
|
|||
|
|
@ -4,13 +4,12 @@
|
|||
can_resize="false"
|
||||
can_minimize="false"
|
||||
can_close="false"
|
||||
height="775"
|
||||
height="525"
|
||||
layout="topleft"
|
||||
top="0"
|
||||
min_width="335"
|
||||
name="floater_how_to"
|
||||
single_instance="true"
|
||||
save_visibility="true"
|
||||
save_rect="true"
|
||||
title="How to"
|
||||
width="780"
|
||||
width="310"
|
||||
filename="floater_web_content.xml"/>
|
||||
|
|
@ -401,20 +401,6 @@
|
|||
parameter="model" />
|
||||
</menu_item_call>
|
||||
</menu>
|
||||
<menu_item_call
|
||||
label="Use as Favorites folder"
|
||||
layout="topleft"
|
||||
name="Set Favorites folder">
|
||||
<menu_item_call.on_click
|
||||
function="Inventory.SetFavoritesFolder"/>
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Reset Favorites folder"
|
||||
layout="topleft"
|
||||
name="Reset Favorites folder">
|
||||
<menu_item_call.on_click
|
||||
function="Inventory.ResetFavoritesFolder"/>
|
||||
</menu_item_call>
|
||||
<menu
|
||||
label="Change Type"
|
||||
layout="topleft"
|
||||
|
|
|
|||
|
|
@ -82,13 +82,6 @@
|
|||
<menu_item_call.on_click
|
||||
function="Help.ToggleHowTo"
|
||||
parameter="" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Quickstart"
|
||||
name="Quickstart">
|
||||
<menu_item_call.on_click
|
||||
function="Advanced.ShowURL"
|
||||
parameter="http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Quickstart/ta-p/1087919"/>
|
||||
</menu_item_call>
|
||||
<menu_item_separator/>
|
||||
<menu_item_call
|
||||
|
|
|
|||
|
|
@ -156,18 +156,6 @@
|
|||
name="Worn Items"
|
||||
show_item_link_overlays="true"
|
||||
width="290" />
|
||||
<favorites_inventory_panel
|
||||
name="Favorite Items"
|
||||
label="Favorites"
|
||||
show_empty_message="false"
|
||||
follows="all"
|
||||
height="338"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
width="290"
|
||||
border="false"
|
||||
bevel_style="none"
|
||||
scroll.reserve_scroll_corner="false"/>
|
||||
</tab_container>
|
||||
<panel
|
||||
follows="left|right|bottom"
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ Looking for places with more people?
|
|||
|
||||
[secondlife:///app/floater/destinations Destination Guide] has locations chosen by the grid operator staff.
|
||||
|
||||
[secondlife:///app/search/people Search] lets you search all the grid for certain keywords.
|
||||
[secondlife:///app/search/ Search] lets you search all the grid for certain keywords.
|
||||
</string>
|
||||
<string
|
||||
name="no_filtered_friends_msg">
|
||||
|
|
|
|||
|
|
@ -762,7 +762,7 @@ http://www.firestormviewer.org/support for help fixing this problem.
|
|||
<!-- inventory -->
|
||||
<string name="InventoryNoMatchingItems">Didn't find what you're looking for? Try [secondlife:///app/search/all/[SEARCH_TERM] Search].</string>
|
||||
<string name="InventoryNoMatchingRecentItems">Didn't find what you're looking for? Show [secondlife:///app/inventory/filters Filters].</string>
|
||||
<string name="InventoryFavoritItemsNotSelected">Click "Use as Favorites folder" on a folder of your choice. You can choose a different folder at any time. System folders and folders inside them cannot be used for Favorites.</string>
|
||||
<string name="PlacesNoMatchingItems">To add a place to your landmarks, click the star to the right of the location name.</string>
|
||||
<string name="PlacesNoMatchingItems">Didn't find what you're looking for? Try [secondlife:///app/search/places/[SEARCH_TERM] Search].</string>
|
||||
<string name="FavoritesNoMatchingItems">Drag a landmark here to add it to your favorites.</string>
|
||||
<string name="MarketplaceNoMatchingItems">No items found. Check the spelling of your search string and try again.</string>
|
||||
|
|
|
|||
|
|
@ -144,18 +144,6 @@
|
|||
name="Worn Items"
|
||||
show_item_link_overlays="true"
|
||||
width="290" />
|
||||
<favorites_inventory_panel
|
||||
name="Favorite Items"
|
||||
label="Favorites"
|
||||
show_empty_message="false"
|
||||
follows="all"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
width="290"
|
||||
height="338"
|
||||
border="false"
|
||||
bevel_style="none"
|
||||
scroll.reserve_scroll_corner="false"/>
|
||||
</tab_container>
|
||||
<panel
|
||||
follows="left|right|bottom"
|
||||
|
|
|
|||
|
|
@ -146,18 +146,6 @@
|
|||
name="Worn Items"
|
||||
show_item_link_overlays="true"
|
||||
width="290" />
|
||||
<favorites_inventory_panel
|
||||
name="Favorite Items"
|
||||
label="Favorites"
|
||||
show_empty_message="false"
|
||||
follows="all"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
width="290"
|
||||
height="338"
|
||||
border="false"
|
||||
bevel_style="none"
|
||||
scroll.reserve_scroll_corner="false"/>
|
||||
</tab_container>
|
||||
<panel
|
||||
follows="left|right|bottom"
|
||||
|
|
|
|||
|
|
@ -618,15 +618,6 @@
|
|||
layout="topleft"
|
||||
name="Worn Items"
|
||||
show_item_link_overlays="true" />
|
||||
<favorites_inventory_panel
|
||||
name="Favorite Items"
|
||||
label="Favorites"
|
||||
show_empty_message="false"
|
||||
follows="all"
|
||||
layout="topleft"
|
||||
border="false"
|
||||
bevel_style="none"
|
||||
scroll.reserve_scroll_corner="false"/>
|
||||
</tab_container>
|
||||
|
||||
<text
|
||||
|
|
|
|||
Loading…
Reference in New Issue