diff options
author | Vadim ProductEngine <vsavchuk@productengine.com> | 2011-06-07 14:23:10 +0300 |
---|---|---|
committer | Vadim ProductEngine <vsavchuk@productengine.com> | 2011-06-07 14:23:10 +0300 |
commit | 497c0983bb013cb65b6faf10045ea7b62511cc55 (patch) | |
tree | b3d20dcf47109a5e94ffa888f2add1448fa7ff0d /indra | |
parent | 0a2406b494bed489da02f27852d916790b412ab5 (diff) |
STORM-1253 WIP Fixed a potential bug: removing a day cycle didn't remove it from internal data structures.
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/lldaycyclemanager.cpp | 23 |
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) |