aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/llmutelist.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview/llmutelist.cpp')
-rw-r--r--linden/indra/newview/llmutelist.cpp45
1 files changed, 36 insertions, 9 deletions
diff --git a/linden/indra/newview/llmutelist.cpp b/linden/indra/newview/llmutelist.cpp
index 0cdfe83..fe42608 100644
--- a/linden/indra/newview/llmutelist.cpp
+++ b/linden/indra/newview/llmutelist.cpp
@@ -97,6 +97,26 @@ const char AGENT_SUFFIX[] = " (resident)";
97const char OBJECT_SUFFIX[] = " (object)"; 97const char OBJECT_SUFFIX[] = " (object)";
98const char GROUP_SUFFIX[] = " (group)"; 98const char GROUP_SUFFIX[] = " (group)";
99 99
100
101LLMute::LLMute(const LLUUID& id, const std::string& name, EType type, U32 flags)
102 : mID(id),
103 mName(name),
104 mType(type),
105 mFlags(flags)
106{
107 // muting is done by root objects only - try to find this objects root
108 LLViewerObject *objectp = gObjectList.findObject(mID);
109 if ((objectp) && (!objectp->isAvatar()))
110 {
111 LLViewerObject *parentp = (LLViewerObject *)objectp->getParent();
112 if (parentp)
113 {
114 mID = parentp->getID();
115 }
116 }
117}
118
119
100std::string LLMute::getDisplayName() const 120std::string LLMute::getDisplayName() const
101{ 121{
102 std::string name_with_suffix = mName; 122 std::string name_with_suffix = mName;
@@ -216,17 +236,24 @@ void LLMuteList::loadUserVolumes()
216//----------------------------------------------------------------------------- 236//-----------------------------------------------------------------------------
217LLMuteList::~LLMuteList() 237LLMuteList::~LLMuteList()
218{ 238{
219 std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "volume_settings.xml"); 239 // If we quit from the login screen we will not have an SL account
220 LLSD settings_llsd; 240 // name. Don't try to save, otherwise we'll dump a file in
221 241 // C:\Program Files\SecondLife\ JC
222 for(user_volume_map_t::iterator iter = mUserVolumeSettings.begin(); iter != mUserVolumeSettings.end(); ++iter) 242 std::string user_dir = gDirUtilp->getLindenUserDir();
243 if (!user_dir.empty())
223 { 244 {
224 settings_llsd[iter->first.asString()] = iter->second; 245 std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "volume_settings.xml");
225 } 246 LLSD settings_llsd;
226 247
227 llofstream file; 248 for(user_volume_map_t::iterator iter = mUserVolumeSettings.begin(); iter != mUserVolumeSettings.end(); ++iter)
228 file.open(filename); 249 {
229 LLSDSerialize::toPrettyXML(settings_llsd, file); 250 settings_llsd[iter->first.asString()] = iter->second;
251 }
252
253 llofstream file;
254 file.open(filename);
255 LLSDSerialize::toPrettyXML(settings_llsd, file);
256 }
230} 257}
231 258
232BOOL LLMuteList::isLinden(const std::string& name) const 259BOOL LLMuteList::isLinden(const std::string& name) const