summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/lldaycyclemanager.cpp23
1 files changed, 14 insertions, 9 deletions
diff --git a/indra/newview/lldaycyclemanager.cpp b/indra/newview/lldaycyclemanager.cpp
index 2e622d002c..07a9a72e68 100644
--- a/indra/newview/lldaycyclemanager.cpp
+++ b/indra/newview/lldaycyclemanager.cpp
@@ -88,20 +88,25 @@ bool LLDayCycleManager::savePreset(const std::string& name, const LLSD& data)
bool LLDayCycleManager::deletePreset(const std::string& name)
{
- std::string path;
- std::string filename = LLURI::escape(name) + ".xml";
+ // Remove it from the map.
+ dc_map_t::iterator it = mDayCycleMap.find(name);
+ if (it == mDayCycleMap.end())
+ {
+ LL_WARNS("Windlight") << "No day cycle named " << name << LL_ENDL;
+ return false;
+ }
+ mDayCycleMap.erase(it);
- // Try removing specified user preset.
- path = getUserDir() + filename;
- if (gDirUtilp->fileExists(path))
+ // Remove from the filesystem.
+ std::string filename = LLURI::escape(name) + ".xml";
+ if (gDirUtilp->fileExists(getUserDir() + filename))
{
gDirUtilp->deleteFilesInDir(getUserDir(), filename);
- mModifySignal();
- return true;
}
- // Invalid or system preset.
- return false;
+ // Signal interested parties.
+ mModifySignal();
+ return true;
}
boost::signals2::connection LLDayCycleManager::setModifyCallback(const modify_signal_t::slot_type& cb)