summaryrefslogtreecommitdiff
path: root/indra/newview/llviewercontrol.cpp
diff options
context:
space:
mode:
authorJames Cook <james@lindenlab.com>2009-07-06 21:58:04 +0000
committerJames Cook <james@lindenlab.com>2009-07-06 21:58:04 +0000
commitd6101558a171dbd2390792ac1e78d09fc2c27711 (patch)
treee5fea96c850fb254237c2869f2234fc4a4367e98 /indra/newview/llviewercontrol.cpp
parent39905b927d60e204438705728d2c214cb3f9ef81 (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.cpp65
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