From 04dd4216be0ed09bd2e7a11768c50f17c1b5213e Mon Sep 17 00:00:00 2001 From: "Mark Palange (Mani)" Date: Thu, 31 Dec 2009 14:04:05 -0800 Subject: EXT-3778 Fixed handling of url passed in on cmd line. The url from the cmd line was being overridden by the LoginLocation setting. (my bad!) Removed unnecessary llurlsimstring.h includes. --- indra/newview/llmediactrl.cpp | 1 - indra/newview/llpanellogin.cpp | 7 +++++-- indra/newview/llteleporthistory.cpp | 1 - indra/newview/llviewerwindow.cpp | 1 - 4 files changed, 5 insertions(+), 5 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 199bd966ef..93f926b5d0 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -39,7 +39,6 @@ #include "llfloaterworldmap.h" #include "lluictrlfactory.h" #include "llurldispatcher.h" -#include "llurlsimstring.h" #include "llviewborder.h" #include "llviewercontrol.h" #include "llviewermedia.h" diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index a9c7b908ed..87d101b00f 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -62,7 +62,6 @@ #include "llviewermenu.h" // for handle_preferences() #include "llviewernetwork.h" #include "llviewerwindow.h" // to link into child list -#include "llurlsimstring.h" #include "lluictrlfactory.h" #include "llhttpclient.h" #include "llweb.h" @@ -229,8 +228,12 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, LLComboBox* combo = getChild("start_location_combo"); - LLURLSimString::setString(gSavedSettings.getString("LoginLocation")); std::string sim_string = LLURLSimString::sInstance.mSimString; + if(sim_string.empty()) + { + LLURLSimString::setString(gSavedSettings.getString("LoginLocation")); + } + if (!sim_string.empty()) { // Replace "" with this region name diff --git a/indra/newview/llteleporthistory.cpp b/indra/newview/llteleporthistory.cpp index 1315887c37..ce00dec802 100644 --- a/indra/newview/llteleporthistory.cpp +++ b/indra/newview/llteleporthistory.cpp @@ -39,7 +39,6 @@ #include "llagent.h" #include "llslurl.h" -#include "llurlsimstring.h" #include "llviewercontrol.h" // for gSavedSettings #include "llviewerparcelmgr.h" #include "llviewerregion.h" diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 5c86822787..1400253176 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -182,7 +182,6 @@ #include "llworldmapview.h" #include "pipeline.h" #include "llappviewer.h" -#include "llurlsimstring.h" #include "llviewerdisplay.h" #include "llspatialpartition.h" #include "llviewerjoystick.h" -- cgit v1.2.3 From eef77735ce34172ced7bb0611167cdf974b2d570 Mon Sep 17 00:00:00 2001 From: "Eric M. Tulla (BigPapi)" Date: Thu, 31 Dec 2009 19:03:41 -0500 Subject: EXT-3616: Fix for my outfits autopopulation. Readding the fetch observer. -Review by seraph --- indra/newview/llagentwearables.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'indra/newview') diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index 79ba3fb51d..b221c28dcd 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -2128,6 +2128,7 @@ void LLLibraryOutfitsFetch::done() } if (mOutfitsPopulated) { + gInventory.notifyObservers(); delete this; } } @@ -2162,6 +2163,11 @@ void LLLibraryOutfitsFetch::folderDone(void) // everything is already here - call done. outfitsDone(); } + else + { + gInventory.removeObserver(this); + gInventory.addObserver(this); + } } void LLLibraryOutfitsFetch::outfitsDone(void) @@ -2172,6 +2178,8 @@ void LLLibraryOutfitsFetch::outfitsDone(void) LLInventoryModel::EXCLUDE_TRASH); LLInventoryFetchDescendentsObserver::folder_ref_t folders; + + llassert(cat_array.count() > 0); for(S32 i = 0; i < cat_array.count(); ++i) { if (cat_array.get(i)->getName() != "More Outfits" && cat_array.get(i)->getName() != "Ruth"){ @@ -2186,6 +2194,11 @@ void LLLibraryOutfitsFetch::outfitsDone(void) // everything is already here - call done. contentsDone(); } + else + { + gInventory.removeObserver(this); + gInventory.addObserver(this); + } } void LLLibraryOutfitsFetch::contentsDone(void) @@ -2199,7 +2212,6 @@ void LLLibraryOutfitsFetch::contentsDone(void) mOutfits[i].second); LLAppearanceManager::getInstance()->shallowCopyCategory(mOutfits[i].first, folder_id, NULL); - gInventory.notifyObservers(); } mOutfitsPopulated = true; } -- cgit v1.2.3 From 3726d3bda8d359216a683c93c155c1463da7348e Mon Sep 17 00:00:00 2001 From: Lynx Linden Date: Mon, 4 Jan 2010 11:42:48 +0000 Subject: DEV-44136: Hide previous results when performing new search. When a new search is performed, we first display a blank page in the search floater so that the previous results are not visible while the new results are being retrieved from the search server. --- indra/newview/llfloatersearch.cpp | 14 ++++++++++++++ indra/newview/llfloatersearch.h | 2 ++ 2 files changed, 16 insertions(+) (limited to 'indra/newview') diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp index 595d84f9f0..c6d9fee630 100644 --- a/indra/newview/llfloatersearch.cpp +++ b/indra/newview/llfloatersearch.cpp @@ -77,6 +77,15 @@ void LLFloaterSearch::onOpen(const LLSD& key) search(key); } +void LLFloaterSearch::onClose(bool app_quitting) +{ + if (! app_quitting) + { + // Show the blank home page ready for the next onOpen() + mBrowser->navigateHome(); + } +} + void LLFloaterSearch::handleMediaEvent(LLPluginClassMedia *self, EMediaEvent event) { switch (event) @@ -110,6 +119,11 @@ void LLFloaterSearch::search(const LLSD &key) return; } + // display the blank home page first, to clear the display of + // any previous search results while the new results load. + // The home page is set in floater_search.xml as start_url. + mBrowser->navigateHome(); + // reset the god level warning as we're sending the latest state childHide("refresh_search"); mSearchGodLevel = gAgent.getGodLevel(); diff --git a/indra/newview/llfloatersearch.h b/indra/newview/llfloatersearch.h index ba817adf7f..0a8d9bbe36 100644 --- a/indra/newview/llfloatersearch.h +++ b/indra/newview/llfloatersearch.h @@ -59,6 +59,8 @@ public: /// see search() for details on the key parameter. /*virtual*/ void onOpen(const LLSD& key); + /*virtual*/ void onClose(bool app_quitting); + /// perform a search with the specific search term. /// The key should be a map that can contain the following keys: /// - "id": specifies the text phrase to search for -- cgit v1.2.3 From 6703cbc8af55cb70410d99ae38aa739bff2e692a Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Mon, 4 Jan 2010 13:44:48 -0500 Subject: EXT-3827 : Some accounts have no library outfits EXT-3616 : My Outfits folders don't always auto-populate on first login EXT-3796 : Sidepanel not picking up changes to "My Outfits" from autopopulation EXT-3915 : Memory leak in autopopulation code Largely rewrote the autopopulation code because it was buggy, was causing llwarns messages, and had a memory leak. My approach to this should fix everything. --- indra/newview/llagentwearables.cpp | 86 +++++++++++++++----------------------- 1 file changed, 34 insertions(+), 52 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index b221c28dcd..dc1598aacd 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -100,6 +100,7 @@ public: LLLibraryOutfitsFetch() : mCurrFetchStep(LOFS_FOLDER), mOutfitsPopulated(false) {} ~LLLibraryOutfitsFetch() {} virtual void done(); + void doneIdle(); protected: void folderDone(void); void outfitsDone(void); @@ -2084,52 +2085,50 @@ void LLAgentWearables::populateMyOutfitsFolder(void) { LLLibraryOutfitsFetch* outfits = new LLLibraryOutfitsFetch(); - // What we do here is get the complete information on the items in - // the inventory, and set up an observer that will wait for that to - // happen. + // Get the complete information on the items in the inventory and + // setup an observer that will wait for that to happen. LLInventoryFetchDescendentsObserver::folder_ref_t folders; const LLUUID my_outfits_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS); folders.push_back(my_outfits_id); + gInventory.addObserver(outfits); outfits->fetchDescendents(folders); - if(outfits->isEverythingComplete()) - { - // everything is already here - call done. - outfits->done(); - } - else - { - // it's all on it's way - add an observer, and the inventory - // will call done for us when everything is here. - gInventory.addObserver(outfits); - } } void LLLibraryOutfitsFetch::done() { - switch (mCurrFetchStep){ + // Delay this until idle() routine, since it's a heavy operation and + // we also can't have it run within notifyObservers. + doOnIdle(boost::bind(&LLLibraryOutfitsFetch::doneIdle,this)); + gInventory.removeObserver(this); // Prevent doOnIdle from being added twice. +} + +void LLLibraryOutfitsFetch::doneIdle() +{ + gInventory.addObserver(this); // Add this back in since it was taken out during ::done() + switch (mCurrFetchStep) + { case LOFS_FOLDER: - mCurrFetchStep = LOFS_OUTFITS; folderDone(); break; case LOFS_OUTFITS: - mCurrFetchStep = LOFS_CONTENTS; outfitsDone(); break; case LOFS_CONTENTS: - // No longer need this observer hanging around. - gInventory.removeObserver(this); contentsDone(); break; default: - gInventory.removeObserver(this); - delete this; - return; + llwarns << "Got invalid state for outfit fetch: " << mCurrFetchStep << llendl; + mOutfitsPopulated = TRUE; + break; } + + // We're completely done. Cleanup. if (mOutfitsPopulated) { - gInventory.notifyObservers(); + gInventory.removeObserver(this); delete this; + return; } } @@ -2143,7 +2142,6 @@ void LLLibraryOutfitsFetch::folderDone(void) if (cat_array.count() > 0 || wearable_array.count() > 0) { mOutfitsPopulated = true; - gInventory.removeObserver(this); return; } @@ -2152,22 +2150,11 @@ void LLLibraryOutfitsFetch::folderDone(void) mCompleteFolders.clear(); - // What we do here is get the complete information on the items in - // the inventory, and set up an observer that will wait for that to - // happen. + // Get the complete information on the items in the inventory. LLInventoryFetchDescendentsObserver::folder_ref_t folders; folders.push_back(library_clothing_id); + mCurrFetchStep = LOFS_OUTFITS; fetchDescendents(folders); - if(isEverythingComplete()) - { - // everything is already here - call done. - outfitsDone(); - } - else - { - gInventory.removeObserver(this); - gInventory.addObserver(this); - } } void LLLibraryOutfitsFetch::outfitsDone(void) @@ -2180,25 +2167,21 @@ void LLLibraryOutfitsFetch::outfitsDone(void) LLInventoryFetchDescendentsObserver::folder_ref_t folders; llassert(cat_array.count() > 0); - for(S32 i = 0; i < cat_array.count(); ++i) + for (LLInventoryModel::cat_array_t::const_iterator iter = cat_array.begin(); + iter != cat_array.end(); + ++iter) { - if (cat_array.get(i)->getName() != "More Outfits" && cat_array.get(i)->getName() != "Ruth"){ - folders.push_back(cat_array.get(i)->getUUID()); - mOutfits.push_back( std::make_pair(cat_array.get(i)->getUUID(), cat_array.get(i)->getName() )); + const LLViewerInventoryCategory *cat = iter->get(); + if (cat->getName() != "More Outfits" && cat->getName() != "Ruth") + { + folders.push_back(cat->getUUID()); + mOutfits.push_back(std::make_pair(cat->getUUID(), cat->getName())); } } mCompleteFolders.clear(); + + mCurrFetchStep = LOFS_CONTENTS; fetchDescendents(folders); - if(isEverythingComplete()) - { - // everything is already here - call done. - contentsDone(); - } - else - { - gInventory.removeObserver(this); - gInventory.addObserver(this); - } } void LLLibraryOutfitsFetch::contentsDone(void) @@ -2210,7 +2193,6 @@ void LLLibraryOutfitsFetch::contentsDone(void) LLUUID folder_id = gInventory.createNewCategory(parent_id, LLFolderType::FT_OUTFIT, mOutfits[i].second); - LLAppearanceManager::getInstance()->shallowCopyCategory(mOutfits[i].first, folder_id, NULL); } mOutfitsPopulated = true; -- cgit v1.2.3 From 6157187e5bdff889613673f11852d9c25f96bf92 Mon Sep 17 00:00:00 2001 From: "Nyx (Neal Orman)" Date: Mon, 4 Jan 2010 15:33:07 -0500 Subject: EXT-3849 remove "show attachments in previews" removing the checkbox in the appearance floater, as we don't have time to implement this. reviewed by Seraph --- indra/newview/skins/default/xui/en/floater_customize.xml | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/skins/default/xui/en/floater_customize.xml b/indra/newview/skins/default/xui/en/floater_customize.xml index 94686f0bb0..0dc7d62b19 100644 --- a/indra/newview/skins/default/xui/en/floater_customize.xml +++ b/indra/newview/skins/default/xui/en/floater_customize.xml @@ -12,16 +12,6 @@ title="APPEARANCE" top_delta="-185" width="524"> -