diff options
| author | James Cook <james@lindenlab.com> | 2009-07-06 21:58:04 +0000 |
|---|---|---|
| committer | James Cook <james@lindenlab.com> | 2009-07-06 21:58:04 +0000 |
| commit | d6101558a171dbd2390792ac1e78d09fc2c27711 (patch) | |
| tree | e5fea96c850fb254237c2869f2234fc4a4367e98 /indra/newview/llviewercontrol.cpp | |
| parent | 39905b927d60e204438705728d2c214cb3f9ef81 (diff) | |
Merge xui-army-5 to viewer-2, includes layout, art, and color changes, also UI color refactoring and new FreeType font library on Linux.
svn merge -r126038:126164 svn+ssh://svn.lindenlab.com/svn/linden/branches/skinning/xui-army-5
Diffstat (limited to 'indra/newview/llviewercontrol.cpp')
| -rw-r--r-- | indra/newview/llviewercontrol.cpp | 65 |
1 files changed, 63 insertions, 2 deletions
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 320b950649..0f3feb789f 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -78,7 +78,6 @@ BOOL gHackGodmode = FALSE; LLControlGroup gSavedSettings("Global"); // saved at end of session -LLControlGroup gSavedSkinSettings("Skinning"); // saved at end of session LLControlGroup gSavedPerAccountSettings("PerAccount"); // saved at end of session LLControlGroup gCrashSettings("CrashSettings"); // saved at end of session LLControlGroup gWarningSettings("Warnings"); // persists ignored dialogs/warnings @@ -585,7 +584,6 @@ void settings_setup_listeners() gSavedSettings.getControl("DebugViews")->getSignal()->connect(boost::bind(&handleDebugViewsChanged, _2)); gSavedSettings.getControl("UserLogFile")->getSignal()->connect(boost::bind(&handleLogFileChanged, _2)); gSavedSettings.getControl("RenderHideGroupTitle")->getSignal()->connect(boost::bind(handleHideGroupTitleChanged, _2)); - gSavedSkinSettings.getControl("EffectColor")->getSignal()->connect(boost::bind(handleEffectColorChanged, _2)); gSavedSettings.getControl("HighResSnapshot")->getSignal()->connect(boost::bind(handleHighResSnapshotChanged, _2)); gSavedSettings.getControl("VectorizePerfTest")->getSignal()->connect(boost::bind(&handleVectorizeChanged, _2)); gSavedSettings.getControl("VectorizeEnable")->getSignal()->connect(boost::bind(&handleVectorizeChanged, _2)); @@ -603,6 +601,69 @@ void settings_setup_listeners() gSavedSettings.getControl("VelocityInterpolate")->getSignal()->connect(boost::bind(&handleVelocityInterpolate, _2)); } +class ColorConvertFunctor : public LLControlGroup::ApplyFunctor +{ +public: + ColorConvertFunctor(LLUIColorTable::Params& params) + :mParams(params) + { + } + + void apply(const std::string& name, LLControlVariable* control) + { + if(control->isType(TYPE_COL4)) + { + LLUIColorTable::ColorParams color_params; + color_params.value = LLColor4(control->getValue()); + + mParams.color_entries.add(LLUIColorTable::ColorEntryParams().name(name).color(color_params)); + } + } + +private: + LLUIColorTable::Params& mParams; +}; + +static void convert_legacy_color_settings(const std::string& location_key, ELLPath path) +{ + LLControlGroup::getInstance("Skinning")->cleanup(); + LLAppViewer::instance()->loadSettingsFromDirectory(location_key); + + LLUIColorTable::Params params; + ColorConvertFunctor ccf(params); + LLControlGroup::getInstance("Skinning")->applyToAll(&ccf); + + LLXMLNodePtr output_node = new LLXMLNode("colors", false); + LLXUIParser::instance().writeXUI(output_node, params); + + if(!output_node->isNull()) + { + std::string filename = gDirUtilp->getExpandedFilename(path, "colors_def.xml"); + LLFILE *fp = LLFile::fopen(filename, "w"); + + if(fp != NULL) + { + LLXMLNode::writeHeaderToFile(fp); + output_node->writeToFile(fp); + + fclose(fp); + } + } + + LLControlGroup::getInstance("Skinning")->cleanup(); +} + +void convert_legacy_color_settings() +{ + LLControlGroup saved_skin_settings("Skinning"); + + convert_legacy_color_settings("DefaultSkin", LL_PATH_DEFAULT_SKIN); + convert_legacy_color_settings("CurrentSkin", LL_PATH_TOP_SKIN); + convert_legacy_color_settings("UserSkin", LL_PATH_USER_SKIN); + + saved_skin_settings.cleanup(); +} + #if TEST_CACHED_CONTROL |
