aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview
diff options
context:
space:
mode:
authorMcCabe Maxsted2010-10-02 01:07:17 -0700
committerMcCabe Maxsted2010-10-02 01:07:17 -0700
commit84330405552e869501b68a39df3900814798cd78 (patch)
tree789a88a209cff2e663d289dc8fa4dd7c27846473 /linden/indra/newview
parentMerge remote branch 'elektra/weekly' into weekly (diff)
parentfix: Bug #413 1.3 Logout: crash when cancelling currency purchase (diff)
downloadmeta-impy-84330405552e869501b68a39df3900814798cd78.zip
meta-impy-84330405552e869501b68a39df3900814798cd78.tar.gz
meta-impy-84330405552e869501b68a39df3900814798cd78.tar.bz2
meta-impy-84330405552e869501b68a39df3900814798cd78.tar.xz
Merge remote branch 'armin/weekly' into weekly
Diffstat (limited to 'linden/indra/newview')
-rw-r--r--linden/indra/newview/llappviewer.cpp35
-rw-r--r--linden/indra/newview/llcallingcard.cpp12
-rw-r--r--linden/indra/newview/llcallingcard.h2
-rw-r--r--linden/indra/newview/llfloaterbuycurrency.cpp2
-rw-r--r--linden/indra/newview/llstatusbar.h3
-rw-r--r--linden/indra/newview/llviewermenu.cpp1
6 files changed, 44 insertions, 11 deletions
diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp
index e6b4831..2496d13 100644
--- a/linden/indra/newview/llappviewer.cpp
+++ b/linden/indra/newview/llappviewer.cpp
@@ -1185,6 +1185,16 @@ bool LLAppViewer::cleanup()
1185 1185
1186 llinfos << "Viewer disconnected" << llendflush; 1186 llinfos << "Viewer disconnected" << llendflush;
1187 1187
1188 if (!mQuitRequested) //not doing it on quit, because the quitting voiceclient
1189 { //*might* crash imprudence TODO: fix the voiceclient instead
1190 //this deletes all your buddies
1191 LLAvatarTracker::instance().reset();
1192 }
1193
1194 //reset balance for not playing the UI-Sound
1195 //when relogging into another account
1196 gStatusBar->clearBalance();
1197
1188 if (mQuitRequested) 1198 if (mQuitRequested)
1189 { 1199 {
1190 display_cleanup(); 1200 display_cleanup();
@@ -3722,10 +3732,18 @@ void LLAppViewer::idleShutdown()
3722 else 3732 else
3723 { 3733 {
3724 mQuitRequested=true; 3734 mQuitRequested=true;
3725//awfixme
3726 forceQuit(); 3735 forceQuit();
3727 } 3736 }
3728 3737
3738
3739 static bool saved_snapshot = false;
3740 if (!saved_snapshot)
3741 {
3742 saved_snapshot = true;
3743 saveFinalSnapshot();
3744 return;
3745 }
3746
3729 // Attempt to close all floaters that might be 3747 // Attempt to close all floaters that might be
3730 // editing things. 3748 // editing things.
3731 if (gFloaterView) 3749 if (gFloaterView)
@@ -3733,6 +3751,13 @@ void LLAppViewer::idleShutdown()
3733 // application is quitting 3751 // application is quitting
3734 gFloaterView->closeAllChildren(true); 3752 gFloaterView->closeAllChildren(true);
3735 } 3753 }
3754
3755 // extra invitation to the Snapshot Floater
3756 // not to show on the loginscreen when relogging
3757 if (gSnapshotFloaterView)
3758 {
3759 gSnapshotFloaterView->closeAllChildren(true);
3760 }
3736 3761
3737 // close IM interface 3762 // close IM interface
3738 if(gIMMgr) 3763 if(gIMMgr)
@@ -3749,13 +3774,7 @@ void LLAppViewer::idleShutdown()
3749 return; 3774 return;
3750 } 3775 }
3751 3776
3752 static bool saved_snapshot = false; 3777
3753 if (!saved_snapshot)
3754 {
3755 saved_snapshot = true;
3756 saveFinalSnapshot();
3757 return;
3758 }
3759 3778
3760 const F32 SHUTDOWN_UPLOAD_SAVE_TIME = 5.f; 3779 const F32 SHUTDOWN_UPLOAD_SAVE_TIME = 5.f;
3761 3780
diff --git a/linden/indra/newview/llcallingcard.cpp b/linden/indra/newview/llcallingcard.cpp
index 155fb60..15be0eb 100644
--- a/linden/indra/newview/llcallingcard.cpp
+++ b/linden/indra/newview/llcallingcard.cpp
@@ -137,8 +137,20 @@ LLAvatarTracker::~LLAvatarTracker()
137 deleteTrackingData(); 137 deleteTrackingData();
138 std::for_each(mObservers.begin(), mObservers.end(), DeletePointer()); 138 std::for_each(mObservers.begin(), mObservers.end(), DeletePointer());
139 std::for_each(mBuddyInfo.begin(), mBuddyInfo.end(), DeletePairedPointer()); 139 std::for_each(mBuddyInfo.begin(), mBuddyInfo.end(), DeletePairedPointer());
140 mObservers.erase(mObservers.begin(), mObservers.end());
141 mBuddyInfo.erase(mBuddyInfo.begin(), mBuddyInfo.end());
140} 142}
141 143
144
145void LLAvatarTracker::reset()
146{
147 std::for_each(mBuddyInfo.begin(), mBuddyInfo.end(), DeletePairedPointer());
148 mBuddyInfo.erase(mBuddyInfo.begin(), mBuddyInfo.end());
149 mModifyMask |= LLFriendObserver::REMOVE;
150 notifyObservers();
151}
152
153
142void LLAvatarTracker::track(const LLUUID& avatar_id, const std::string& name) 154void LLAvatarTracker::track(const LLUUID& avatar_id, const std::string& name)
143{ 155{
144 deleteTrackingData(); 156 deleteTrackingData();
diff --git a/linden/indra/newview/llcallingcard.h b/linden/indra/newview/llcallingcard.h
index 0db5376..d3f53c6 100644
--- a/linden/indra/newview/llcallingcard.h
+++ b/linden/indra/newview/llcallingcard.h
@@ -86,7 +86,7 @@ class LLAvatarTracker
86{ 86{
87public: 87public:
88 static LLAvatarTracker& instance() { return sInstance; } 88 static LLAvatarTracker& instance() { return sInstance; }
89 89 void reset();
90 void track(const LLUUID& avatar_id, const std::string& name); 90 void track(const LLUUID& avatar_id, const std::string& name);
91 void untrack(const LLUUID& avatar_id); 91 void untrack(const LLUUID& avatar_id);
92 bool isTrackedAgentValid() { return mTrackedAgentValid; } 92 bool isTrackedAgentValid() { return mTrackedAgentValid; }
diff --git a/linden/indra/newview/llfloaterbuycurrency.cpp b/linden/indra/newview/llfloaterbuycurrency.cpp
index 07723e0..5096495 100644
--- a/linden/indra/newview/llfloaterbuycurrency.cpp
+++ b/linden/indra/newview/llfloaterbuycurrency.cpp
@@ -192,7 +192,7 @@ BOOL LLFloaterBuyCurrencyUI::canClose()
192void LLFloaterBuyCurrencyUI::onClose(bool app_quitting) 192void LLFloaterBuyCurrencyUI::onClose(bool app_quitting)
193{ 193{
194 LLFloater::onClose(app_quitting); 194 LLFloater::onClose(app_quitting);
195 destroy(); 195
196} 196}
197 197
198void LLFloaterBuyCurrencyUI::updateUI() 198void LLFloaterBuyCurrencyUI::updateUI()
diff --git a/linden/indra/newview/llstatusbar.h b/linden/indra/newview/llstatusbar.h
index 92be319..9ed067f 100644
--- a/linden/indra/newview/llstatusbar.h
+++ b/linden/indra/newview/llstatusbar.h
@@ -121,7 +121,8 @@ public:
121 S32 getSquareMetersCommitted() const; 121 S32 getSquareMetersCommitted() const;
122 S32 getSquareMetersLeft() const; 122 S32 getSquareMetersLeft() const;
123 LLRegionDetails mRegionDetails; 123 LLRegionDetails mRegionDetails;
124 124
125 void clearBalance() { mBalance = 0; }
125private: 126private:
126 static void onCommitSearch(LLUICtrl*, void* data); 127 static void onCommitSearch(LLUICtrl*, void* data);
127 static void onClickSearch(void* data); 128 static void onClickSearch(void* data);
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp
index e109673..7526944 100644
--- a/linden/indra/newview/llviewermenu.cpp
+++ b/linden/indra/newview/llviewermenu.cpp
@@ -1560,6 +1560,7 @@ void cleanup_menus()
1560{ 1560{
1561 LL_DEBUGS("AFK") << "cleanup_menus start" << LL_ENDL; 1561 LL_DEBUGS("AFK") << "cleanup_menus start" << LL_ENDL;
1562 sMenus.clear(); 1562 sMenus.clear();
1563 LLMenuGL::sMenuContainer = NULL;
1563 1564
1564 delete gMenuParcelObserver; 1565 delete gMenuParcelObserver;
1565 gMenuParcelObserver = NULL; 1566 gMenuParcelObserver = NULL;