diff options
Diffstat (limited to 'indra')
88 files changed, 722 insertions, 419 deletions
diff --git a/indra/llcommon/llfasttimer.h b/indra/llcommon/llfasttimer.h index 5058a2e772..85c78198dc 100644 --- a/indra/llcommon/llfasttimer.h +++ b/indra/llcommon/llfasttimer.h @@ -77,7 +77,7 @@ inline U32 get_cpu_clock_count_64() { U64 x; __asm__ volatile (".byte 0x0f, 0x31": "=A"(x)); - return x >> 8; + return x; } #endif diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp index 21f3f15739..c172a2b714 100644 --- a/indra/llui/llmenugl.cpp +++ b/indra/llui/llmenugl.cpp @@ -99,7 +99,7 @@ const S32 TEAROFF_SEPARATOR_HEIGHT_PIXELS = 10; const S32 MENU_ITEM_PADDING = 4; const std::string BOOLEAN_TRUE_PREFIX( "\xE2\x9C\x94" ); // U+2714 HEAVY CHECK MARK -const std::string BRANCH_SUFFIX( ">" ); +const std::string BRANCH_SUFFIX( "\xE2\x96\xB6" ); // U+25B6 BLACK RIGHT-POINTING TRIANGLE const std::string ARROW_UP ("^^^^^^^"); const std::string ARROW_DOWN("vvvvvvv"); diff --git a/indra/llui/lluictrl.cpp b/indra/llui/lluictrl.cpp index f016c0af89..3ade46d367 100644 --- a/indra/llui/lluictrl.cpp +++ b/indra/llui/lluictrl.cpp @@ -868,14 +868,6 @@ bool LLUICtrl::findHelpTopic(std::string& help_topic_out) if (panel) { - // does the panel have an active tab with a help topic? - LLPanel *tab = panel->childGetVisibleTabWithHelp(); - if (tab) - { - help_topic_out = tab->getHelpTopic(); - return true; // success (tab) - } - // does the panel have a sub-panel with a help topic? LLPanel *subpanel = panel->childGetVisiblePanelWithHelp(); if (subpanel) @@ -884,6 +876,14 @@ bool LLUICtrl::findHelpTopic(std::string& help_topic_out) return true; // success (subpanel) } + // does the panel have an active tab with a help topic? + LLPanel *tab = panel->childGetVisibleTabWithHelp(); + if (tab) + { + help_topic_out = tab->getHelpTopic(); + return true; // success (tab) + } + // otherwise, does the panel have a help topic itself? if (!panel->getHelpTopic().empty()) { diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 5ea253709c..297bcfd1df 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -43,7 +43,7 @@ #include "llcallingcard.h" #include "llchannelmanager.h" #include "llconsole.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llfloatercamera.h" #include "llfloatercustomize.h" #include "llfloaterreg.h" @@ -5697,10 +5697,10 @@ void LLAgent::processScriptControlChange(LLMessageSystem *msg, void **) } // Any control taken? If so, might be first time. - if (total_count > 0) - { - LLFirstUse::useOverrideKeys(); - } + //if (total_count > 0) + //{ + //LLFirstUse::useOverrideKeys(); + //} } else { diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index 10a2dd132a..c21cdf9508 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -1364,15 +1364,15 @@ void LLAgentWearables::makeNewOutfit(const std::string& new_folder_name, } } -class LLAutoRenameFolder: public LLInventoryCallback +class LLShowCreatedOutfit: public LLInventoryCallback { public: - LLAutoRenameFolder(LLUUID& folder_id): + LLShowCreatedOutfit(LLUUID& folder_id): mFolderID(folder_id) { } - virtual ~LLAutoRenameFolder() + virtual ~LLShowCreatedOutfit() { LLSD key; LLSideTray::getInstance()->showPanel("panel_outfits_inventory", key); @@ -1382,13 +1382,15 @@ public: { outfit_panel->getRootFolder()->clearSelection(); outfit_panel->getRootFolder()->setSelectionByID(mFolderID, TRUE); - outfit_panel->getRootFolder()->setNeedsAutoRename(TRUE); } LLAccordionCtrlTab* tab_outfits = outfit_panel ? outfit_panel->findChild<LLAccordionCtrlTab>("tab_outfits") : 0; if (tab_outfits && !tab_outfits->getDisplayChildren()) { tab_outfits->changeOpenClose(tab_outfits->getDisplayChildren()); } + + LLAppearanceManager::instance().updateIsDirty(); + LLAppearanceManager::instance().updatePanelOutfitName(""); } virtual void fire(const LLUUID&) @@ -1413,10 +1415,10 @@ LLUUID LLAgentWearables::makeNewOutfitLinks(const std::string& new_folder_name) LLFolderType::FT_OUTFIT, new_folder_name); - LLPointer<LLInventoryCallback> cb = new LLAutoRenameFolder(folder_id); + LLPointer<LLInventoryCallback> cb = new LLShowCreatedOutfit(folder_id); LLAppearanceManager::instance().shallowCopyCategory(LLAppearanceManager::instance().getCOF(),folder_id, cb); - LLAppearanceManager::instance().createBaseOutfitLink(folder_id, NULL); - + LLAppearanceManager::instance().createBaseOutfitLink(folder_id, cb); + return folder_id; } diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 4d4a89bcd4..748d8bdfbf 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -392,6 +392,21 @@ const LLViewerInventoryItem* LLAppearanceManager::getBaseOutfitLink() return NULL; } +bool LLAppearanceManager::getBaseOutfitName(std::string& name) +{ + const LLViewerInventoryItem* outfit_link = getBaseOutfitLink(); + if(outfit_link) + { + const LLViewerInventoryCategory *cat = outfit_link->getLinkedCategory(); + if (cat) + { + name = cat->getName(); + return true; + } + } + return false; +} + // Update appearance from outfit folder. void LLAppearanceManager::changeOutfit(bool proceed, const LLUUID& category, bool append) { @@ -630,6 +645,7 @@ void LLAppearanceManager::createBaseOutfitLink(const LLUUID& category, LLPointer LLAssetType::AT_LINK_FOLDER, link_waiter); new_outfit_name = catp->getName(); } + updatePanelOutfitName(new_outfit_name); } diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index b954968998..20745b70e4 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -63,6 +63,7 @@ public: // Finds the folder link to the currently worn outfit const LLViewerInventoryItem *getBaseOutfitLink(); + bool getBaseOutfitName(std::string &name); // Update the displayed outfit name in UI. void updatePanelOutfitName(const std::string& name); diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index fb1bded795..067369d54d 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -71,7 +71,7 @@ #include "lluicolortable.h" #include "llurldispatcher.h" #include "llurlhistory.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llrender.h" #include "llteleporthistory.h" #include "lllocationhistory.h" @@ -1915,25 +1915,25 @@ bool LLAppViewer::initConfiguration() // These are warnings that appear on the first experience of that condition. // They are already set in the settings_default.xml file, but still need to be added to LLFirstUse // for disable/reset ability - LLFirstUse::addConfigVariable("FirstBalanceIncrease"); - LLFirstUse::addConfigVariable("FirstBalanceDecrease"); - LLFirstUse::addConfigVariable("FirstSit"); - LLFirstUse::addConfigVariable("FirstMap"); - LLFirstUse::addConfigVariable("FirstGoTo"); - LLFirstUse::addConfigVariable("FirstBuild"); +// LLFirstUse::addConfigVariable("FirstBalanceIncrease"); +// LLFirstUse::addConfigVariable("FirstBalanceDecrease"); +// LLFirstUse::addConfigVariable("FirstSit"); +// LLFirstUse::addConfigVariable("FirstMap"); +// LLFirstUse::addConfigVariable("FirstGoTo"); +// LLFirstUse::addConfigVariable("FirstBuild"); // LLFirstUse::addConfigVariable("FirstLeftClickNoHit"); - LLFirstUse::addConfigVariable("FirstTeleport"); - LLFirstUse::addConfigVariable("FirstOverrideKeys"); - LLFirstUse::addConfigVariable("FirstAttach"); - LLFirstUse::addConfigVariable("FirstAppearance"); - LLFirstUse::addConfigVariable("FirstInventory"); - LLFirstUse::addConfigVariable("FirstSandbox"); - LLFirstUse::addConfigVariable("FirstFlexible"); - LLFirstUse::addConfigVariable("FirstDebugMenus"); - LLFirstUse::addConfigVariable("FirstStreamingMedia"); - LLFirstUse::addConfigVariable("FirstSculptedPrim"); - LLFirstUse::addConfigVariable("FirstVoice"); - LLFirstUse::addConfigVariable("FirstMedia"); +// LLFirstUse::addConfigVariable("FirstTeleport"); +// LLFirstUse::addConfigVariable("FirstOverrideKeys"); +// LLFirstUse::addConfigVariable("FirstAttach"); +// LLFirstUse::addConfigVariable("FirstAppearance"); +// LLFirstUse::addConfigVariable("FirstInventory"); +// LLFirstUse::addConfigVariable("FirstSandbox"); +// LLFirstUse::addConfigVariable("FirstFlexible"); +// LLFirstUse::addConfigVariable("FirstDebugMenus"); +// LLFirstUse::addConfigVariable("FirstStreamingMedia"); +// LLFirstUse::addConfigVariable("FirstSculptedPrim"); +// LLFirstUse::addConfigVariable("FirstVoice"); +// LLFirstUse::addConfigVariable("FirstMedia"); // - read command line settings. LLControlGroupCLP clp; diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp index c3deb602ee..40c9bb6afa 100644 --- a/indra/newview/llavataractions.cpp +++ b/indra/newview/llavataractions.cpp @@ -172,24 +172,6 @@ void LLAvatarActions::offerTeleport(const std::vector<LLUUID>& ids) return; handle_lure(ids); - - // Record the offer. - for (std::vector<LLUUID>::const_iterator it = ids.begin(); it != ids.end(); it++) - { - LLUUID target_id = *it; - std::string target_name; - - gCacheName->getFullName(target_id, target_name); - - LLSD args; - args["TO_NAME"] = target_name; - - LLSD payload; - payload["from_id"] = target_id; - payload["SESSION_NAME"] = target_name; - payload["SUPPRESS_TOAST"] = true; - LLNotificationsUtil::add("TeleportOfferSent", args, payload); - } } // static diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp index 19e9e52ddf..6784e6693b 100644 --- a/indra/newview/llavatarlist.cpp +++ b/indra/newview/llavatarlist.cpp @@ -320,6 +320,11 @@ boost::signals2::connection LLAvatarList::setRefreshCompleteCallback(const commi return mRefreshCompleteSignal.connect(cb); } +boost::signals2::connection LLAvatarList::setItemDoubleClickCallback(const mouse_signal_t::slot_type& cb) +{ + return mItemDoubleClickSignal.connect(cb); +} + void LLAvatarList::addNewItem(const LLUUID& id, const std::string& name, BOOL is_online, EAddPosition pos) { LLAvatarListItem* item = new LLAvatarListItem(); @@ -333,6 +338,8 @@ void LLAvatarList::addNewItem(const LLUUID& id, const std::string& name, BOOL is item->setShowProfileBtn(mShowProfileBtn); item->showSpeakingIndicator(mShowSpeakingIndicator); + item->setDoubleClickCallback(boost::bind(&LLAvatarList::onItemDoucleClicked, this, _1, _2, _3, _4)); + addItem(item, id, pos); } @@ -400,6 +407,11 @@ void LLAvatarList::updateLastInteractionTimes() } } +void LLAvatarList::onItemDoucleClicked(LLUICtrl* ctrl, S32 x, S32 y, MASK mask) +{ + mItemDoubleClickSignal(ctrl, x, y, mask); +} + bool LLAvatarItemComparator::compare(const LLPanel* item1, const LLPanel* item2) const { const LLAvatarListItem* avatar_item1 = dynamic_cast<const LLAvatarListItem*>(item1); diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h index 0d2ce884ae..a58a562378 100644 --- a/indra/newview/llavatarlist.h +++ b/indra/newview/llavatarlist.h @@ -92,6 +92,8 @@ public: boost::signals2::connection setRefreshCompleteCallback(const commit_signal_t::slot_type& cb); + boost::signals2::connection setItemDoubleClickCallback(const mouse_signal_t::slot_type& cb); + protected: void refresh(); @@ -101,6 +103,7 @@ protected: std::vector<LLUUID>& vadded, std::vector<LLUUID>& vremoved); void updateLastInteractionTimes(); + void onItemDoucleClicked(LLUICtrl* ctrl, S32 x, S32 y, MASK mask); private: @@ -120,6 +123,7 @@ private: LLAvatarListItem::ContextMenu* mContextMenu; commit_signal_t mRefreshCompleteSignal; + mouse_signal_t mItemDoubleClickSignal; }; /** Abstract comparator for avatar items */ diff --git a/indra/newview/llavatarlistitem.cpp b/indra/newview/llavatarlistitem.cpp index 1043858373..66ab32f3e8 100644 --- a/indra/newview/llavatarlistitem.cpp +++ b/indra/newview/llavatarlistitem.cpp @@ -258,6 +258,21 @@ void LLAvatarListItem::onProfileBtnClick() LLAvatarActions::showProfile(mAvatarId); } +BOOL LLAvatarListItem::handleDoubleClick(S32 x, S32 y, MASK mask) +{ + if(mInfoBtn->getRect().pointInRect(x, y)) + { + onInfoBtnClick(); + return TRUE; + } + if(mProfileBtn->getRect().pointInRect(x, y)) + { + onProfileBtnClick(); + return TRUE; + } + return LLPanel::handleDoubleClick(x, y, mask); +} + void LLAvatarListItem::setValue( const LLSD& value ) { if (!value.isMap()) return;; diff --git a/indra/newview/llavatarlistitem.h b/indra/newview/llavatarlistitem.h index f76ffb391d..479a4833cb 100644 --- a/indra/newview/llavatarlistitem.h +++ b/indra/newview/llavatarlistitem.h @@ -103,6 +103,8 @@ public: void onInfoBtnClick(); void onProfileBtnClick(); + /*virtual*/ BOOL handleDoubleClick(S32 x, S32 y, MASK mask); + protected: /** * Contains indicator to show voice activity. diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp index c0efb85b51..6317a6a392 100644 --- a/indra/newview/llcallfloater.cpp +++ b/indra/newview/llcallfloater.cpp @@ -724,13 +724,28 @@ void LLCallFloater::removeVoiceRemoveTimer(const LLUUID& voice_speaker_id) bool LLCallFloater::validateSpeaker(const LLUUID& speaker_id) { - if (mVoiceType != VC_LOCAL_CHAT) - return true; + bool is_valid = true; + switch (mVoiceType) + { + case VC_LOCAL_CHAT: + { + // A nearby chat speaker is considered valid it it's known to LLVoiceClient (i.e. has enabled voice). + std::vector<LLUUID> speakers; + get_voice_participants_uuids(speakers); + is_valid = std::find(speakers.begin(), speakers.end(), speaker_id) != speakers.end(); + } + break; + case VC_GROUP_CHAT: + // if participant had left this call before do not allow add her again. See EXT-4216. + // but if she Join she will be added into the list from the LLCallFloater::onChange() + is_valid = STATE_LEFT != getState(speaker_id); + break; + default: + // do nothing. required for Linux build + break; + } - // A nearby chat speaker is considered valid it it's known to LLVoiceClient (i.e. has enabled voice). - std::vector<LLUUID> speakers; - get_voice_participants_uuids(speakers); - return std::find(speakers.begin(), speakers.end(), speaker_id) != speakers.end(); + return is_valid; } void LLCallFloater::connectToChannel(LLVoiceChannel* channel) diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index dc2e22f899..5cbe6f9670 100644 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -540,6 +540,11 @@ void LLIMChiclet::toggleSpeakerControl() void LLIMChiclet::setCounter(S32 counter) { + if (mCounterCtrl->getCounter() == counter) + { + return; + } + mCounterCtrl->setCounter(counter); setShowCounter(counter); setShowNewMessagesIcon(counter); diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp index 4103ccf175..fd6a92c47a 100644 --- a/indra/newview/llfavoritesbar.cpp +++ b/indra/newview/llfavoritesbar.cpp @@ -508,14 +508,14 @@ void LLFavoritesBarCtrl::handleExistingFavoriteDragAndDrop(S32 x, S32 y) if (dest) { - updateItemsOrder(mItems, mDragItemId, dest->getLandmarkId()); + LLInventoryModel::updateItemsOrder(mItems, mDragItemId, dest->getLandmarkId()); } else { mItems.push_back(gInventory.getItem(mDragItemId)); } - saveItemsOrder(mItems); + gInventory.saveItemsOrder(mItems); LLToggleableMenu* menu = (LLToggleableMenu*) mPopupMenuHandle.get(); @@ -1193,25 +1193,6 @@ BOOL LLFavoritesBarCtrl::needToSaveItemsOrder(const LLInventoryModel::item_array return result; } -void LLFavoritesBarCtrl::saveItemsOrder(LLInventoryModel::item_array_t& items) -{ - int sortField = 0; - - // current order is saved by setting incremental values (1, 2, 3, ...) for the sort field - for (LLInventoryModel::item_array_t::iterator i = items.begin(); i != items.end(); ++i) - { - LLViewerInventoryItem* item = *i; - - item->setSortField(++sortField); - item->setComplete(TRUE); - item->updateServer(FALSE); - - gInventory.updateItem(item); - } - - gInventory.notifyObservers(); -} - LLInventoryModel::item_array_t::iterator LLFavoritesBarCtrl::findItemByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id) { LLInventoryModel::item_array_t::iterator result = items.end(); @@ -1228,15 +1209,6 @@ LLInventoryModel::item_array_t::iterator LLFavoritesBarCtrl::findItemByUUID(LLIn return result; } -void LLFavoritesBarCtrl::updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& srcItemId, const LLUUID& destItemId) -{ - LLViewerInventoryItem* srcItem = gInventory.getItem(srcItemId); - LLViewerInventoryItem* destItem = gInventory.getItem(destItemId); - - items.erase(findItemByUUID(items, srcItem->getUUID())); - items.insert(findItemByUUID(items, destItem->getUUID()), srcItem); -} - void LLFavoritesBarCtrl::insertBeforeItem(LLInventoryModel::item_array_t& items, const LLUUID& beforeItemId, LLViewerInventoryItem* insertedItem) { LLViewerInventoryItem* beforeItem = gInventory.getItem(beforeItemId); diff --git a/indra/newview/llfavoritesbar.h b/indra/newview/llfavoritesbar.h index 9ac734baff..40dd551eef 100644 --- a/indra/newview/llfavoritesbar.h +++ b/indra/newview/llfavoritesbar.h @@ -126,16 +126,7 @@ private: // checks if the current order of the favorites items must be saved BOOL needToSaveItemsOrder(const LLInventoryModel::item_array_t& items); - // saves current order of the favorites items - void saveItemsOrder(LLInventoryModel::item_array_t& items); - - /* - * changes favorites items order by insertion of the item identified by srcItemId - * BEFORE the item identified by destItemId. both items must exist in items array. - */ - void updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& srcItemId, const LLUUID& destItemId); - - /* + /** * inserts an item identified by insertedItemId BEFORE an item identified by beforeItemId. * this function assumes that an item identified by insertedItemId doesn't exist in items array. */ diff --git a/indra/newview/llfirstuse.cpp b/indra/newview/llfirstuse.cpp index 7fd0e070be..b3fdf60b11 100644 --- a/indra/newview/llfirstuse.cpp +++ b/indra/newview/llfirstuse.cpp @@ -45,6 +45,7 @@ #include "llappviewer.h" #include "lltracker.h" +/* // static std::set<std::string> LLFirstUse::sConfigVariables; @@ -75,7 +76,8 @@ void LLFirstUse::resetFirstUse() gWarningSettings.setBOOL(*iter, TRUE); } } - +*/ +/* // Called whenever the viewer detects that your balance went up void LLFirstUse::useBalanceIncrease(S32 delta) @@ -145,6 +147,8 @@ void LLFirstUse::useBuild() LLNotificationsUtil::add("FirstBuild"); } } + + */ /* // static void LLFirstUse::useLeftClickNoHit() @@ -157,6 +161,7 @@ void LLFirstUse::useLeftClickNoHit() } } */ +/* // static void LLFirstUse::useTeleport() { @@ -171,7 +176,7 @@ void LLFirstUse::useTeleport() } } } - +*/ // static void LLFirstUse::useOverrideKeys() { @@ -187,7 +192,7 @@ void LLFirstUse::useOverrideKeys() } } } - +/* // static void LLFirstUse::useAttach() { @@ -216,6 +221,7 @@ void LLFirstUse::useInventory() } } +*/ // static void LLFirstUse::useSandbox() @@ -230,7 +236,7 @@ void LLFirstUse::useSandbox() LLNotificationsUtil::add("FirstSandbox", args); } } - +/* // static void LLFirstUse::useFlexible() { @@ -277,3 +283,4 @@ void LLFirstUse::useMedia() //LLNotificationsUtil::add("FirstMedia"); } } +*/ diff --git a/indra/newview/llfirstuse.h b/indra/newview/llfirstuse.h index 7b4f9f516f..3c7551f6cb 100644 --- a/indra/newview/llfirstuse.h +++ b/indra/newview/llfirstuse.h @@ -79,6 +79,7 @@ object or from inventory. class LLFirstUse { public: +/* // Add a config variable to be reset on resetFirstUse() static void addConfigVariable(const std::string& var); @@ -97,11 +98,16 @@ public: static void useBuild(); // static void useLeftClickNoHit(); static void useTeleport(); +*/ static void useOverrideKeys(); +/* static void useAttach(); static void useAppearance(); static void useInventory(); + */ static void useSandbox(); + +/* static void useFlexible(); static void useDebugMenus(); static void useSculptedPrim(); @@ -109,6 +115,7 @@ public: protected: static std::set<std::string> sConfigVariables; +*/ }; #endif diff --git a/indra/newview/llfloatergesture.cpp b/indra/newview/llfloatergesture.cpp index 6a9c602db2..de65c6f876 100644 --- a/indra/newview/llfloatergesture.cpp +++ b/indra/newview/llfloatergesture.cpp @@ -110,7 +110,7 @@ LLFloaterGesture::LLFloaterGesture(const LLSD& key) mCommitCallbackRegistrar.add("Gesture.Action.ToogleActiveState", boost::bind(&LLFloaterGesture::onActivateBtnClick, this)); mCommitCallbackRegistrar.add("Gesture.Action.ShowPreview", boost::bind(&LLFloaterGesture::onClickEdit, this)); - mCommitCallbackRegistrar.add("Gesture.Action.CopyPast", boost::bind(&LLFloaterGesture::onCopyPastAction, this, _2)); + mCommitCallbackRegistrar.add("Gesture.Action.CopyPaste", boost::bind(&LLFloaterGesture::onCopyPasteAction, this, _2)); mCommitCallbackRegistrar.add("Gesture.Action.SaveToCOF", boost::bind(&LLFloaterGesture::addToCurrentOutFit, this)); mEnableCallbackRegistrar.add("Gesture.EnableAction", boost::bind(&LLFloaterGesture::isActionEnabled, this, _2)); @@ -245,6 +245,7 @@ void LLFloaterGesture::refreshAll() void LLFloaterGesture::buildGestureList() { + S32 scroll_pos = mGestureList->getScrollPos(); std::vector<LLUUID> selected_items; getSelectedIds(selected_items); LL_DEBUGS("Gesture")<< "Rebuilding gesture list "<< LL_ENDL; @@ -274,13 +275,14 @@ void LLFloaterGesture::buildGestureList() } } } + // attempt to preserve scroll position through re-builds - // since we do re-build any time anything dirties + // since we do re-build whenever something gets dirty for(std::vector<LLUUID>::iterator it = selected_items.begin(); it != selected_items.end(); it++) { mGestureList->selectByID(*it); } - mGestureList->scrollToShowSelected(); + mGestureList->setScrollPos(scroll_pos); } void LLFloaterGesture::addGesture(const LLUUID& item_id , LLMultiGesture* gesture,LLCtrlListInterface * list ) @@ -475,7 +477,7 @@ void LLFloaterGesture::onActivateBtnClick() } } -void LLFloaterGesture::onCopyPastAction(const LLSD& command) +void LLFloaterGesture::onCopyPasteAction(const LLSD& command) { std::string command_name = command.asString(); // since we select this comman inventory item had already arrived . diff --git a/indra/newview/llfloatergesture.h b/indra/newview/llfloatergesture.h index 14e132900d..629d77b949 100644 --- a/indra/newview/llfloatergesture.h +++ b/indra/newview/llfloatergesture.h @@ -99,7 +99,7 @@ private: void onClickPlay(); void onClickNew(); void onCommitList(); - void onCopyPastAction(const LLSD& command); + void onCopyPasteAction(const LLSD& command); void onDeleteSelected(); LLUUID mSelectedID; diff --git a/indra/newview/llfloaterinventory.cpp b/indra/newview/llfloaterinventory.cpp index 76c0a7637c..e62e2c99a7 100644 --- a/indra/newview/llfloaterinventory.cpp +++ b/indra/newview/llfloaterinventory.cpp @@ -35,7 +35,7 @@ #include "llfloaterinventory.h" #include "llagent.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llfloaterreg.h" #include "llinventorymodel.h" #include "llpanelmaininventory.h" @@ -135,5 +135,5 @@ void LLFloaterInventory::cleanup() void LLFloaterInventory::onOpen(const LLSD& key) { - LLFirstUse::useInventory(); + //LLFirstUse::useInventory(); } diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 9af37e8174..87ee7b8498 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -51,7 +51,7 @@ #include "lldirpicker.h" #include "llfeaturemanager.h" #include "llfocusmgr.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llfloaterreg.h" #include "llfloaterabout.h" #include "llfloaterhardwaresettings.h" @@ -185,8 +185,8 @@ void handleNameTagOptionChanged(const LLSD& newvalue); viewer_media_t get_web_media(); bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response); -bool callback_skip_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater); -bool callback_reset_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater); +//bool callback_skip_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater); +//bool callback_reset_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater); void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator); @@ -236,7 +236,7 @@ void handleNameTagOptionChanged(const LLSD& newvalue) } } -bool callback_skip_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater) +/*bool callback_skip_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater) { S32 option = LLNotificationsUtil::getSelectedOption(notification, response); if (0 == option && floater ) @@ -244,7 +244,7 @@ bool callback_skip_dialogs(const LLSD& notification, const LLSD& response, LLFlo if ( floater ) { floater->setAllIgnored(); - LLFirstUse::disableFirstUse(); + // LLFirstUse::disableFirstUse(); floater->buildPopupLists(); } } @@ -259,13 +259,13 @@ bool callback_reset_dialogs(const LLSD& notification, const LLSD& response, LLFl if ( floater ) { floater->resetAllIgnored(); - LLFirstUse::resetFirstUse(); + //LLFirstUse::resetFirstUse(); floater->buildPopupLists(); } } return false; } - +*/ void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator) { @@ -313,8 +313,8 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key) mCommitCallbackRegistrar.add("Pref.SelectSkin", boost::bind(&LLFloaterPreference::onSelectSkin, this)); mCommitCallbackRegistrar.add("Pref.VoiceSetKey", boost::bind(&LLFloaterPreference::onClickSetKey, this)); mCommitCallbackRegistrar.add("Pref.VoiceSetMiddleMouse", boost::bind(&LLFloaterPreference::onClickSetMiddleMouse, this)); - mCommitCallbackRegistrar.add("Pref.ClickSkipDialogs", boost::bind(&LLFloaterPreference::onClickSkipDialogs, this)); - mCommitCallbackRegistrar.add("Pref.ClickResetDialogs", boost::bind(&LLFloaterPreference::onClickResetDialogs, this)); +// mCommitCallbackRegistrar.add("Pref.ClickSkipDialogs", boost::bind(&LLFloaterPreference::onClickSkipDialogs, this)); +// mCommitCallbackRegistrar.add("Pref.ClickResetDialogs", boost::bind(&LLFloaterPreference::onClickResetDialogs, this)); mCommitCallbackRegistrar.add("Pref.ClickEnablePopup", boost::bind(&LLFloaterPreference::onClickEnablePopup, this)); mCommitCallbackRegistrar.add("Pref.ClickDisablePopup", boost::bind(&LLFloaterPreference::onClickDisablePopup, this)); mCommitCallbackRegistrar.add("Pref.LogPath", boost::bind(&LLFloaterPreference::onClickLogPath, this)); @@ -1070,7 +1070,7 @@ void LLFloaterPreference::onClickSetMiddleMouse() // update the control right away since we no longer wait for apply getChild<LLUICtrl>("modifier_combo")->onCommit(); } - +/* void LLFloaterPreference::onClickSkipDialogs() { LLNotificationsUtil::add("SkipShowNextTimeDialogs", LLSD(), LLSD(), boost::bind(&callback_skip_dialogs, _1, _2, this)); @@ -1080,6 +1080,7 @@ void LLFloaterPreference::onClickResetDialogs() { LLNotificationsUtil::add("ResetShowNextTimeDialogs", LLSD(), LLSD(), boost::bind(&callback_reset_dialogs, _1, _2, this)); } + */ void LLFloaterPreference::onClickEnablePopup() { diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index b2bc34231d..b7ddc1fe64 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -110,8 +110,8 @@ public: void onClickSetKey(); void setKey(KEY key); void onClickSetMiddleMouse(); - void onClickSkipDialogs(); - void onClickResetDialogs(); +// void onClickSkipDialogs(); +// void onClickResetDialogs(); void onClickEnablePopup(); void onClickDisablePopup(); void resetAllIgnored(); diff --git a/indra/newview/llfloatersettingsdebug.cpp b/indra/newview/llfloatersettingsdebug.cpp index 8979575ef7..a6ffa5ec09 100644 --- a/indra/newview/llfloatersettingsdebug.cpp +++ b/indra/newview/llfloatersettingsdebug.cpp @@ -34,7 +34,7 @@ #include "llfloatersettingsdebug.h" #include "llfloater.h" #include "lluictrlfactory.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llcombobox.h" #include "llspinctrl.h" #include "llcolorswatch.h" diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp index 0781d8ed06..a00d7abd17 100644 --- a/indra/newview/llfloaterworldmap.cpp +++ b/indra/newview/llfloaterworldmap.cpp @@ -47,7 +47,7 @@ #include "llviewercontrol.h" #include "llcommandhandler.h" #include "lldraghandle.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llfloaterreg.h" // getTypedInstance() #include "llfocusmgr.h" #include "llinventorymodel.h" @@ -314,7 +314,7 @@ void LLFloaterWorldMap::onOpen(const LLSD& key) adjustZoomSliderBounds(); // Could be first show - LLFirstUse::useMap(); + //LLFirstUse::useMap(); // Start speculative download of landmarks const LLUUID landmark_folder_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_LANDMARK); diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index e9661003ea..f751fa2273 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -80,7 +80,7 @@ #include "llrecentpeople.h" #include "llsyswellwindow.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llagentui.h" #include "lltextutil.h" diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 6e72a7a4f7..e9176da715 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -2931,50 +2931,6 @@ bool move_task_inventory_callback(const LLSD& notification, const LLSD& response return false; } -/* -Next functions intended to reorder items in the inventory folder and save order on server -Is now used for Favorites folder. - -*TODO: refactoring is needed with Favorites Bar functionality. Probably should be moved in LLInventoryModel -*/ -void saveItemsOrder(LLInventoryModel::item_array_t& items) -{ - int sortField = 0; - - // current order is saved by setting incremental values (1, 2, 3, ...) for the sort field - for (LLInventoryModel::item_array_t::iterator i = items.begin(); i != items.end(); ++i) - { - LLViewerInventoryItem* item = *i; - - item->setSortField(++sortField); - item->setComplete(TRUE); - item->updateServer(FALSE); - - gInventory.updateItem(item); - - // Tell the parent folder to refresh its sort order. - gInventory.addChangedMask(LLInventoryObserver::SORT, item->getParentUUID()); - } - - gInventory.notifyObservers(); -} - -LLInventoryModel::item_array_t::iterator findItemByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id) -{ - LLInventoryModel::item_array_t::iterator result = items.end(); - - for (LLInventoryModel::item_array_t::iterator i = items.begin(); i != items.end(); ++i) - { - if ((*i)->getUUID() == id) - { - result = i; - break; - } - } - - return result; -} - // See also LLInventorySort where landmarks in the Favorites folder are sorted. class LLViewerInventoryItemSort { @@ -2996,15 +2952,6 @@ void rearrange_item_order_by_sort_field(LLInventoryModel::item_array_t& items) std::sort(items.begin(), items.end(), sort_functor); } -void updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& srcItemId, const LLUUID& destItemId) -{ - LLViewerInventoryItem* srcItem = gInventory.getItem(srcItemId); - LLViewerInventoryItem* destItem = gInventory.getItem(destItemId); - - items.erase(findItemByUUID(items, srcItem->getUUID())); - items.insert(findItemByUUID(items, destItem->getUUID()), srcItem); -} - BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, BOOL drop) { @@ -3103,9 +3050,9 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, rearrange_item_order_by_sort_field(items); // update order - updateItemsOrder(items, srcItemId, destItemId); + LLInventoryModel::updateItemsOrder(items, srcItemId, destItemId); - saveItemsOrder(items); + gInventory.saveItemsOrder(items); } } else if (favorites_id == mUUID) // if target is the favorites folder we use copy diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp index 8f4136c01f..e3caabf08f 100644 --- a/indra/newview/llinventoryfunctions.cpp +++ b/indra/newview/llinventoryfunctions.cpp @@ -50,7 +50,7 @@ // newview includes #include "llappearancemgr.h" #include "llappviewer.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llfloaterchat.h" #include "llfloatercustomize.h" #include "llfocusmgr.h" diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index c603af9166..ef18386e57 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -3622,6 +3622,57 @@ BOOL LLInventoryModel::getIsFirstTimeInViewer2() return sFirstTimeInViewer2; } +static LLInventoryModel::item_array_t::iterator find_item_iter_by_uuid(LLInventoryModel::item_array_t& items, const LLUUID& id) +{ + LLInventoryModel::item_array_t::iterator result = items.end(); + + for (LLInventoryModel::item_array_t::iterator i = items.begin(); i != items.end(); ++i) + { + if ((*i)->getUUID() == id) + { + result = i; + break; + } + } + + return result; +} + +// static +void LLInventoryModel::updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& src_item_id, const LLUUID& dest_item_id) +{ + LLInventoryModel::item_array_t::iterator it_src = find_item_iter_by_uuid(items, src_item_id); + LLInventoryModel::item_array_t::iterator it_dest = find_item_iter_by_uuid(items, dest_item_id); + + if (it_src == items.end() || it_dest == items.end()) return; + + LLViewerInventoryItem* src_item = *it_src; + items.erase(it_src); + items.insert(it_dest, src_item); +} + +void LLInventoryModel::saveItemsOrder(const LLInventoryModel::item_array_t& items) +{ + int sortField = 0; + + // current order is saved by setting incremental values (1, 2, 3, ...) for the sort field + for (item_array_t::const_iterator i = items.begin(); i != items.end(); ++i) + { + LLViewerInventoryItem* item = *i; + + item->setSortField(++sortField); + item->setComplete(TRUE); + item->updateServer(FALSE); + + updateItem(item); + + // Tell the parent folder to refresh its sort order. + addChangedMask(LLInventoryObserver::SORT, item->getParentUUID()); + } + + notifyObservers(); +} + //---------------------------------------------------------------------------- // *NOTE: DEBUG functionality diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h index 39377b4ae2..e8698c0759 100644 --- a/indra/newview/llinventorymodel.h +++ b/indra/newview/llinventorymodel.h @@ -384,6 +384,30 @@ public: void setLibraryOwnerID(const LLUUID& id); void setLibraryRootFolderID(const LLUUID& id); + + /** + * Changes items order by insertion of the item identified by src_item_id + * BEFORE the item identified by dest_item_id. Both items must exist in items array. + * + * Sorting is stored after method is finished. Only src_item_id is moved before dest_item_id. + * + * @param[in, out] items - vector with items to be updated. It should be sorted in a right way + * before calling this method. + * @param src_item_id - LLUUID of inventory item to be moved in new position + * @param dest_item_id - LLUUID of inventory item before which source item should be placed. + */ + static void updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& src_item_id, const LLUUID& dest_item_id); + + /** + * Saves current order of the passed items using inventory item sort field. + * + * It reset items' sort fields and saves them on server. + * Is used to save order for Favorites folder. + * + * @param[in] items vector of items in order to be saved. + */ + void saveItemsOrder(const LLInventoryModel::item_array_t& items); + protected: // Internal methods which add inventory and make sure that all of diff --git a/indra/newview/llmenucommands.cpp b/indra/newview/llmenucommands.cpp index a2aef9ba63..757eb3c9bc 100644 --- a/indra/newview/llmenucommands.cpp +++ b/indra/newview/llmenucommands.cpp @@ -45,7 +45,7 @@ #include "llagent.h" #include "llcallingcard.h" #include "llviewercontrol.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llfloaterchat.h" #include "llfloaterworldmap.h" #include "lllineeditor.h" diff --git a/indra/newview/llmorphview.cpp b/indra/newview/llmorphview.cpp index f562e45770..b95e8bd3a2 100644 --- a/indra/newview/llmorphview.cpp +++ b/indra/newview/llmorphview.cpp @@ -40,7 +40,7 @@ #include "lldrawable.h" #include "lldrawpoolavatar.h" #include "llface.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llfloatercustomize.h" #include "llfloatertools.h" #include "llresmgr.h" @@ -143,7 +143,7 @@ void LLMorphView::setVisible(BOOL visible) initialize(); // First run dialog - LLFirstUse::useAppearance(); + //LLFirstUse::useAppearance(); } else { diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp index 6a61e0f02f..d17c287cc7 100644 --- a/indra/newview/llpanelobject.cpp +++ b/indra/newview/llpanelobject.cpp @@ -73,7 +73,7 @@ #include "pipeline.h" #include "llviewercontrol.h" #include "lluictrlfactory.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "lldrawpool.h" @@ -682,7 +682,7 @@ void LLPanelObject::getState( ) if (objectp->getParameterEntryInUse(LLNetworkData::PARAMS_SCULPT)) { selected_item = MI_SCULPT; - LLFirstUse::useSculptedPrim(); + //LLFirstUse::useSculptedPrim(); } diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp index e058b3b326..df73c27f54 100644 --- a/indra/newview/llpaneloutfitsinventory.cpp +++ b/indra/newview/llpaneloutfitsinventory.cpp @@ -35,6 +35,7 @@ #include "llagent.h" #include "llagentwearables.h" +#include "llappearancemgr.h" #include "llbutton.h" #include "llfloaterreg.h" @@ -44,6 +45,8 @@ #include "llinventoryfunctions.h" #include "llinventorypanel.h" #include "lllandmark.h" +#include "lllineeditor.h" +#include "llmodaldialog.h" #include "llsidepanelappearance.h" #include "llsidetray.h" #include "lltabcontainer.h" @@ -61,12 +64,75 @@ static LLRegisterPanelClassWrapper<LLPanelOutfitsInventory> t_inventory("panel_outfits_inventory"); bool LLPanelOutfitsInventory::sShowDebugEditor = false; +class LLOutfitSaveAsDialog : public LLModalDialog +{ +private: + std::string mItemName; + std::string mTempItemName; + + boost::signals2::signal<void (const std::string&)> mSaveAsSignal; + +public: + LLOutfitSaveAsDialog( const LLSD& key ) + : LLModalDialog( key ), + mTempItemName(key.asString()) + { + } + + BOOL postBuild() + { + getChild<LLUICtrl>("Save")->setCommitCallback(boost::bind(&LLOutfitSaveAsDialog::onSave, this )); + getChild<LLUICtrl>("Cancel")->setCommitCallback(boost::bind(&LLOutfitSaveAsDialog::onCancel, this )); + + childSetTextArg("name ed", "[DESC]", mTempItemName); + return TRUE; + } + + void setSaveAsCommit( const boost::signals2::signal<void (const std::string&)>::slot_type& cb ) + { + mSaveAsSignal.connect(cb); + } + + virtual void onOpen(const LLSD& key) + { + LLLineEditor* edit = getChild<LLLineEditor>("name ed"); + if (edit) + { + edit->setFocus(TRUE); + edit->selectAll(); + } + } + + void onSave() + { + mItemName = childGetValue("name ed").asString(); + LLStringUtil::trim(mItemName); + if( !mItemName.empty() ) + { + mSaveAsSignal(mItemName); + closeFloater(); // destroys this object + } + } + + void onCancel() + { + closeFloater(); // destroys this object + } +}; + LLPanelOutfitsInventory::LLPanelOutfitsInventory() : mActivePanel(NULL), mParent(NULL) { mSavedFolderState = new LLSaveFolderState(); mSavedFolderState->setApply(FALSE); + + static bool registered_dialog = false; + if (!registered_dialog) + { + LLFloaterReg::add("outfit_save_as", "floater_outfit_save_as.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLOutfitSaveAsDialog>); + registered_dialog = true; + } } LLPanelOutfitsInventory::~LLPanelOutfitsInventory() @@ -177,10 +243,28 @@ void LLPanelOutfitsInventory::onEdit() { } -void LLPanelOutfitsInventory::onNew() +void LLPanelOutfitsInventory::onSave() +{ + std::string outfit_name; + + if (!LLAppearanceManager::getInstance()->getBaseOutfitName(outfit_name)) + { + outfit_name = LLViewerFolderType::lookupNewCategoryName(LLFolderType::FT_OUTFIT); + } + + LLOutfitSaveAsDialog* save_as_dialog = LLFloaterReg::showTypedInstance<LLOutfitSaveAsDialog>("outfit_save_as", LLSD(outfit_name), TRUE); + if (save_as_dialog) + { + save_as_dialog->setSaveAsCommit(boost::bind(&LLPanelOutfitsInventory::onSaveCommit, this, _1 )); + } +} + +void LLPanelOutfitsInventory::onSaveCommit(const std::string& outfit_name) { - const std::string& outfit_name = LLViewerFolderType::lookupNewCategoryName(LLFolderType::FT_OUTFIT); LLUUID outfit_folder = gAgentWearables.makeNewOutfitLinks(outfit_name); + LLSD key; + LLSideTray::getInstance()->showPanel("panel_outfits_inventory", key); + if (mAppearanceTabs) { mAppearanceTabs->selectTabByName("outfitslist_tab"); @@ -291,7 +375,7 @@ void LLPanelOutfitsInventory::onGearButtonClick() void LLPanelOutfitsInventory::onAddButtonClick() { - onNew(); + onSave(); } void LLPanelOutfitsInventory::showActionMenu(LLMenuGL* menu, std::string spawning_view_name) @@ -330,7 +414,7 @@ void LLPanelOutfitsInventory::onCustomAction(const LLSD& userdata) const std::string command_name = userdata.asString(); if (command_name == "new") { - onNew(); + onSave(); } if (command_name == "edit") { diff --git a/indra/newview/llpaneloutfitsinventory.h b/indra/newview/llpaneloutfitsinventory.h index b117311775..76110e2a3f 100644 --- a/indra/newview/llpaneloutfitsinventory.h +++ b/indra/newview/llpaneloutfitsinventory.h @@ -59,7 +59,9 @@ public: void onAdd(); void onRemove(); void onEdit(); - void onNew(); + void onSave(); + + void onSaveCommit(const std::string& item_name); void onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action); void onSelectorButtonClicked(); diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp index 03cc870a59..c14b282488 100644 --- a/indra/newview/llpanelpeople.cpp +++ b/indra/newview/llpanelpeople.cpp @@ -532,10 +532,10 @@ BOOL LLPanelPeople::postBuild() friends_panel->childSetAction("add_btn", boost::bind(&LLPanelPeople::onAddFriendWizButtonClicked, this)); friends_panel->childSetAction("del_btn", boost::bind(&LLPanelPeople::onDeleteFriendButtonClicked, this)); - mOnlineFriendList->setDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, mOnlineFriendList)); - mAllFriendList->setDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, mAllFriendList)); - mNearbyList->setDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, mNearbyList)); - mRecentList->setDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, mRecentList)); + mOnlineFriendList->setItemDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, _1)); + mAllFriendList->setItemDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, _1)); + mNearbyList->setItemDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, _1)); + mRecentList->setItemDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, _1)); mOnlineFriendList->setCommitCallback(boost::bind(&LLPanelPeople::onAvatarListCommitted, this, mOnlineFriendList)); mAllFriendList->setCommitCallback(boost::bind(&LLPanelPeople::onAvatarListCommitted, this, mAllFriendList)); @@ -1005,12 +1005,15 @@ void LLPanelPeople::onTabSelected(const LLSD& param) mFilterEditor->setLabel(getString("people_filter_label")); } -void LLPanelPeople::onAvatarListDoubleClicked(LLAvatarList* list) +void LLPanelPeople::onAvatarListDoubleClicked(LLUICtrl* ctrl) { - LLUUID clicked_id = list->getSelectedUUID(); - - if (clicked_id.isNull()) + LLAvatarListItem* item = dynamic_cast<LLAvatarListItem*>(ctrl); + if(!item) + { return; + } + + LLUUID clicked_id = item->getAvatarId(); #if 0 // SJB: Useful for testing, but not currently functional or to spec LLAvatarActions::showProfile(clicked_id); diff --git a/indra/newview/llpanelpeople.h b/indra/newview/llpanelpeople.h index da2c0e368c..7580fdbeef 100644 --- a/indra/newview/llpanelpeople.h +++ b/indra/newview/llpanelpeople.h @@ -109,7 +109,7 @@ private: void onNearbyViewSortButtonClicked(); void onFriendsViewSortButtonClicked(); void onGroupsViewSortButtonClicked(); - void onAvatarListDoubleClicked(LLAvatarList* list); + void onAvatarListDoubleClicked(LLUICtrl* ctrl); void onAvatarListCommitted(LLAvatarList* list); void onGroupPlusButtonClicked(); void onGroupMinusButtonClicked(); diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp index 0a2217fc51..571745ee02 100644 --- a/indra/newview/llpanelteleporthistory.cpp +++ b/indra/newview/llpanelteleporthistory.cpp @@ -723,7 +723,10 @@ void LLTeleportHistoryPanel::onTeleportHistoryChange(S32 removed_index) if (-1 == removed_index) showTeleportHistory(); // recreate all items else + { replaceItem(removed_index); // replace removed item by most recent + updateVerbs(); + } } void LLTeleportHistoryPanel::replaceItem(S32 removed_index) diff --git a/indra/newview/llpanelvolume.cpp b/indra/newview/llpanelvolume.cpp index 5a70842a73..fbe68b4d92 100644 --- a/indra/newview/llpanelvolume.cpp +++ b/indra/newview/llpanelvolume.cpp @@ -54,7 +54,7 @@ #include "llcolorswatch.h" #include "lltexturectrl.h" #include "llcombobox.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llfocusmgr.h" #include "llmanipscale.h" #include "llpreviewscript.h" @@ -470,7 +470,7 @@ void LLPanelVolume::sendIsFlexible() if (is_flexible) { - LLFirstUse::useFlexible(); + //LLFirstUse::useFlexible(); if (objectp->getClickAction() == CLICK_ACTION_SIT) { diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp index b6f78d08f1..0a180512ce 100644 --- a/indra/newview/llparticipantlist.cpp +++ b/indra/newview/llparticipantlist.cpp @@ -70,7 +70,7 @@ LLParticipantList::LLParticipantList(LLSpeakerMgr* data_source, LLAvatarList* av mSpeakerMgr->addListener(mSpeakerModeratorListener, "update_moderator"); mAvatarList->setNoItemsCommentText(LLTrans::getString("LoadingData")); - mAvatarListDoubleClickConnection = mAvatarList->setDoubleClickCallback(boost::bind(&LLParticipantList::onAvatarListDoubleClicked, this, mAvatarList)); + mAvatarListDoubleClickConnection = mAvatarList->setItemDoubleClickCallback(boost::bind(&LLParticipantList::onAvatarListDoubleClicked, this, _1)); mAvatarListRefreshConnection = mAvatarList->setRefreshCompleteCallback(boost::bind(&LLParticipantList::onAvatarListRefreshed, this, _1, _2)); // Set onAvatarListDoubleClicked as default on_return action. mAvatarListReturnConnection = mAvatarList->setReturnCallback(boost::bind(&LLParticipantList::onAvatarListDoubleClicked, this, mAvatarList)); @@ -132,10 +132,15 @@ void LLParticipantList::setSpeakingIndicatorsVisible(BOOL visible) mAvatarList->setSpeakingIndicatorsVisible(visible); }; -void LLParticipantList::onAvatarListDoubleClicked(LLAvatarList* list) +void LLParticipantList::onAvatarListDoubleClicked(LLUICtrl* ctrl) { - // NOTE(EM): Should we check if there is multiple selection and start conference if it is so? - LLUUID clicked_id = list->getSelectedUUID(); + LLAvatarListItem* item = dynamic_cast<LLAvatarListItem*>(ctrl); + if(!item) + { + return; + } + + LLUUID clicked_id = item->getAvatarId(); if (clicked_id.isNull() || clicked_id == gAgent.getID()) return; diff --git a/indra/newview/llparticipantlist.h b/indra/newview/llparticipantlist.h index 70badbc40d..e1b1b5af00 100644 --- a/indra/newview/llparticipantlist.h +++ b/indra/newview/llparticipantlist.h @@ -232,7 +232,7 @@ class LLParticipantList }; private: - void onAvatarListDoubleClicked(LLAvatarList* list); + void onAvatarListDoubleClicked(LLUICtrl* ctrl); void onAvatarListRefreshed(LLUICtrl* ctrl, const LLSD& param); /** diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index 77a370cc3f..43215f86bd 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -87,7 +87,7 @@ void LLWatchForOutfitRenameObserver::changed(U32 mask) mPanel->refreshCurrentOutfitName(); } } - + LLSidepanelAppearance::LLSidepanelAppearance() : LLPanel(), mFilterSubString(LLStringUtil::null), @@ -255,7 +255,7 @@ void LLSidepanelAppearance::onNewOutfitButtonClicked() { if (!mLookInfo->getVisible()) { - mPanelOutfitsInventory->onNew(); + mPanelOutfitsInventory->onSave(); } } @@ -321,15 +321,11 @@ void LLSidepanelAppearance::refreshCurrentOutfitName(const std::string& name) mOutfitDirtyTag->setVisible(LLAppearanceManager::getInstance()->isOutfitDirty()); if (name == "") { - const LLViewerInventoryItem *outfit_link = LLAppearanceManager::getInstance()->getBaseOutfitLink(); - if (outfit_link) + std::string outfit_name; + if (LLAppearanceManager::getInstance()->getBaseOutfitName(outfit_name)) { - const LLViewerInventoryCategory *cat = outfit_link->getLinkedCategory(); - if (cat && cat->getPreferredType() == LLFolderType::FT_OUTFIT) - { - mCurrentLookName->setText(cat->getName()); + mCurrentLookName->setText(outfit_name); return; - } } mCurrentLookName->setText(getString("No Outfit")); mOpenOutfitBtn->setEnabled(FALSE); diff --git a/indra/newview/llsidepanelappearance.h b/indra/newview/llsidepanelappearance.h index 9524b0ece9..aa2e67fd16 100644 --- a/indra/newview/llsidepanelappearance.h +++ b/indra/newview/llsidepanelappearance.h @@ -61,6 +61,7 @@ public: void fetchInventory(); void inventoryFetched(); void updateVerbs(); + void onNewOutfitButtonClicked(); private: void onFilterEdit(const std::string& search_string); @@ -68,7 +69,6 @@ private: void onOpenOutfitButtonClicked(); void onEditAppearanceButtonClicked(); void onEditButtonClicked(); - void onNewOutfitButtonClicked(); void onBackButtonClicked(); void onEditWearBackClicked(); void toggleLookInfoPanel(BOOL visible); diff --git a/indra/newview/llspeakingindicatormanager.cpp b/indra/newview/llspeakingindicatormanager.cpp index 42db6bf9c3..b450d38b5a 100644 --- a/indra/newview/llspeakingindicatormanager.cpp +++ b/indra/newview/llspeakingindicatormanager.cpp @@ -229,10 +229,6 @@ void SpeakingIndicatorManager::switchSpeakerIndicators(const speaker_ids_t& spea mSwitchedIndicatorsOn.insert(*it_uuid); } } - else - { - LL_WARNS("SpeakingIndicator") << "indicator was not found among registered: " << *it_uuid << LL_ENDL; - } } } diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 99fa271b78..fbc98b7691 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -100,7 +100,7 @@ #include "lleventnotifier.h" #include "llface.h" #include "llfeaturemanager.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llfloaterchat.h" #include "llfloaterhud.h" #include "llfloaterland.h" diff --git a/indra/newview/lltoolbar.cpp b/indra/newview/lltoolbar.cpp index bf6d715c31..224c5b64bc 100644 --- a/indra/newview/lltoolbar.cpp +++ b/indra/newview/lltoolbar.cpp @@ -60,7 +60,7 @@ #include "lltoolmgr.h" #include "llui.h" #include "llviewermenu.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llpanelblockedlist.h" #include "llscrolllistctrl.h" #include "llscrolllistitem.h" diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index aa35f22930..4420b046d8 100644 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -41,7 +41,7 @@ #include "llagentwearables.h" #include "llappearancemgr.h" #include "lldictionary.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llfloaterreg.h" #include "llfloatertools.h" #include "llgesturemgr.h" @@ -1199,11 +1199,11 @@ void LLToolDragAndDrop::dropObject(LLViewerObject* raycast_target, locateInventory(item, cat); if(!item || !item->isComplete()) return; - if (regionp - && (regionp->getRegionFlags() & REGION_FLAGS_SANDBOX)) - { - LLFirstUse::useSandbox(); - } + //if (regionp + // && (regionp->getRegionFlags() & REGION_FLAGS_SANDBOX)) + //{ + // LLFirstUse::useSandbox(); + //} // check if it cannot be copied, and mark as remove if it is - // this will remove the object from inventory after rez. Only // bother with this check if we would not normally remove from diff --git a/indra/newview/lltoolmgr.cpp b/indra/newview/lltoolmgr.cpp index 26b3bdb82e..fd12163fd3 100644 --- a/indra/newview/lltoolmgr.cpp +++ b/indra/newview/lltoolmgr.cpp @@ -38,7 +38,7 @@ #include "llmenugl.h" #include "llfloaterreg.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" // tools and manipulators #include "lltool.h" #include "llmanipscale.h" @@ -301,7 +301,7 @@ void LLToolMgr::toggleBuildMode() getCurrentToolset()->selectTool( LLToolCompCreate::getInstance() ); // Could be first use - LLFirstUse::useBuild(); + //LLFirstUse::useBuild(); gAgent.resetView(false); diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index 412878eef5..da7e8cd767 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -41,7 +41,7 @@ #include "llagent.h" #include "llviewercontrol.h" #include "llfocusmgr.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llfloaterland.h" #include "llfloaterreg.h" #include "llfloaterscriptdebug.h" diff --git a/indra/newview/lltoolplacer.cpp b/indra/newview/lltoolplacer.cpp index a7f4cb558e..612bcc03bd 100644 --- a/indra/newview/lltoolplacer.cpp +++ b/indra/newview/lltoolplacer.cpp @@ -38,7 +38,7 @@ // viewer headers #include "llbutton.h" #include "llviewercontrol.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llfloatertools.h" #include "llselectmgr.h" #include "llstatusbar.h" @@ -188,7 +188,7 @@ BOOL LLToolPlacer::addObject( LLPCode pcode, S32 x, S32 y, U8 use_physics ) if (regionp->getRegionFlags() & REGION_FLAGS_SANDBOX) { - LLFirstUse::useSandbox(); + //LLFirstUse::useSandbox(); } // Set params for new object based on its PCode. @@ -491,7 +491,7 @@ BOOL LLToolPlacer::addDuplicate(S32 x, S32 y) if (regionp && (regionp->getRegionFlags() & REGION_FLAGS_SANDBOX)) { - LLFirstUse::useSandbox(); + //LLFirstUse::useSandbox(); } return TRUE; diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index 4d559e2ca7..7b9b12108d 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -45,7 +45,7 @@ #include "lldynamictexture.h" #include "lldrawpoolalpha.h" #include "llfeaturemanager.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llhudmanager.h" #include "llimagebmp.h" #include "llmemory.h" @@ -404,7 +404,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) if( arrival_fraction > 1.f ) { arrival_fraction = 1.f; - LLFirstUse::useTeleport(); + //LLFirstUse::useTeleport(); gAgent.setTeleportState( LLAgent::TELEPORT_NONE ); } gViewerWindow->setProgressCancelButtonVisible(FALSE, LLTrans::getString("Cancel")); diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 1d07b5d489..ef596f9297 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -56,7 +56,7 @@ #include "lluuid.h" #include "llkeyboard.h" #include "llmutelist.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include <boost/bind.hpp> // for SkinFolder listener #include <boost/signals2.hpp> diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 1bff04352c..d2ba898cf0 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -48,7 +48,7 @@ #include "llconsole.h" #include "lldebugview.h" #include "llfilepicker.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llfloaterbuy.h" #include "llfloaterbuycontents.h" #include "llfloaterbuycurrency.h" @@ -2491,7 +2491,7 @@ class LLObjectBuild : public view_listener_t LLToolMgr::getInstance()->getCurrentToolset()->selectTool( LLToolCompCreate::getInstance() ); // Could be first use - LLFirstUse::useBuild(); + //LLFirstUse::useBuild(); return true; } }; @@ -2536,7 +2536,7 @@ void handle_object_edit() LLViewerJoystick::getInstance()->setNeedsReset(true); // Could be first use - LLFirstUse::useBuild(); + //LLFirstUse::useBuild(); return; } @@ -2587,7 +2587,7 @@ class LLLandBuild : public view_listener_t LLToolMgr::getInstance()->getCurrentToolset()->selectTool( LLToolCompCreate::getInstance() ); // Could be first use - LLFirstUse::useBuild(); + //LLFirstUse::useBuild(); return true; } }; @@ -2824,7 +2824,7 @@ bool handle_go_to() } // Could be first use - LLFirstUse::useGoTo(); + //LLFirstUse::useGoTo(); return true; } @@ -3626,7 +3626,7 @@ void near_sit_down_point(BOOL success, void *) gAgent.setControlFlags(AGENT_CONTROL_SIT_ON_GROUND); // Might be first sit - LLFirstUse::useSit(); + //LLFirstUse::useSit(); } } @@ -5144,7 +5144,7 @@ void toggle_debug_menus(void*) gSavedSettings.setBOOL("UseDebugMenus", visible); if(visible) { - LLFirstUse::useDebugMenus(); + //LLFirstUse::useDebugMenus(); } show_debug_menus(); } diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 4e5655274d..7f43213c5d 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -51,7 +51,7 @@ #include "llagent.h" #include "llcallingcard.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llfloaterbuycurrency.h" #include "llfloaterbuyland.h" #include "llfloaterchat.h" @@ -711,6 +711,18 @@ protected: } }; +class LLOpenTaskGroupOffer : public LLInventoryAddedObserver +{ +protected: + /*virtual*/ void done() + { + open_inventory_offer(mAdded, "group_offer"); + mAdded.clear(); + gInventory.removeObserver(this); + delete this; + } +}; + //one global instance to bind them LLOpenTaskOffer* gNewInventoryObserver=NULL; @@ -929,9 +941,6 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f case LLAssetType::AT_ANIMATION: LLFloaterReg::showInstance("preview_anim", LLSD(item_id), take_focus); break; - case LLAssetType::AT_GESTURE: - LLFloaterReg::showInstance("preview_gesture", LLSD(item_id), take_focus); - break; case LLAssetType::AT_SCRIPT: LLFloaterReg::showInstance("preview_script", LLSD(item_id), take_focus); break; @@ -1146,6 +1155,7 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD& } break; case IM_GROUP_NOTICE: + opener = new LLOpenTaskGroupOffer; send_auto_receive_response(); break; case IM_TASK_INVENTORY_OFFERED: @@ -4335,10 +4345,10 @@ void process_money_balance_reply( LLMessageSystem* msg, void** ) if (gStatusBar) { - S32 old_balance = gStatusBar->getBalance(); + // S32 old_balance = gStatusBar->getBalance(); // This is an update, not the first transmission of balance - if (old_balance != 0) + /* if (old_balance != 0) { // this is actually an update if (balance > old_balance) @@ -4350,7 +4360,7 @@ void process_money_balance_reply( LLMessageSystem* msg, void** ) LLFirstUse::useBalanceDecrease(balance - old_balance); } } - + */ gStatusBar->setBalance(balance); gStatusBar->setLandCredit(credit); gStatusBar->setLandCommitted(committed); @@ -5360,8 +5370,24 @@ bool handle_lure_callback(const LLSD& notification, const LLSD& response) it != notification["payload"]["ids"].endArray(); ++it) { + LLUUID target_id = it->asUUID(); + msg->nextBlockFast(_PREHASH_TargetData); - msg->addUUIDFast(_PREHASH_TargetID, it->asUUID()); + msg->addUUIDFast(_PREHASH_TargetID, target_id); + + // Record the offer. + { + std::string target_name; + gCacheName->getFullName(target_id, target_name); + LLSD args; + args["TO_NAME"] = target_name; + + LLSD payload; + payload["from_id"] = target_id; + payload["SESSION_NAME"] = target_name; + payload["SUPPRESS_TOAST"] = true; + LLNotificationsUtil::add("TeleportOfferSent", args, payload); + } } gAgent.sendReliableMessage(); } diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp index 56dee6b34c..e8b435fc8f 100644 --- a/indra/newview/llviewerparcelmedia.cpp +++ b/indra/newview/llviewerparcelmedia.cpp @@ -45,7 +45,7 @@ #include "llviewermediafocus.h" #include "llviewerparcelmediaautoplay.h" #include "llnotificationsutil.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llpluginclassmedia.h" #include "llviewertexture.h" @@ -242,7 +242,7 @@ void LLViewerParcelMedia::play(LLParcel* parcel) sMediaImpl->navigateTo(media_url, mime_type, true); } - LLFirstUse::useMedia(); + //LLFirstUse::useMedia(); LLViewerParcelMediaAutoPlay::playStarted(); } @@ -281,7 +281,7 @@ void LLViewerParcelMedia::start() } sMediaImpl->start(); - LLFirstUse::useMedia(); + //LLFirstUse::useMedia(); LLViewerParcelMediaAutoPlay::playStarted(); } diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp index 5a5c4e7480..4b2707e6d7 100644 --- a/indra/newview/llviewerparcelmgr.cpp +++ b/indra/newview/llviewerparcelmgr.cpp @@ -50,7 +50,7 @@ #include "llagent.h" #include "llviewerwindow.h" #include "llviewercontrol.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llfloaterbuyland.h" #include "llfloatergroups.h" #include "llfloaternearbymedia.h" diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 5958742db2..4235f97eab 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -56,7 +56,7 @@ #include "lldriverparam.h" #include "lleditingmotion.h" #include "llemote.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "llheadrotmotion.h" #include "llhudeffecttrail.h" #include "llhudmanager.h" @@ -5604,7 +5604,7 @@ void LLVOAvatar::sitOnObject(LLViewerObject *sit_object) if (isSelf()) { // Might be first sit - LLFirstUse::useSit(); + //LLFirstUse::useSit(); gAgent.setFlying(FALSE); gAgent.setThirdPersonHeadOffset(LLVector3::zero); diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp index 42b8a1c2b6..30f00f04af 100644 --- a/indra/newview/llvoiceclient.cpp +++ b/indra/newview/llvoiceclient.cpp @@ -62,7 +62,7 @@ #include "llimview.h" // for LLIMMgr #include "llparcel.h" #include "llviewerparcelmgr.h" -#include "llfirstuse.h" +//#include "llfirstuse.h" #include "lltrans.h" #include "llviewerwindow.h" #include "llviewercamera.h" diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index 6da38fa0d4..e248047930 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -57,8 +57,11 @@ name="Black_50" value="0 0 0 0.5" /> <color + name="FrogGreen" + value="0.26 0.345 0.263 1" /> + <color name="Red" - value="1 0 0 1" /> + value="0.729 0 0.121 1" /> <color name="Blue" value="0 0 1 1" /> @@ -71,16 +74,19 @@ <color name="Transparent" value="0 0 0 0" /> + <color + name="Purple" + value="1 0 1 1" /> <!-- This color name makes potentially unused colors show up bright purple. Leave this here until all Unused? are removed below, otherwise the viewer generates many warnings on startup. --> <color name="Unused?" - value="1 0 1 1" /> + value=".831 1 0 1" /> <!-- UI Definitions --> - <color + <color name="AgentChatColor" reference="White" /> <color @@ -169,13 +175,13 @@ reference="LtGray" /> <color name="ChicletFlashColor" - reference="0.114 0.65 0.1" /> + value="0.114 0.65 0.1" /> <color name="ColorDropShadow" reference="Black_50" /> <color name="ColorPaletteEntry01" - value="0 0 0 1" /> + reference="Black" /> <color name="ColorPaletteEntry02" value="0.5 0.5 0.5 1" /> @@ -217,34 +223,34 @@ value="0.5 0.25 0 1" /> <color name="ColorPaletteEntry15" - value="1 1 1 1" /> + reference="White" /> <color name="ColorPaletteEntry16" - value="1 1 1 1" /> + reference="White" /> <color name="ColorPaletteEntry17" - value="1 1 1 1" /> + reference="White" /> <color name="ColorPaletteEntry18" - value="0.75 0.75 0.75 1" /> + reference="LtGray" /> <color name="ColorPaletteEntry19" - value="1 0 0 1" /> + reference="Red" /> <color name="ColorPaletteEntry20" reference=".5 .5 1 0" /> <color name="ColorPaletteEntry21" - value="0 1 0 1" /> + reference="Green" /> <color name="ColorPaletteEntry22" value="0 1 1 1" /> <color name="ColorPaletteEntry23" - value="0 0 1 1" /> + reference="Blue" /> <color name="ColorPaletteEntry24" - value="1 0 1 1" /> + reference="Purple" /> <color name="ColorPaletteEntry25" value="1 1 0.5 1" /> @@ -265,10 +271,10 @@ value="1 0.5 0 1" /> <color name="ColorPaletteEntry31" - value="1 1 1 1" /> + reference="White" /> <color name="ColorPaletteEntry32" - value="1 1 1 1" /> + reference="White" /> <color name="ConsoleBackground" reference="Black" /> @@ -325,7 +331,7 @@ value="0.92 0.92 1 0.78" /> <color name="GridlineColor" - value="1 0 0 1" /> + reference="Red" /> <color name="GridlineShadowColor" value="0 0 0 0.31" /> @@ -337,10 +343,10 @@ value="0.3344 0.5456 0.5159 1" /> <color name="GroupNotifyTextColor" - reference="White"/> + reference="White"/> <color name="GroupNotifyDimmedTextColor" - reference="DkGray"/> + reference="DkGray" /> <color name="GroupOverTierColor" value="0.43 0.06 0.06 1" /> @@ -397,7 +403,7 @@ reference="DkGray2" /> <color name="InventoryFocusOutlineColor" - reference="EmphasisColor" /> + reference="White_25" /> <color name="InventoryItemSuffixColor" reference="White_25" /> @@ -460,7 +466,7 @@ reference="DkGray" /> <color name="MenuBarGodBgColor" - reference="Green" /> + reference="FrogGreen" /> <color name="MenuDefaultBgColor" reference="DkGray2" /> @@ -481,7 +487,7 @@ reference="Black" /> <color name="MenuNonProductionGodBgColor" - value="0 0.5 0 1" /> + value="0.263 0.325 0.345 1" /> <color name="MenuPopupBgColor" reference="DkGray2" /> @@ -508,7 +514,7 @@ value="0 0 0 0.3" /> <color name="NetMapGroupOwnAboveWater" - value="1 0 1 1" /> + reference="Purple" /> <color name="NetMapGroupOwnBelowWater" value="0.78 0 0.78 1" /> @@ -541,7 +547,7 @@ reference="EmphasisColor" /> <color name="OverdrivenColor" - value="1 0 0 1" /> + reference="Red" /> <color name="PanelDefaultBackgroundColor" reference="DkGray" /> @@ -640,10 +646,10 @@ reference="Unused?" /> <color name="SpeakingColor" - value="0 1 0 1" /> + reference="FrogGreen" /> <color name="SystemChatColor" - reference="White" /> + reference="White" /> <color name="TextBgFocusColor" reference="White" /> @@ -658,7 +664,7 @@ reference="Black" /> <color name="TextDefaultColor" - value="Black" /> + reference="Black" /> <color name="TextEmbeddedItemColor" value="0 0 0.5 1" /> @@ -709,7 +715,7 @@ <color name="SysWellItemSelected" value="0.3 0.3 0.3 1.0" /> - <color + <color name="ChatToastAgentNameColor" reference="EmphasisColor" /> <color diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index 2d519858db..60c1470b89 100644 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -591,15 +591,15 @@ with the same filename but different name <texture name="Tool_Zoom" file_name="build/Tool_Zoom.png" preload="false" /> <texture name="Toolbar_Divider" file_name="containers/Toolbar_Divider.png" preload="false" /> - <texture name="Toolbar_Left_Off" file_name="containers/Toolbar_Left_Off.png" preload="false" /> - <texture name="Toolbar_Left_Press" file_name="containers/Toolbar_Left_Press.png" preload="false" /> - <texture name="Toolbar_Left_Selected" file_name="containers/Toolbar_Left_Selected.png" preload="false" /> - <texture name="Toolbar_Middle_Off" file_name="containers/Toolbar_Middle_Off.png" preload="false" /> - <texture name="Toolbar_Middle_Press" file_name="containers/Toolbar_Middle_Press.png" preload="false" /> - <texture name="Toolbar_Middle_Selected" file_name="containers/Toolbar_Middle_Selected.png" preload="false" /> - <texture name="Toolbar_Right_Off" file_name="containers/Toolbar_Right_Off.png" preload="false" /> - <texture name="Toolbar_Right_Press" file_name="containers/Toolbar_Right_Press.png" preload="false" /> - <texture name="Toolbar_Right_Selected" file_name="containers/Toolbar_Right_Selected.png" preload="false" /> + <texture name="Toolbar_Left_Off" file_name="containers/Toolbar_Left_Off.png" preload="false" scale.left="5" scale.bottom="4" scale.top="24" scale.right="30" /> + <texture name="Toolbar_Left_Press" file_name="containers/Toolbar_Left_Press.png" preload="false" scale.left="5" scale.bottom="4" scale.top="24" scale.right="30" /> + <texture name="Toolbar_Left_Selected" file_name="containers/Toolbar_Left_Selected.png" preload="false" scale.left="5" scale.bottom="4" scale.top="24" scale.right="30" /> + <texture name="Toolbar_Middle_Off" file_name="containers/Toolbar_Middle_Off.png" preload="false" scale.left="1" scale.bottom="2" scale.top="24" scale.right="30" /> + <texture name="Toolbar_Middle_Press" file_name="containers/Toolbar_Middle_Press.png" preload="false" scale.left="1" scale.bottom="2" scale.top="24" scale.right="30" /> + <texture name="Toolbar_Middle_Selected" file_name="containers/Toolbar_Middle_Selected.png" preload="false" scale.left="1" scale.bottom="2" scale.top="24" scale.right="30" /> + <texture name="Toolbar_Right_Off" file_name="containers/Toolbar_Right_Off.png" preload="false" scale.left="1" scale.bottom="4" scale.top="24" scale.right="26" /> + <texture name="Toolbar_Right_Press" file_name="containers/Toolbar_Right_Press.png" preload="false" scale.left="1" scale.bottom="4" scale.top="24" scale.right="26" /> + <texture name="Toolbar_Right_Selected" file_name="containers/Toolbar_Right_Selected.png" preload="false" scale.left="1" scale.bottom="4" scale.top="24" scale.right="26" /> <texture name="Tooltip" file_name="widgets/Tooltip.png" preload="true" scale.left="2" scale.top="16" scale.right="100" scale.bottom="3" /> @@ -665,10 +665,15 @@ with the same filename but different name <texture name="icn_voice-groupfocus.tga" /> <texture name="icn_voice-pvtfocus.tga" /> - <texture name="jump_left_out.tga" /> - <texture name="jump_left_in.tga" /> - <texture name="jump_right_out.tga" /> - <texture name="jump_right_in.tga" /> + <texture name="jump_left_out.tga" file_name="widgets/jump_left_out.png" /> + <texture name="jump_left_in.tga" file_name="widgets/jump_left_in.png" /> + <texture name="jump_right_out.tga" file_name="widgets/jump_right_out.png" /> + <texture name="jump_right_in.tga" file_name="widgets/jump_right_in.png" /> + + <texture name="scrollbutton_left_out_blue.tga" file_name="widgets/ScrollArrow_Left_Opaque.png" /> + <texture name="scrollbutton_left_in_blue.tga" file_name="widgets/ScrollArrow_Left_Over_Opaque.png" /> + <texture name="scrollbutton_right_out_blue.tga" file_name="widgets/ScrollArrow_Right_Opaque.png" /> + <texture name="scrollbutton_right_in_blue.tga" file_name="widgets/ScrollArrow_Right_Over_Opaque.png" /> <texture name="up_arrow.tga" file_name="up_arrow.png" /> <texture name="down_arrow.tga" file_name="down_arrow.png" /> @@ -690,7 +695,7 @@ with the same filename but different name <texture name="button_anim_play.tga" /> <texture name="button_anim_play_selected.tga" /> <texture name="crosshairs.tga" /> - <texture name="direction_arrow.tga" /> + <texture name="direction_arrow.tga" file_name="world/BeaconArrow.png" /> <texture name="icon_auction.tga" /> <texture name="icon_avatar_offline.tga" /> diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Opaque.png Binary files differnew file mode 100644 index 0000000000..549b3980f6 --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Opaque.png diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over_Opaque.png Binary files differnew file mode 100644 index 0000000000..a74abd5d8a --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over_Opaque.png diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Opaque.png Binary files differnew file mode 100644 index 0000000000..36056d0ad9 --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Opaque.png diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Over_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Over_Opaque.png Binary files differnew file mode 100644 index 0000000000..0c1fd6956b --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Over_Opaque.png diff --git a/indra/newview/skins/default/textures/widgets/jump_left_in.png b/indra/newview/skins/default/textures/widgets/jump_left_in.png Binary files differnew file mode 100644 index 0000000000..a1425ccfa0 --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/jump_left_in.png diff --git a/indra/newview/skins/default/textures/widgets/jump_left_out.png b/indra/newview/skins/default/textures/widgets/jump_left_out.png Binary files differnew file mode 100644 index 0000000000..38edf47d19 --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/jump_left_out.png diff --git a/indra/newview/skins/default/textures/widgets/jump_right_in.png b/indra/newview/skins/default/textures/widgets/jump_right_in.png Binary files differnew file mode 100644 index 0000000000..39359ab2e2 --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/jump_right_in.png diff --git a/indra/newview/skins/default/textures/widgets/jump_right_out.png b/indra/newview/skins/default/textures/widgets/jump_right_out.png Binary files differnew file mode 100644 index 0000000000..3f76bbffac --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/jump_right_out.png diff --git a/indra/newview/skins/default/textures/world/BeaconArrow.png b/indra/newview/skins/default/textures/world/BeaconArrow.png Binary files differnew file mode 100644 index 0000000000..12dc246d51 --- /dev/null +++ b/indra/newview/skins/default/textures/world/BeaconArrow.png diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml index 900f4c5956..c58c1f00b9 100644 --- a/indra/newview/skins/default/xui/en/floater_about_land.xml +++ b/indra/newview/skins/default/xui/en/floater_about_land.xml @@ -209,7 +209,7 @@ </text> <button follows="right" - height="16" + height="23" image_pressed="Info_Press" image_unselected="Info_Over" left_pad="3" @@ -218,7 +218,7 @@ width="16" /> <!-- <button follows="left|top" - height="16" + height="23" label="Profile" layout="topleft" left_pad="4" @@ -248,7 +248,7 @@ Leyla Linden </text> <button follows="right" - height="16" + height="23" image_pressed="Info_Press" image_unselected="Info_Over" left_pad="3" @@ -263,10 +263,11 @@ Leyla Linden </text> left_pad="4" right="-10" name="Set..." - width="50" /> + width="50" + top_delta="-2"/> <check_box enabled="false" - height="23" + height="16" label="Allow Deed to Group" layout="topleft" left="108" @@ -284,7 +285,7 @@ Leyla Linden </text> right="-10" name="Deed..." tool_tip="You may only deed land if you are an officer in the selected group." - top_delta="0" + top_delta="-2" width="90" /> <check_box enabled="false" @@ -294,7 +295,8 @@ Leyla Linden </text> left="108" name="check contrib" tool_tip="When the land is deeded to the group, the former owner contributes enough land allocation to support it." - width="199" /> + width="199" + top_pad="0"/> <text type="string" length="1" @@ -335,7 +337,7 @@ Leyla Linden </text> layout="topleft" left_delta="0" name="SalePending" - top_pad="6" + top_pad="5" width="324" /> <button follows="left|top" @@ -345,7 +347,8 @@ Leyla Linden </text> left_pad="5" right="-10" name="Sell Land..." - width="145" /> + width="145" + top_delta="-25"/> <text type="string" length="1" @@ -354,7 +357,7 @@ Leyla Linden </text> layout="topleft" left_delta="-199" name="For sale to" - top_delta="2" + top_delta="20" width="186"> For sale to: [BUYER] </text> @@ -366,7 +369,7 @@ Leyla Linden </text> layout="topleft" left_delta="0" name="Sell with landowners objects in parcel." - top_pad="0" + top_pad="-3" width="186"> Objects included in sale </text> @@ -391,7 +394,7 @@ Leyla Linden </text> right="-10" name="Cancel Land Sale" left_pad="5" - top_pad="-10" + top_pad="-25" width="145" /> <text type="string" @@ -522,7 +525,7 @@ Leyla Linden </text> layout="topleft" left_delta="0" name="Reclaim Land..." - top_delta="-48" + top_delta="-61" width="180" /> <button enabled="false" @@ -810,7 +813,7 @@ Leyla Linden </text> follows="left|top" height="16" layout="topleft" - left_delta="152" + left_delta="190" name="objects_available" top_delta="0" width="260"> @@ -834,7 +837,7 @@ Leyla Linden </text> follows="left|top" height="16" layout="topleft" - left_delta="200" + left_delta="190" name="object_contrib_text" top_delta="0" width="212"> @@ -858,7 +861,7 @@ Leyla Linden </text> follows="left|top" height="16" layout="topleft" - left_delta="200" + left_delta="190" name="total_objects_text" top_delta="0" width="48"> @@ -868,7 +871,7 @@ Leyla Linden </text> type="string" length="1" follows="left|top" - height="16" + height="23" layout="topleft" left="28" name="Owned by parcel owner:" @@ -880,9 +883,9 @@ Leyla Linden </text> type="string" length="1" follows="left|top" - height="16" + height="23" layout="topleft" - left_delta="176" + left_delta="172" name="owner_objects_text" top_delta="0" width="48"> @@ -892,33 +895,35 @@ Leyla Linden </text> bottom="100" enabled="false" follows="left|top" - height="20" + height="23" label="Show" label_selected="Show" layout="topleft" name="ShowOwner" right="-140" - width="60" /> + width="60" + top_delta="-6"/> <button bottom="100" enabled="false" follows="left|top" - height="20" + height="23" label="Return" layout="topleft" name="ReturnOwner..." right="-10" tool_tip="Return objects to their owners." - width="119" /> + width="119" + top_delta="0"/> <text type="string" length="1" follows="left|top" - height="16" + height="23" layout="topleft" left="28" name="Set to group:" - top="104" + top_pad="5" width="176"> Set to group: </text> @@ -926,9 +931,9 @@ Leyla Linden </text> type="string" length="1" follows="left|top" - height="16" + height="23" layout="topleft" - left_delta="176" + left_delta="172" name="group_objects_text" top_delta="0" width="48"> @@ -939,32 +944,34 @@ Leyla Linden </text> enabled="false" follows="left|top" label="Show" - height="20" + height="23" label_selected="Show" layout="topleft" name="ShowGroup" right="-140" - width="60" /> + width="60" + top_delta="-6"/> <button bottom="120" enabled="false" follows="left|top" - height="20" + height="23" label="Return" layout="topleft" name="ReturnGroup..." right="-10" tool_tip="Return objects to their owners." - width="119" /> + width="119" + top_delta="0"/> <text type="string" length="1" follows="left|top" - height="16" + height="23" layout="topleft" left="28" name="Owned by others:" - top="124" + top_pad="5" width="176"> Owned by others: </text> @@ -972,9 +979,9 @@ Leyla Linden </text> type="string" length="1" follows="left|top" - height="16" + height="23" layout="topleft" - left_delta="176" + left_delta="172" name="other_objects_text" top_delta="0" width="48"> @@ -984,33 +991,35 @@ Leyla Linden </text> bottom="140" enabled="false" follows="left|top" - height="20" + height="23" label="Show" label_selected="Show" layout="topleft" name="ShowOther" right="-140" - width="60" /> + width="60" + top_delta="-6"/> <button bottom="140" enabled="false" follows="left|top" - height="20" + height="23" label="Return" layout="topleft" name="ReturnOther..." right="-10" tool_tip="Return objects to their owners." - width="119" /> + width="119" + top_delta="0"/> <text type="string" length="1" follows="left|top" - height="16" + height="23" layout="topleft" left="28" name="Selected / sat upon:" - top="144" + top_pad="5" width="176"> Selected / sat upon: </text> @@ -1018,9 +1027,9 @@ Leyla Linden </text> type="string" length="1" follows="left|top" - height="16" + height="23" layout="topleft" - left_delta="176" + left_delta="172" name="selected_objects_text" top_delta="0" width="48"> @@ -1030,51 +1039,53 @@ Leyla Linden </text> type="string" length="1" follows="left|top" - height="16" + height="23" layout="topleft" left="10" name="Autoreturn" - top="164" + top_pad="0" width="294"> - Autoreturn other Residents' objects (minutes, 0 for off): + Auto return other Residents' objects (minutes, 0 for off): </text> <line_editor border_style="line" border_thickness="1" bottom="180" follows="left|top" - height="16" + height="23" layout="topleft" max_length="6" name="clean other time" - right="-50" - width="56" /> + right="-72" + width="56" + top_delta="-6"/> <text type="string" length="1" follows="left|top" - height="16" + height="23" layout="topleft" left="10" name="Object Owners:" - top="184" + top_pad="10" width="104"> Object Owners: </text> <button follows="top|right" - height="20" + height="23" image_overlay="Refresh_Off" layout="topleft" name="Refresh List" left_pad="5" right="-183" tool_tip="Refresh Object List" - width="20" /> + width="20" + top_delta="-6"/> <button enabled="false" follows="left|top" - height="20" + height="23" label="Return Objects" layout="topleft" left_pad="6" @@ -1086,7 +1097,7 @@ Leyla Linden </text> column_padding="0" draw_heading="true" follows="all" - height="190" + height="180" layout="topleft" left="10" name="owner list" @@ -1313,7 +1324,7 @@ Only large parcels can be listed in search. width="430" /> <combo_box enabled="false" - height="20" + height="23" layout="topleft" left="30" name="land category with adult" @@ -1374,7 +1385,7 @@ Only large parcels can be listed in search. </combo_box> <combo_box enabled="false" - height="20" + height="23" layout="topleft" left="30" name="land category" @@ -1463,7 +1474,7 @@ Only large parcels can be listed in search. type="string" length="1" follows="left|top" - height="30" + height="16" layout="topleft" left="220" top="180" @@ -1553,12 +1564,13 @@ Only large parcels can be listed in search. Type: </text> <combo_box - height="20" + height="23" layout="topleft" left_pad="0" name="media type" tool_tip="Specify if the URL is a movie, web page, or other media" - width="120" /> + width="120" + top_delta="0"/> <text follows="left|top" height="16" @@ -1574,27 +1586,29 @@ Only large parcels can be listed in search. layout="topleft" left="10" name="at URL:" - width="100"> + width="100" + top_pad="10"> Home Page: </text> <line_editor follows="left|top" - height="20" + height="23" layout="topleft" left_pad="0" max_length="255" name="media_url" select_on_focus="true" - width="300" /> + width="300" + top_delta="0"/> <button follows="right|top" - height="22" + height="23" label="Set" layout="topleft" left_pad="5" - right="-10" name="set_media_url" - width="50" /> + width="50" + top_delta="0"/> <text type="string" length="1" @@ -1603,18 +1617,20 @@ Only large parcels can be listed in search. layout="topleft" left="10" name="CurrentURL:" - width="100"> + width="100" + top_pad="10"> Current Page: </text> - <button - follows="top|right" - height="20" - image_overlay="Refresh_Off" - layout="topleft" + <button + follows="top|right" + height="23" + image_overlay="Refresh_Off" + layout="topleft" name="reset_media_url" - left_pad="0" - tool_tip="Refresh URL" - width="20" /> + left_pad="0" + tool_tip="Refresh URL" + width="23" + top_delta="0"/> <text follows="left|top" height="16" @@ -1623,22 +1639,25 @@ Only large parcels can be listed in search. name="current_url" width="300" /> <check_box + follows="top|left" height="16" label="Hide URL" layout="topleft" - left="110" + left_delta="-36" name="hide_media_url" tool_tip="Checking this option will hide the media url to any non-authorized viewers of this parcel information. Note this is not available for HTML types." - width="200" /> + width="50" + top_pad="5"/> <text type="string" length="1" follows="left|top" - height="16" + height="23" layout="topleft" left="10" name="Description:" - width="364"> + width="364" + top_pad="10"> Description: </text> <line_editor @@ -1650,7 +1669,7 @@ Only large parcels can be listed in search. name="url_description" select_on_focus="true" tool_tip="Text displayed next to play/load button" - top_delta="10" + top_delta="0" width="300" /> <text type="string" @@ -1674,7 +1693,7 @@ Only large parcels can be listed in search. left="110" name="media texture" tool_tip="Click to choose a picture" - top_delta="10" + top_delta="0" width="64" /> <text type="string" @@ -1685,16 +1704,17 @@ Only large parcels can be listed in search. left_pad="8" name="replace_texture_help" width="300" - word_wrap="true"> + word_wrap="true" + top_delta="0"> Objects using this texture will show the movie or web page after you click the play arrow. Select the thumbnail to choose a different texture. </text> <check_box height="16" label="Auto scale" layout="topleft" - left="110" + left="107" name="media_auto_scale" - top_pad="0" + top_pad="-10" tool_tip="Checking this option will scale the content for this parcel automatically. It may be slightly slower and lower quality visually but no other texture scaling or alignment will be required." width="200" /> <text @@ -1706,7 +1726,8 @@ Only large parcels can be listed in search. left="10" name="media_size" tool_tip="Size to render Web media, leave 0 for default." - width="100"> + width="100" + top_pad="10"> Size: </text> <spinner @@ -1714,7 +1735,7 @@ Only large parcels can be listed in search. enabled="false" follows="left|top" halign="right" - height="20" + height="23" increment="1" initial_value="0" layout="topleft" @@ -1729,7 +1750,7 @@ Only large parcels can be listed in search. enabled="false" follows="left|top" halign="right" - height="20" + height="23" increment="1" initial_value="0" layout="topleft" @@ -1759,7 +1780,7 @@ Only large parcels can be listed in search. layout="topleft" left="10" name="Options:" - top_pad="8" + top_pad="10" width="100"> Options: </text> @@ -1767,10 +1788,10 @@ Only large parcels can be listed in search. height="16" label="Loop" layout="topleft" - left_pad="0" + left_pad="-3" name="media_loop" tool_tip="Play media in a loop. When the media has finished playing, it will restart from the beginning." - top_delta="0" + top_delta="-1" width="200" /> </panel> <panel @@ -1796,12 +1817,12 @@ Only large parcels can be listed in search. </text> <line_editor follows="left|top" - height="20" + height="23" layout="topleft" left="100" max_length="255" name="music_url" - top_pad="0" + top_delta="0" right="-15" select_on_focus="true" /> <text @@ -1941,7 +1962,7 @@ Only large parcels can be listed in search. width="278" /> <check_box enabled="false" - height="22" + height="16" label="Sell passes to:" layout="topleft" left_delta="0" @@ -1950,7 +1971,7 @@ Only large parcels can be listed in search. top_pad="4" width="120" /> <combo_box - height="20" + height="23" layout="topleft" left_pad="22" name="pass_combo" @@ -1968,7 +1989,7 @@ Only large parcels can be listed in search. <spinner enabled="false" follows="left|top" - height="22" + height="23" increment="1" initial_value="10" label="Price in L$:" @@ -1983,7 +2004,7 @@ Only large parcels can be listed in search. <spinner enabled="false" follows="left|top" - height="22" + height="23" increment="0.25" initial_value="1" label="Hours of access:" diff --git a/indra/newview/skins/default/xui/en/floater_im_container.xml b/indra/newview/skins/default/xui/en/floater_im_container.xml index ccbba61ddf..d97ca554b7 100644 --- a/indra/newview/skins/default/xui/en/floater_im_container.xml +++ b/indra/newview/skins/default/xui/en/floater_im_container.xml @@ -19,6 +19,7 @@ name="im_box_tab_container"
tab_position="bottom"
tab_width="80"
+ tab_height="16"
top="0"
width="390" />
<icon
diff --git a/indra/newview/skins/default/xui/en/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/en/floater_outfit_save_as.xml new file mode 100644 index 0000000000..c3d84de9a7 --- /dev/null +++ b/indra/newview/skins/default/xui/en/floater_outfit_save_as.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater + legacy_header_height="18" + border="true" + can_close="false" + can_minimize="false" + height="100" + layout="topleft" + name="modal container" + width="240"> + <button + height="20" + label="Save" + label_selected="Save" + layout="topleft" + left="20" + name="Save" + top="70" + width="82" /> + <button + height="20" + label="Cancel" + label_selected="Cancel" + layout="topleft" + left_pad="36" + name="Cancel" + top_delta="0" + width="82" /> + <text + type="string" + length="1" + follows="left|top" + font="SansSerif" + height="16" + layout="topleft" + left="20" + name="Save item as:" + top="10" + width="200"> + Save outfit as: + </text> + <line_editor + type="string" + length="1" + border_style="line" + border_thickness="1" + follows="left|top" + font="SansSerif" + handle_edit_keys_directly="true" + height="20" + layout="topleft" + left_delta="0" + max_length="63" + name="name ed" + top_pad="4" + width="200"> + [DESC] + </line_editor> +</floater> diff --git a/indra/newview/skins/default/xui/en/menu_gesture_gear.xml b/indra/newview/skins/default/xui/en/menu_gesture_gear.xml index 4642e82c0b..d96f3c5494 100644 --- a/indra/newview/skins/default/xui/en/menu_gesture_gear.xml +++ b/indra/newview/skins/default/xui/en/menu_gesture_gear.xml @@ -17,7 +17,7 @@ layout="topleft" name="copy_gesture"> <on_click - function="Gesture.Action.CopyPast" + function="Gesture.Action.CopyPaste" parameter="copy_gesture" /> <on_enable function="Gesture.EnableAction" @@ -28,7 +28,7 @@ layout="topleft" name="paste"> <on_click - function="Gesture.Action.CopyPast" + function="Gesture.Action.CopyPaste" parameter="paste" /> <on_enable function="Gesture.EnableAction" @@ -39,7 +39,7 @@ layout="topleft" name="copy_uuid"> <on_click - function="Gesture.Action.CopyPast" + function="Gesture.Action.CopyPaste" parameter="copy_uuid" /> <on_enable function="Gesture.EnableAction" diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index e20e5a85c0..957b4d74db 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -811,6 +811,7 @@ Please select a proposal to view. Please select a history item to view. </notification> +<!-- <notification icon="alertmodal.tga" name="ResetShowNextTimeDialogs" @@ -832,6 +833,7 @@ Would you like to disable all popups which can be skipped? notext="Cancel" yestext="OK"/> </notification> +--> <notification icon="alertmodal.tga" @@ -5368,6 +5370,7 @@ Grant this request? </form> </notification> +<!-- <notification icon="notify.tga" name="FirstBalanceIncrease" @@ -5383,6 +5386,7 @@ Your L$ balance is shown in the upper-right. You just paid L$[AMOUNT]. Your L$ balance is shown in the upper-right. </notification> +--> <notification icon="notify.tga" @@ -5394,6 +5398,8 @@ Your L$ balance will be updated when processing completes. If processing takes m The status of your payment can be checked on your Transaction History page on your [http://secondlife.com/account/ Dashboard] </notification> + +<!-- <notification icon="notify.tga" name="FirstSit" @@ -5418,8 +5424,9 @@ Use the controls on the right to find things and display different backgrounds. type="notify"> You have opened the Build Tools. Every object you see around you was created using these tools. </notification> +--> -<!-- +<!-- <notification icon="notify.tga" name="FirstLeftClickNoHit" @@ -5428,7 +5435,7 @@ You have opened the Build Tools. Every object you see around you was created usi If the mouse pointer changes to a hand, you can interact with the object. Right-click always shows a menu of things you can do. </notification> ---> + <notification icon="notify.tga" name="FirstTeleport" @@ -5436,6 +5443,8 @@ You have opened the Build Tools. Every object you see around you was created usi You can only teleport to certain areas in this region. The arrow points to your specific destination. Click the arrow to dismiss it. </notification> +--> + <notification icon="notify.tga" name="FirstOverrideKeys" @@ -5446,6 +5455,7 @@ Some objects (like guns) require you to go into mouselook to use them. Press 'M' to do this. </notification> +<!-- <notification icon="notify.tga" name="FirstAppearance" @@ -5465,6 +5475,7 @@ This is your Inventory, which contains items you own. * To rez something inworld, drag it onto the ground. * To read a notecard, double-click it. </notification> +--> <notification icon="notify.tga" @@ -5475,6 +5486,7 @@ This is a sandbox area, and is meant to help Residents learn how to build. Things you build here will be deleted after you leave, so don't forget to right-click and choose 'Take' to move your creation to your Inventory. </notification> +<!-- <notification icon="notify.tga" name="FirstFlexible" @@ -5500,13 +5512,16 @@ To toggle this menu, type="notify"> You are editing a Sculpted prim. Sculpties require a special texture to define their shape. </notification> +--> - <!--notification + <!-- + <notification icon="notify.tga" name="FirstMedia" type="notify"> You have begun playing media. Media can set to play automatically in the preferences window under Audio / Video. Note that this can be a security risk for media sites you do not trust. - </notification--> + </notification> + --> <notification icon="notifytip.tga" diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml index 4b39210f30..de3de45718 100644 --- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml +++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml @@ -382,6 +382,17 @@ image_pressed_selected "Lit" + "Selected" - there are new messages and the Well width="40" min_width="40" user_resize="false"> + <icon + auto_resize="false" + color="0 0 0 0" + follows="left|right" + height="10" + image_name="spacer24.tga" + layout="topleft" + left="0" + min_width="4" + top="0" + width="5" /> <chiclet_notification flash_period="0.25" follows="right" @@ -414,6 +425,17 @@ image_pressed_selected "Lit" + "Selected" - there are new messages and the Well function="Button.SetDockableFloaterToggle" parameter="notification_well_window" /> </button> + <icon + auto_resize="false" + color="0 0 0 0" + follows="left|right" + height="10" + image_name="spacer24.tga" + layout="topleft" + left="0" + min_width="4" + top="0" + width="5" /> </chiclet_notification> </layout_panel> </layout_stack> diff --git a/indra/newview/skins/default/xui/en/panel_classified_info.xml b/indra/newview/skins/default/xui/en/panel_classified_info.xml index 5c594d3f14..677bdbc3d2 100644 --- a/indra/newview/skins/default/xui/en/panel_classified_info.xml +++ b/indra/newview/skins/default/xui/en/panel_classified_info.xml @@ -7,6 +7,7 @@ left="0" min_height="350" name="panel_classified_info" + help_topic="profile_classified_info" top="0" width="333"> <panel.string diff --git a/indra/newview/skins/default/xui/en/panel_edit_classified.xml b/indra/newview/skins/default/xui/en/panel_edit_classified.xml index 1fbf7abda9..188ded3dab 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_classified.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_classified.xml @@ -9,6 +9,7 @@ left="0" min_height="350" name="panel_edit_classified" + help_topic="profile_edit_classified" top="0" width="333"> <panel.string diff --git a/indra/newview/skins/default/xui/en/panel_edit_pick.xml b/indra/newview/skins/default/xui/en/panel_edit_pick.xml index 7769189219..15eff4b67c 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_pick.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_pick.xml @@ -9,6 +9,7 @@ left="0" min_height="350" name="panel_edit_pick" + help_topic="profile_edit_pick" top="0" width="333"> <button diff --git a/indra/newview/skins/default/xui/en/panel_main_inventory.xml b/indra/newview/skins/default/xui/en/panel_main_inventory.xml index 9d00abd2c9..4030c7184a 100644 --- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml @@ -41,6 +41,7 @@ halign="center" follows="all" height="295" label="MY INVENTORY" + help_topic="my_inventory_tab" layout="topleft" left="0" name="All Items" @@ -51,6 +52,7 @@ halign="center" follows="all" height="295" label="RECENT" + help_topic="recent_inventory_tab" layout="topleft" left_delta="0" name="Recent Items" diff --git a/indra/newview/skins/default/xui/en/panel_pick_info.xml b/indra/newview/skins/default/xui/en/panel_pick_info.xml index 9c7f38e688..822e049eec 100644 --- a/indra/newview/skins/default/xui/en/panel_pick_info.xml +++ b/indra/newview/skins/default/xui/en/panel_pick_info.xml @@ -7,6 +7,7 @@ left="0" min_height="350" name="panel_pick_info" + help_topic="profile_pick_info" top="0" width="333"> <button diff --git a/indra/newview/skins/default/xui/en/panel_picks.xml b/indra/newview/skins/default/xui/en/panel_picks.xml index 1fc553ff36..a2b0adf9d9 100644 --- a/indra/newview/skins/default/xui/en/panel_picks.xml +++ b/indra/newview/skins/default/xui/en/panel_picks.xml @@ -124,7 +124,6 @@ height="25" top_pad="10" name="buttons_cucks" - help_topic="picks_button_tab" width="313"> <button enabled="false" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml index 18d0f8acab..ace8281b4e 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml @@ -31,7 +31,6 @@ width="300" /> <check_box control_name="ChatOnlineNotification" - enabled="false" height="16" label="When my friends log out or in" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml b/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml index 1dd4eb095c..ab3cc036d5 100644 --- a/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml +++ b/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml @@ -4,7 +4,6 @@ follows="all" height="570" min_height="350" - label="home_tab" help_topic="sidetray_home" layout="topleft" top="0" diff --git a/indra/newview/skins/default/xui/en/sidepanel_inventory.xml b/indra/newview/skins/default/xui/en/sidepanel_inventory.xml index 51974be854..fb5f9d2ec8 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_inventory.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_inventory.xml @@ -33,7 +33,6 @@ <panel height="25" layout="bottomright" - help_topic="item_button_tab" name="button_panel" left="5" bottom="5" diff --git a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml index 4a992dadd9..e18f59ab64 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml @@ -401,7 +401,6 @@ top_pad="10" <panel height="30" layout="bottomright" - help_topic="button_tab" name="button_panel" left="5" bottom="2" @@ -414,4 +413,4 @@ top_pad="10" right="-1" width="100" /> </panel> - </panel>
\ No newline at end of file + </panel> diff --git a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml index 2dfcdf4a4c..74f97dca4e 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml @@ -518,7 +518,6 @@ <panel height="25" layout="bottomright" - help_topic="button_tab" name="button_panel" left="5" bottom="5" @@ -551,4 +550,4 @@ top="0" width="100" /> </panel> -</panel>
\ No newline at end of file +</panel> diff --git a/indra/newview/tests/llviewerhelputil_test.cpp b/indra/newview/tests/llviewerhelputil_test.cpp index d7dd199722..297d98ad8d 100644 --- a/indra/newview/tests/llviewerhelputil_test.cpp +++ b/indra/newview/tests/llviewerhelputil_test.cpp @@ -83,6 +83,9 @@ class LLAgent public: LLAgent() {} ~LLAgent() {} +#ifdef __GNUC__ + __attribute__ ((noinline)) +#endif BOOL isGodlike() const { return FALSE; } private: int dummy; |