aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra
diff options
context:
space:
mode:
authorelektrahesse2010-09-11 16:57:06 +0200
committerelektrahesse2010-09-11 16:57:06 +0200
commitc59f576ffaa210709a28a240b71ba59c95e926fe (patch)
tree78b706b35ba2c1e6308d1323e0116c2a9d8556ee /linden/indra
parentFixed Boost.cmake and removed the boost::system and boost::filesystem depende... (diff)
parentUpdated the artwork package to fix a few items that were out of date (diff)
downloadmeta-impy-c59f576ffaa210709a28a240b71ba59c95e926fe.zip
meta-impy-c59f576ffaa210709a28a240b71ba59c95e926fe.tar.gz
meta-impy-c59f576ffaa210709a28a240b71ba59c95e926fe.tar.bz2
meta-impy-c59f576ffaa210709a28a240b71ba59c95e926fe.tar.xz
Fixed merge conflicts, propagated the _stat usage for windows in floaterlocalassetbrowse.cpp
Diffstat (limited to 'linden/indra')
-rw-r--r--linden/indra/cmake/00-Common.cmake18
-rw-r--r--linden/indra/cmake/ViewerMiscLibs.cmake4
-rw-r--r--linden/indra/llmedia/llmediaimplgstreamer.cpp12
-rw-r--r--linden/indra/llrender/llfontregistry.cpp73
-rw-r--r--linden/indra/llrender/llfontregistry.h18
-rw-r--r--linden/indra/llui/llmenugl.cpp4
-rw-r--r--linden/indra/mac_crash_logger/Info.plist2
-rw-r--r--linden/indra/mac_updater/Info.plist2
-rw-r--r--linden/indra/mac_updater/mac_updater.cpp2
-rw-r--r--linden/indra/newview/CMakeLists.txt4
-rw-r--r--linden/indra/newview/Info-Imprudence.plist2
-rw-r--r--linden/indra/newview/app_settings/settings.xml49
-rw-r--r--linden/indra/newview/app_settings/viewerversion.xml2
-rw-r--r--linden/indra/newview/floaterlocalassetbrowse.cpp20
-rw-r--r--linden/indra/newview/impprefsfonts.cpp86
-rw-r--r--linden/indra/newview/impprefsfonts.h45
-rw-r--r--linden/indra/newview/llagent.cpp2
-rw-r--r--linden/indra/newview/llappviewerlinux.cpp2
-rw-r--r--linden/indra/newview/llfloaterpreference.cpp15
-rw-r--r--linden/indra/newview/llfloaterpreference.h2
-rw-r--r--linden/indra/newview/llpanelplace.cpp6
-rw-r--r--linden/indra/newview/llpanelskins.cpp18
-rw-r--r--linden/indra/newview/llpanelskins.h2
-rw-r--r--linden/indra/newview/llpreviewgesture.cpp26
-rw-r--r--linden/indra/newview/llstartup.cpp45
-rw-r--r--linden/indra/newview/lltoolpie.cpp5
-rwxr-xr-xlinden/indra/newview/llviewermessage.cpp15
-rw-r--r--linden/indra/newview/llvoavatar.cpp2
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/fonts.xml83
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml3
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/notifications.xml7
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_fonts.xml49
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_graphics1.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_skins.xml41
-rwxr-xr-xlinden/indra/newview/viewer_manifest.py20
36 files changed, 610 insertions, 90 deletions
diff --git a/linden/indra/cmake/00-Common.cmake b/linden/indra/cmake/00-Common.cmake
index c6b6858..d1f379c 100644
--- a/linden/indra/cmake/00-Common.cmake
+++ b/linden/indra/cmake/00-Common.cmake
@@ -169,7 +169,23 @@ if (LINUX)
169 add_definitions(-fno-stack-protector) 169 add_definitions(-fno-stack-protector)
170 endif (NOT STANDALONE) 170 endif (NOT STANDALONE)
171 if (${ARCH} STREQUAL "x86_64") 171 if (${ARCH} STREQUAL "x86_64")
172 add_definitions( -DLINUX64=1 ) 172 add_definitions( -DLINUX64=1
173 #this rather needs to be done elsewhere
174 #anyway these are the flags for the 64bit releases:
175 -DLL_VECTORIZE=1
176 -O2
177 -fomit-frame-pointer
178 -pipe
179 -mmmx
180 -msse
181 -mfpmath=sse
182 -msse2
183 -ffast-math
184 -ftree-vectorize
185 -fweb -fexpensive-optimizations
186 -frename-registers
187 )
188
173 endif (${ARCH} STREQUAL "x86_64") 189 endif (${ARCH} STREQUAL "x86_64")
174 endif (VIEWER) 190 endif (VIEWER)
175 191
diff --git a/linden/indra/cmake/ViewerMiscLibs.cmake b/linden/indra/cmake/ViewerMiscLibs.cmake
index 4a62ebd..7fe1040 100644
--- a/linden/indra/cmake/ViewerMiscLibs.cmake
+++ b/linden/indra/cmake/ViewerMiscLibs.cmake
@@ -4,9 +4,9 @@ include(Prebuilt)
4if (NOT STANDALONE) 4if (NOT STANDALONE)
5 use_prebuilt_binary(libuuid) 5 use_prebuilt_binary(libuuid)
6 use_prebuilt_binary(vivox) 6 use_prebuilt_binary(vivox)
7 if(LINUX64) 7 if(LINUX AND ${ARCH} STREQUAL "x86_64")
8 use_prebuilt_binary(32bitcompatibilitylibs) 8 use_prebuilt_binary(32bitcompatibilitylibs)
9 endif(LINUX64) 9 endif(LINUX AND ${ARCH} STREQUAL "x86_64")
10 use_prebuilt_binary(fontconfig) 10 use_prebuilt_binary(fontconfig)
11endif(NOT STANDALONE) 11endif(NOT STANDALONE)
12 12
diff --git a/linden/indra/llmedia/llmediaimplgstreamer.cpp b/linden/indra/llmedia/llmediaimplgstreamer.cpp
index 2bfe4ea..7af9c9a 100644
--- a/linden/indra/llmedia/llmediaimplgstreamer.cpp
+++ b/linden/indra/llmedia/llmediaimplgstreamer.cpp
@@ -188,9 +188,6 @@ bool LLMediaImplGStreamer::startup (LLMediaManagerData* init_data)
188 // Protect against GStreamer resetting the locale, yuck. 188 // Protect against GStreamer resetting the locale, yuck.
189 static std::string saved_locale; 189 static std::string saved_locale;
190 saved_locale = setlocale(LC_ALL, NULL); 190 saved_locale = setlocale(LC_ALL, NULL);
191#if LL_DARWIN
192 setenv("GST_PLUGIN_SYSTEM_PATH", "lib/gstreamer-plugins", TRUE);
193#endif
194 if (0 == gst_init_check(NULL, NULL, NULL)) 191 if (0 == gst_init_check(NULL, NULL, NULL))
195 { 192 {
196 LL_WARNS("MediaImpl") << "GStreamer library failed to initialize and load standard plugins." << LL_ENDL; 193 LL_WARNS("MediaImpl") << "GStreamer library failed to initialize and load standard plugins." << LL_ENDL;
@@ -294,7 +291,6 @@ void LLMediaImplGStreamer::set_gst_plugin_path()
294 // Search both Imprudence and Imprudence\lib\gstreamer-plugins. 291 // Search both Imprudence and Imprudence\lib\gstreamer-plugins.
295 // But we also want to search the path the user has set, if any. 292 // But we also want to search the path the user has set, if any.
296 std::string plugin_path = 293 std::string plugin_path =
297 "GST_PLUGIN_PATH=" +
298#if LL_WINDOWS 294#if LL_WINDOWS
299 imp_dir + "\\lib\\gstreamer-plugins" + 295 imp_dir + "\\lib\\gstreamer-plugins" +
300#elif LL_DARWIN 296#elif LL_DARWIN
@@ -307,9 +303,9 @@ void LLMediaImplGStreamer::set_gst_plugin_path()
307 303
308 // Place GST_PLUGIN_PATH in the environment settings 304 // Place GST_PLUGIN_PATH in the environment settings
309#if LL_WINDOWS 305#if LL_WINDOWS
310 put_result = _putenv( (char*)plugin_path.c_str() ); 306 put_result = _putenv_s( "GST_PLUGIN_PATH", (char*)plugin_path.c_str() );
311#elif LL_DARWIN 307#elif LL_DARWIN
312 put_result = putenv( (char*)plugin_path.c_str() ); 308 put_result = setenv( "GST_PLUGIN_PATH", (char*)plugin_path.c_str(), 1 );
313#endif 309#endif
314 310
315 if( put_result == -1 ) 311 if( put_result == -1 )
@@ -324,9 +320,9 @@ void LLMediaImplGStreamer::set_gst_plugin_path()
324 320
325 // Don't load system plugins. We only want to use ours, to avoid conflicts. 321 // Don't load system plugins. We only want to use ours, to avoid conflicts.
326#if LL_WINDOWS 322#if LL_WINDOWS
327 put_result = _putenv( "GST_PLUGIN_SYSTEM_PATH=\"\"" ); 323 put_result = _putenv_s( "GST_PLUGIN_SYSTEM_PATH", "" );
328#elif LL_DARWIN 324#elif LL_DARWIN
329 put_result = putenv( "GST_PLUGIN_SYSTEM_PATH=\"\"" ); 325 put_result = setenv( "GST_PLUGIN_SYSTEM_PATH", "", 1 );
330#endif 326#endif
331 327
332 if( put_result == -1 ) 328 if( put_result == -1 )
diff --git a/linden/indra/llrender/llfontregistry.cpp b/linden/indra/llrender/llfontregistry.cpp
index 619228e..b1d8c5c 100644
--- a/linden/indra/llrender/llfontregistry.cpp
+++ b/linden/indra/llrender/llfontregistry.cpp
@@ -48,7 +48,8 @@ using std::map;
48bool fontDescInitFromXML(LLXMLNodePtr node, LLFontDescriptor& desc); 48bool fontDescInitFromXML(LLXMLNodePtr node, LLFontDescriptor& desc);
49 49
50LLFontDescriptor::LLFontDescriptor(): 50LLFontDescriptor::LLFontDescriptor():
51 mStyle(0) 51 mStyle(0),
52 mSizeMult(1.0)
52{ 53{
53} 54}
54 55
@@ -59,7 +60,8 @@ LLFontDescriptor::LLFontDescriptor(const std::string& name,
59 mName(name), 60 mName(name),
60 mSize(size), 61 mSize(size),
61 mStyle(style), 62 mStyle(style),
62 mFileNames(file_names) 63 mFileNames(file_names),
64 mSizeMult(1.0)
63{ 65{
64} 66}
65 67
@@ -68,7 +70,8 @@ LLFontDescriptor::LLFontDescriptor(const std::string& name,
68 const U8 style): 70 const U8 style):
69 mName(name), 71 mName(name),
70 mSize(size), 72 mSize(size),
71 mStyle(style) 73 mStyle(style),
74 mSizeMult(1.0)
72{ 75{
73} 76}
74 77
@@ -165,7 +168,9 @@ LLFontDescriptor LLFontDescriptor::normalize() const
165 if (removeSubString(new_name,"Italic")) 168 if (removeSubString(new_name,"Italic"))
166 new_style |= LLFontGL::ITALIC; 169 new_style |= LLFontGL::ITALIC;
167 170
168 return LLFontDescriptor(new_name,new_size,new_style,getFileNames()); 171 LLFontDescriptor norm(new_name,new_size,new_style,getFileNames());
172 norm.setSizeMult(mSizeMult);
173 return norm;
169} 174}
170 175
171LLFontRegistry::LLFontRegistry(const string_vec_t& xui_paths) 176LLFontRegistry::LLFontRegistry(const string_vec_t& xui_paths)
@@ -177,6 +182,9 @@ LLFontRegistry::LLFontRegistry(const string_vec_t& xui_paths)
177 // This is potentially a slow directory traversal, so we want to 182 // This is potentially a slow directory traversal, so we want to
178 // cache the result. 183 // cache the result.
179 mUltimateFallbackList = LLWindow::getDynamicFallbackFontList(); 184 mUltimateFallbackList = LLWindow::getDynamicFallbackFontList();
185
186 std::string font_choice = gSavedSettings.getString("FontChoice");
187 setAlias("SansSerif", font_choice);
180} 188}
181 189
182LLFontRegistry::~LLFontRegistry() 190LLFontRegistry::~LLFontRegistry()
@@ -252,6 +260,12 @@ bool fontDescInitFromXML(LLXMLNodePtr node, LLFontDescriptor& desc)
252 } 260 }
253 261
254 desc.setSize(s_template_string); 262 desc.setSize(s_template_string);
263
264 F32 attr_size_mult;
265 if (node->getAttributeF32("size_mult",attr_size_mult))
266 {
267 desc.setSizeMult(attr_size_mult);
268 }
255 } 269 }
256 270
257 LLXMLNodePtr child; 271 LLXMLNodePtr child;
@@ -360,7 +374,6 @@ LLFontGL *LLFontRegistry::createFont(const LLFontDescriptor& desc)
360 return NULL; 374 return NULL;
361 } 375 }
362 llinfos << "createFont " << norm_desc.getName() << " size " << norm_desc.getSize() << " style " << ((S32) norm_desc.getStyle()) << llendl; 376 llinfos << "createFont " << norm_desc.getName() << " size " << norm_desc.getSize() << " style " << ((S32) norm_desc.getStyle()) << llendl;
363 F32 fallback_scale = 1.0;
364 377
365 // Find corresponding font template (based on same descriptor with no size specified) 378 // Find corresponding font template (based on same descriptor with no size specified)
366 LLFontDescriptor template_desc(norm_desc); 379 LLFontDescriptor template_desc(norm_desc);
@@ -428,13 +441,13 @@ LLFontGL *LLFontRegistry::createFont(const LLFontDescriptor& desc)
428 LLFontGL *fontp = new LLFontGL; 441 LLFontGL *fontp = new LLFontGL;
429 std::string font_path = local_path + *file_name_it; 442 std::string font_path = local_path + *file_name_it;
430 BOOL is_fallback = !is_first_found; 443 BOOL is_fallback = !is_first_found;
431 F32 extra_scale = (is_fallback)?fallback_scale:1.0; 444 F32 size_mult = (is_fallback ? 1 : match_desc->getSizeMult());
432 if (!fontp->loadFace(font_path, extra_scale * point_size, 445 if (!fontp->loadFace(font_path, point_size * size_mult,
433 LLFontGL::sVertDPI, LLFontGL::sHorizDPI, 2, is_fallback)) 446 LLFontGL::sVertDPI, LLFontGL::sHorizDPI, 2, is_fallback))
434 { 447 {
435 font_path = sys_path + *file_name_it; 448 font_path = sys_path + *file_name_it;
436 449
437 if (!fontp->loadFace(font_path, extra_scale * point_size, 450 if (!fontp->loadFace(font_path, point_size * size_mult,
438 LLFontGL::sVertDPI, LLFontGL::sHorizDPI, 2, is_fallback)) 451 LLFontGL::sVertDPI, LLFontGL::sHorizDPI, 2, is_fallback))
439 { 452 {
440 LL_INFOS_ONCE("LLFontRegistry") << "Couldn't load font " << *file_name_it << LL_ENDL; 453 LL_INFOS_ONCE("LLFontRegistry") << "Couldn't load font " << *file_name_it << LL_ENDL;
@@ -511,17 +524,24 @@ LLFontGL *LLFontRegistry::getFont(const LLFontDescriptor& orig_desc)
511{ 524{
512 LLFontDescriptor norm_desc = orig_desc.normalize(); 525 LLFontDescriptor norm_desc = orig_desc.normalize();
513 526
527 if (hasAlias(norm_desc.getName()))
528 {
529 // llinfos << "Font " << norm_desc.getName() << " is alias for "
530 // << expandAlias(norm_desc.getName()) << llendl;
531 norm_desc.setName(expandAlias(norm_desc.getName()));
532 }
533
514 font_reg_map_t::iterator it = mFontMap.find(norm_desc); 534 font_reg_map_t::iterator it = mFontMap.find(norm_desc);
515 if (it != mFontMap.end()) 535 if (it != mFontMap.end())
516 return it->second; 536 return it->second;
517 else 537 else
518 { 538 {
519 LLFontGL *fontp = createFont(orig_desc); 539 LLFontGL *fontp = createFont(norm_desc);
520 if (!fontp) 540 if (!fontp)
521 { 541 {
522 llwarns << "getFont failed, name " << orig_desc.getName() 542 llwarns << "getFont failed, name " << norm_desc.getName()
523 <<" style=[" << ((S32) orig_desc.getStyle()) << "]" 543 <<" style=[" << ((S32) norm_desc.getStyle()) << "]"
524 << " size=[" << orig_desc.getSize() << "]" << llendl; 544 << " size=[" << norm_desc.getSize() << "]" << llendl;
525 } 545 }
526 return fontp; 546 return fontp;
527 } 547 }
@@ -639,6 +659,7 @@ void LLFontRegistry::dump()
639 llinfos << "Font: name=" << desc.getName() 659 llinfos << "Font: name=" << desc.getName()
640 << " style=[" << ((S32)desc.getStyle()) << "]" 660 << " style=[" << ((S32)desc.getStyle()) << "]"
641 << " size=[" << desc.getSize() << "]" 661 << " size=[" << desc.getSize() << "]"
662 << " size_mult=[" << desc.getSizeMult() << "]"
642 << " fileNames=" 663 << " fileNames="
643 << llendl; 664 << llendl;
644 for (string_vec_t::const_iterator file_it=desc.getFileNames().begin(); 665 for (string_vec_t::const_iterator file_it=desc.getFileNames().begin();
@@ -649,3 +670,31 @@ void LLFontRegistry::dump()
649 } 670 }
650 } 671 }
651} 672}
673
674
675
676std::string LLFontRegistry::expandAlias(std::string alias_name)
677{
678 font_alias_map_t::iterator it = mFontAliases.find(alias_name);
679 if (it != mFontAliases.end())
680 {
681 return it->second;
682 }
683 return alias_name;
684}
685
686void LLFontRegistry::setAlias(std::string alias_name, std::string orig_name)
687{
688 mFontAliases[alias_name] = orig_name;
689}
690
691void LLFontRegistry::clearAlias(std::string alias_name)
692{
693 mFontAliases.erase(alias_name);
694}
695
696bool LLFontRegistry::hasAlias(std::string alias_name)
697{
698 font_alias_map_t::iterator it = mFontAliases.find(alias_name);
699 return (it != mFontAliases.end());
700}
diff --git a/linden/indra/llrender/llfontregistry.h b/linden/indra/llrender/llfontregistry.h
index 523e184..67a529f 100644
--- a/linden/indra/llrender/llfontregistry.h
+++ b/linden/indra/llrender/llfontregistry.h
@@ -56,6 +56,9 @@ public:
56 void setName(const std::string& name) { mName = name; } 56 void setName(const std::string& name) { mName = name; }
57 const std::string& getSize() const { return mSize; } 57 const std::string& getSize() const { return mSize; }
58 void setSize(const std::string& size) { mSize = size; } 58 void setSize(const std::string& size) { mSize = size; }
59 F32 getSizeMult() const { return mSizeMult; }
60 void setSizeMult(F32 size_mult) { mSizeMult = size_mult; }
61
59 const std::vector<std::string>& getFileNames() const { return mFileNames; } 62 const std::vector<std::string>& getFileNames() const { return mFileNames; }
60 std::vector<std::string>& getFileNames() { return mFileNames; } 63 std::vector<std::string>& getFileNames() { return mFileNames; }
61 const U8 getStyle() const { return mStyle; } 64 const U8 getStyle() const { return mStyle; }
@@ -64,6 +67,7 @@ public:
64private: 67private:
65 std::string mName; 68 std::string mName;
66 std::string mSize; 69 std::string mSize;
70 F32 mSizeMult;
67 string_vec_t mFileNames; 71 string_vec_t mFileNames;
68 U8 mStyle; 72 U8 mStyle;
69}; 73};
@@ -97,15 +101,29 @@ public:
97 101
98 const string_vec_t& getUltimateFallbackList() const { return mUltimateFallbackList; } 102 const string_vec_t& getUltimateFallbackList() const { return mUltimateFallbackList; }
99 103
104 // If alias_name is a defined alias, returns the original name.
105 // Otherwise returns alias_name itself.
106 std::string expandAlias(std::string alias_name);
107 // Define alias_name as an alias of orig_name.
108 void setAlias(std::string alias_name, std::string orig_name);
109 // Undefines the alias alias_name. Does nothing if it's not an alias.
110 void clearAlias(std::string alias_name);
111 // True if the alias is defined.
112 bool hasAlias(std::string alias_name);
113
114
100private: 115private:
101 LLFontGL *createFont(const LLFontDescriptor& desc); 116 LLFontGL *createFont(const LLFontDescriptor& desc);
102 typedef std::map<LLFontDescriptor,LLFontGL*> font_reg_map_t; 117 typedef std::map<LLFontDescriptor,LLFontGL*> font_reg_map_t;
103 typedef std::map<std::string,F32> font_size_map_t; 118 typedef std::map<std::string,F32> font_size_map_t;
119 typedef std::map<std::string,std::string> font_alias_map_t;
104 120
105 // Given a descriptor, look up specific font instantiation. 121 // Given a descriptor, look up specific font instantiation.
106 font_reg_map_t mFontMap; 122 font_reg_map_t mFontMap;
107 // Given a size name, look up the point size. 123 // Given a size name, look up the point size.
108 font_size_map_t mFontSizes; 124 font_size_map_t mFontSizes;
125 // Given an alias name, look up the original name.
126 font_alias_map_t mFontAliases;
109 127
110 string_vec_t mUltimateFallbackList; 128 string_vec_t mUltimateFallbackList;
111 string_vec_t mXUIPaths; 129 string_vec_t mXUIPaths;
diff --git a/linden/indra/llui/llmenugl.cpp b/linden/indra/llui/llmenugl.cpp
index e00700a..91bb581 100644
--- a/linden/indra/llui/llmenugl.cpp
+++ b/linden/indra/llui/llmenugl.cpp
@@ -101,8 +101,8 @@ const U32 SEPARATOR_HEIGHT_PIXELS = 8;
101const S32 TEAROFF_SEPARATOR_HEIGHT_PIXELS = 10; 101const S32 TEAROFF_SEPARATOR_HEIGHT_PIXELS = 10;
102const S32 MENU_ITEM_PADDING = 4; 102const S32 MENU_ITEM_PADDING = 4;
103 103
104const std::string BOOLEAN_TRUE_PREFIX( "X" ); 104const std::string BOOLEAN_TRUE_PREFIX( "\xe2\x9c\x93" ); // U+2714 -- MC
105const std::string BRANCH_SUFFIX( ">" ); 105const std::string BRANCH_SUFFIX( "\xE2\x96\xB6" ); // U+25B6 BLACK RIGHT-POINTING TRIANGLE
106const std::string ARROW_UP ("^^^^^^^"); 106const std::string ARROW_UP ("^^^^^^^");
107const std::string ARROW_DOWN("vvvvvvv"); 107const std::string ARROW_DOWN("vvvvvvv");
108 108
diff --git a/linden/indra/mac_crash_logger/Info.plist b/linden/indra/mac_crash_logger/Info.plist
index f48293e..a528b64 100644
--- a/linden/indra/mac_crash_logger/Info.plist
+++ b/linden/indra/mac_crash_logger/Info.plist
@@ -11,7 +11,7 @@
11 <key>CFBundleIconFile</key> 11 <key>CFBundleIconFile</key>
12 <string></string> 12 <string></string>
13 <key>CFBundleIdentifier</key> 13 <key>CFBundleIdentifier</key>
14 <string>com.secondlife.indra.crashreporter</string> 14 <string>org.imprudenceviewer.crashreporter</string>
15 <key>CFBundleInfoDictionaryVersion</key> 15 <key>CFBundleInfoDictionaryVersion</key>
16 <string>6.0</string> 16 <string>6.0</string>
17 <key>CFBundlePackageType</key> 17 <key>CFBundlePackageType</key>
diff --git a/linden/indra/mac_updater/Info.plist b/linden/indra/mac_updater/Info.plist
index bb27fdd..1e0f8cb 100644
--- a/linden/indra/mac_updater/Info.plist
+++ b/linden/indra/mac_updater/Info.plist
@@ -11,7 +11,7 @@
11 <key>CFBundleIconFile</key> 11 <key>CFBundleIconFile</key>
12 <string></string> 12 <string></string>
13 <key>CFBundleIdentifier</key> 13 <key>CFBundleIdentifier</key>
14 <string>com.secondlife.indra.autoupdater</string> 14 <string>org.imprudenceviewer.autoupdater</string>
15 <key>CFBundleInfoDictionaryVersion</key> 15 <key>CFBundleInfoDictionaryVersion</key>
16 <string>6.0</string> 16 <string>6.0</string>
17 <key>CFBundlePackageType</key> 17 <key>CFBundlePackageType</key>
diff --git a/linden/indra/mac_updater/mac_updater.cpp b/linden/indra/mac_updater/mac_updater.cpp
index 18cc0be..cf9de4b 100644
--- a/linden/indra/mac_updater/mac_updater.cpp
+++ b/linden/indra/mac_updater/mac_updater.cpp
@@ -649,7 +649,7 @@ static bool isFSRefViewerBundle(FSRef *targetRef)
649 } 649 }
650 else 650 else
651 { 651 {
652 if(CFStringCompare(targetBundleID, CFSTR("com.secondlife.indra.viewer"), 0) == kCFCompareEqualTo) 652 if(CFStringCompare(targetBundleID, CFSTR("org.imprudenceviewer.viewer"), 0) == kCFCompareEqualTo)
653 { 653 {
654 // This is the bundle we're looking for. 654 // This is the bundle we're looking for.
655 result = true; 655 result = true;
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt
index 995ef7e..1691095 100644
--- a/linden/indra/newview/CMakeLists.txt
+++ b/linden/indra/newview/CMakeLists.txt
@@ -87,6 +87,7 @@ set(viewer_SOURCE_FILES
87 hippoGridManager.cpp 87 hippoGridManager.cpp
88 hippoLimits.cpp 88 hippoLimits.cpp
89 hippoRestRequest.cpp 89 hippoRestRequest.cpp
90 impprefsfonts.cpp
90 jcfloater_animation_list.cpp 91 jcfloater_animation_list.cpp
91 jcfloaterareasearch.cpp 92 jcfloaterareasearch.cpp
92 lightshare.cpp 93 lightshare.cpp
@@ -525,6 +526,7 @@ set(viewer_HEADER_FILES
525 hippoGridManager.h 526 hippoGridManager.h
526 hippoLimits.h 527 hippoLimits.h
527 hippoRestRequest.h 528 hippoRestRequest.h
529 impprefsfonts.h
528 jcfloater_animation_list.h 530 jcfloater_animation_list.h
529 jcfloaterareasearch.h 531 jcfloaterareasearch.h
530 lightshare.h 532 lightshare.h
@@ -955,11 +957,13 @@ if (DARWIN)
955 find_library(APPKIT_LIBRARY AppKit) 957 find_library(APPKIT_LIBRARY AppKit)
956 find_library(COCOA_LIBRARY Cocoa) 958 find_library(COCOA_LIBRARY Cocoa)
957 find_library(IOKIT_LIBRARY IOKit) 959 find_library(IOKIT_LIBRARY IOKit)
960 find_library(SECURITY_LIBRARY SECURITY)
958 961
959 set(viewer_LIBRARIES 962 set(viewer_LIBRARIES
960 ${COCOA_LIBRARY} 963 ${COCOA_LIBRARY}
961 ${AGL_LIBRARY} 964 ${AGL_LIBRARY}
962 ${IOKIT_LIBRARY} 965 ${IOKIT_LIBRARY}
966 ${SECURITY_LIBRARY}
963 ) 967 )
964 968
965 # Add resource files to the project. 969 # Add resource files to the project.
diff --git a/linden/indra/newview/Info-Imprudence.plist b/linden/indra/newview/Info-Imprudence.plist
index e9728f8..419cacd 100644
--- a/linden/indra/newview/Info-Imprudence.plist
+++ b/linden/indra/newview/Info-Imprudence.plist
@@ -9,7 +9,7 @@
9 <key>CFBundleIconFile</key> 9 <key>CFBundleIconFile</key>
10 <string>viewer.icns</string> 10 <string>viewer.icns</string>
11 <key>CFBundleIdentifier</key> 11 <key>CFBundleIdentifier</key>
12 <string>com.secondlife.indra.viewer</string> 12 <string>org.imprudenceviewer.viewer</string>
13 <key>CFBundleInfoDictionaryVersion</key> 13 <key>CFBundleInfoDictionaryVersion</key>
14 <string>6.0</string> 14 <string>6.0</string>
15 <key>CFBundleName</key> 15 <key>CFBundleName</key>
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml
index 6b1c707..11220ed 100644
--- a/linden/indra/newview/app_settings/settings.xml
+++ b/linden/indra/newview/app_settings/settings.xml
@@ -13,7 +13,7 @@
13 <key>Type</key> 13 <key>Type</key>
14 <string>Boolean</string> 14 <string>Boolean</string>
15 <key>Value</key> 15 <key>Value</key>
16 <integer>1</integer> 16 <integer>0</integer>
17 </map> 17 </map>
18 <key>HighlightFriendsChat</key> 18 <key>HighlightFriendsChat</key>
19 <map> 19 <map>
@@ -36,9 +36,9 @@
36 <string>Color4</string> 36 <string>Color4</string>
37 <key>Value</key> 37 <key>Value</key>
38 <array> 38 <array>
39 <real>0.699999988079</real> 39 <real>1.0</real>
40 <real>0.899999976158</real> 40 <real>1.0</real>
41 <real>0.699999988079</real> 41 <real>0.0</real>
42 <real>1</real> 42 <real>1</real>
43 </array> 43 </array>
44 </map> 44 </map>
@@ -51,7 +51,7 @@
51 <key>Type</key> 51 <key>Type</key>
52 <string>Boolean</string> 52 <string>Boolean</string>
53 <key>Value</key> 53 <key>Value</key>
54 <integer>1</integer> 54 <integer>0</integer>
55 </map> 55 </map>
56 <key>OwnNameChatColor</key> 56 <key>OwnNameChatColor</key>
57 <map> 57 <map>
@@ -336,6 +336,17 @@
336 <integer>0</integer> 336 <integer>0</integer>
337 </array> 337 </array>
338 </map> 338 </map>
339 <key>FontChoice</key>
340 <map>
341 <key>Comment</key>
342 <string>User's font choice (DejaVu, Delicious, DroidSans, or Liberation)</string>
343 <key>Persist</key>
344 <integer>1</integer>
345 <key>Type</key>
346 <string>String</string>
347 <key>Value</key>
348 <string>DroidSans</string>
349 </map>
339 <key>GoAction</key> 350 <key>GoAction</key>
340 <map> 351 <map>
341 <key>Comment</key> 352 <key>Comment</key>
@@ -682,6 +693,17 @@
682 <key>Value</key> 693 <key>Value</key>
683 <integer>0</integer> 694 <integer>0</integer>
684 </map> 695 </map>
696 <key>ResetFocusOnSelfClick</key>
697 <map>
698 <key>Comment</key>
699 <string>Setting this to TRUE resets your camera when you left-click your avatar</string>
700 <key>Persist</key>
701 <integer>1</integer>
702 <key>Type</key>
703 <string>Boolean</string>
704 <key>Value</key>
705 <integer>0</integer>
706 </map>
685 <key>RezWithLandGroup</key> 707 <key>RezWithLandGroup</key>
686 <map> 708 <map>
687 <key>Comment</key> 709 <key>Comment</key>
@@ -826,6 +848,17 @@
826 <key>Value</key> 848 <key>Value</key>
827 <integer>0</integer> 849 <integer>0</integer>
828 </map> 850 </map>
851 <key>ShowGroupNameInChatIM</key>
852 <map>
853 <key>Comment</key>
854 <string>Show the group name when receiving group IMs</string>
855 <key>Persist</key>
856 <integer>1</integer>
857 <key>Type</key>
858 <string>Boolean</string>
859 <key>Value</key>
860 <integer>1</integer>
861 </map>
829 <key>ShowMiniMapRadar</key> 862 <key>ShowMiniMapRadar</key>
830 <map> 863 <map>
831 <key>Comment</key> 864 <key>Comment</key>
@@ -6212,7 +6245,7 @@
6212 <key>Type</key> 6245 <key>Type</key>
6213 <string>String</string> 6246 <string>String</string>
6214 <key>Value</key> 6247 <key>Value</key>
6215 <string>DejaVuSansCondensed.ttf</string> 6248 <string>DroidSans.ttf</string>
6216 </map> 6249 </map>
6217 <key>FontSansSerifBundledFallback</key> 6250 <key>FontSansSerifBundledFallback</key>
6218 <map> 6251 <map>
@@ -6223,7 +6256,7 @@
6223 <key>Type</key> 6256 <key>Type</key>
6224 <string>String</string> 6257 <string>String</string>
6225 <key>Value</key> 6258 <key>Value</key>
6226 <string>DejaVuSansCondensed.ttf</string> 6259 <string>DroidSans.ttf</string>
6227 </map> 6260 </map>
6228 <key>FontSansSerifBold</key> 6261 <key>FontSansSerifBold</key>
6229 <map> 6262 <map>
@@ -6234,7 +6267,7 @@
6234 <key>Type</key> 6267 <key>Type</key>
6235 <string>String</string> 6268 <string>String</string>
6236 <key>Value</key> 6269 <key>Value</key>
6237 <string>DejaVuSansCondensed-Bold.ttf</string> 6270 <string>DroidSans-Bold.ttf</string>
6238 </map> 6271 </map>
6239 <key>FontSansSerifFallback</key> 6272 <key>FontSansSerifFallback</key>
6240 <map> 6273 <map>
diff --git a/linden/indra/newview/app_settings/viewerversion.xml b/linden/indra/newview/app_settings/viewerversion.xml
index 3b1a7df..f5fb533 100644
--- a/linden/indra/newview/app_settings/viewerversion.xml
+++ b/linden/indra/newview/app_settings/viewerversion.xml
@@ -20,6 +20,6 @@ need to be changed manually - MC
20 <viewer version_patch="0" /> 20 <viewer version_patch="0" />
21 21
22 <!--string--> 22 <!--string-->
23 <viewer version_test="Experimental 2010.09.04" /> 23 <viewer version_test="Experimental 2010.09.11" />
24 24
25</viewer_version> 25</viewer_version>
diff --git a/linden/indra/newview/floaterlocalassetbrowse.cpp b/linden/indra/newview/floaterlocalassetbrowse.cpp
index c63fd2d..6564528 100644
--- a/linden/indra/newview/floaterlocalassetbrowse.cpp
+++ b/linden/indra/newview/floaterlocalassetbrowse.cpp
@@ -120,8 +120,14 @@ LocalBitmap::LocalBitmap(std::string fullpath)
120 120
121 /* getting file's last modified */ 121 /* getting file's last modified */
122 122
123 llstat temp_stat; 123#ifdef LL_WINDOWS
124 LLFile::stat(this->filename, &temp_stat); 124 struct _stat temp_stat;
125 _stat(this->filename.c_str(), &temp_stat);
126#else
127 struct stat temp_stat;
128 stat(this->filename.c_str(), &temp_stat);
129#endif
130
125 std::time_t time = temp_stat.st_mtime; 131 std::time_t time = temp_stat.st_mtime;
126 132
127 this->last_modified = asctime( localtime(&time) ); 133 this->last_modified = asctime( localtime(&time) );
@@ -160,8 +166,14 @@ void LocalBitmap::updateSelf()
160 if ( !gDirUtilp->fileExists(this->filename) ) { this->linkstatus = LINK_BROKEN; return; } 166 if ( !gDirUtilp->fileExists(this->filename) ) { this->linkstatus = LINK_BROKEN; return; }
161 167
162 /* exists, let's check if it's lastmod has changed */ 168 /* exists, let's check if it's lastmod has changed */
163 llstat temp_stat; 169
164 LLFile::stat(this->filename, &temp_stat); 170#ifdef LL_WINDOWS
171 struct _stat temp_stat;
172 _stat(this->filename.c_str(), &temp_stat);
173#else
174 struct stat temp_stat;
175 stat(this->filename.c_str(), &temp_stat);
176#endif
165 std::time_t temp_time = temp_stat.st_mtime; 177 std::time_t temp_time = temp_stat.st_mtime;
166 178
167 LLSD new_last_modified = asctime( localtime(&temp_time) ); 179 LLSD new_last_modified = asctime( localtime(&temp_time) );
diff --git a/linden/indra/newview/impprefsfonts.cpp b/linden/indra/newview/impprefsfonts.cpp
new file mode 100644
index 0000000..3ce71eb
--- /dev/null
+++ b/linden/indra/newview/impprefsfonts.cpp
@@ -0,0 +1,86 @@
1/**
2 * @file impprefsfonts.cpp
3 * @brief Font preferences panel
4 *
5 * Copyright (c) 2010, Jacek Antonelli
6 *
7 * The source code in this file ("Source Code") is provided to you
8 * under the terms of the GNU General Public License, version 2.0
9 * ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in
10 * this distribution, or online at
11 * http://secondlifegrid.net/programs/open_source/licensing/gplv2
12 *
13 * There are special exceptions to the terms and conditions of the GPL as
14 * it is applied to this Source Code. View the full text of the exception
15 * in the file doc/FLOSS-exception.txt in this software distribution, or
16 * online at
17 * http://secondlifegrid.net/programs/open_source/licensing/flossexception
18 *
19 * By copying, modifying or distributing this software, you acknowledge
20 * that you have read and understood your obligations described above,
21 * and agree to abide by those obligations.
22 *
23 * ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO
24 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
25 * COMPLETENESS OR PERFORMANCE.
26 */
27
28
29#include "llviewerprecompiledheaders.h"
30#include "impprefsfonts.h"
31
32#include "llradiogroup.h"
33#include "lluictrlfactory.h"
34
35#include "llviewercontrol.h"
36#include "llviewerwindow.h"
37
38
39ImpPrefsFonts::ImpPrefsFonts()
40{
41 LLUICtrlFactory::getInstance()->
42 buildPanel(this, "panel_preferences_fonts.xml");
43}
44
45ImpPrefsFonts::~ImpPrefsFonts()
46{
47}
48
49
50BOOL ImpPrefsFonts::postBuild()
51{
52 refresh();
53 return true;
54}
55
56
57void ImpPrefsFonts::refresh()
58{
59 LLRadioGroup* fonts = getChild<LLRadioGroup>("fonts");
60 if (fonts)
61 {
62 fonts->setValue( gSavedSettings.getString("FontChoice") );
63 }
64}
65
66void ImpPrefsFonts::apply()
67{
68 LLRadioGroup* fonts = getChild<LLRadioGroup>("fonts");
69
70 if (fonts)
71 {
72 std::string font_choice = fonts->getValue().asString();
73
74 if (font_choice != gSavedSettings.getString("FontChoice") &&
75 !font_choice.empty())
76 {
77 gSavedSettings.setString("FontChoice", font_choice);
78 LLNotifications::instance().add("ChangeFont");
79 refresh();
80 }
81 }
82}
83
84void ImpPrefsFonts::cancel()
85{
86}
diff --git a/linden/indra/newview/impprefsfonts.h b/linden/indra/newview/impprefsfonts.h
new file mode 100644
index 0000000..12aa0bb
--- /dev/null
+++ b/linden/indra/newview/impprefsfonts.h
@@ -0,0 +1,45 @@
1/**
2 * @file impprefsfonts.h
3 * @brief Font preferences panel
4 *
5 * Copyright (c) 2010, Jacek Antonelli
6 *
7 * The source code in this file ("Source Code") is provided to you
8 * under the terms of the GNU General Public License, version 2.0
9 * ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in
10 * this distribution, or online at
11 * http://secondlifegrid.net/programs/open_source/licensing/gplv2
12 *
13 * There are special exceptions to the terms and conditions of the GPL as
14 * it is applied to this Source Code. View the full text of the exception
15 * in the file doc/FLOSS-exception.txt in this software distribution, or
16 * online at
17 * http://secondlifegrid.net/programs/open_source/licensing/flossexception
18 *
19 * By copying, modifying or distributing this software, you acknowledge
20 * that you have read and understood your obligations described above,
21 * and agree to abide by those obligations.
22 *
23 * ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO
24 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
25 * COMPLETENESS OR PERFORMANCE.
26 */
27
28#ifndef IMP_PREFSFONTS_H
29#define IMP_PREFSFONTS_H
30
31#include "llpanel.h"
32
33class ImpPrefsFonts : public LLPanel
34{
35public:
36 ImpPrefsFonts();
37 virtual ~ImpPrefsFonts();
38
39 virtual BOOL postBuild();
40 void refresh();
41 void apply();
42 void cancel();
43};
44
45#endif // IMP_PREFSFONTS_H
diff --git a/linden/indra/newview/llagent.cpp b/linden/indra/newview/llagent.cpp
index 03d5c65..51b6c53 100644
--- a/linden/indra/newview/llagent.cpp
+++ b/linden/indra/newview/llagent.cpp
@@ -7209,6 +7209,8 @@ void LLAgent::makeNewOutfit(
7209 } 7209 }
7210 7210
7211 LLViewerInventoryItem* item = gInventory.getItem(mWearableEntry[index].mItemID); 7211 LLViewerInventoryItem* item = gInventory.getItem(mWearableEntry[index].mItemID);
7212 if (!item) continue; //e.g. Ruth hair on OpenSim TODO: disable checkbox
7213
7212 S32 todo = addWearableToAgentInventoryCallback::CALL_NONE; 7214 S32 todo = addWearableToAgentInventoryCallback::CALL_NONE;
7213 if (!found_first_item) 7215 if (!found_first_item)
7214 { 7216 {
diff --git a/linden/indra/newview/llappviewerlinux.cpp b/linden/indra/newview/llappviewerlinux.cpp
index bb6cf9f..bfad899 100644
--- a/linden/indra/newview/llappviewerlinux.cpp
+++ b/linden/indra/newview/llappviewerlinux.cpp
@@ -270,7 +270,7 @@ static inline BOOL do_elfio_glibc_backtrace()
270 uintptr_t(stackarray[btpos]) < value+ssize) 270 uintptr_t(stackarray[btpos]) < value+ssize)
271 { 271 {
272 // symbol is inside viewer 272 // symbol is inside viewer
273 fprintf(StraceFile, "%-32s\t", "com.secondlife.indra.viewer"); 273 fprintf(StraceFile, "%-32s\t", "org.imprudenceviewer.viewer");
274 fprintf(StraceFile, "%p ", stackarray[btpos]); 274 fprintf(StraceFile, "%p ", stackarray[btpos]);
275 275
276 char *demangled_str = NULL; 276 char *demangled_str = NULL;
diff --git a/linden/indra/newview/llfloaterpreference.cpp b/linden/indra/newview/llfloaterpreference.cpp
index 744c179..09336cb 100644
--- a/linden/indra/newview/llfloaterpreference.cpp
+++ b/linden/indra/newview/llfloaterpreference.cpp
@@ -48,6 +48,7 @@
48#include "llspinctrl.h" 48#include "llspinctrl.h"
49#include "message.h" 49#include "message.h"
50 50
51#include "impprefsfonts.h"
51#include "llcommandhandler.h" 52#include "llcommandhandler.h"
52#include "llfloaterpreference.h" 53#include "llfloaterpreference.h"
53#include "llpanelnetwork.h" 54#include "llpanelnetwork.h"
@@ -133,7 +134,8 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainer* tab_container, LLButton * def
133 mMsgPanel(NULL), 134 mMsgPanel(NULL),
134 mSkinsPanel(NULL), 135 mSkinsPanel(NULL),
135 mLCDPanel(NULL), 136 mLCDPanel(NULL),
136 mPrefsAdvanced(NULL) 137 mPrefsAdvanced(NULL),
138 mPrefsFonts(NULL)
137{ 139{
138 mGeneralPanel = new LLPanelGeneral(); 140 mGeneralPanel = new LLPanelGeneral();
139 mTabContainer->addTabPanel(mGeneralPanel, mGeneralPanel->getLabel(), FALSE, onTabChanged, mTabContainer); 141 mTabContainer->addTabPanel(mGeneralPanel, mGeneralPanel->getLabel(), FALSE, onTabChanged, mTabContainer);
@@ -197,6 +199,10 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainer* tab_container, LLButton * def
197 mTabContainer->addTabPanel(mPrefsAdvanced, mPrefsAdvanced->getLabel(), FALSE, onTabChanged, mTabContainer); 199 mTabContainer->addTabPanel(mPrefsAdvanced, mPrefsAdvanced->getLabel(), FALSE, onTabChanged, mTabContainer);
198 mPrefsAdvanced->setDefaultBtn(default_btn); 200 mPrefsAdvanced->setDefaultBtn(default_btn);
199 201
202 mPrefsFonts = new ImpPrefsFonts();
203 mTabContainer->addTabPanel(mPrefsFonts, mPrefsFonts->getLabel(), FALSE, onTabChanged, mTabContainer);
204 mPrefsFonts->setDefaultBtn(default_btn);
205
200 if (!mTabContainer->selectTab(gSavedSettings.getS32("LastPrefTab"))) 206 if (!mTabContainer->selectTab(gSavedSettings.getS32("LastPrefTab")))
201 { 207 {
202 mTabContainer->selectFirstTab(); 208 mTabContainer->selectFirstTab();
@@ -261,6 +267,11 @@ LLPreferenceCore::~LLPreferenceCore()
261 delete mPrefsAdvanced; 267 delete mPrefsAdvanced;
262 mPrefsAdvanced = NULL; 268 mPrefsAdvanced = NULL;
263 } 269 }
270 if (mPrefsFonts)
271 {
272 delete mPrefsFonts;
273 mPrefsFonts = NULL;
274 }
264 275
265} 276}
266 277
@@ -278,6 +289,7 @@ void LLPreferenceCore::apply()
278 mMsgPanel->apply(); 289 mMsgPanel->apply();
279 mSkinsPanel->apply(); 290 mSkinsPanel->apply();
280 mPrefsAdvanced->apply(); 291 mPrefsAdvanced->apply();
292 mPrefsFonts->apply();
281 293
282 // hardware menu apply 294 // hardware menu apply
283 LLFloaterHardwareSettings::instance()->apply(); 295 LLFloaterHardwareSettings::instance()->apply();
@@ -307,6 +319,7 @@ void LLPreferenceCore::cancel()
307 mMsgPanel->cancel(); 319 mMsgPanel->cancel();
308 mSkinsPanel->cancel(); 320 mSkinsPanel->cancel();
309 mPrefsAdvanced->cancel(); 321 mPrefsAdvanced->cancel();
322 mPrefsFonts->cancel();
310 323
311 // cancel hardware menu 324 // cancel hardware menu
312 LLFloaterHardwareSettings::instance()->cancel(); 325 LLFloaterHardwareSettings::instance()->cancel();
diff --git a/linden/indra/newview/llfloaterpreference.h b/linden/indra/newview/llfloaterpreference.h
index 1878280..e98c45c 100644
--- a/linden/indra/newview/llfloaterpreference.h
+++ b/linden/indra/newview/llfloaterpreference.h
@@ -56,6 +56,7 @@ class LLPrefsIM;
56class LLPanelMsgs; 56class LLPanelMsgs;
57class LLPanelSkins; 57class LLPanelSkins;
58class LLPrefsAdvanced; 58class LLPrefsAdvanced;
59class ImpPrefsFonts;
59class LLScrollListCtrl; 60class LLScrollListCtrl;
60 61
61class LLPreferenceCore 62class LLPreferenceCore
@@ -93,6 +94,7 @@ private:
93 LLPanelMsgs *mMsgPanel; 94 LLPanelMsgs *mMsgPanel;
94 LLPanelLCD *mLCDPanel; 95 LLPanelLCD *mLCDPanel;
95 LLPrefsAdvanced *mPrefsAdvanced; 96 LLPrefsAdvanced *mPrefsAdvanced;
97 ImpPrefsFonts* mPrefsFonts;
96}; 98};
97 99
98// Floater to control preferences (display, audio, bandwidth, general. 100// Floater to control preferences (display, audio, bandwidth, general.
diff --git a/linden/indra/newview/llpanelplace.cpp b/linden/indra/newview/llpanelplace.cpp
index d7939b9..eb3d17d 100644
--- a/linden/indra/newview/llpanelplace.cpp
+++ b/linden/indra/newview/llpanelplace.cpp
@@ -383,14 +383,14 @@ void LLPanelPlace::displayParcelInfo(const LLVector3& pos_region,
383 std::string url = gAgent.getRegion()->getCapability("RemoteParcelRequest"); 383 std::string url = gAgent.getRegion()->getCapability("RemoteParcelRequest");
384 if (!url.empty()) 384 if (!url.empty())
385 { 385 {
386 body["location"] = ll_sd_from_vector3(pos_region); 386 body["location"] = ll_sd_from_vector3(mPosRegion);
387 if (!region_id.isNull()) 387 if (!region_id.isNull())
388 { 388 {
389 body["region_id"] = region_id; 389 body["region_id"] = region_id;
390 } 390 }
391 if (!pos_global.isExactlyZero()) 391 if (!mPosGlobal.isExactlyZero())
392 { 392 {
393 U64 region_handle = to_region_handle(pos_global); 393 U64 region_handle = to_region_handle(mPosGlobal);
394 body["region_handle"] = ll_sd_from_U64(region_handle); 394 body["region_handle"] = ll_sd_from_U64(region_handle);
395 } 395 }
396 LLHTTPClient::post(url, body, new LLRemoteParcelRequestResponder(this->getHandle())); 396 LLHTTPClient::post(url, body, new LLRemoteParcelRequestResponder(this->getHandle()));
diff --git a/linden/indra/newview/llpanelskins.cpp b/linden/indra/newview/llpanelskins.cpp
index 26de356..831adc8 100644
--- a/linden/indra/newview/llpanelskins.cpp
+++ b/linden/indra/newview/llpanelskins.cpp
@@ -60,6 +60,8 @@ BOOL LLPanelSkins::postBuild()
60 60
61 getChild<LLButton>("classic_preview")->setClickedCallback(onClickClassic, this); 61 getChild<LLButton>("classic_preview")->setClickedCallback(onClickClassic, this);
62 getChild<LLButton>("silver_preview")->setClickedCallback(onClickSilver, this); 62 getChild<LLButton>("silver_preview")->setClickedCallback(onClickSilver, this);
63 getChild<LLButton>("dark_preview")->setClickedCallback(onClickDark, this);
64 getChild<LLButton>("gemini_preview")->setClickedCallback(onClickGemini, this);
63 65
64 refresh(); 66 refresh();
65 return TRUE; 67 return TRUE;
@@ -108,3 +110,19 @@ void LLPanelSkins::onClickSilver(void* data)
108 gSavedSettings.setString("SkinCurrent", "silver"); 110 gSavedSettings.setString("SkinCurrent", "silver");
109 self->getChild<LLRadioGroup>("skin_selection")->setValue("silver"); 111 self->getChild<LLRadioGroup>("skin_selection")->setValue("silver");
110} 112}
113
114//static
115void LLPanelSkins::onClickDark(void* data)
116{
117 LLPanelSkins* self = (LLPanelSkins*)data;
118 gSavedSettings.setString("SkinCurrent", "dark");
119 self->getChild<LLRadioGroup>("skin_selection")->setValue("dark");
120}
121
122//static
123void LLPanelSkins::onClickGemini(void* data)
124{
125 LLPanelSkins* self = (LLPanelSkins*)data;
126 gSavedSettings.setString("SkinCurrent", "gemini");
127 self->getChild<LLRadioGroup>("skin_selection")->setValue("gemini");
128}
diff --git a/linden/indra/newview/llpanelskins.h b/linden/indra/newview/llpanelskins.h
index 8fd282f..8dbd556 100644
--- a/linden/indra/newview/llpanelskins.h
+++ b/linden/indra/newview/llpanelskins.h
@@ -51,6 +51,8 @@ private:
51 static void onSelectSkin(LLUICtrl* ctrl, void* data); 51 static void onSelectSkin(LLUICtrl* ctrl, void* data);
52 static void onClickClassic(void* data); 52 static void onClickClassic(void* data);
53 static void onClickSilver(void* data); 53 static void onClickSilver(void* data);
54 static void onClickDark(void* data);
55 static void onClickGemini(void* data);
54 56
55private: 57private:
56 std::string mSkin; 58 std::string mSkin;
diff --git a/linden/indra/newview/llpreviewgesture.cpp b/linden/indra/newview/llpreviewgesture.cpp
index ff3b943..ee1b634 100644
--- a/linden/indra/newview/llpreviewgesture.cpp
+++ b/linden/indra/newview/llpreviewgesture.cpp
@@ -564,14 +564,34 @@ void LLPreviewGesture::addModifiers()
564 combo->setCurrentByIndex(0); 564 combo->setCurrentByIndex(0);
565} 565}
566 566
567std::string magic_key(KEY key)
568{
569 char buffer[2]; /* Flawfinder: ignore */
570 buffer[0] = key;
571 buffer[1] = '\0';
572 std::string res = std::string(buffer);
573 std::string lolk = LLKeyboard::stringFromKey(key);
574 if(res == lolk)
575 {
576 if( key >= ' ' && key <= '~' )
577 {
578 return lolk;
579 }else
580 {
581 return "";
582 }
583 }
584 return lolk;
585}
567void LLPreviewGesture::addKeys() 586void LLPreviewGesture::addKeys()
568{ 587{
569 LLComboBox* combo = mKeyCombo; 588 LLComboBox* combo = mKeyCombo;
570 589
571 combo->add( NONE_LABEL ); 590 combo->add( NONE_LABEL );
572 for (KEY key = KEY_F2; key <= KEY_F12; key++) 591 for (KEY key = ' '; key < KEY_NONE; key++)
573 { 592 {
574 combo->add( LLKeyboard::stringFromKey(key), ADD_BOTTOM ); 593 std::string keystr = magic_key(key);
594 if(keystr != "")combo->add( keystr, ADD_BOTTOM );
575 } 595 }
576 combo->setCurrentByIndex(0); 596 combo->setCurrentByIndex(0);
577} 597}
@@ -1238,7 +1258,7 @@ void LLPreviewGesture::onSaveComplete(const LLUUID& asset_uuid, void* user_data,
1238 else 1258 else
1239 { 1259 {
1240 llwarns << "Inventory item for gesture " << info->mItemUUID 1260 llwarns << "Inventory item for gesture " << info->mItemUUID
1241 << " is no longer in agent inventory." << llendl 1261 << " is no longer in agent inventory." << llendl;
1242 } 1262 }
1243 } 1263 }
1244 else 1264 else
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp
index 6622740..606262f 100644
--- a/linden/indra/newview/llstartup.cpp
+++ b/linden/indra/newview/llstartup.cpp
@@ -2935,17 +2935,29 @@ std::string LLStartUp::loadPasswordFromDisk()
2935 return hashed_password; 2935 return hashed_password;
2936 } 2936 }
2937 2937
2938 // UUID is 16 bytes, written into ASCII is 32 characters
2939 // without trailing \0
2940 const S32 HASHED_LENGTH = 32;
2941
2938 std::string filepath = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, 2942 std::string filepath = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
2939 "password.dat"); 2943 "password.dat");
2940 LLFILE* fp = LLFile::fopen(filepath, "rb"); /* Flawfinder: ignore */ 2944 LLFILE* fp = LLFile::fopen(filepath, "rb"); /* Flawfinder: ignore */
2941 if (!fp) 2945 if (!fp)
2942 { 2946 {
2947#if LL_DARWIN
2948 UInt32 passwordLength;
2949 char *passwordData;
2950 OSStatus stat = SecKeychainFindGenericPassword(NULL, 10, "Imprudence", 0, NULL, &passwordLength, (void**)&passwordData, NULL);
2951 if (stat == noErr)
2952 {
2953 if (passwordLength == HASHED_LENGTH)
2954 hashed_password.assign(passwordData, HASHED_LENGTH);
2955 SecKeychainItemFreeContent(NULL, passwordData);
2956 }
2957#endif
2943 return hashed_password; 2958 return hashed_password;
2944 } 2959 }
2945 2960
2946 // UUID is 16 bytes, written into ASCII is 32 characters
2947 // without trailing \0
2948 const S32 HASHED_LENGTH = 32;
2949 U8 buffer[HASHED_LENGTH+1]; 2961 U8 buffer[HASHED_LENGTH+1];
2950 2962
2951 if (1 != fread(buffer, HASHED_LENGTH, 1, fp)) 2963 if (1 != fread(buffer, HASHED_LENGTH, 1, fp))
@@ -2969,6 +2981,10 @@ std::string LLStartUp::loadPasswordFromDisk()
2969 { 2981 {
2970 hashed_password.assign((char*)buffer); 2982 hashed_password.assign((char*)buffer);
2971 } 2983 }
2984#if LL_DARWIN
2985 // we're migrating to the keychain
2986 LLFile::remove(filepath);
2987#endif
2972 2988
2973 return hashed_password; 2989 return hashed_password;
2974} 2990}
@@ -2977,6 +2993,19 @@ std::string LLStartUp::loadPasswordFromDisk()
2977// static 2993// static
2978void LLStartUp::savePasswordToDisk(const std::string& hashed_password) 2994void LLStartUp::savePasswordToDisk(const std::string& hashed_password)
2979{ 2995{
2996#if LL_DARWIN
2997 SecKeychainItemRef keychainItem;
2998 OSStatus status = SecKeychainFindGenericPassword(NULL, 10, "Imprudence", 0, NULL, NULL, NULL, &keychainItem);
2999 if (status == noErr)
3000 {
3001 SecKeychainItemModifyAttributesAndData(keychainItem, NULL, hashed_password.length(), hashed_password.c_str());
3002 CFRelease(keychainItem);
3003 }
3004 else
3005 {
3006 SecKeychainAddGenericPassword(NULL, 10, "Imprudence", 0, NULL, hashed_password.length(), hashed_password.c_str(), NULL);
3007 }
3008#else
2980 std::string filepath = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, 3009 std::string filepath = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
2981 "password.dat"); 3010 "password.dat");
2982 LLFILE* fp = LLFile::fopen(filepath, "wb"); /* Flawfinder: ignore */ 3011 LLFILE* fp = LLFile::fopen(filepath, "wb"); /* Flawfinder: ignore */
@@ -3000,12 +3029,22 @@ void LLStartUp::savePasswordToDisk(const std::string& hashed_password)
3000 } 3029 }
3001 3030
3002 fclose(fp); 3031 fclose(fp);
3032#endif
3003} 3033}
3004 3034
3005 3035
3006// static 3036// static
3007void LLStartUp::deletePasswordFromDisk() 3037void LLStartUp::deletePasswordFromDisk()
3008{ 3038{
3039#if LL_DARWIN
3040 SecKeychainItemRef keychainItem;
3041 OSStatus status = SecKeychainFindGenericPassword(NULL, 10, "Imprudence", 0, NULL, NULL, NULL, &keychainItem);
3042 if (status == noErr)
3043 {
3044 SecKeychainItemDelete(keychainItem);
3045 CFRelease(keychainItem);
3046 }
3047#endif
3009 std::string filepath = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, 3048 std::string filepath = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
3010 "password.dat"); 3049 "password.dat");
3011 LLFile::remove(filepath); 3050 LLFile::remove(filepath);
diff --git a/linden/indra/newview/lltoolpie.cpp b/linden/indra/newview/lltoolpie.cpp
index 262c349..2887515 100644
--- a/linden/indra/newview/lltoolpie.cpp
+++ b/linden/indra/newview/lltoolpie.cpp
@@ -292,7 +292,10 @@ BOOL LLToolPie::pickAndShowMenu(BOOL always_show)
292 gViewerWindow->hideCursor(); 292 gViewerWindow->hideCursor();
293 LLToolCamera::getInstance()->setMouseCapture(TRUE); 293 LLToolCamera::getInstance()->setMouseCapture(TRUE);
294 LLToolCamera::getInstance()->pickCallback(mPick); 294 LLToolCamera::getInstance()->pickCallback(mPick);
295 gAgent.setFocusOnAvatar(TRUE, TRUE); 295 if (gSavedSettings.getBOOL("ResetFocusOnSelfClick"))
296 {
297 gAgent.setFocusOnAvatar(TRUE, TRUE);
298 }
296 299
297 return TRUE; 300 return TRUE;
298 } 301 }
diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp
index 56aed12..bfd1045 100755
--- a/linden/indra/newview/llviewermessage.cpp
+++ b/linden/indra/newview/llviewermessage.cpp
@@ -2313,7 +2313,20 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
2313 position, 2313 position,
2314 true); 2314 true);
2315 2315
2316 chat.mText = std::string("IM: ") + name + separator_string + saved + message.substr(message_offset); 2316 std::string group_name;
2317 if (gAgent.isInGroup(session_id) && gSavedSettings.getBOOL("ShowGroupNameInChatIM"))
2318 {
2319 if (!(gCacheName->getGroupName(from_id, group_name)))
2320 {
2321 group_name = std::string((char*)binary_bucket);
2322 }
2323 chat.mText = std::string("IM [") + group_name + std::string("] ") + name
2324 + separator_string + saved + message.substr(message_offset);
2325 }
2326 else
2327 {
2328 chat.mText = std::string("IM: ") + name + separator_string + saved + message.substr(message_offset);
2329 }
2317 LLFloaterChat::addChat(chat, TRUE, is_this_agent); 2330 LLFloaterChat::addChat(chat, TRUE, is_this_agent);
2318 } 2331 }
2319 break; 2332 break;
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp
index 513d43c..c8b26be 100644
--- a/linden/indra/newview/llvoavatar.cpp
+++ b/linden/indra/newview/llvoavatar.cpp
@@ -8401,7 +8401,7 @@ LLBBox LLVOAvatar::getHUDBBox() const
8401 { 8401 {
8402 attachment_map_t::const_iterator curiter = iter++; 8402 attachment_map_t::const_iterator curiter = iter++;
8403 LLViewerJointAttachment* attachment = curiter->second; 8403 LLViewerJointAttachment* attachment = curiter->second;
8404 if (attachment->getIsHUDAttachment() && attachment->getObject()) 8404 if (attachment && attachment->getIsHUDAttachment() && attachment->getObject())
8405 { 8405 {
8406 LLViewerObject* hud_object = attachment->getObject(); 8406 LLViewerObject* hud_object = attachment->getObject();
8407 8407
diff --git a/linden/indra/newview/skins/default/xui/en-us/fonts.xml b/linden/indra/newview/skins/default/xui/en-us/fonts.xml
index 95070ed..15a8254 100644
--- a/linden/indra/newview/skins/default/xui/en-us/fonts.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/fonts.xml
@@ -18,44 +18,95 @@
18 </os> 18 </os>
19 </font> 19 </font>
20 20
21 <font name="SansSerif" comment="Name of san-serif font (Truetype file name)">
22 <file>DejaVuSansCondensed.ttf</file>
23 </font>
24
25 <font name="SansSerifBold"
26 comment="Name of bold sans-serif font"
27 font_style="Bold">
28 <file>DejaVuSansCondensed-Bold.ttf</file>
29 </font>
30 21
31 <font name="Monospace" 22 <font name="Monospace"
32 comment="Name of monospace font"> 23 comment="Name of monospace font">
33 <file>VeraMono.ttf</file> 24 <file>VeraMono.ttf</file>
34 </font> 25 </font>
35 26
27
36 <font name="DejaVu" 28 <font name="DejaVu"
37 comment="Name of DejaVu font"> 29 comment="Name of DejaVu font"
30 size_mult="1.00">
38 <file>DejaVuSansCondensed.ttf</file> 31 <file>DejaVuSansCondensed.ttf</file>
39 </font> 32 </font>
40 33
41 <font name="DejaVu" 34 <font name="DejaVu"
42 comment="Name of DejaVu font (bold)" 35 comment="Name of DejaVu font (bold)"
43 font_style="BOLD"> 36 size_mult="1.00"
37 font_style="BOLD">
44 <file>DejaVuSansCondensed-Bold.ttf</file> 38 <file>DejaVuSansCondensed-Bold.ttf</file>
45 </font> 39 </font>
46 40
47 <font name="DejaVu" 41 <font name="DejaVu"
48 comment="Name of DejaVu font (italic)" 42 comment="Name of DejaVu font (italic)"
49 font_style="ITALIC"> 43 size_mult="1.00"
44 font_style="ITALIC">
50 <file>DejaVuSansCondensed-Oblique.ttf</file> 45 <file>DejaVuSansCondensed-Oblique.ttf</file>
51 </font> 46 </font>
52 47
53 <font name="DejaVu" 48 <font name="DejaVu"
54 comment="Name of DejaVu font (bold italic)" 49 comment="Name of DejaVu font (bold italic)"
55 font_style="BOLD|ITALIC"> 50 size_mult="1.00"
51 font_style="BOLD|ITALIC">
56 <file>DejaVuSansCondensed-BoldOblique.ttf</file> 52 <file>DejaVuSansCondensed-BoldOblique.ttf</file>
57 </font> 53 </font>
58 54
55
56 <font name="Delicious"
57 comment="Name of Delicious font"
58 size_mult="1.1">
59 <file>Delicious-Roman.otf</file>
60 </font>
61
62 <font name="Delicious"
63 comment="Name of Delicious font (bold)"
64 size_mult="1.1"
65 font_style="BOLD">
66 <file>Delicious-Bold.otf</file>
67 </font>
68
69 <font name="Delicious"
70 comment="Name of Delicious font (italic)"
71 size_mult="1.1"
72 font_style="ITALIC">
73 <file>Delicious-Italic.otf</file>
74 </font>
75
76 <font name="Delicious"
77 comment="Name of Delicious font (bold italic)"
78 size_mult="1.1"
79 font_style="BOLD|ITALIC">
80 <file>Delicious-BoldItalic.otf</file>
81 </font>
82
83
84 <font name="Liberation"
85 comment="Name of Liberation font">
86 <file>LiberationSans-Regular.ttf</file>
87 </font>
88
89 <font name="Liberation"
90 comment="Name of Liberation font (bold)"
91 font_style="BOLD">
92 <file>LiberationSans-Bold.ttf</file>
93 </font>
94
95
96 <font name="DroidSans"
97 comment="Name of DroidSans font"
98 size_mult="1.0">
99 <file>DroidSans.ttf</file>
100 </font>
101
102 <font name="DroidSans"
103 comment="Name of DroidSans font (bold)"
104 size_mult="1.0"
105 font_style="BOLD">
106 <file>DroidSans-Bold.ttf</file>
107 </font>
108
109
59 <font name="Helvetica" 110 <font name="Helvetica"
60 comment="Name of Helvetica font"> 111 comment="Name of Helvetica font">
61 <file>arial.ttf</file> 112 <file>arial.ttf</file>
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
index 0522981..1de4c94 100644
--- a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
@@ -1344,8 +1344,7 @@
1344 <on_check function="Advanced.CheckWireframe" userdata="" /> 1344 <on_check function="Advanced.CheckWireframe" userdata="" />
1345 </menu_item_check> 1345 </menu_item_check>
1346 <menu_item_check name="Object-Object Occlusion" 1346 <menu_item_check name="Object-Object Occlusion"
1347 label="Object-Object Occlusion" 1347 label="Object-Object Occlusion">
1348 shortcut="control|shift|O">
1349 <on_click function="ToggleControl" 1348 <on_click function="ToggleControl"
1350 userdata="UseOcclusion" /> 1349 userdata="UseOcclusion" />
1351 <on_check control="UseOcclusion" /> 1350 <on_check control="UseOcclusion" />
diff --git a/linden/indra/newview/skins/default/xui/en-us/notifications.xml b/linden/indra/newview/skins/default/xui/en-us/notifications.xml
index 0de1df5..eced647 100644
--- a/linden/indra/newview/skins/default/xui/en-us/notifications.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/notifications.xml
@@ -7084,6 +7084,13 @@ Apply this region's settings? (&quot;Ignore&quot; will ignore all region setting
7084 </form> 7084 </form>
7085</notification> 7085</notification>
7086 7086
7087<notification
7088 name="ChangeFont"
7089 icon="alertmodal.tga"
7090 type="alertmodal">
7091The new font will appear after you restart [VIEWER_NAME].
7092</notification>
7093
7087 7094
7088<!--End Imprudence notifications--> 7095<!--End Imprudence notifications-->
7089 <!-- [KITTY VIEWER] --> 7096 <!-- [KITTY VIEWER] -->
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml
index b344d14..38033a3 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml
@@ -180,10 +180,10 @@
180 initial_value="true" label="Show chat messages from friends in a different color" left="12" 180 initial_value="true" label="Show chat messages from friends in a different color" left="12"
181 mouse_opaque="true" name="HighlightFriendsChat" radio_style="false" width="270"/> 181 mouse_opaque="true" name="HighlightFriendsChat" radio_style="false" width="270"/>
182 182
183 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-90" 183 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-100"
184 can_apply_immediately="true" color="1 1 1 1" control_name="FriendsChatColor" 184 can_apply_immediately="true" color="1 1 1 1" control_name="FriendsChatColor"
185 enabled="true" follows="left|top" height="56" label="Friends" left_delta="68" 185 enabled="true" follows="left|top" height="67" label="Friends" left_delta="68"
186 mouse_opaque="true" name="FriendsChatColor" width="54" /> 186 mouse_opaque="true" name="FriendsChatColor" width="65" />
187 187
188 <check_box bottom_delta="-30" enabled="true" follows="left|top" 188 <check_box bottom_delta="-30" enabled="true" follows="left|top"
189 font="SansSerifSmall" height="16" initial_value="true" 189 font="SansSerifSmall" height="16" initial_value="true"
@@ -194,10 +194,10 @@
194 initial_value="true" label="Show GroupIM messages containing your name in a different color" left="12" 194 initial_value="true" label="Show GroupIM messages containing your name in a different color" left="12"
195 mouse_opaque="true" name="HighlightOwnNameInIM" radio_style="false" width="270"/> 195 mouse_opaque="true" name="HighlightOwnNameInIM" radio_style="false" width="270"/>
196 196
197 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-210" 197 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-230"
198 can_apply_immediately="true" color="1 1 1 1" control_name="OwnNameChatColor" 198 can_apply_immediately="true" color="1 1 1 1" control_name="OwnNameChatColor"
199 enabled="true" follows="left|top" height="56" label="Own Name" left_delta="68" 199 enabled="true" follows="left|top" height="67" label="Own Name" left_delta="68"
200 mouse_opaque="true" name="OwnNameChatColor" width="54" /> 200 mouse_opaque="true" name="OwnNameChatColor" width="65" />
201 201
202 </panel> 202 </panel>
203 </tab_container> 203 </tab_container>
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_fonts.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_fonts.xml
new file mode 100644
index 0000000..3a27bd1
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_fonts.xml
@@ -0,0 +1,49 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2
3<panel name="font_panel" label="Fonts"
4 bottom="-409" left="102" height="408" width="517"
5 border="true" follows="left|top|right|bottom">
6
7 <text bottom="-25" left="10" height="15" width="300">
8 User interface font (requires restart):
9 </text>
10
11 <radio_group name="fonts" draw_border="false"
12 top="-30" left="20" bottom="0" right="-20"
13 follows="top|left|bottom|right">
14
15 <radio_item name="DroidSans" bottom="-20" left="0" height="20">
16 Droid Sans
17 </radio_item>
18
19 <radio_item name="DejaVu" bottom="-70" left="0" height="20">
20 DejaVu Sans Condensed
21 </radio_item>
22
23 <radio_item name="Delicious" bottom="-120" left="0" height="20">
24 Delicious
25 </radio_item>
26
27 <radio_item name="Liberation" bottom="-170" left="0" height="20">
28 Liberation Sans (classic Imprudence font)
29 </radio_item>
30
31 </radio_group>
32
33 <text name="droid_preview" font="DroidSansMedium" top="-55" left="60">
34 Preview: The quick brown fox jumped over the lazy dog. :)
35 </text>
36
37 <text name="dejavu_preview" font="DejaVuMedium" top="-105" left="60">
38 Preview: The quick brown fox jumped over the lazy dog. :)
39 </text>
40
41 <text name="del_preview" font="DeliciousMedium" top="-155" left="60">
42 Preview: The quick brown fox jumped over the lazy dog. :)
43 </text>
44
45 <text name="lib_preview" font="LiberationMedium" top="-205" left="60">
46 Preview: The quick brown fox jumped over the lazy dog. :)
47 </text>
48
49</panel>
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_graphics1.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_graphics1.xml
index 153a111..72a6438 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_graphics1.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_graphics1.xml
@@ -286,7 +286,7 @@
286 <slider bottom_delta="-22" can_edit_text="false" control_name="RenderVolumeLODFactor" 286 <slider bottom_delta="-22" can_edit_text="false" control_name="RenderVolumeLODFactor"
287 decimal_digits="3" enabled="true" follows="left|top" height="16" 287 decimal_digits="3" enabled="true" follows="left|top" height="16"
288 increment="0.125" initial_val="160" label=" Objects:" 288 increment="0.125" initial_val="160" label=" Objects:"
289 label_width="140" left_delta="0" max_val="2" min_val="0" 289 label_width="140" left_delta="0" max_val="4" min_val="0"
290 mouse_opaque="true" name="ObjectMeshDetail" show_text="false" width="223" /> 290 mouse_opaque="true" name="ObjectMeshDetail" show_text="false" width="223" />
291 <slider bottom_delta="-20" can_edit_text="false" control_name="RenderFlexTimeFactor" 291 <slider bottom_delta="-20" can_edit_text="false" control_name="RenderFlexTimeFactor"
292 decimal_digits="3" enabled="true" follows="left|top" height="16" 292 decimal_digits="3" enabled="true" follows="left|top" height="16"
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_skins.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_skins.xml
index f0b789e..0611ce3 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_skins.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_skins.xml
@@ -2,21 +2,50 @@
2<panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" 2<panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom"
3 height="408" label="Skins" left="102" mouse_opaque="true" 3 height="408" label="Skins" left="102" mouse_opaque="true"
4 name="Skins panel" width="517"> 4 name="Skins panel" width="517">
5 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 5 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
6 bottom="-22" drop_shadow_visible="true" enabled="true" follows="left|top" 6 bottom="-22" drop_shadow_visible="true" enabled="true" follows="left|top"
7 font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" 7 font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10"
8 mouse_opaque="true" name="muting_text" v_pad="0" width="400"> 8 mouse_opaque="true" name="muting_text" v_pad="0" width="400">
9 Select a Skin (Requires Restart): 9 Select a skin (requires restart).
10 </text> 10 </text>
11 <radio_group bottom="0" draw_border="false" follows="top|left" height="380" left="12" 11 <radio_group bottom="0" draw_border="false" follows="top|left" height="380" left="12"
12 name="skin_selection" width="480"> 12 name="skin_selection" width="480">
13 <radio_item bottom="-20" height="20" left="0" name="default" width="480"> 13 <radio_item bottom="-20" height="20" left="0" name="default" width="480">
14 Default 14 Default
15 </radio_item> 15 </radio_item>
16 <radio_item bottom="-180" height="20" left="0" name="silver" width="480"> 16 <radio_item bottom_delta="-50" height="20" left="0" name="silver" width="480">
17 Silver 17 Silver
18 </radio_item> 18 </radio_item>
19 <radio_item bottom_delta="-50" height="20" left="0" name="dark" width="480">
20 Dark
21 </radio_item>
22 <radio_item bottom_delta="-50" height="20" left="0" name="gemini" width="480">
23 Gemini
24 </radio_item>
19 </radio_group> 25 </radio_group>
20 <button left="130" bottom="-160" width="298" height="130" name="classic_preview" label="" scale_image="true" image_selected="skin_thumbnail_default.png" image_unselected="skin_thumbnail_default.png" image_hover_selected="skin_thumbnail_default.png" image_hover_unselected="skin_thumbnail_default.png"/> 26
21 <button left="130" bottom="-320" width="298" height="130" name="silver_preview" label="" scale_image="true" image_selected="skin_thumbnail_silver.png" image_hover_selected="skin_thumbnail_silver.png" image_unselected="skin_thumbnail_silver.png" image_hover_unselected="skin_thumbnail_silver.png"/> 27 <button left="130" bottom="-125" width="216" height="95" name="classic_preview"
28 scale_image="true" label="" image_selected="skin_thumbnail_default.png"
29 image_unselected="skin_thumbnail_default.png" image_hover_selected="skin_thumbnail_default.png"
30 image_hover_unselected="skin_thumbnail_default.png" follows="left|top" />
31 <button left="130" bottom_delta="-100" width="216" height="95" name="silver_preview"
32 scale_image="true" label="" image_selected="skin_thumbnail_silver.png"
33 image_hover_selected="skin_thumbnail_silver.png" image_unselected="skin_thumbnail_silver.png"
34 image_hover_unselected="skin_thumbnail_silver.png" follows="left|top" />
35 <button left="130" bottom_delta="-100" width="216" height="95" name="dark_preview"
36 scale_image="true" label="" image_selected="skin_thumbnail_dark.png"
37 image_hover_selected="skin_thumbnail_dark.png" image_unselected="skin_thumbnail_dark.png"
38 image_hover_unselected="skin_thumbnail_dark.png" follows="left|top" />
39 <button left="130" bottom_delta="-100" width="216" height="95" name="gemini_preview"
40 scale_image="true" label="" image_selected="skin_thumbnail_gemini.png"
41 image_hover_selected="skin_thumbnail_gemini.png" image_unselected="skin_thumbnail_gemini.png"
42 image_hover_unselected="skin_thumbnail_gemini.png" follows="left|top" />
43
44 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
45 bottom="10" drop_shadow_visible="true" enabled="true" follows="left|bottom"
46 font="SansSerifSmall" h_pad="0" halign="left" height="12" left="90"
47 mouse_opaque="true" name="muting_text" v_pad="0" width="400">
48 (Please see the skin folders for information and credits)
49 </text>
22</panel> 50</panel>
51
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py
index 15172f2..f66fa5b 100755
--- a/linden/indra/newview/viewer_manifest.py
+++ b/linden/indra/newview/viewer_manifest.py
@@ -75,16 +75,29 @@ class ViewerManifest(LLManifest):
75 75
76 # Include our fonts 76 # Include our fonts
77 if self.prefix(src="fonts"): 77 if self.prefix(src="fonts"):
78 self.path("GPL.txt")
79 self.path("Liberation-License.txt")
78 self.path("LiberationSans-Bold.ttf") 80 self.path("LiberationSans-Bold.ttf")
79 self.path("LiberationSans-Regular.ttf") 81 self.path("LiberationSans-Regular.ttf")
80 self.path("VeraMono.ttf") 82
83 self.path("Delicious-License.txt")
84 self.path("Delicious-BoldItalic.otf")
85 self.path("Delicious-Bold.otf")
86 self.path("Delicious-Italic.otf")
87 self.path("Delicious-Roman.otf")
88
89 self.path("Droid-License.txt")
90 self.path("DroidSans-Bold.ttf")
91 self.path("DroidSans.ttf")
92
93 self.path("DejaVu-License.txt")
81 self.path("DejaVuSansCondensed-BoldOblique.ttf") 94 self.path("DejaVuSansCondensed-BoldOblique.ttf")
82 self.path("DejaVuSansCondensed-Bold.ttf") 95 self.path("DejaVuSansCondensed-Bold.ttf")
83 self.path("DejaVuSansCondensed-Oblique.ttf") 96 self.path("DejaVuSansCondensed-Oblique.ttf")
84 self.path("DejaVuSansCondensed.ttf") 97 self.path("DejaVuSansCondensed.ttf")
85 self.path("GPL.txt") 98
86 self.path("Liberation-License.txt")
87 self.path("Vera-License.txt") 99 self.path("Vera-License.txt")
100 self.path("VeraMono.ttf")
88 self.end_prefix("fonts") 101 self.end_prefix("fonts")
89 102
90 # skins 103 # skins
@@ -531,6 +544,7 @@ class DarwinManifest(ViewerManifest):
531 if self.prefix(src="../../libraries/universal-darwin/lib_release", dst="MacOS/"): 544 if self.prefix(src="../../libraries/universal-darwin/lib_release", dst="MacOS/"):
532 545
533 self.path("libndofdev.dylib") 546 self.path("libndofdev.dylib")
547 self.path("libhunspell-1.2.dylib")
534 548
535 self.path("libopenal.1.dylib") 549 self.path("libopenal.1.dylib")
536 self.path("libalut.0.dylib") 550 self.path("libalut.0.dylib")