aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview')
-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
27 files changed, 503 insertions, 62 deletions
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")