aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra')
-rw-r--r--linden/indra/CMakeLists.txt4
-rw-r--r--linden/indra/cmake/00-Common.cmake2
-rw-r--r--linden/indra/cmake/FMOD.cmake2
-rw-r--r--linden/indra/cmake/UnixInstall.cmake4
-rw-r--r--linden/indra/cmake/Variables.cmake2
-rwxr-xr-x[-rw-r--r--]linden/indra/copy_win_scripts/start-client.py2
-rwxr-xr-xlinden/indra/develop.py8
-rw-r--r--linden/indra/lib/python/indra/util/llversion.py11
-rw-r--r--linden/indra/linux_crash_logger/llcrashloggerlinux.cpp8
-rw-r--r--linden/indra/llcommon/llsecondlifeurls.cpp2
-rw-r--r--linden/indra/llcommon/llversionviewer.h10
-rwxr-xr-xlinden/indra/llcrashlogger/llcrashlogger.cpp14
-rw-r--r--linden/indra/llimage/llimagetga.cpp2
-rw-r--r--linden/indra/llmedia/llmediaimplgstreamer.cpp2
-rw-r--r--linden/indra/llmedia/llmediamanager.cpp2
-rw-r--r--linden/indra/llmessage/llassetstorage.cpp41
-rw-r--r--linden/indra/llmessage/llhttpclient.cpp14
-rw-r--r--linden/indra/llrender/llgl.cpp2
-rw-r--r--linden/indra/llrender/llrender.h2
-rw-r--r--linden/indra/llvfs/lldir.cpp2
-rw-r--r--linden/indra/llvfs/lldir_mac.cpp4
-rw-r--r--linden/indra/llwindow/llwindowsdl.cpp4
-rw-r--r--linden/indra/lscript/lscript_compile/lscript_tree.cpp8
-rw-r--r--linden/indra/mac_crash_logger/CMakeLists.txt2
-rw-r--r--linden/indra/mac_updater/CMakeLists.txt2
-rw-r--r--linden/indra/mac_updater/mac_updater.cpp10
-rw-r--r--linden/indra/newview/CMakeLists.txt58
-rw-r--r--linden/indra/newview/English.lproj/InfoPlist.strings12
-rw-r--r--linden/indra/newview/Info-SecondLife.plist78
-rw-r--r--linden/indra/newview/SecondLife.nib/objects.xib518
-rw-r--r--linden/indra/newview/ViewerInstall.cmake2
-rw-r--r--linden/indra/newview/app_settings/settings.xml50
-rw-r--r--linden/indra/newview/fonts/GPL.txt340
-rw-r--r--linden/indra/newview/fonts/Liberation-License.txt19
-rw-r--r--linden/indra/newview/fonts/LiberationSans-Bold.ttfbin0 -> 133000 bytes
-rw-r--r--linden/indra/newview/fonts/LiberationSans-Regular.ttfbin0 -> 133088 bytes
-rw-r--r--linden/indra/newview/fonts/Vera-License.txt124
-rw-r--r--linden/indra/newview/fonts/VeraMono.ttfbin0 -> 49224 bytes
-rw-r--r--linden/indra/newview/installers/windows/installer_template.nsi1980
-rw-r--r--linden/indra/newview/installers/windows/lang_de.nsi114
-rw-r--r--linden/indra/newview/installers/windows/lang_en-us.nsi104
-rw-r--r--linden/indra/newview/installers/windows/lang_ja.nsi114
-rw-r--r--linden/indra/newview/installers/windows/lang_ko.nsi114
-rwxr-xr-xlinden/indra/newview/linux_tools/handle_secondlifeprotocol.sh2
-rwxr-xr-xlinden/indra/newview/linux_tools/wrapper.sh14
-rw-r--r--linden/indra/newview/llappviewer.cpp54
-rw-r--r--linden/indra/newview/llcolorscheme.cpp5
-rw-r--r--linden/indra/newview/llcolorscheme.h2
-rw-r--r--linden/indra/newview/lldrawable.cpp4
-rw-r--r--linden/indra/newview/lldrawpoolbump.cpp2
-rw-r--r--linden/indra/newview/llfloaterabout.cpp28
-rw-r--r--linden/indra/newview/llfloateractivespeakers.cpp4
-rw-r--r--linden/indra/newview/llfloaterdirectory.cpp4
-rw-r--r--linden/indra/newview/llfloatergroupinvite.cpp20
-rw-r--r--linden/indra/newview/llfloatergroupinvite.h6
-rw-r--r--linden/indra/newview/llfloaterhtmlhelp.cpp38
-rw-r--r--linden/indra/newview/llfloaterhtmlhelp.h3
-rw-r--r--linden/indra/newview/llfloaterinspect.cpp5
-rw-r--r--linden/indra/newview/llnetmap.cpp7
-rw-r--r--linden/indra/newview/llnetmap.h3
-rw-r--r--linden/indra/newview/llpanellogin.cpp97
-rw-r--r--linden/indra/newview/llpanellogin.h1
-rw-r--r--linden/indra/newview/llselectmgr.cpp3
-rw-r--r--linden/indra/newview/llstartup.cpp6
-rw-r--r--linden/indra/newview/lltexturecache.cpp68
-rw-r--r--linden/indra/newview/lltexturecache.h5
-rw-r--r--linden/indra/newview/lltooldraganddrop.cpp6
-rw-r--r--linden/indra/newview/llurlhistory.cpp14
-rw-r--r--linden/indra/newview/llviewerjointattachment.h3
-rw-r--r--linden/indra/newview/llviewermenu.cpp17
-rw-r--r--linden/indra/newview/llviewernetwork.cpp134
-rw-r--r--linden/indra/newview/llviewernetwork.h31
-rw-r--r--linden/indra/newview/llviewerobjectlist.cpp4
-rw-r--r--linden/indra/newview/llviewerregion.cpp4
-rw-r--r--linden/indra/newview/llviewerwindow.cpp2
-rw-r--r--linden/indra/newview/llworld.cpp9
-rw-r--r--linden/indra/newview/llworldmapview.cpp8
-rw-r--r--linden/indra/newview/llworldmapview.h2
-rw-r--r--linden/indra/newview/pipeline.cpp2
-rw-r--r--linden/indra/newview/res-sdl/imprudence_icon.BMPbin0 -> 4662 bytes
-rw-r--r--linden/indra/newview/res/imprudence_icon.pngbin0 -> 32529 bytes
-rw-r--r--linden/indra/newview/res/viewerRes.rc14
-rw-r--r--linden/indra/newview/skins/default/colors_base.xml319
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/alerts.xml20
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_instant_message.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_media_browser.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/menu_login.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml68
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/notify.xml9
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_group_invite.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_group_roles.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_groups.xml8
-rw-r--r--linden/indra/newview/skins/silver/colors_base.xml328
-rw-r--r--linden/indra/newview/skins/silver/xui/en-us/floater_tools.xml1275
-rwxr-xr-xlinden/indra/newview/viewer_manifest.py236
-rw-r--r--linden/indra/win_updater/updater.cpp10
96 files changed, 3053 insertions, 3674 deletions
diff --git a/linden/indra/CMakeLists.txt b/linden/indra/CMakeLists.txt
index fac2afa..eb06191 100644
--- a/linden/indra/CMakeLists.txt
+++ b/linden/indra/CMakeLists.txt
@@ -13,7 +13,7 @@ if(COMMAND cmake_policy)
13 cmake_policy(SET CMP0003 OLD) 13 cmake_policy(SET CMP0003 OLD)
14endif(COMMAND cmake_policy) 14endif(COMMAND cmake_policy)
15 15
16project(SecondLife) 16project(Imprudence)
17 17
18set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") 18set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
19 19
@@ -77,7 +77,7 @@ if (VIEWER)
77 endif (LINUX) 77 endif (LINUX)
78 78
79 add_subdirectory(${VIEWER_PREFIX}newview) 79 add_subdirectory(${VIEWER_PREFIX}newview)
80 add_dependencies(viewer secondlife-bin) 80 add_dependencies(viewer imprudence-bin)
81endif (VIEWER) 81endif (VIEWER)
82 82
83# Linux builds the viewer and server in 2 separate projects 83# Linux builds the viewer and server in 2 separate projects
diff --git a/linden/indra/cmake/00-Common.cmake b/linden/indra/cmake/00-Common.cmake
index 240853a..977e588 100644
--- a/linden/indra/cmake/00-Common.cmake
+++ b/linden/indra/cmake/00-Common.cmake
@@ -146,7 +146,7 @@ if (LINUX)
146 endif (SERVER) 146 endif (SERVER)
147 147
148 if (VIEWER) 148 if (VIEWER)
149 add_definitions(-DAPPID=secondlife) 149 add_definitions(-DAPPID=imprudence)
150 add_definitions(-fvisibility=hidden) 150 add_definitions(-fvisibility=hidden)
151 if (NOT STANDALONE) 151 if (NOT STANDALONE)
152 # this stops us requiring a really recent glibc at runtime 152 # this stops us requiring a really recent glibc at runtime
diff --git a/linden/indra/cmake/FMOD.cmake b/linden/indra/cmake/FMOD.cmake
index 759b8f1..e9f483a 100644
--- a/linden/indra/cmake/FMOD.cmake
+++ b/linden/indra/cmake/FMOD.cmake
@@ -7,6 +7,7 @@ if(INSTALL_PROPRIETARY)
7 use_prebuilt_binary(fmod) 7 use_prebuilt_binary(fmod)
8endif(INSTALL_PROPRIETARY) 8endif(INSTALL_PROPRIETARY)
9 9
10if (FMOD)
10find_library(FMOD_LIBRARY_RELEASE 11find_library(FMOD_LIBRARY_RELEASE
11 NAMES fmod fmodvc fmod-3.75 12 NAMES fmod fmodvc fmod-3.75
12 PATHS 13 PATHS
@@ -18,6 +19,7 @@ find_library(FMOD_LIBRARY_DEBUG
18 PATHS 19 PATHS
19 ${ARCH_PREBUILT_DIRS_DEBUG} 20 ${ARCH_PREBUILT_DIRS_DEBUG}
20 ) 21 )
22endif (FMOD)
21 23
22if (FMOD_LIBRARY_RELEASE AND FMOD_LIBRARY_DEBUG) 24if (FMOD_LIBRARY_RELEASE AND FMOD_LIBRARY_DEBUG)
23 set(FMOD_LIBRARY 25 set(FMOD_LIBRARY
diff --git a/linden/indra/cmake/UnixInstall.cmake b/linden/indra/cmake/UnixInstall.cmake
index 139be0a..0234dee 100644
--- a/linden/indra/cmake/UnixInstall.cmake
+++ b/linden/indra/cmake/UnixInstall.cmake
@@ -21,11 +21,11 @@ if (INSTALL)
21 set(INSTALL_SHARE_DIR ${INSTALL_PREFIX}/share CACHE PATH 21 set(INSTALL_SHARE_DIR ${INSTALL_PREFIX}/share CACHE PATH
22 "Installation directory for read-only shared files.") 22 "Installation directory for read-only shared files.")
23 23
24 set(APP_BINARY_DIR ${INSTALL_LIBRARY_DIR}/secondlife-${viewer_VERSION} 24 set(APP_BINARY_DIR ${INSTALL_LIBRARY_DIR}/imprudence-${viewer_VERSION}
25 CACHE PATH 25 CACHE PATH
26 "Installation directory for binaries.") 26 "Installation directory for binaries.")
27 27
28 set(APP_SHARE_DIR ${INSTALL_SHARE_DIR}/secondlife-${viewer_VERSION} 28 set(APP_SHARE_DIR ${INSTALL_SHARE_DIR}/imprudence-${viewer_VERSION}
29 CACHE PATH 29 CACHE PATH
30 "Installation directory for read-only data files.") 30 "Installation directory for read-only data files.")
31endif (INSTALL) 31endif (INSTALL)
diff --git a/linden/indra/cmake/Variables.cmake b/linden/indra/cmake/Variables.cmake
index 5868e4d..8f33a95 100644
--- a/linden/indra/cmake/Variables.cmake
+++ b/linden/indra/cmake/Variables.cmake
@@ -79,7 +79,7 @@ endif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
79set(GRID agni CACHE STRING "Target Grid") 79set(GRID agni CACHE STRING "Target Grid")
80 80
81set(VIEWER ON CACHE BOOL "Build Second Life viewer.") 81set(VIEWER ON CACHE BOOL "Build Second Life viewer.")
82set(VIEWER_CHANNEL "Developer" CACHE STRING "Viewer Channel Name") 82set(VIEWER_CHANNEL "Imprudence" CACHE STRING "Viewer Channel Name")
83set(VIEWER_LOGIN_CHANNEL ${VIEWER_CHANNEL} CACHE STRING "Fake login channel for A/B Testing") 83set(VIEWER_LOGIN_CHANNEL ${VIEWER_CHANNEL} CACHE STRING "Fake login channel for A/B Testing")
84 84
85set(STANDALONE OFF CACHE BOOL "Do not use Linden-supplied prebuilt libraries.") 85set(STANDALONE OFF CACHE BOOL "Do not use Linden-supplied prebuilt libraries.")
diff --git a/linden/indra/copy_win_scripts/start-client.py b/linden/indra/copy_win_scripts/start-client.py
index 5f7ff2f..ea2b67a 100644..100755
--- a/linden/indra/copy_win_scripts/start-client.py
+++ b/linden/indra/copy_win_scripts/start-client.py
@@ -32,7 +32,7 @@ def start_client(grid, slurl, build_config, my_args):
32 f = open("start-client.log", "w") 32 f = open("start-client.log", "w")
33 print >>f, "Viewer startup arguments:" 33 print >>f, "Viewer startup arguments:"
34 llstart.start("viewer", "../../newview", 34 llstart.start("viewer", "../../newview",
35 "%s/newview/%s/secondlife-bin.exe" % (build_path, build_config), 35 "%s/newview/%s/imprudence-bin.exe" % (build_path, build_config),
36 viewer_args, f) 36 viewer_args, f)
37 f.close() 37 f.close()
38 38
diff --git a/linden/indra/develop.py b/linden/indra/develop.py
index 8edfccc..a0b11c6 100755
--- a/linden/indra/develop.py
+++ b/linden/indra/develop.py
@@ -503,10 +503,10 @@ class WindowsSetup(PlatformSetup):
503 if self.gens[self.generator]['ver'] in [ r'8.0', r'9.0' ]: 503 if self.gens[self.generator]['ver'] in [ r'8.0', r'9.0' ]:
504 config = '\"%s|Win32\"' % config 504 config = '\"%s|Win32\"' % config
505 505
506 return "buildconsole Secondlife.sln /build %s" % config 506 return "buildconsole Imprudence.sln /build %s" % config
507 507
508 # devenv.com is CLI friendly, devenv.exe... not so much. 508 # devenv.com is CLI friendly, devenv.exe... not so much.
509 return ('"%sdevenv.com" Secondlife.sln /build %s' % 509 return ('"%sdevenv.com" Imprudence.sln /build %s' %
510 (self.find_visual_studio(), self.build_type)) 510 (self.find_visual_studio(), self.build_type))
511 511
512 # this override of run exists because the PlatformSetup version 512 # this override of run exists because the PlatformSetup version
@@ -527,9 +527,9 @@ class WindowsSetup(PlatformSetup):
527 for build_dir in self.build_dirs(): 527 for build_dir in self.build_dirs():
528 vstool_cmd = os.path.join('tools','vstool','VSTool.exe') \ 528 vstool_cmd = os.path.join('tools','vstool','VSTool.exe') \
529 + ' --solution ' \ 529 + ' --solution ' \
530 + os.path.join(build_dir,'SecondLife.sln') \ 530 + os.path.join(build_dir,'Imprudence.sln') \
531 + ' --config RelWithDebInfo' \ 531 + ' --config RelWithDebInfo' \
532 + ' --startup secondlife-bin' 532 + ' --startup imprudence-bin'
533 print 'Running %r in %r' % (vstool_cmd, os.getcwd()) 533 print 'Running %r in %r' % (vstool_cmd, os.getcwd())
534 self.run(vstool_cmd) 534 self.run(vstool_cmd)
535 535
diff --git a/linden/indra/lib/python/indra/util/llversion.py b/linden/indra/lib/python/indra/util/llversion.py
index cf4f3c6..666cce4 100644
--- a/linden/indra/lib/python/indra/util/llversion.py
+++ b/linden/indra/lib/python/indra/util/llversion.py
@@ -45,15 +45,12 @@ def get_version_file_contents(version_type):
45 45
46def get_version(version_type): 46def get_version(version_type):
47 file_str = get_version_file_contents(version_type) 47 file_str = get_version_file_contents(version_type)
48 m = re.search('const S32 LL_VERSION_MAJOR = (\d+);', file_str) 48 m = re.search('const S32 IMP_VERSION_MAJOR = (\d+);', file_str)
49 VER_MAJOR = m.group(1) 49 VER_MAJOR = m.group(1)
50 m = re.search('const S32 LL_VERSION_MINOR = (\d+);', file_str) 50 m = re.search('const S32 IMP_VERSION_MINOR = (\d+);', file_str)
51 VER_MINOR = m.group(1) 51 VER_MINOR = m.group(1)
52 m = re.search('const S32 LL_VERSION_PATCH = (\d+);', file_str) 52 m = re.search('const S32 IMP_VERSION_PATCH = (\d+);', file_str)
53 VER_PATCH = m.group(1) 53 version = "%(VER_MAJOR)s.%(VER_MINOR)s.%(VER_PATCH)s" % locals()
54 m = re.search('const S32 LL_VERSION_BUILD = (\d+);', file_str)
55 VER_BUILD = m.group(1)
56 version = "%(VER_MAJOR)s.%(VER_MINOR)s.%(VER_PATCH)s.%(VER_BUILD)s" % locals()
57 return version 54 return version
58 55
59def get_channel(version_type): 56def get_channel(version_type):
diff --git a/linden/indra/linux_crash_logger/llcrashloggerlinux.cpp b/linden/indra/linux_crash_logger/llcrashloggerlinux.cpp
index aa2b82c..c4294d6 100644
--- a/linden/indra/linux_crash_logger/llcrashloggerlinux.cpp
+++ b/linden/indra/linux_crash_logger/llcrashloggerlinux.cpp
@@ -53,13 +53,13 @@
53 53
54// These need to be localized. 54// These need to be localized.
55static const char dialog_text[] = 55static const char dialog_text[] =
56"Second Life appears to have crashed or frozen last time it ran.\n" 56"Imprudence appears to have crashed or frozen last time it ran.\n"
57"This crash reporter collects information about your computer's hardware, operating system, and some Second Life logs, all of which are used for debugging purposes only.\n" 57"This crash reporter collects information about your computer's hardware, operating system, and some Imprudence logs, all of which are used for debugging purposes only.\n"
58"\n" 58"\n"
59"Send crash report?"; 59"Send crash report?";
60 60
61static const char dialog_title[] = 61static const char dialog_title[] =
62"Second Life Crash Logger"; 62"Imprudence Crash Logger";
63 63
64#if LL_GTK 64#if LL_GTK
65static void response_callback (GtkDialog *dialog, 65static void response_callback (GtkDialog *dialog,
@@ -90,7 +90,7 @@ static BOOL do_ask_dialog(void)
90 90
91 win = gtk_message_dialog_new(NULL, 91 win = gtk_message_dialog_new(NULL,
92 flags, messagetype, buttons, 92 flags, messagetype, buttons,
93 dialog_text); 93 "%s", dialog_text);
94 gtk_window_set_type_hint(GTK_WINDOW(win), 94 gtk_window_set_type_hint(GTK_WINDOW(win),
95 GDK_WINDOW_TYPE_HINT_DIALOG); 95 GDK_WINDOW_TYPE_HINT_DIALOG);
96 gtk_window_set_title(GTK_WINDOW(win), dialog_title); 96 gtk_window_set_title(GTK_WINDOW(win), dialog_title);
diff --git a/linden/indra/llcommon/llsecondlifeurls.cpp b/linden/indra/llcommon/llsecondlifeurls.cpp
index ee478fe..b006a6a 100644
--- a/linden/indra/llcommon/llsecondlifeurls.cpp
+++ b/linden/indra/llcommon/llsecondlifeurls.cpp
@@ -84,4 +84,4 @@ const std::string SL_KB_URL (
84 "http://secondlife.com/knowledgebase/"); 84 "http://secondlife.com/knowledgebase/");
85 85
86const std::string RELEASE_NOTES_BASE_URL ( 86const std::string RELEASE_NOTES_BASE_URL (
87 "http://secondlife.com/app/releasenotes/"); 87 "http://imprudenceviewer.org/wiki/Release_Notes/");
diff --git a/linden/indra/llcommon/llversionviewer.h b/linden/indra/llcommon/llversionviewer.h
index 66462b3..4032c5b 100644
--- a/linden/indra/llcommon/llversionviewer.h
+++ b/linden/indra/llcommon/llversionviewer.h
@@ -37,6 +37,14 @@ const S32 LL_VERSION_MINOR = 21;
37const S32 LL_VERSION_PATCH = 6; 37const S32 LL_VERSION_PATCH = 6;
38const S32 LL_VERSION_BUILD = 0; 38const S32 LL_VERSION_BUILD = 0;
39 39
40const char * const LL_CHANNEL = "Second Life Release"; 40const char * const LL_CHANNEL = "Imprudence";
41
42const char * const LL_VIEWER_NAME = "Second Life";
43const char * const IMP_VIEWER_NAME = "Imprudence";
44
45const S32 IMP_VERSION_MAJOR = 1;
46const S32 IMP_VERSION_MINOR = 1;
47const S32 IMP_VERSION_PATCH = 0;
48const char * const IMP_VERSION_TEST = "alpha";
41 49
42#endif 50#endif
diff --git a/linden/indra/llcrashlogger/llcrashlogger.cpp b/linden/indra/llcrashlogger/llcrashlogger.cpp
index 77274b0..af30136 100755
--- a/linden/indra/llcrashlogger/llcrashlogger.cpp
+++ b/linden/indra/llcrashlogger/llcrashlogger.cpp
@@ -172,7 +172,7 @@ void LLCrashLogger::gatherFiles()
172 { 172 {
173 // Figure out the filename of the second life log 173 // Figure out the filename of the second life log
174 LLCurl::setCAFile(gDirUtilp->getCAFile()); 174 LLCurl::setCAFile(gDirUtilp->getCAFile());
175 mFileMap["SecondLifeLog"] = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"SecondLife.log"); 175 mFileMap["SecondLifeLog"] = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"Imprudence.log");
176 mFileMap["SettingsXml"] = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,"settings.xml"); 176 mFileMap["SettingsXml"] = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,"settings.xml");
177 } 177 }
178 178
@@ -293,7 +293,7 @@ bool LLCrashLogger::sendCrashLogs()
293 updateApplication("Sending reports..."); 293 updateApplication("Sending reports...");
294 294
295 std::string dump_path = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, 295 std::string dump_path = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,
296 "SecondLifeCrashReport"); 296 "ImprudenceCrashReport");
297 std::string report_file = dump_path + ".log"; 297 std::string report_file = dump_path + ".log";
298 298
299 std::ofstream out_file(report_file.c_str()); 299 std::ofstream out_file(report_file.c_str());
@@ -327,10 +327,10 @@ void LLCrashLogger::updateApplication(const std::string& message)
327bool LLCrashLogger::init() 327bool LLCrashLogger::init()
328{ 328{
329 // We assume that all the logs we're looking for reside on the current drive 329 // We assume that all the logs we're looking for reside on the current drive
330 gDirUtilp->initAppDirs("SecondLife"); 330 gDirUtilp->initAppDirs("Imprudence");
331 331
332 // Default to the product name "Second Life" (this is overridden by the -name argument) 332 // Default to the product name "Imprudence" (this is overridden by the -name argument)
333 mProductName = "Second Life"; 333 mProductName = "Imprudence";
334 334
335 mCrashSettings.declareS32(CRASH_BEHAVIOR_SETTING, CRASH_BEHAVIOR_ASK, "Controls behavior when viewer crashes " 335 mCrashSettings.declareS32(CRASH_BEHAVIOR_SETTING, CRASH_BEHAVIOR_ASK, "Controls behavior when viewer crashes "
336 "(0 = ask before sending crash report, 1 = always send crash report, 2 = never send crash report)"); 336 "(0 = ask before sending crash report, 1 = always send crash report, 2 = never send crash report)");
@@ -341,7 +341,7 @@ bool LLCrashLogger::init()
341 //Run through command line options 341 //Run through command line options
342 if(getOption("previous").isDefined()) 342 if(getOption("previous").isDefined())
343 { 343 {
344 llinfos << "Previous execution did not remove SecondLife.exec_marker" << llendl; 344 llinfos << "Previous execution did not remove Imprudence.exec_marker" << llendl;
345 mCrashInPreviousExec = TRUE; 345 mCrashInPreviousExec = TRUE;
346 } 346 }
347 347
@@ -371,7 +371,7 @@ bool LLCrashLogger::init()
371 //If we've opened the crash logger, assume we can delete the marker file if it exists 371 //If we've opened the crash logger, assume we can delete the marker file if it exists
372 if( gDirUtilp ) 372 if( gDirUtilp )
373 { 373 {
374 std::string marker_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"SecondLife.exec_marker"); 374 std::string marker_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"Imprudence.exec_marker");
375 ll_apr_file_remove( marker_file ); 375 ll_apr_file_remove( marker_file );
376 } 376 }
377 377
diff --git a/linden/indra/llimage/llimagetga.cpp b/linden/indra/llimage/llimagetga.cpp
index 32c2111..21d0fd1 100644
--- a/linden/indra/llimage/llimagetga.cpp
+++ b/linden/indra/llimage/llimagetga.cpp
@@ -104,7 +104,7 @@ LLImageTGA::LLImageTGA(const std::string& file_name)
104 104
105LLImageTGA::~LLImageTGA() 105LLImageTGA::~LLImageTGA()
106{ 106{
107 delete mColorMap; 107 delete [] mColorMap;
108} 108}
109 109
110BOOL LLImageTGA::updateData() 110BOOL LLImageTGA::updateData()
diff --git a/linden/indra/llmedia/llmediaimplgstreamer.cpp b/linden/indra/llmedia/llmediaimplgstreamer.cpp
index 51a5bca..5d6a648 100644
--- a/linden/indra/llmedia/llmediaimplgstreamer.cpp
+++ b/linden/indra/llmedia/llmediaimplgstreamer.cpp
@@ -428,7 +428,7 @@ unload ()
428 428
429 if (mediaData) 429 if (mediaData)
430 { 430 {
431 delete mediaData; 431 delete [] mediaData;
432 mediaData = NULL; 432 mediaData = NULL;
433 } 433 }
434 434
diff --git a/linden/indra/llmedia/llmediamanager.cpp b/linden/indra/llmedia/llmediamanager.cpp
index f72e63c..16c731f 100644
--- a/linden/indra/llmedia/llmediamanager.cpp
+++ b/linden/indra/llmedia/llmediamanager.cpp
@@ -150,8 +150,10 @@ LLMediaManager* LLMediaManager::getInstance()
150// (static) 150// (static)
151void LLMediaManager::setBrowserUserAgent(std::string user_agent) 151void LLMediaManager::setBrowserUserAgent(std::string user_agent)
152{ 152{
153#if LL_LLMOZLIB_ENABLED
153 // *HACK: Breaks encapsulation model, as initClass does above. JC 154 // *HACK: Breaks encapsulation model, as initClass does above. JC
154 LLMediaImplLLMozLib::setBrowserUserAgent(user_agent); 155 LLMediaImplLLMozLib::setBrowserUserAgent(user_agent);
156#endif
155} 157}
156 158
157//////////////////////////////////////////////////////////////////////////////// 159////////////////////////////////////////////////////////////////////////////////
diff --git a/linden/indra/llmessage/llassetstorage.cpp b/linden/indra/llmessage/llassetstorage.cpp
index fa14a2b..2d85011 100644
--- a/linden/indra/llmessage/llassetstorage.cpp
+++ b/linden/indra/llmessage/llassetstorage.cpp
@@ -522,16 +522,19 @@ void LLAssetStorage::downloadCompleteCallback(
522 S32 result, 522 S32 result,
523 const LLUUID& file_id, 523 const LLUUID& file_id,
524 LLAssetType::EType file_type, 524 LLAssetType::EType file_type,
525 void* user_data, LLExtStat ext_status) 525 void* callback_parm_req, LLExtStat ext_status)
526{ 526{
527 lldebugs << "LLAssetStorage::downloadCompleteCallback() for " << file_id 527 lldebugs << "LLAssetStorage::downloadCompleteCallback() for " << file_id
528 << "," << LLAssetType::lookup(file_type) << llendl; 528 << "," << LLAssetType::lookup(file_type) << llendl;
529 LLAssetRequest* req = (LLAssetRequest*)user_data; 529
530 // be careful! req may be a ptr to memory already freed (a timeout does this)
531 LLAssetRequest* req = (LLAssetRequest*)callback_parm_req;
530 if(!req) 532 if(!req)
531 { 533 {
532 llwarns << "LLAssetStorage::downloadCompleteCallback called without" 534 llwarns << "LLAssetStorage::downloadCompleteCallback called without"
533 "a valid request." << llendl; 535 "a valid request." << llendl;
534 return; 536 // we can live with a null pointer, we're not allowed to deref the ptr anyway (see above)
537 // return;
535 } 538 }
536 if (!gAssetStorage) 539 if (!gAssetStorage)
537 { 540 {
@@ -539,12 +542,10 @@ void LLAssetStorage::downloadCompleteCallback(
539 return; 542 return;
540 } 543 }
541 544
542 req->setUUID(file_id);
543 req->setType(file_type);
544 if (LL_ERR_NOERR == result) 545 if (LL_ERR_NOERR == result)
545 { 546 {
546 // we might have gotten a zero-size file 547 // we might have gotten a zero-size file
547 LLVFile vfile(gAssetStorage->mVFS, req->getUUID(), req->getType()); 548 LLVFile vfile(gAssetStorage->mVFS, file_id, file_type);
548 if (vfile.getSize() <= 0) 549 if (vfile.getSize() <= 0)
549 { 550 {
550 llwarns << "downloadCompleteCallback has non-existent or zero-size asset " << req->getUUID() << llendl; 551 llwarns << "downloadCompleteCallback has non-existent or zero-size asset " << req->getUUID() << llendl;
@@ -563,7 +564,7 @@ void LLAssetStorage::downloadCompleteCallback(
563 { 564 {
564 request_list_t::iterator curiter = iter++; 565 request_list_t::iterator curiter = iter++;
565 LLAssetRequest* tmp = *curiter; 566 LLAssetRequest* tmp = *curiter;
566 if ((tmp->getUUID() == req->getUUID()) && (tmp->getType()== req->getType())) 567 if ((tmp->getUUID() == file_id) && (tmp->getType() == file_type))
567 { 568 {
568 requests.push_front(tmp); 569 requests.push_front(tmp);
569 iter = gAssetStorage->mPendingDownloads.erase(curiter); 570 iter = gAssetStorage->mPendingDownloads.erase(curiter);
@@ -576,7 +577,7 @@ void LLAssetStorage::downloadCompleteCallback(
576 LLAssetRequest* tmp = *curiter; 577 LLAssetRequest* tmp = *curiter;
577 if (tmp->mDownCallback) 578 if (tmp->mDownCallback)
578 { 579 {
579 tmp->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getType(), tmp->mUserData, result, ext_status); 580 tmp->mDownCallback(gAssetStorage->mVFS, tmp->getUUID(), tmp->getType(), tmp->mUserData, result, ext_status);
580 } 581 }
581 delete tmp; 582 delete tmp;
582 } 583 }
@@ -672,10 +673,10 @@ void LLAssetStorage::downloadEstateAssetCompleteCallback(
672 S32 result, 673 S32 result,
673 const LLUUID& file_id, 674 const LLUUID& file_id,
674 LLAssetType::EType file_type, 675 LLAssetType::EType file_type,
675 void* user_data, 676 void* callback_parm_req,
676 LLExtStat ext_status) 677 LLExtStat ext_status)
677{ 678{
678 LLEstateAssetRequest *req = (LLEstateAssetRequest*)user_data; 679 LLEstateAssetRequest *req = (LLEstateAssetRequest*)callback_parm_req;
679 if(!req) 680 if(!req)
680 { 681 {
681 llwarns << "LLAssetStorage::downloadEstateAssetCompleteCallback called" 682 llwarns << "LLAssetStorage::downloadEstateAssetCompleteCallback called"
@@ -689,12 +690,10 @@ void LLAssetStorage::downloadEstateAssetCompleteCallback(
689 return; 690 return;
690 } 691 }
691 692
692 req->setUUID(file_id);
693 req->setType(file_type);
694 if (LL_ERR_NOERR == result) 693 if (LL_ERR_NOERR == result)
695 { 694 {
696 // we might have gotten a zero-size file 695 // we might have gotten a zero-size file
697 LLVFile vfile(gAssetStorage->mVFS, req->getUUID(), req->getAType()); 696 LLVFile vfile(gAssetStorage->mVFS, file_id, file_type);
698 if (vfile.getSize() <= 0) 697 if (vfile.getSize() <= 0)
699 { 698 {
700 llwarns << "downloadCompleteCallback has non-existent or zero-size asset!" << llendl; 699 llwarns << "downloadCompleteCallback has non-existent or zero-size asset!" << llendl;
@@ -704,7 +703,9 @@ void LLAssetStorage::downloadEstateAssetCompleteCallback(
704 } 703 }
705 } 704 }
706 705
707 req->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getAType(), req->mUserData, result, ext_status); 706 req->mDownCallback(gAssetStorage->mVFS, file_id, file_type, req->mUserData, result, ext_status);
707
708 delete req;
708} 709}
709 710
710void LLAssetStorage::getInvItemAsset(const LLHost &object_sim, const LLUUID &agent_id, const LLUUID &session_id, 711void LLAssetStorage::getInvItemAsset(const LLHost &object_sim, const LLUUID &agent_id, const LLUUID &session_id,
@@ -809,10 +810,10 @@ void LLAssetStorage::downloadInvItemCompleteCallback(
809 S32 result, 810 S32 result,
810 const LLUUID& file_id, 811 const LLUUID& file_id,
811 LLAssetType::EType file_type, 812 LLAssetType::EType file_type,
812 void* user_data, 813 void* callback_parm_req,
813 LLExtStat ext_status) 814 LLExtStat ext_status)
814{ 815{
815 LLInvItemRequest *req = (LLInvItemRequest*)user_data; 816 LLInvItemRequest *req = (LLInvItemRequest*)callback_parm_req;
816 if(!req) 817 if(!req)
817 { 818 {
818 llwarns << "LLAssetStorage::downloadEstateAssetCompleteCallback called" 819 llwarns << "LLAssetStorage::downloadEstateAssetCompleteCallback called"
@@ -825,12 +826,10 @@ void LLAssetStorage::downloadInvItemCompleteCallback(
825 return; 826 return;
826 } 827 }
827 828
828 req->setUUID(file_id);
829 req->setType(file_type);
830 if (LL_ERR_NOERR == result) 829 if (LL_ERR_NOERR == result)
831 { 830 {
832 // we might have gotten a zero-size file 831 // we might have gotten a zero-size file
833 LLVFile vfile(gAssetStorage->mVFS, req->getUUID(), req->getType()); 832 LLVFile vfile(gAssetStorage->mVFS, file_id, file_type);
834 if (vfile.getSize() <= 0) 833 if (vfile.getSize() <= 0)
835 { 834 {
836 llwarns << "downloadCompleteCallback has non-existent or zero-size asset!" << llendl; 835 llwarns << "downloadCompleteCallback has non-existent or zero-size asset!" << llendl;
@@ -840,7 +839,9 @@ void LLAssetStorage::downloadInvItemCompleteCallback(
840 } 839 }
841 } 840 }
842 841
843 req->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getType(), req->mUserData, result, ext_status); 842 req->mDownCallback(gAssetStorage->mVFS, file_id, file_type, req->mUserData, result, ext_status);
843
844 delete req;
844} 845}
845 846
846///////////////////////////////////////////////////////////////////////////////////////////////////////////////// 847/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/linden/indra/llmessage/llhttpclient.cpp b/linden/indra/llmessage/llhttpclient.cpp
index fc2612f..ef163fa 100644
--- a/linden/indra/llmessage/llhttpclient.cpp
+++ b/linden/indra/llmessage/llhttpclient.cpp
@@ -160,10 +160,9 @@ namespace
160 fstream.seekg(0, std::ios::end); 160 fstream.seekg(0, std::ios::end);
161 U32 fileSize = fstream.tellg(); 161 U32 fileSize = fstream.tellg();
162 fstream.seekg(0, std::ios::beg); 162 fstream.seekg(0, std::ios::beg);
163 char* fileBuffer; 163 std::vector<char> fileBuffer(fileSize);
164 fileBuffer = new char [fileSize]; 164 fstream.read(&fileBuffer[0], fileSize);
165 fstream.read(fileBuffer, fileSize); 165 ostream.write(&fileBuffer[0], fileSize);
166 ostream.write(fileBuffer, fileSize);
167 fstream.close(); 166 fstream.close();
168 eos = true; 167 eos = true;
169 return STATUS_DONE; 168 return STATUS_DONE;
@@ -190,10 +189,9 @@ namespace
190 189
191 LLVFile vfile(gVFS, mUUID, mAssetType, LLVFile::READ); 190 LLVFile vfile(gVFS, mUUID, mAssetType, LLVFile::READ);
192 S32 fileSize = vfile.getSize(); 191 S32 fileSize = vfile.getSize();
193 U8* fileBuffer; 192 std::vector<U8> fileBuffer(fileSize);
194 fileBuffer = new U8 [fileSize]; 193 vfile.read(&fileBuffer[0], fileSize);
195 vfile.read(fileBuffer, fileSize); 194 ostream.write((char*)&fileBuffer[0], fileSize);
196 ostream.write((char*)fileBuffer, fileSize);
197 eos = true; 195 eos = true;
198 return STATUS_DONE; 196 return STATUS_DONE;
199 } 197 }
diff --git a/linden/indra/llrender/llgl.cpp b/linden/indra/llrender/llgl.cpp
index 843bc79..2cb7adc 100644
--- a/linden/indra/llrender/llgl.cpp
+++ b/linden/indra/llrender/llgl.cpp
@@ -578,7 +578,7 @@ void LLGLManager::initExtensions()
578#else // LL_MESA_HEADLESS 578#else // LL_MESA_HEADLESS
579 mHasMultitexture = glh_init_extensions("GL_ARB_multitexture"); 579 mHasMultitexture = glh_init_extensions("GL_ARB_multitexture");
580 mHasMipMapGeneration = glh_init_extensions("GL_SGIS_generate_mipmap"); 580 mHasMipMapGeneration = glh_init_extensions("GL_SGIS_generate_mipmap");
581 mHasPalettedTextures = glh_init_extension("GL_EXT_paletted_texture"); 581 mHasPalettedTextures = glh_init_extensions("GL_EXT_paletted_texture");
582 mHasSeparateSpecularColor = glh_init_extensions("GL_EXT_separate_specular_color"); 582 mHasSeparateSpecularColor = glh_init_extensions("GL_EXT_separate_specular_color");
583 mHasAnisotropic = glh_init_extensions("GL_EXT_texture_filter_anisotropic"); 583 mHasAnisotropic = glh_init_extensions("GL_EXT_texture_filter_anisotropic");
584 glh_init_extensions("GL_ARB_texture_cube_map"); 584 glh_init_extensions("GL_ARB_texture_cube_map");
diff --git a/linden/indra/llrender/llrender.h b/linden/indra/llrender/llrender.h
index 15360a3..ef495ed 100644
--- a/linden/indra/llrender/llrender.h
+++ b/linden/indra/llrender/llrender.h
@@ -214,7 +214,7 @@ public:
214 214
215 LLTexUnit* getTexUnit(U32 index); 215 LLTexUnit* getTexUnit(U32 index);
216 216
217 typedef struct Vertex 217 struct Vertex
218 { 218 {
219 GLfloat v[3]; 219 GLfloat v[3];
220 GLubyte c[4]; 220 GLubyte c[4];
diff --git a/linden/indra/llvfs/lldir.cpp b/linden/indra/llvfs/lldir.cpp
index 0e014d9..8cd2b5c 100644
--- a/linden/indra/llvfs/lldir.cpp
+++ b/linden/indra/llvfs/lldir.cpp
@@ -229,7 +229,7 @@ const std::string LLDir::getCacheDir(bool get_default) const
229 } 229 }
230 else 230 else
231 { 231 {
232 res = getOSCacheDir() + mDirDelimiter + "SecondLife"; 232 res = getOSCacheDir() + mDirDelimiter + "Imprudence";
233 } 233 }
234 return res; 234 return res;
235 } 235 }
diff --git a/linden/indra/llvfs/lldir_mac.cpp b/linden/indra/llvfs/lldir_mac.cpp
index fd8f087..548f3da 100644
--- a/linden/indra/llvfs/lldir_mac.cpp
+++ b/linden/indra/llvfs/lldir_mac.cpp
@@ -121,7 +121,7 @@ LLDir_Mac::LLDir_Mac()
121 CFStringRef stringRef = NULL; 121 CFStringRef stringRef = NULL;
122 OSStatus error = noErr; 122 OSStatus error = noErr;
123 FSRef fileRef; 123 FSRef fileRef;
124 CFStringRef secondLifeString = CFSTR("SecondLife"); 124 CFStringRef secondLifeString = CFSTR("Imprudence");
125 125
126 mainBundleRef = CFBundleGetMainBundle(); 126 mainBundleRef = CFBundleGetMainBundle();
127 127
@@ -172,7 +172,7 @@ LLDir_Mac::LLDir_Mac()
172 if (error == noErr) 172 if (error == noErr)
173 { 173 {
174 FSRefToLLString(&cacheDirRef, mOSCacheDir); 174 FSRefToLLString(&cacheDirRef, mOSCacheDir);
175 (void)CFCreateDirectory(&cacheDirRef, CFSTR("SecondLife"),NULL); 175 (void)CFCreateDirectory(&cacheDirRef, CFSTR("Imprudence"),NULL);
176 } 176 }
177 177
178 // mOSUserAppDir 178 // mOSUserAppDir
diff --git a/linden/indra/llwindow/llwindowsdl.cpp b/linden/indra/llwindow/llwindowsdl.cpp
index e5d15c4..f0acee5 100644
--- a/linden/indra/llwindow/llwindowsdl.cpp
+++ b/linden/indra/llwindow/llwindowsdl.cpp
@@ -447,7 +447,7 @@ BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, B
447 447
448 // Set the application icon. 448 // Set the application icon.
449 SDL_Surface *bmpsurface; 449 SDL_Surface *bmpsurface;
450 bmpsurface = Load_BMP_Resource("ll_icon.BMP"); 450 bmpsurface = Load_BMP_Resource("imprudence_icon.BMP");
451 if (bmpsurface) 451 if (bmpsurface)
452 { 452 {
453 // This attempts to give a black-keyed mask to the icon. 453 // This attempts to give a black-keyed mask to the icon.
@@ -2530,7 +2530,7 @@ S32 OSMessageBoxSDL(const std::string& text, const std::string& caption, U32 typ
2530 buttons = GTK_BUTTONS_YES_NO; 2530 buttons = GTK_BUTTONS_YES_NO;
2531 break; 2531 break;
2532 } 2532 }
2533 win = gtk_message_dialog_new(NULL,flags, messagetype, buttons, text.c_str()); 2533 win = gtk_message_dialog_new(NULL,flags, messagetype, buttons, "%s", text.c_str());
2534 2534
2535# if LL_X11 2535# if LL_X11
2536 // Make GTK tell the window manager to associate this 2536 // Make GTK tell the window manager to associate this
diff --git a/linden/indra/lscript/lscript_compile/lscript_tree.cpp b/linden/indra/lscript/lscript_compile/lscript_tree.cpp
index 71e7f19..70d8195 100644
--- a/linden/indra/lscript/lscript_compile/lscript_tree.cpp
+++ b/linden/indra/lscript/lscript_compile/lscript_tree.cpp
@@ -7885,10 +7885,10 @@ void LLScriptFunctionCall::recurse(LLFILE *fp, S32 tabs, S32 tabsize, LSCRIPTCom
7885 { 7885 {
7886 // Prefix function name with g to distinguish from 7886 // Prefix function name with g to distinguish from
7887 // event handlers. 7887 // event handlers.
7888 fprintf(fp, gScriptp->getClassName()); 7888 fprintf(fp, "%s", gScriptp->getClassName());
7889 fprintf(fp, "::'g"); 7889 fprintf(fp, "::'g");
7890 } 7890 }
7891 fprintf(fp, mIdentifier->mName); 7891 fprintf(fp, "%s", mIdentifier->mName);
7892 fprintf(fp, "'("); 7892 fprintf(fp, "'(");
7893 print_cil_arg_list(fp, mIdentifier->mScopeEntry->mFunctionArgs); 7893 print_cil_arg_list(fp, mIdentifier->mScopeEntry->mFunctionArgs);
7894 fprintf(fp, ")\n"); 7894 fprintf(fp, ")\n");
@@ -9720,7 +9720,7 @@ void LLScriptEventHandler::recurse(LLFILE *fp, S32 tabs, S32 tabsize, LSCRIPTCom
9720 // Allows state changing by finding handlers prefixed with new 9720 // Allows state changing by finding handlers prefixed with new
9721 // state name. Prefix disambiguates functions and event handlers. 9721 // state name. Prefix disambiguates functions and event handlers.
9722 fprintf(fp, "e"); 9722 fprintf(fp, "e");
9723 fprintf(fp, entry->mIdentifier); 9723 fprintf(fp, "%s", entry->mIdentifier);
9724 9724
9725 // Handler name and arguments. 9725 // Handler name and arguments.
9726 mEventp->recurse(fp, tabs, tabsize, pass, ptype, prunearg, scope, type, basetype, count, chunk, heap, stacksize, entry, entrycount, NULL); 9726 mEventp->recurse(fp, tabs, tabsize, pass, ptype, prunearg, scope, type, basetype, count, chunk, heap, stacksize, entry, entrycount, NULL);
@@ -10152,7 +10152,7 @@ void LLScriptGlobalFunctions::recurse(LLFILE *fp, S32 tabs, S32 tabsize, LSCRIPT
10152 fprintf(fp, ".method public hidebysig instance default "); 10152 fprintf(fp, ".method public hidebysig instance default ");
10153 print_cil_type(fp, mType ? mType->mType : LST_NULL); 10153 print_cil_type(fp, mType ? mType->mType : LST_NULL);
10154 fprintf(fp, " 'g"); 10154 fprintf(fp, " 'g");
10155 fprintf(fp, mIdentifier->mName); 10155 fprintf(fp, "%s", mIdentifier->mName);
10156 fprintf(fp, "'"); 10156 fprintf(fp, "'");
10157 if (mParameters) 10157 if (mParameters)
10158 { 10158 {
diff --git a/linden/indra/mac_crash_logger/CMakeLists.txt b/linden/indra/mac_crash_logger/CMakeLists.txt
index 9cddb56..371b6fb 100644
--- a/linden/indra/mac_crash_logger/CMakeLists.txt
+++ b/linden/indra/mac_crash_logger/CMakeLists.txt
@@ -47,7 +47,7 @@ set_source_files_properties(
47set_source_files_properties( 47set_source_files_properties(
48 Info.plist 48 Info.plist
49 PROPERTIES 49 PROPERTIES
50 MACOSX_PACKAGE_LOCATION . # will it blend? + poppy 50 MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
51 ) 51 )
52SOURCE_GROUP("Resources" FILES ${mac_crash_logger_RESOURCE_FILES}) 52SOURCE_GROUP("Resources" FILES ${mac_crash_logger_RESOURCE_FILES})
53list(APPEND mac_crash_logger_SOURCE_FILES ${mac_crash_logger_RESOURCE_FILES}) 53list(APPEND mac_crash_logger_SOURCE_FILES ${mac_crash_logger_RESOURCE_FILES})
diff --git a/linden/indra/mac_updater/CMakeLists.txt b/linden/indra/mac_updater/CMakeLists.txt
index 3ac5aee..ef87b29 100644
--- a/linden/indra/mac_updater/CMakeLists.txt
+++ b/linden/indra/mac_updater/CMakeLists.txt
@@ -53,7 +53,7 @@ set_source_files_properties(
53set_source_files_properties( 53set_source_files_properties(
54 Info.plist 54 Info.plist
55 PROPERTIES 55 PROPERTIES
56 MACOSX_PACKAGE_LOCATION . # will it blend? + poppy 56 MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
57 ) 57 )
58SOURCE_GROUP("Resources" FILES ${mac_updater_RESOURCE_FILES}) 58SOURCE_GROUP("Resources" FILES ${mac_updater_RESOURCE_FILES})
59list(APPEND mac_updater_SOURCE_FILES ${mac_updater_RESOURCE_FILES}) 59list(APPEND mac_updater_SOURCE_FILES ${mac_updater_RESOURCE_FILES})
diff --git a/linden/indra/mac_updater/mac_updater.cpp b/linden/indra/mac_updater/mac_updater.cpp
index c2f9f4d..7bffff5 100644
--- a/linden/indra/mac_updater/mac_updater.cpp
+++ b/linden/indra/mac_updater/mac_updater.cpp
@@ -378,7 +378,7 @@ int main(int argc, char **argv)
378 } 378 }
379 else 379 else
380 { 380 {
381 gProductName = "Second Life"; 381 gProductName = "Imprudence";
382 } 382 }
383 } 383 }
384 384
@@ -471,7 +471,7 @@ int main(int argc, char **argv)
471 err = CreateStandardAlert( 471 err = CreateStandardAlert(
472 kAlertStopAlert, 472 kAlertStopAlert,
473 CFSTR("Error"), 473 CFSTR("Error"),
474 CFSTR("An error occurred while updating Second Life. Please download the latest version from www.secondlife.com."), 474 CFSTR("An error occurred while updating Imprudence. Please download the latest version from http://imprudenceviewer.org/download/"),
475 &params, 475 &params,
476 &alert); 476 &alert);
477 477
@@ -934,7 +934,7 @@ void *updatethreadproc(void*)
934 934
935#endif // 0 *HACK for DEV-11935 935#endif // 0 *HACK for DEV-11935
936 936
937 strncat(temp, "/SecondLifeUpdate_XXXXXX", (sizeof(temp) - strlen(temp)) - 1); 937 strncat(temp, "/ImprudenceUpdate_XXXXXX", (sizeof(temp) - strlen(temp)) - 1);
938 if(mkdtemp(temp) == NULL) 938 if(mkdtemp(temp) == NULL)
939 { 939 {
940 throw 0; 940 throw 0;
@@ -952,7 +952,7 @@ void *updatethreadproc(void*)
952 952
953 chdir(tempDir); 953 chdir(tempDir);
954 954
955 snprintf(temp, sizeof(temp), "SecondLife.dmg"); 955 snprintf(temp, sizeof(temp), "Imprudence.dmg");
956 956
957 downloadFile = LLFile::fopen(temp, "wb"); /* Flawfinder: ignore */ 957 downloadFile = LLFile::fopen(temp, "wb"); /* Flawfinder: ignore */
958 if(downloadFile == NULL) 958 if(downloadFile == NULL)
@@ -999,7 +999,7 @@ void *updatethreadproc(void*)
999 // NOTE: we could add -private at the end of this command line to keep the image from showing up in the Finder, 999 // NOTE: we could add -private at the end of this command line to keep the image from showing up in the Finder,
1000 // but if our cleanup fails, this makes it much harder for the user to unmount the image. 1000 // but if our cleanup fails, this makes it much harder for the user to unmount the image.
1001 std::string mountOutput; 1001 std::string mountOutput;
1002 FILE* mounter = popen("hdiutil attach SecondLife.dmg -mountpoint mnt", "r"); /* Flawfinder: ignore */ 1002 FILE* mounter = popen("hdiutil attach Imprudence.dmg -mountpoint mnt", "r"); /* Flawfinder: ignore */
1003 1003
1004 if(mounter == NULL) 1004 if(mounter == NULL)
1005 { 1005 {
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt
index ae0feb6..ddf6897 100644
--- a/linden/indra/newview/CMakeLists.txt
+++ b/linden/indra/newview/CMakeLists.txt
@@ -918,6 +918,7 @@ if (WINDOWS)
918 res/bitmap2.bmp 918 res/bitmap2.bmp
919 res/circleandline.cur 919 res/circleandline.cur
920 res/icon1.ico 920 res/icon1.ico
921 res/imprudence_icon.png
921 res/install_icon.BMP 922 res/install_icon.BMP
922 res/install_icon.ico 923 res/install_icon.ico
923 res/llarrow.cur 924 res/llarrow.cur
@@ -939,7 +940,6 @@ if (WINDOWS)
939 res/lltooltranslate.cur 940 res/lltooltranslate.cur
940 res/lltoolzoomin.cur 941 res/lltoolzoomin.cur
941 res/lltoolzoomout.cur 942 res/lltoolzoomout.cur
942 res/ll_icon.BMP
943 res/ll_icon.ico 943 res/ll_icon.ico
944 res/loginbackground.bmp 944 res/loginbackground.bmp
945 res/resource.h 945 res/resource.h
@@ -979,7 +979,7 @@ if (WINDOWS)
979 comdlg32 979 comdlg32
980 ${DINPUT_LIBRARY} 980 ${DINPUT_LIBRARY}
981 ${DXGUID_LIBRARY} 981 ${DXGUID_LIBRARY}
982 fmodvc 982 ${FMOD_LIBRARY}
983 gdi32 983 gdi32
984 kernel32 984 kernel32
985 odbc32 985 odbc32
@@ -1265,15 +1265,15 @@ list(APPEND viewer_SOURCE_FILES ${viewer_HEADER_FILES})
1265set_source_files_properties(${viewer_HEADER_FILES} 1265set_source_files_properties(${viewer_HEADER_FILES}
1266 PROPERTIES HEADER_FILE_ONLY TRUE) 1266 PROPERTIES HEADER_FILE_ONLY TRUE)
1267 1267
1268add_executable(secondlife-bin 1268add_executable(imprudence-bin
1269 WIN32 1269 WIN32
1270 MACOSX_BUNDLE 1270 MACOSX_BUNDLE
1271 ${viewer_SOURCE_FILES} 1271 ${viewer_SOURCE_FILES}
1272 ) 1272 )
1273check_message_template(secondlife-bin) 1273check_message_template(imprudence-bin)
1274 1274
1275if (LLKDU_LIBRARY) 1275if (LLKDU_LIBRARY)
1276 add_dependencies(secondlife-bin ${LLKDU_LIBRARY}) 1276 add_dependencies(imprudence-bin ${LLKDU_LIBRARY})
1277endif (LLKDU_LIBRARY) 1277endif (LLKDU_LIBRARY)
1278 1278
1279set(PACKAGE OFF CACHE BOOL 1279set(PACKAGE OFF CACHE BOOL
@@ -1281,12 +1281,12 @@ set(PACKAGE OFF CACHE BOOL
1281 1281
1282if (WINDOWS) 1282if (WINDOWS)
1283 if(MSVC71) 1283 if(MSVC71)
1284 set(release_flags "/MAP:Release/secondlife-bin.map /MAPINFO:LINES") 1284 set(release_flags "/MAP:Release/imprudence-bin.map /MAPINFO:LINES")
1285 else(MSVC71) 1285 else(MSVC71)
1286 set(release_flags "/MAP:Release/secondlife-bin.map") 1286 set(release_flags "/MAP:Release/imprudence-bin.map")
1287 endif(MSVC71) 1287 endif(MSVC71)
1288 1288
1289 set_target_properties(secondlife-bin 1289 set_target_properties(imprudence-bin
1290 PROPERTIES 1290 PROPERTIES
1291 LINK_FLAGS "/debug /NODEFAULTLIB:MSVCRT /SUBSYSTEM:WINDOWS" 1291 LINK_FLAGS "/debug /NODEFAULTLIB:MSVCRT /SUBSYSTEM:WINDOWS"
1292 LINK_FLAGS_DEBUG "/NODEFAULTLIB:LIBCMT /NODEFAULTLIB:MSVCRTD" 1292 LINK_FLAGS_DEBUG "/NODEFAULTLIB:LIBCMT /NODEFAULTLIB:MSVCRTD"
@@ -1296,20 +1296,20 @@ if (WINDOWS)
1296 # sets the 'working directory' for debugging from visual studio. 1296 # sets the 'working directory' for debugging from visual studio.
1297 if (NOT UNATTENDED) 1297 if (NOT UNATTENDED)
1298 add_custom_command( 1298 add_custom_command(
1299 TARGET secondlife-bin PRE_BUILD 1299 TARGET imprudence-bin PRE_BUILD
1300 COMMAND ${CMAKE_SOURCE_DIR}/tools/vstool/vstool.exe 1300 COMMAND ${CMAKE_SOURCE_DIR}/tools/vstool/vstool.exe
1301 ARGS 1301 ARGS
1302 --solution 1302 --solution
1303 ${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}.sln 1303 ${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}.sln
1304 --workingdir 1304 --workingdir
1305 secondlife-bin 1305 imprudence-bin
1306 ${CMAKE_CURRENT_SOURCE_DIR} 1306 ${CMAKE_CURRENT_SOURCE_DIR}
1307 COMMENT "Setting the secondlife-bin working directory for debugging." 1307 COMMENT "Setting the imprudence-bin working directory for debugging."
1308 ) 1308 )
1309 endif (NOT UNATTENDED) 1309 endif (NOT UNATTENDED)
1310 1310
1311 add_custom_command( 1311 add_custom_command(
1312 TARGET secondlife-bin PRE_BUILD 1312 TARGET imprudence-bin PRE_BUILD
1313 COMMAND ${CMAKE_COMMAND} 1313 COMMAND ${CMAKE_COMMAND}
1314 ARGS 1314 ARGS
1315 -E 1315 -E
@@ -1320,7 +1320,7 @@ if (WINDOWS)
1320 ) 1320 )
1321 1321
1322 add_custom_command( 1322 add_custom_command(
1323 TARGET secondlife-bin PRE_BUILD 1323 TARGET imprudence-bin PRE_BUILD
1324 COMMAND ${CMAKE_COMMAND} 1324 COMMAND ${CMAKE_COMMAND}
1325 ARGS 1325 ARGS
1326 -E 1326 -E
@@ -1330,10 +1330,10 @@ if (WINDOWS)
1330 COMMENT "Copying message.xml to the runtime folder." 1330 COMMENT "Copying message.xml to the runtime folder."
1331 ) 1331 )
1332 1332
1333 add_dependencies(secondlife-bin copy_win_libs) 1333 add_dependencies(imprudence-bin copy_win_libs)
1334 1334
1335 if (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts) 1335 if (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
1336 add_dependencies(secondlife-bin copy_win_scripts) 1336 add_dependencies(imprudence-bin copy_win_scripts)
1337 endif (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts) 1337 endif (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
1338 1338
1339 add_custom_command( 1339 add_custom_command(
@@ -1350,7 +1350,7 @@ if (WINDOWS)
1350 --build=${CMAKE_CURRENT_BINARY_DIR} 1350 --build=${CMAKE_CURRENT_BINARY_DIR}
1351 --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} 1351 --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
1352 --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat 1352 --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat
1353 DEPENDS secondlife-bin ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py 1353 DEPENDS imprudence-bin ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
1354 ) 1354 )
1355 if (PACKAGE) 1355 if (PACKAGE)
1356 add_custom_target(package ALL DEPENDS ${CMAKE_CFG_INTDIR}/touched.bat) 1356 add_custom_target(package ALL DEPENDS ${CMAKE_CFG_INTDIR}/touched.bat)
@@ -1358,7 +1358,7 @@ if (WINDOWS)
1358 endif (PACKAGE) 1358 endif (PACKAGE)
1359endif (WINDOWS) 1359endif (WINDOWS)
1360 1360
1361target_link_libraries(secondlife-bin 1361target_link_libraries(imprudence-bin
1362 ${LLAUDIO_LIBRARIES} 1362 ${LLAUDIO_LIBRARIES}
1363 ${LLCHARACTER_LIBRARIES} 1363 ${LLCHARACTER_LIBRARIES}
1364 ${LLIMAGE_LIBRARIES} 1364 ${LLIMAGE_LIBRARIES}
@@ -1403,13 +1403,13 @@ set(ARTWORK_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE PATH
1403 1403
1404if (LINUX) 1404if (LINUX)
1405 add_custom_command( 1405 add_custom_command(
1406 OUTPUT secondlife-stripped 1406 OUTPUT imprudence-stripped
1407 COMMAND strip 1407 COMMAND strip
1408 ARGS --strip-debug -o secondlife-stripped secondlife-bin 1408 ARGS --strip-debug -o imprudence-stripped imprudence-bin
1409 DEPENDS secondlife-bin 1409 DEPENDS imprudence-bin
1410 ) 1410 )
1411 1411
1412 set(product SecondLife-${ARCH}-${viewer_VERSION}) 1412 set(product Imprudence-${ARCH}-${viewer_VERSION})
1413 1413
1414 add_custom_command( 1414 add_custom_command(
1415 OUTPUT ${product}.tar.bz2 1415 OUTPUT ${product}.tar.bz2
@@ -1426,7 +1426,7 @@ if (LINUX)
1426 --build=${CMAKE_CURRENT_BINARY_DIR} 1426 --build=${CMAKE_CURRENT_BINARY_DIR}
1427 --dest=${CMAKE_CURRENT_BINARY_DIR}/packaged 1427 --dest=${CMAKE_CURRENT_BINARY_DIR}/packaged
1428 --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched 1428 --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched
1429 DEPENDS secondlife-stripped ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py 1429 DEPENDS imprudence-stripped ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
1430 ) 1430 )
1431 1431
1432 if (NOT INSTALL) 1432 if (NOT INSTALL)
@@ -1436,23 +1436,23 @@ if (LINUX)
1436endif (LINUX) 1436endif (LINUX)
1437 1437
1438if (DARWIN) 1438if (DARWIN)
1439 set(product "Second Life") 1439 set(product "Imprudence")
1440 set_target_properties( 1440 set_target_properties(
1441 secondlife-bin 1441 imprudence-bin
1442 PROPERTIES 1442 PROPERTIES
1443 OUTPUT_NAME "${product}" 1443 OUTPUT_NAME "${product}"
1444 MACOSX_BUNDLE_INFO_STRING "info string - localize me" 1444 MACOSX_BUNDLE_INFO_STRING "info string - localize me"
1445 MACOSX_BUNDLE_ICON_FILE "secondlife.icns" 1445 MACOSX_BUNDLE_ICON_FILE "secondlife.icns"
1446 MACOSX_BUNDLE_GUI_IDENTIFIER "Second Life" 1446 MACOSX_BUNDLE_GUI_IDENTIFIER "Imprudence"
1447 MACOSX_BUNDLE_LONG_VERSION_STRING "ververver" 1447 MACOSX_BUNDLE_LONG_VERSION_STRING "ververver"
1448 MACOSX_BUNDLE_BUNDLE_NAME "Second Life" 1448 MACOSX_BUNDLE_BUNDLE_NAME "Imprudence"
1449 MACOSX_BUNDLE_SHORT_VERSION_STRING "asdf" 1449 MACOSX_BUNDLE_SHORT_VERSION_STRING "asdf"
1450 MACOSX_BUNDLE_BUNDLE_VERSION "asdf" 1450 MACOSX_BUNDLE_BUNDLE_VERSION "asdf"
1451 MACOSX_BUNDLE_COPYRIGHT "copyright linden lab 2007 - localize me and run me through a legal wringer" 1451 MACOSX_BUNDLE_COPYRIGHT "copyright linden lab 2007 - localize me and run me through a legal wringer"
1452 ) 1452 )
1453 1453
1454 add_custom_command( 1454 add_custom_command(
1455 TARGET secondlife-bin POST_BUILD 1455 TARGET imprudence-bin POST_BUILD
1456 COMMAND ${PYTHON_EXECUTABLE} 1456 COMMAND ${PYTHON_EXECUTABLE}
1457 ARGS 1457 ARGS
1458 ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py 1458 ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
@@ -1463,7 +1463,7 @@ if (DARWIN)
1463 --artwork=${ARTWORK_DIR} 1463 --artwork=${ARTWORK_DIR}
1464 --build=${CMAKE_CURRENT_BINARY_DIR} 1464 --build=${CMAKE_CURRENT_BINARY_DIR}
1465 --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app 1465 --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app
1466 DEPENDS secondlife-bin ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py 1466 DEPENDS imprudence-bin ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
1467 ) 1467 )
1468 1468
1469 if (PACKAGE) 1469 if (PACKAGE)
@@ -1481,7 +1481,7 @@ if (DARWIN)
1481 --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app 1481 --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app
1482 --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched 1482 --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched
1483 DEPENDS 1483 DEPENDS
1484 secondlife-bin 1484 imprudence-bin
1485 ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py 1485 ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
1486 ) 1486 )
1487 add_dependencies(package mac-updater mac-crash-logger) 1487 add_dependencies(package mac-updater mac-crash-logger)
diff --git a/linden/indra/newview/English.lproj/InfoPlist.strings b/linden/indra/newview/English.lproj/InfoPlist.strings
index 881483e..784a1b7 100644
--- a/linden/indra/newview/English.lproj/InfoPlist.strings
+++ b/linden/indra/newview/English.lproj/InfoPlist.strings
@@ -1,6 +1,6 @@
1/* Localized versions of Info.plist keys */ 1/* Localized versions of Info.plist keys */
2 2
3CFBundleName = "Second Life"; 3CFBundleName = "Imprudence";
4CFBundleShortVersionString = "Second Life version 1.20.9.87416"; 4CFBundleShortVersionString = "Imprudence version 1.0.0";
5CFBundleGetInfoString = "Second Life version 1.20.9.87416, Copyright 2004-2008 Linden Research, Inc."; 5CFBundleGetInfoString = "Imprudence version 1.0.0, Copyright 2004-2008 Linden Research, Inc.";
6 6
diff --git a/linden/indra/newview/Info-SecondLife.plist b/linden/indra/newview/Info-SecondLife.plist
index b889d45..32bba70 100644
--- a/linden/indra/newview/Info-SecondLife.plist
+++ b/linden/indra/newview/Info-SecondLife.plist
@@ -1,39 +1,39 @@
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 2<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3<plist version="1.0"> 3<plist version="1.0">
4<dict> 4<dict>
5 <key>CFBundleDevelopmentRegion</key> 5 <key>CFBundleDevelopmentRegion</key>
6 <string>English</string> 6 <string>English</string>
7 <key>CFBundleExecutable</key> 7 <key>CFBundleExecutable</key>
8 <string>Second Life</string> 8 <string>Imprudence</string>
9 <key>CFBundleIconFile</key> 9 <key>CFBundleIconFile</key>
10 <string>secondlife.icns</string> 10 <string>secondlife.icns</string>
11 <key>CFBundleIdentifier</key> 11 <key>CFBundleIdentifier</key>
12 <string>com.secondlife.indra.viewer</string> 12 <string>com.secondlife.indra.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>
16 <string>Second Life</string> 16 <string>Imprudence</string>
17 <key>CFBundlePackageType</key> 17 <key>CFBundlePackageType</key>
18 <string>APPL</string> 18 <string>APPL</string>
19 <key>CFBundleSignature</key> 19 <key>CFBundleSignature</key>
20 <string>????</string> 20 <string>????</string>
21 <key>CFBundleURLTypes</key> 21 <key>CFBundleURLTypes</key>
22 <array> 22 <array>
23 <dict> 23 <dict>
24 <key>CFBundleURLName</key> 24 <key>CFBundleURLName</key>
25 <string>Second Life URL</string> 25 <string>Second Life URL</string>
26 <key>CFBundleURLSchemes</key> 26 <key>CFBundleURLSchemes</key>
27 <array> 27 <array>
28 <string>secondlife</string> 28 <string>secondlife</string>
29 </array> 29 </array>
30 <key>LSIsAppleDefaultForScheme</key> 30 <key>LSIsAppleDefaultForScheme</key>
31 <true/> 31 <true/>
32 </dict> 32 </dict>
33 </array> 33 </array>
34 <key>CFBundleVersion</key> 34 <key>CFBundleVersion</key>
35 <string>1.20.9.87416</string> 35 <string>1.0.0</string>
36 <key>CSResourcesFileMapped</key> 36 <key>CSResourcesFileMapped</key>
37 <true/> 37 <true/>
38</dict> 38</dict>
39</plist> 39</plist>
diff --git a/linden/indra/newview/SecondLife.nib/objects.xib b/linden/indra/newview/SecondLife.nib/objects.xib
index b7ff30f..07af643 100644
--- a/linden/indra/newview/SecondLife.nib/objects.xib
+++ b/linden/indra/newview/SecondLife.nib/objects.xib
@@ -1,259 +1,259 @@
1<?xml version="1.0" standalone="yes"?> 1<?xml version="1.0" standalone="yes"?>
2<object class="NSIBObjectData"> 2<object class="NSIBObjectData">
3 <string name="targetFramework">IBCarbonFramework</string> 3 <string name="targetFramework">IBCarbonFramework</string>
4 <object name="rootObject" class="NSCustomObject" id="1"> 4 <object name="rootObject" class="NSCustomObject" id="1">
5 <string name="customClass">NSApplication</string> 5 <string name="customClass">NSApplication</string>
6 </object> 6 </object>
7 <array count="31" name="allObjects"> 7 <array count="31" name="allObjects">
8 <object class="IBCarbonMenu" id="29"> 8 <object class="IBCarbonMenu" id="29">
9 <string name="title">SecondLife</string> 9 <string name="title">Imprudence</string>
10 <array count="4" name="items"> 10 <array count="4" name="items">
11 <object class="IBCarbonMenuItem" id="182"> 11 <object class="IBCarbonMenuItem" id="182">
12 <string name="title">Second Life</string> 12 <string name="title">Imprudence</string>
13 <object name="submenu" class="IBCarbonMenu" id="181"> 13 <object name="submenu" class="IBCarbonMenu" id="181">
14 <string name="title">Second Life</string> 14 <string name="title">Imprudence</string>
15 <array count="1" name="items"> 15 <array count="1" name="items">
16 <object class="IBCarbonMenuItem" id="183"> 16 <object class="IBCarbonMenuItem" id="183">
17 <boolean name="disabled">TRUE</boolean> 17 <boolean name="disabled">TRUE</boolean>
18 <boolean name="updateSingleItem">TRUE</boolean> 18 <boolean name="updateSingleItem">TRUE</boolean>
19 <string name="title">About Second Life</string> 19 <string name="title">About Imprudence</string>
20 <int name="keyEquivalentModifier">0</int> 20 <int name="keyEquivalentModifier">0</int>
21 <ostype name="command">abou</ostype> 21 <ostype name="command">abou</ostype>
22 </object> 22 </object>
23 </array> 23 </array>
24 <string name="name">_NSAppleMenu</string> 24 <string name="name">_NSAppleMenu</string>
25 </object> 25 </object>
26 </object> 26 </object>
27 <object class="IBCarbonMenuItem" id="127"> 27 <object class="IBCarbonMenuItem" id="127">
28 <string name="title">File</string> 28 <string name="title">File</string>
29 <object name="submenu" class="IBCarbonMenu" id="131"> 29 <object name="submenu" class="IBCarbonMenu" id="131">
30 <string name="title">File</string> 30 <string name="title">File</string>
31 </object> 31 </object>
32 </object> 32 </object>
33 <object class="IBCarbonMenuItem" id="152"> 33 <object class="IBCarbonMenuItem" id="152">
34 <string name="title">Edit</string> 34 <string name="title">Edit</string>
35 <object name="submenu" class="IBCarbonMenu" id="147"> 35 <object name="submenu" class="IBCarbonMenu" id="147">
36 <string name="title">Edit</string> 36 <string name="title">Edit</string>
37 <array count="10" name="items"> 37 <array count="10" name="items">
38 <object class="IBCarbonMenuItem" id="141"> 38 <object class="IBCarbonMenuItem" id="141">
39 <boolean name="updateSingleItem">TRUE</boolean> 39 <boolean name="updateSingleItem">TRUE</boolean>
40 <string name="title">Undo</string> 40 <string name="title">Undo</string>
41 <string name="keyEquivalent">z</string> 41 <string name="keyEquivalent">z</string>
42 <ostype name="command">undo</ostype> 42 <ostype name="command">undo</ostype>
43 </object> 43 </object>
44 <object class="IBCarbonMenuItem" id="146"> 44 <object class="IBCarbonMenuItem" id="146">
45 <boolean name="updateSingleItem">TRUE</boolean> 45 <boolean name="updateSingleItem">TRUE</boolean>
46 <string name="title">Redo</string> 46 <string name="title">Redo</string>
47 <string name="keyEquivalent">Z</string> 47 <string name="keyEquivalent">Z</string>
48 <ostype name="command">redo</ostype> 48 <ostype name="command">redo</ostype>
49 </object> 49 </object>
50 <object class="IBCarbonMenuItem" id="142"> 50 <object class="IBCarbonMenuItem" id="142">
51 <boolean name="separator">TRUE</boolean> 51 <boolean name="separator">TRUE</boolean>
52 </object> 52 </object>
53 <object class="IBCarbonMenuItem" id="143"> 53 <object class="IBCarbonMenuItem" id="143">
54 <boolean name="updateSingleItem">TRUE</boolean> 54 <boolean name="updateSingleItem">TRUE</boolean>
55 <string name="title">Cut</string> 55 <string name="title">Cut</string>
56 <string name="keyEquivalent">x</string> 56 <string name="keyEquivalent">x</string>
57 <ostype name="command">cut </ostype> 57 <ostype name="command">cut </ostype>
58 </object> 58 </object>
59 <object class="IBCarbonMenuItem" id="149"> 59 <object class="IBCarbonMenuItem" id="149">
60 <boolean name="updateSingleItem">TRUE</boolean> 60 <boolean name="updateSingleItem">TRUE</boolean>
61 <string name="title">Copy</string> 61 <string name="title">Copy</string>
62 <string name="keyEquivalent">c</string> 62 <string name="keyEquivalent">c</string>
63 <ostype name="command">copy</ostype> 63 <ostype name="command">copy</ostype>
64 </object> 64 </object>
65 <object class="IBCarbonMenuItem" id="144"> 65 <object class="IBCarbonMenuItem" id="144">
66 <boolean name="updateSingleItem">TRUE</boolean> 66 <boolean name="updateSingleItem">TRUE</boolean>
67 <string name="title">Paste</string> 67 <string name="title">Paste</string>
68 <string name="keyEquivalent">v</string> 68 <string name="keyEquivalent">v</string>
69 <ostype name="command">past</ostype> 69 <ostype name="command">past</ostype>
70 </object> 70 </object>
71 <object class="IBCarbonMenuItem" id="151"> 71 <object class="IBCarbonMenuItem" id="151">
72 <boolean name="updateSingleItem">TRUE</boolean> 72 <boolean name="updateSingleItem">TRUE</boolean>
73 <string name="title">Delete</string> 73 <string name="title">Delete</string>
74 <ostype name="command">clea</ostype> 74 <ostype name="command">clea</ostype>
75 </object> 75 </object>
76 <object class="IBCarbonMenuItem" id="148"> 76 <object class="IBCarbonMenuItem" id="148">
77 <boolean name="updateSingleItem">TRUE</boolean> 77 <boolean name="updateSingleItem">TRUE</boolean>
78 <string name="title">Select All</string> 78 <string name="title">Select All</string>
79 <string name="keyEquivalent">a</string> 79 <string name="keyEquivalent">a</string>
80 <ostype name="command">sall</ostype> 80 <ostype name="command">sall</ostype>
81 </object> 81 </object>
82 <object class="IBCarbonMenuItem" id="188"> 82 <object class="IBCarbonMenuItem" id="188">
83 <boolean name="separator">TRUE</boolean> 83 <boolean name="separator">TRUE</boolean>
84 </object> 84 </object>
85 <object class="IBCarbonMenuItem" id="187"> 85 <object class="IBCarbonMenuItem" id="187">
86 <boolean name="updateSingleItem">TRUE</boolean> 86 <boolean name="updateSingleItem">TRUE</boolean>
87 <string name="title">Special Characters…</string> 87 <string name="title">Special Characters…</string>
88 <ostype name="command">chrp</ostype> 88 <ostype name="command">chrp</ostype>
89 </object> 89 </object>
90 </array> 90 </array>
91 </object> 91 </object>
92 </object> 92 </object>
93 <object class="IBCarbonMenuItem" id="153"> 93 <object class="IBCarbonMenuItem" id="153">
94 <string name="title">Window</string> 94 <string name="title">Window</string>
95 <object name="submenu" class="IBCarbonMenu" id="154"> 95 <object name="submenu" class="IBCarbonMenu" id="154">
96 <string name="title">Window</string> 96 <string name="title">Window</string>
97 <array count="6" name="items"> 97 <array count="6" name="items">
98 <object class="IBCarbonMenuItem" id="155"> 98 <object class="IBCarbonMenuItem" id="155">
99 <boolean name="dynamic">TRUE</boolean> 99 <boolean name="dynamic">TRUE</boolean>
100 <boolean name="updateSingleItem">TRUE</boolean> 100 <boolean name="updateSingleItem">TRUE</boolean>
101 <string name="title">Minimize Window</string> 101 <string name="title">Minimize Window</string>
102 <string name="keyEquivalent">m</string> 102 <string name="keyEquivalent">m</string>
103 <ostype name="command">mini</ostype> 103 <ostype name="command">mini</ostype>
104 </object> 104 </object>
105 <object class="IBCarbonMenuItem" id="184"> 105 <object class="IBCarbonMenuItem" id="184">
106 <boolean name="dynamic">TRUE</boolean> 106 <boolean name="dynamic">TRUE</boolean>
107 <boolean name="updateSingleItem">TRUE</boolean> 107 <boolean name="updateSingleItem">TRUE</boolean>
108 <string name="title">Minimize All Windows</string> 108 <string name="title">Minimize All Windows</string>
109 <string name="keyEquivalent">m</string> 109 <string name="keyEquivalent">m</string>
110 <int name="keyEquivalentModifier">1572864</int> 110 <int name="keyEquivalentModifier">1572864</int>
111 <ostype name="command">mina</ostype> 111 <ostype name="command">mina</ostype>
112 </object> 112 </object>
113 <object class="IBCarbonMenuItem" id="186"> 113 <object class="IBCarbonMenuItem" id="186">
114 <boolean name="updateSingleItem">TRUE</boolean> 114 <boolean name="updateSingleItem">TRUE</boolean>
115 <string name="title">Zoom</string> 115 <string name="title">Zoom</string>
116 <ostype name="command">zoom</ostype> 116 <ostype name="command">zoom</ostype>
117 </object> 117 </object>
118 <object class="IBCarbonMenuItem" id="156"> 118 <object class="IBCarbonMenuItem" id="156">
119 <boolean name="separator">TRUE</boolean> 119 <boolean name="separator">TRUE</boolean>
120 </object> 120 </object>
121 <object class="IBCarbonMenuItem" id="157"> 121 <object class="IBCarbonMenuItem" id="157">
122 <boolean name="dynamic">TRUE</boolean> 122 <boolean name="dynamic">TRUE</boolean>
123 <boolean name="updateSingleItem">TRUE</boolean> 123 <boolean name="updateSingleItem">TRUE</boolean>
124 <string name="title">Bring All to Front</string> 124 <string name="title">Bring All to Front</string>
125 <ostype name="command">bfrt</ostype> 125 <ostype name="command">bfrt</ostype>
126 </object> 126 </object>
127 <object class="IBCarbonMenuItem" id="185"> 127 <object class="IBCarbonMenuItem" id="185">
128 <boolean name="dynamic">TRUE</boolean> 128 <boolean name="dynamic">TRUE</boolean>
129 <boolean name="updateSingleItem">TRUE</boolean> 129 <boolean name="updateSingleItem">TRUE</boolean>
130 <string name="title">Arrange in Front</string> 130 <string name="title">Arrange in Front</string>
131 <int name="keyEquivalentModifier">1572864</int> 131 <int name="keyEquivalentModifier">1572864</int>
132 <ostype name="command">frnt</ostype> 132 <ostype name="command">frnt</ostype>
133 </object> 133 </object>
134 </array> 134 </array>
135 <string name="name">_NSWindowsMenu</string> 135 <string name="name">_NSWindowsMenu</string>
136 </object> 136 </object>
137 </object> 137 </object>
138 </array> 138 </array>
139 <string name="name">_NSMainMenu</string> 139 <string name="name">_NSMainMenu</string>
140 </object> 140 </object>
141 <reference idRef="127"/> 141 <reference idRef="127"/>
142 <reference idRef="131"/> 142 <reference idRef="131"/>
143 <reference idRef="141"/> 143 <reference idRef="141"/>
144 <reference idRef="142"/> 144 <reference idRef="142"/>
145 <reference idRef="143"/> 145 <reference idRef="143"/>
146 <reference idRef="144"/> 146 <reference idRef="144"/>
147 <reference idRef="146"/> 147 <reference idRef="146"/>
148 <reference idRef="147"/> 148 <reference idRef="147"/>
149 <reference idRef="148"/> 149 <reference idRef="148"/>
150 <reference idRef="149"/> 150 <reference idRef="149"/>
151 <reference idRef="151"/> 151 <reference idRef="151"/>
152 <reference idRef="152"/> 152 <reference idRef="152"/>
153 <reference idRef="153"/> 153 <reference idRef="153"/>
154 <reference idRef="154"/> 154 <reference idRef="154"/>
155 <reference idRef="155"/> 155 <reference idRef="155"/>
156 <reference idRef="156"/> 156 <reference idRef="156"/>
157 <reference idRef="157"/> 157 <reference idRef="157"/>
158 <reference idRef="181"/> 158 <reference idRef="181"/>
159 <reference idRef="182"/> 159 <reference idRef="182"/>
160 <reference idRef="183"/> 160 <reference idRef="183"/>
161 <reference idRef="184"/> 161 <reference idRef="184"/>
162 <reference idRef="185"/> 162 <reference idRef="185"/>
163 <reference idRef="186"/> 163 <reference idRef="186"/>
164 <reference idRef="187"/> 164 <reference idRef="187"/>
165 <reference idRef="188"/> 165 <reference idRef="188"/>
166 <object class="IBCarbonRootControl" id="190"> 166 <object class="IBCarbonRootControl" id="190">
167 <string name="bounds">0 0 482 694 </string> 167 <string name="bounds">0 0 482 694 </string>
168 <string name="viewFrame">0 0 694 482 </string> 168 <string name="viewFrame">0 0 694 482 </string>
169 <array count="2" name="subviews"> 169 <array count="2" name="subviews">
170 <object class="IBCarbonButton" id="192"> 170 <object class="IBCarbonButton" id="192">
171 <string name="bounds">442 604 462 674 </string> 171 <string name="bounds">442 604 462 674 </string>
172 <string name="viewFrame">604 442 70 20 </string> 172 <string name="viewFrame">604 442 70 20 </string>
173 <string name="title">OK</string> 173 <string name="title">OK</string>
174 <ostype name="command">ok </ostype> 174 <ostype name="command">ok </ostype>
175 <object name="layoutInfo" class="IBCarbonHILayoutInfo"> 175 <object name="layoutInfo" class="IBCarbonHILayoutInfo">
176 <int name="bindingBottomKind">2</int> 176 <int name="bindingBottomKind">2</int>
177 <int name="bindingRightKind">2</int> 177 <int name="bindingRightKind">2</int>
178 </object> 178 </object>
179 <int name="buttonType">1</int> 179 <int name="buttonType">1</int>
180 </object> 180 </object>
181 <object class="IBCarbonScrollView" id="201"> 181 <object class="IBCarbonScrollView" id="201">
182 <string name="bounds">20 20 422 674 </string> 182 <string name="bounds">20 20 422 674 </string>
183 <string name="viewFrame">20 20 654 402 </string> 183 <string name="viewFrame">20 20 654 402 </string>
184 <array count="1" name="subviews"> 184 <array count="1" name="subviews">
185 <object class="IBCarbonTextView" id="200"> 185 <object class="IBCarbonTextView" id="200">
186 <string name="bounds">20 20 422 659 </string> 186 <string name="bounds">20 20 422 659 </string>
187 <string name="viewFrame">0 0 639 402 </string> 187 <string name="viewFrame">0 0 639 402 </string>
188 <ostype name="controlSignature">text</ostype> 188 <ostype name="controlSignature">text</ostype>
189 <int name="fontStyle">5</int> 189 <int name="fontStyle">5</int>
190 <boolean name="readOnly">TRUE</boolean> 190 <boolean name="readOnly">TRUE</boolean>
191 </object> 191 </object>
192 </array> 192 </array>
193 <boolean name="scrollHorizontally">FALSE</boolean> 193 <boolean name="scrollHorizontally">FALSE</boolean>
194 </object> 194 </object>
195 </array> 195 </array>
196 </object> 196 </object>
197 <object class="IBCarbonWindow" id="191"> 197 <object class="IBCarbonWindow" id="191">
198 <string name="windowRect">84 72 566 766 </string> 198 <string name="windowRect">84 72 566 766 </string>
199 <string name="title">Release Notes</string> 199 <string name="title">Release Notes</string>
200 <reference name="rootControl" idRef="190"/> 200 <reference name="rootControl" idRef="190"/>
201 <boolean name="receiveUpdates">FALSE</boolean> 201 <boolean name="receiveUpdates">FALSE</boolean>
202 <boolean name="hasCloseBox">FALSE</boolean> 202 <boolean name="hasCloseBox">FALSE</boolean>
203 <boolean name="hasCollapseBox">FALSE</boolean> 203 <boolean name="hasCollapseBox">FALSE</boolean>
204 <boolean name="hasHorizontalZoom">FALSE</boolean> 204 <boolean name="hasHorizontalZoom">FALSE</boolean>
205 <boolean name="isResizable">FALSE</boolean> 205 <boolean name="isResizable">FALSE</boolean>
206 <boolean name="hasVerticalZoom">FALSE</boolean> 206 <boolean name="hasVerticalZoom">FALSE</boolean>
207 <boolean name="liveResize">TRUE</boolean> 207 <boolean name="liveResize">TRUE</boolean>
208 <boolean name="compositing">TRUE</boolean> 208 <boolean name="compositing">TRUE</boolean>
209 <int name="carbonWindowClass">4</int> 209 <int name="carbonWindowClass">4</int>
210 <int name="windowPosition">1</int> 210 <int name="windowPosition">1</int>
211 <boolean name="isConstrained">FALSE</boolean> 211 <boolean name="isConstrained">FALSE</boolean>
212 </object> 212 </object>
213 <reference idRef="192"/> 213 <reference idRef="192"/>
214 <reference idRef="200"/> 214 <reference idRef="200"/>
215 <reference idRef="201"/> 215 <reference idRef="201"/>
216 </array> 216 </array>
217 <array count="31" name="allParents"> 217 <array count="31" name="allParents">
218 <reference idRef="1"/> 218 <reference idRef="1"/>
219 <reference idRef="29"/> 219 <reference idRef="29"/>
220 <reference idRef="127"/> 220 <reference idRef="127"/>
221 <reference idRef="147"/> 221 <reference idRef="147"/>
222 <reference idRef="147"/> 222 <reference idRef="147"/>
223 <reference idRef="147"/> 223 <reference idRef="147"/>
224 <reference idRef="147"/> 224 <reference idRef="147"/>
225 <reference idRef="147"/> 225 <reference idRef="147"/>
226 <reference idRef="152"/> 226 <reference idRef="152"/>
227 <reference idRef="147"/> 227 <reference idRef="147"/>
228 <reference idRef="147"/> 228 <reference idRef="147"/>
229 <reference idRef="147"/> 229 <reference idRef="147"/>
230 <reference idRef="29"/> 230 <reference idRef="29"/>
231 <reference idRef="29"/> 231 <reference idRef="29"/>
232 <reference idRef="153"/> 232 <reference idRef="153"/>
233 <reference idRef="154"/> 233 <reference idRef="154"/>
234 <reference idRef="154"/> 234 <reference idRef="154"/>
235 <reference idRef="154"/> 235 <reference idRef="154"/>
236 <reference idRef="182"/> 236 <reference idRef="182"/>
237 <reference idRef="29"/> 237 <reference idRef="29"/>
238 <reference idRef="181"/> 238 <reference idRef="181"/>
239 <reference idRef="154"/> 239 <reference idRef="154"/>
240 <reference idRef="154"/> 240 <reference idRef="154"/>
241 <reference idRef="154"/> 241 <reference idRef="154"/>
242 <reference idRef="147"/> 242 <reference idRef="147"/>
243 <reference idRef="147"/> 243 <reference idRef="147"/>
244 <reference idRef="191"/> 244 <reference idRef="191"/>
245 <reference idRef="1"/> 245 <reference idRef="1"/>
246 <reference idRef="190"/> 246 <reference idRef="190"/>
247 <reference idRef="201"/> 247 <reference idRef="201"/>
248 <reference idRef="190"/> 248 <reference idRef="190"/>
249 </array> 249 </array>
250 <dictionary count="3" name="nameTable"> 250 <dictionary count="3" name="nameTable">
251 <string>Files Owner</string> 251 <string>Files Owner</string>
252 <reference idRef="1"/> 252 <reference idRef="1"/>
253 <string>MenuBar</string> 253 <string>MenuBar</string>
254 <reference idRef="29"/> 254 <reference idRef="29"/>
255 <string>Release Notes</string> 255 <string>Release Notes</string>
256 <reference idRef="191"/> 256 <reference idRef="191"/>
257 </dictionary> 257 </dictionary>
258 <unsigned_int name="nextObjectID">202</unsigned_int> 258 <unsigned_int name="nextObjectID">202</unsigned_int>
259</object> 259</object>
diff --git a/linden/indra/newview/ViewerInstall.cmake b/linden/indra/newview/ViewerInstall.cmake
index 55069ad..bc839c4 100644
--- a/linden/indra/newview/ViewerInstall.cmake
+++ b/linden/indra/newview/ViewerInstall.cmake
@@ -1,4 +1,4 @@
1install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/secondlife-bin 1install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/imprudence-bin
2 DESTINATION ${APP_BINARY_DIR} 2 DESTINATION ${APP_BINARY_DIR}
3 ) 3 )
4 4
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml
index 2083877..ca3dd81 100644
--- a/linden/indra/newview/app_settings/settings.xml
+++ b/linden/indra/newview/app_settings/settings.xml
@@ -664,27 +664,38 @@
664 <integer>0</integer> 664 <integer>0</integer>
665 </array> 665 </array>
666 </map> 666 </map>
667 <key>BeaconAlwaysOn</key> 667 <key>BeaconsEnabled</key>
668 <map> 668 <map>
669 <key>Comment</key> 669 <key>Comment</key>
670 <string>Beacons / highlighting always on</string> 670 <string>Beacons / highlighting always on</string>
671 <key>Persist</key> 671 <key>Persist</key>
672 <integer>1</integer> 672 <integer>0</integer>
673 <key>Type</key> 673 <key>Type</key>
674 <string>Boolean</string> 674 <string>Boolean</string>
675 <key>Value</key> 675 <key>Value</key>
676 <integer>0</integer> 676 <integer>0</integer>
677 </map> 677 </map>
678 <key>BrowserHomePage</key> 678 <key>BrowserHome</key>
679 <map> 679 <map>
680 <key>Comment</key> 680 <key>Comment</key>
681 <string>[NOT USED]</string> 681 <string>Inworld browser home page</string>
682 <key>Persist</key> 682 <key>Persist</key>
683 <integer>1</integer> 683 <integer>1</integer>
684 <key>Type</key> 684 <key>Type</key>
685 <string>String</string> 685 <string>String</string>
686 <key>Value</key> 686 <key>Value</key>
687 <string>http://www.secondlife.com</string> 687 <string>http://www.imprudenceviewer.org</string>
688 </map>
689 <key>BrowserLastVisited</key>
690 <map>
691 <key>Comment</key>
692 <string>Last visited page</string>
693 <key>Persist</key>
694 <integer>0</integer>
695 <key>Type</key>
696 <string>String</string>
697 <key>Value</key>
698 <string></string>
688 </map> 699 </map>
689 <key>BlockAvatarAppearanceMessages</key> 700 <key>BlockAvatarAppearanceMessages</key>
690 <map> 701 <map>
@@ -3472,7 +3483,7 @@
3472 <key>Type</key> 3483 <key>Type</key>
3473 <string>String</string> 3484 <string>String</string>
3474 <key>Value</key> 3485 <key>Value</key>
3475 <string>profontwindows.ttf</string> 3486 <string>VeraMono.ttf</string>
3476 </map> 3487 </map>
3477 <key>FontSansSerif</key> 3488 <key>FontSansSerif</key>
3478 <map> 3489 <map>
@@ -3483,7 +3494,7 @@
3483 <key>Type</key> 3494 <key>Type</key>
3484 <string>String</string> 3495 <string>String</string>
3485 <key>Value</key> 3496 <key>Value</key>
3486 <string>MtBkLfRg.ttf</string> 3497 <string>LiberationSans-Regular.ttf</string>
3487 </map> 3498 </map>
3488 <key>FontSansSerifBold</key> 3499 <key>FontSansSerifBold</key>
3489 <map> 3500 <map>
@@ -3494,7 +3505,7 @@
3494 <key>Type</key> 3505 <key>Type</key>
3495 <string>String</string> 3506 <string>String</string>
3496 <key>Value</key> 3507 <key>Value</key>
3497 <string>MtBdLfRg.ttf</string> 3508 <string>LiberationSans-Bold.ttf</string>
3498 </map> 3509 </map>
3499 <key>FontSansSerifFallback</key> 3510 <key>FontSansSerifFallback</key>
3500 <map> 3511 <map>
@@ -3538,7 +3549,7 @@
3538 <key>Type</key> 3549 <key>Type</key>
3539 <string>F32</string> 3550 <string>F32</string>
3540 <key>Value</key> 3551 <key>Value</key>
3541 <real>16.0</real> 3552 <real>15.2</real>
3542 </map> 3553 </map>
3543 <key>FontSizeLarge</key> 3554 <key>FontSizeLarge</key>
3544 <map> 3555 <map>
@@ -3549,7 +3560,7 @@
3549 <key>Type</key> 3560 <key>Type</key>
3550 <string>F32</string> 3561 <string>F32</string>
3551 <key>Value</key> 3562 <key>Value</key>
3552 <real>12.0</real> 3563 <real>11.5</real>
3553 </map> 3564 </map>
3554 <key>FontSizeMedium</key> 3565 <key>FontSizeMedium</key>
3555 <map> 3566 <map>
@@ -3560,7 +3571,7 @@
3560 <key>Type</key> 3571 <key>Type</key>
3561 <string>F32</string> 3572 <string>F32</string>
3562 <key>Value</key> 3573 <key>Value</key>
3563 <real>10.0</real> 3574 <real>9.5</real>
3564 </map> 3575 </map>
3565 <key>FontSizeMonospace</key> 3576 <key>FontSizeMonospace</key>
3566 <map> 3577 <map>
@@ -3571,7 +3582,7 @@
3571 <key>Type</key> 3582 <key>Type</key>
3572 <string>F32</string> 3583 <string>F32</string>
3573 <key>Value</key> 3584 <key>Value</key>
3574 <real>9.0</real> 3585 <real>8.0</real>
3575 </map> 3586 </map>
3576 <key>FontSizeSmall</key> 3587 <key>FontSizeSmall</key>
3577 <map> 3588 <map>
@@ -3582,7 +3593,7 @@
3582 <key>Type</key> 3593 <key>Type</key>
3583 <string>F32</string> 3594 <string>F32</string>
3584 <key>Value</key> 3595 <key>Value</key>
3585 <real>9.0</real> 3596 <real>8.5</real>
3586 </map> 3597 </map>
3587 <key>ForceShowGrid</key> 3598 <key>ForceShowGrid</key>
3588 <map> 3599 <map>
@@ -6676,6 +6687,17 @@
6676 <key>Value</key> 6687 <key>Value</key>
6677 <integer>0</integer> 6688 <integer>0</integer>
6678 </map> 6689 </map>
6690 <key>SelectCopyableOnly</key>
6691 <map>
6692 <key>Comment</key>
6693 <string>Select only objects you can copy</string>
6694 <key>Persist</key>
6695 <integer>1</integer>
6696 <key>Type</key>
6697 <string>Boolean</string>
6698 <key>Value</key>
6699 <integer>0</integer>
6700 </map>
6679 <key>SelectOwnedOnly</key> 6701 <key>SelectOwnedOnly</key>
6680 <map> 6702 <map>
6681 <key>Comment</key> 6703 <key>Comment</key>
@@ -9533,7 +9555,7 @@
9533 <key>Type</key> 9555 <key>Type</key>
9534 <string>String</string> 9556 <string>String</string>
9535 <key>Value</key> 9557 <key>Value</key>
9536 <string>Second Life Release</string> 9558 <string>Imprudence</string>
9537 </map> 9559 </map>
9538 <key>VertexShaderEnable</key> 9560 <key>VertexShaderEnable</key>
9539 <map> 9561 <map>
diff --git a/linden/indra/newview/fonts/GPL.txt b/linden/indra/newview/fonts/GPL.txt
new file mode 100644
index 0000000..d60c31a
--- /dev/null
+++ b/linden/indra/newview/fonts/GPL.txt
@@ -0,0 +1,340 @@
1 GNU GENERAL PUBLIC LICENSE
2 Version 2, June 1991
3
4 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6 Everyone is permitted to copy and distribute verbatim copies
7 of this license document, but changing it is not allowed.
8
9 Preamble
10
11 The licenses for most software are designed to take away your
12freedom to share and change it. By contrast, the GNU General Public
13License is intended to guarantee your freedom to share and change free
14software--to make sure the software is free for all its users. This
15General Public License applies to most of the Free Software
16Foundation's software and to any other program whose authors commit to
17using it. (Some other Free Software Foundation software is covered by
18the GNU Library General Public License instead.) You can apply it to
19your programs, too.
20
21 When we speak of free software, we are referring to freedom, not
22price. Our General Public Licenses are designed to make sure that you
23have the freedom to distribute copies of free software (and charge for
24this service if you wish), that you receive source code or can get it
25if you want it, that you can change the software or use pieces of it
26in new free programs; and that you know you can do these things.
27
28 To protect your rights, we need to make restrictions that forbid
29anyone to deny you these rights or to ask you to surrender the rights.
30These restrictions translate to certain responsibilities for you if you
31distribute copies of the software, or if you modify it.
32
33 For example, if you distribute copies of such a program, whether
34gratis or for a fee, you must give the recipients all the rights that
35you have. You must make sure that they, too, receive or can get the
36source code. And you must show them these terms so they know their
37rights.
38
39 We protect your rights with two steps: (1) copyright the software, and
40(2) offer you this license which gives you legal permission to copy,
41distribute and/or modify the software.
42
43 Also, for each author's protection and ours, we want to make certain
44that everyone understands that there is no warranty for this free
45software. If the software is modified by someone else and passed on, we
46want its recipients to know that what they have is not the original, so
47that any problems introduced by others will not reflect on the original
48authors' reputations.
49
50 Finally, any free program is threatened constantly by software
51patents. We wish to avoid the danger that redistributors of a free
52program will individually obtain patent licenses, in effect making the
53program proprietary. To prevent this, we have made it clear that any
54patent must be licensed for everyone's free use or not licensed at all.
55
56 The precise terms and conditions for copying, distribution and
57modification follow.
58
59 GNU GENERAL PUBLIC LICENSE
60 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
62 0. This License applies to any program or other work which contains
63a notice placed by the copyright holder saying it may be distributed
64under the terms of this General Public License. The "Program", below,
65refers to any such program or work, and a "work based on the Program"
66means either the Program or any derivative work under copyright law:
67that is to say, a work containing the Program or a portion of it,
68either verbatim or with modifications and/or translated into another
69language. (Hereinafter, translation is included without limitation in
70the term "modification".) Each licensee is addressed as "you".
71
72Activities other than copying, distribution and modification are not
73covered by this License; they are outside its scope. The act of
74running the Program is not restricted, and the output from the Program
75is covered only if its contents constitute a work based on the
76Program (independent of having been made by running the Program).
77Whether that is true depends on what the Program does.
78
79 1. You may copy and distribute verbatim copies of the Program's
80source code as you receive it, in any medium, provided that you
81conspicuously and appropriately publish on each copy an appropriate
82copyright notice and disclaimer of warranty; keep intact all the
83notices that refer to this License and to the absence of any warranty;
84and give any other recipients of the Program a copy of this License
85along with the Program.
86
87You may charge a fee for the physical act of transferring a copy, and
88you may at your option offer warranty protection in exchange for a fee.
89
90 2. You may modify your copy or copies of the Program or any portion
91of it, thus forming a work based on the Program, and copy and
92distribute such modifications or work under the terms of Section 1
93above, provided that you also meet all of these conditions:
94
95 a) You must cause the modified files to carry prominent notices
96 stating that you changed the files and the date of any change.
97
98 b) You must cause any work that you distribute or publish, that in
99 whole or in part contains or is derived from the Program or any
100 part thereof, to be licensed as a whole at no charge to all third
101 parties under the terms of this License.
102
103 c) If the modified program normally reads commands interactively
104 when run, you must cause it, when started running for such
105 interactive use in the most ordinary way, to print or display an
106 announcement including an appropriate copyright notice and a
107 notice that there is no warranty (or else, saying that you provide
108 a warranty) and that users may redistribute the program under
109 these conditions, and telling the user how to view a copy of this
110 License. (Exception: if the Program itself is interactive but
111 does not normally print such an announcement, your work based on
112 the Program is not required to print an announcement.)
113
114These requirements apply to the modified work as a whole. If
115identifiable sections of that work are not derived from the Program,
116and can be reasonably considered independent and separate works in
117themselves, then this License, and its terms, do not apply to those
118sections when you distribute them as separate works. But when you
119distribute the same sections as part of a whole which is a work based
120on the Program, the distribution of the whole must be on the terms of
121this License, whose permissions for other licensees extend to the
122entire whole, and thus to each and every part regardless of who wrote it.
123
124Thus, it is not the intent of this section to claim rights or contest
125your rights to work written entirely by you; rather, the intent is to
126exercise the right to control the distribution of derivative or
127collective works based on the Program.
128
129In addition, mere aggregation of another work not based on the Program
130with the Program (or with a work based on the Program) on a volume of
131a storage or distribution medium does not bring the other work under
132the scope of this License.
133
134 3. You may copy and distribute the Program (or a work based on it,
135under Section 2) in object code or executable form under the terms of
136Sections 1 and 2 above provided that you also do one of the following:
137
138 a) Accompany it with the complete corresponding machine-readable
139 source code, which must be distributed under the terms of Sections
140 1 and 2 above on a medium customarily used for software interchange; or,
141
142 b) Accompany it with a written offer, valid for at least three
143 years, to give any third party, for a charge no more than your
144 cost of physically performing source distribution, a complete
145 machine-readable copy of the corresponding source code, to be
146 distributed under the terms of Sections 1 and 2 above on a medium
147 customarily used for software interchange; or,
148
149 c) Accompany it with the information you received as to the offer
150 to distribute corresponding source code. (This alternative is
151 allowed only for noncommercial distribution and only if you
152 received the program in object code or executable form with such
153 an offer, in accord with Subsection b above.)
154
155The source code for a work means the preferred form of the work for
156making modifications to it. For an executable work, complete source
157code means all the source code for all modules it contains, plus any
158associated interface definition files, plus the scripts used to
159control compilation and installation of the executable. However, as a
160special exception, the source code distributed need not include
161anything that is normally distributed (in either source or binary
162form) with the major components (compiler, kernel, and so on) of the
163operating system on which the executable runs, unless that component
164itself accompanies the executable.
165
166If distribution of executable or object code is made by offering
167access to copy from a designated place, then offering equivalent
168access to copy the source code from the same place counts as
169distribution of the source code, even though third parties are not
170compelled to copy the source along with the object code.
171
172 4. You may not copy, modify, sublicense, or distribute the Program
173except as expressly provided under this License. Any attempt
174otherwise to copy, modify, sublicense or distribute the Program is
175void, and will automatically terminate your rights under this License.
176However, parties who have received copies, or rights, from you under
177this License will not have their licenses terminated so long as such
178parties remain in full compliance.
179
180 5. You are not required to accept this License, since you have not
181signed it. However, nothing else grants you permission to modify or
182distribute the Program or its derivative works. These actions are
183prohibited by law if you do not accept this License. Therefore, by
184modifying or distributing the Program (or any work based on the
185Program), you indicate your acceptance of this License to do so, and
186all its terms and conditions for copying, distributing or modifying
187the Program or works based on it.
188
189 6. Each time you redistribute the Program (or any work based on the
190Program), the recipient automatically receives a license from the
191original licensor to copy, distribute or modify the Program subject to
192these terms and conditions. You may not impose any further
193restrictions on the recipients' exercise of the rights granted herein.
194You are not responsible for enforcing compliance by third parties to
195this License.
196
197 7. If, as a consequence of a court judgment or allegation of patent
198infringement or for any other reason (not limited to patent issues),
199conditions are imposed on you (whether by court order, agreement or
200otherwise) that contradict the conditions of this License, they do not
201excuse you from the conditions of this License. If you cannot
202distribute so as to satisfy simultaneously your obligations under this
203License and any other pertinent obligations, then as a consequence you
204may not distribute the Program at all. For example, if a patent
205license would not permit royalty-free redistribution of the Program by
206all those who receive copies directly or indirectly through you, then
207the only way you could satisfy both it and this License would be to
208refrain entirely from distribution of the Program.
209
210If any portion of this section is held invalid or unenforceable under
211any particular circumstance, the balance of the section is intended to
212apply and the section as a whole is intended to apply in other
213circumstances.
214
215It is not the purpose of this section to induce you to infringe any
216patents or other property right claims or to contest validity of any
217such claims; this section has the sole purpose of protecting the
218integrity of the free software distribution system, which is
219implemented by public license practices. Many people have made
220generous contributions to the wide range of software distributed
221through that system in reliance on consistent application of that
222system; it is up to the author/donor to decide if he or she is willing
223to distribute software through any other system and a licensee cannot
224impose that choice.
225
226This section is intended to make thoroughly clear what is believed to
227be a consequence of the rest of this License.
228
229 8. If the distribution and/or use of the Program is restricted in
230certain countries either by patents or by copyrighted interfaces, the
231original copyright holder who places the Program under this License
232may add an explicit geographical distribution limitation excluding
233those countries, so that distribution is permitted only in or among
234countries not thus excluded. In such case, this License incorporates
235the limitation as if written in the body of this License.
236
237 9. The Free Software Foundation may publish revised and/or new versions
238of the General Public License from time to time. Such new versions will
239be similar in spirit to the present version, but may differ in detail to
240address new problems or concerns.
241
242Each version is given a distinguishing version number. If the Program
243specifies a version number of this License which applies to it and "any
244later version", you have the option of following the terms and conditions
245either of that version or of any later version published by the Free
246Software Foundation. If the Program does not specify a version number of
247this License, you may choose any version ever published by the Free Software
248Foundation.
249
250 10. If you wish to incorporate parts of the Program into other free
251programs whose distribution conditions are different, write to the author
252to ask for permission. For software which is copyrighted by the Free
253Software Foundation, write to the Free Software Foundation; we sometimes
254make exceptions for this. Our decision will be guided by the two goals
255of preserving the free status of all derivatives of our free software and
256of promoting the sharing and reuse of software generally.
257
258 NO WARRANTY
259
260 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268REPAIR OR CORRECTION.
269
270 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278POSSIBILITY OF SUCH DAMAGES.
279
280 END OF TERMS AND CONDITIONS
281
282 How to Apply These Terms to Your New Programs
283
284 If you develop a new program, and you want it to be of the greatest
285possible use to the public, the best way to achieve this is to make it
286free software which everyone can redistribute and change under these terms.
287
288 To do so, attach the following notices to the program. It is safest
289to attach them to the start of each source file to most effectively
290convey the exclusion of warranty; and each file should have at least
291the "copyright" line and a pointer to where the full notice is found.
292
293 <one line to give the program's name and a brief idea of what it does.>
294 Copyright (C) <year> <name of author>
295
296 This program is free software; you can redistribute it and/or modify
297 it under the terms of the GNU General Public License as published by
298 the Free Software Foundation; either version 2 of the License, or
299 (at your option) any later version.
300
301 This program is distributed in the hope that it will be useful,
302 but WITHOUT ANY WARRANTY; without even the implied warranty of
303 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304 GNU General Public License for more details.
305
306 You should have received a copy of the GNU General Public License
307 along with this program; if not, write to the Free Software
308 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
309
310
311Also add information on how to contact you by electronic and paper mail.
312
313If the program is interactive, make it output a short notice like this
314when it starts in an interactive mode:
315
316 Gnomovision version 69, Copyright (C) year name of author
317 Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
318 This is free software, and you are welcome to redistribute it
319 under certain conditions; type `show c' for details.
320
321The hypothetical commands `show w' and `show c' should show the appropriate
322parts of the General Public License. Of course, the commands you use may
323be called something other than `show w' and `show c'; they could even be
324mouse-clicks or menu items--whatever suits your program.
325
326You should also get your employer (if you work as a programmer) or your
327school, if any, to sign a "copyright disclaimer" for the program, if
328necessary. Here is a sample; alter the names:
329
330 Yoyodyne, Inc., hereby disclaims all copyright interest in the program
331 `Gnomovision' (which makes passes at compilers) written by James Hacker.
332
333 <signature of Ty Coon>, 1 April 1989
334 Ty Coon, President of Vice
335
336This General Public License does not permit incorporating your program into
337proprietary programs. If your program is a subroutine library, you may
338consider it more useful to permit linking proprietary applications with the
339library. If this is what you want to do, use the GNU Library General
340Public License instead of this License.
diff --git a/linden/indra/newview/fonts/Liberation-License.txt b/linden/indra/newview/fonts/Liberation-License.txt
new file mode 100644
index 0000000..f178728
--- /dev/null
+++ b/linden/indra/newview/fonts/Liberation-License.txt
@@ -0,0 +1,19 @@
1LICENSE AGREEMENT AND LIMITED PRODUCT WARRANTY
2LIBERATION FONT SOFTWARE
3
4This agreement governs the use of the Software and any updates to the Software, regardless of the delivery mechanism. Subject to the following terms, Red Hat, Inc. ("Red Hat") grants to the user ("Client") a license to this work pursuant to the GNU General Public License v.2 with the exceptions set forth below and such other terms as are set forth in this End User License Agreement.
5
6 1. The Software and License Exception. LIBERATION font software (the "Software") consists of TrueType-OpenType formatted font software for rendering LIBERATION typefaces in sans-serif, serif, and monospaced character styles. You are licensed to use, modify, copy, and distribute the Software pursuant to the GNU General Public License v.2 with the following exceptions:
7
8 (a) As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.
9
10 (b) As a further exception, any distribution of the object code of the Software in a physical product must provide you the right to access and modify the source code for the Software and to reinstall that modified version of the Software in object code form on the same physical product on which you received it.
11
12 2. Intellectual Property Rights. The Software and each of its components, including the source code, documentation, appearance, structure and organization are owned by Red Hat and others and are protected under copyright and other laws. Title to the Software and any component, or to any copy, modification, or merged portion shall remain with the aforementioned, subject to the applicable license. The "LIBERATION" trademark is a trademark of Red Hat, Inc. in the U.S. and other countries. This agreement does not permit Client to distribute modified versions of the Software using Red Hat's trademarks. If Client makes a redistribution of a modified version of the Software, then Client must modify the files names to remove any reference to the Red Hat trademarks and must not use the Red Hat trademarks in any way to reference or promote the modified Software.
13
14 3. Limited Warranty. To the maximum extent permitted under applicable law, the Software is provided and licensed "as is" without warranty of any kind, expressed or implied, including the implied warranties of merchantability, non-infringement or fitness for a particular purpose. Red Hat does not warrant that the functions contained in the Software will meet Client's requirements or that the operation of the Software will be entirely error free or appear precisely as described in the accompanying documentation.
15
16 4. Limitation of Remedies and Liability. To the maximum extent permitted by applicable law, Red Hat or any Red Hat authorized dealer will not be liable to Client for any incidental or consequential damages, including lost profits or lost savings arising out of the use or inability to use the Software, even if Red Hat or such dealer has been advised of the possibility of such damages.
17
18 5. General. If any provision of this agreement is held to be unenforceable, that shall not affect the enforceability of the remaining provisions. This agreement shall be governed by the laws of the State of North Carolina and of the United States, without regard to any conflict of laws provisions, except that the United Nations Convention on the International Sale of Goods shall not apply.
19Copyright © 2007 Red Hat, Inc. All rights reserved. LIBERATION is a trademark of Red Hat, Inc.
diff --git a/linden/indra/newview/fonts/LiberationSans-Bold.ttf b/linden/indra/newview/fonts/LiberationSans-Bold.ttf
new file mode 100644
index 0000000..53200d9
--- /dev/null
+++ b/linden/indra/newview/fonts/LiberationSans-Bold.ttf
Binary files differ
diff --git a/linden/indra/newview/fonts/LiberationSans-Regular.ttf b/linden/indra/newview/fonts/LiberationSans-Regular.ttf
new file mode 100644
index 0000000..09fac2f
--- /dev/null
+++ b/linden/indra/newview/fonts/LiberationSans-Regular.ttf
Binary files differ
diff --git a/linden/indra/newview/fonts/Vera-License.txt b/linden/indra/newview/fonts/Vera-License.txt
new file mode 100644
index 0000000..e651be1
--- /dev/null
+++ b/linden/indra/newview/fonts/Vera-License.txt
@@ -0,0 +1,124 @@
1Bitstream Vera Fonts Copyright
2
3The fonts have a generous copyright, allowing derivative works (as
4long as "Bitstream" or "Vera" are not in the names), and full
5redistribution (so long as they are not *sold* by themselves). They
6can be be bundled, redistributed and sold with any software.
7
8The fonts are distributed under the following copyright:
9
10Copyright
11=========
12
13Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream
14Vera is a trademark of Bitstream, Inc.
15
16Permission is hereby granted, free of charge, to any person obtaining
17a copy of the fonts accompanying this license ("Fonts") and associated
18documentation files (the "Font Software"), to reproduce and distribute
19the Font Software, including without limitation the rights to use,
20copy, merge, publish, distribute, and/or sell copies of the Font
21Software, and to permit persons to whom the Font Software is furnished
22to do so, subject to the following conditions:
23
24The above copyright and trademark notices and this permission notice
25shall be included in all copies of one or more of the Font Software
26typefaces.
27
28The Font Software may be modified, altered, or added to, and in
29particular the designs of glyphs or characters in the Fonts may be
30modified and additional glyphs or characters may be added to the
31Fonts, only if the fonts are renamed to names not containing either
32the words "Bitstream" or the word "Vera".
33
34This License becomes null and void to the extent applicable to Fonts
35or Font Software that has been modified and is distributed under the
36"Bitstream Vera" names.
37
38The Font Software may be sold as part of a larger software package but
39no copy of one or more of the Font Software typefaces may be sold by
40itself.
41
42THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
43EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
44MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
45OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
46BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR
47OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL,
48OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR
49OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT
50SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
51
52Except as contained in this notice, the names of Gnome, the Gnome
53Foundation, and Bitstream Inc., shall not be used in advertising or
54otherwise to promote the sale, use or other dealings in this Font
55Software without prior written authorization from the Gnome Foundation
56or Bitstream Inc., respectively. For further information, contact:
57fonts at gnome dot org.
58
59Copyright FAQ
60=============
61
62 1. I don't understand the resale restriction... What gives?
63
64 Bitstream is giving away these fonts, but wishes to ensure its
65 competitors can't just drop the fonts as is into a font sale system
66 and sell them as is. It seems fair that if Bitstream can't make money
67 from the Bitstream Vera fonts, their competitors should not be able to
68 do so either. You can sell the fonts as part of any software package,
69 however.
70
71 2. I want to package these fonts separately for distribution and
72 sale as part of a larger software package or system. Can I do so?
73
74 Yes. A RPM or Debian package is a "larger software package" to begin
75 with, and you aren't selling them independently by themselves.
76 See 1. above.
77
78 3. Are derivative works allowed?
79 Yes!
80
81 4. Can I change or add to the font(s)?
82 Yes, but you must change the name(s) of the font(s).
83
84 5. Under what terms are derivative works allowed?
85
86 You must change the name(s) of the fonts. This is to ensure the
87 quality of the fonts, both to protect Bitstream and Gnome. We want to
88 ensure that if an application has opened a font specifically of these
89 names, it gets what it expects (though of course, using fontconfig,
90 substitutions could still could have occurred during font
91 opening). You must include the Bitstream copyright. Additional
92 copyrights can be added, as per copyright law. Happy Font Hacking!
93
94 6. If I have improvements for Bitstream Vera, is it possible they might get
95 adopted in future versions?
96
97 Yes. The contract between the Gnome Foundation and Bitstream has
98 provisions for working with Bitstream to ensure quality additions to
99 the Bitstream Vera font family. Please contact us if you have such
100 additions. Note, that in general, we will want such additions for the
101 entire family, not just a single font, and that you'll have to keep
102 both Gnome and Jim Lyles, Vera's designer, happy! To make sense to add
103 glyphs to the font, they must be stylistically in keeping with Vera's
104 design. Vera cannot become a "ransom note" font. Jim Lyles will be
105 providing a document describing the design elements used in Vera, as a
106 guide and aid for people interested in contributing to Vera.
107
108 7. I want to sell a software package that uses these fonts: Can I do so?
109
110 Sure. Bundle the fonts with your software and sell your software
111 with the fonts. That is the intent of the copyright.
112
113 8. If applications have built the names "Bitstream Vera" into them,
114 can I override this somehow to use fonts of my choosing?
115
116 This depends on exact details of the software. Most open source
117 systems and software (e.g., Gnome, KDE, etc.) are now converting to
118 use fontconfig (see www.fontconfig.org) to handle font configuration,
119 selection and substitution; it has provisions for overriding font
120 names and subsituting alternatives. An example is provided by the
121 supplied local.conf file, which chooses the family Bitstream Vera for
122 "sans", "serif" and "monospace". Other software (e.g., the XFree86
123 core server) has other mechanisms for font substitution.
124
diff --git a/linden/indra/newview/fonts/VeraMono.ttf b/linden/indra/newview/fonts/VeraMono.ttf
new file mode 100644
index 0000000..139f0b4
--- /dev/null
+++ b/linden/indra/newview/fonts/VeraMono.ttf
Binary files differ
diff --git a/linden/indra/newview/installers/windows/installer_template.nsi b/linden/indra/newview/installers/windows/installer_template.nsi
index c795507..53c607c 100644
--- a/linden/indra/newview/installers/windows/installer_template.nsi
+++ b/linden/indra/newview/installers/windows/installer_template.nsi
@@ -1,990 +1,990 @@
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;; secondlife setup.nsi 2;; imprudence setup.nsi
3;; Copyright 2004-2007, Linden Research, Inc. 3;; Copyright 2004-2007, Linden Research, Inc.
4;; For info, see http://www.nullsoft.com/free/nsis/ 4;; For info, see http://www.nullsoft.com/free/nsis/
5;; 5;;
6;; NSIS 2.22 or higher required 6;; NSIS 2.22 or higher required
7;; Author: James Cook, Don Kjer, Callum Prentice 7;; Author: James Cook, Don Kjer, Callum Prentice
8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
9 9
10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
11;;; Detect NSIS compiler version 11;;; Detect NSIS compiler version
12!define "NSIS${NSIS_VERSION}" 12!define "NSIS${NSIS_VERSION}"
13!ifdef "NSISv2.02" | "NSISv2.03" | "NSISv2.04" | "NSISv2.05" | "NSISv2.06" 13!ifdef "NSISv2.02" | "NSISv2.03" | "NSISv2.04" | "NSISv2.05" | "NSISv2.06"
14 ;; before 2.07 defaulted lzma to solid (whole file) 14 ;; before 2.07 defaulted lzma to solid (whole file)
15 SetCompressor lzma 15 SetCompressor lzma
16!else 16!else
17 ;; after 2.07 required /solid for whole file compression 17 ;; after 2.07 required /solid for whole file compression
18 SetCompressor /solid lzma 18 SetCompressor /solid lzma
19!endif 19!endif
20 20
21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
22;; Compiler flags 22;; Compiler flags
23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
24SetOverwrite on ; overwrite files 24SetOverwrite on ; overwrite files
25SetCompress auto ; compress iff saves space 25SetCompress auto ; compress iff saves space
26SetDatablockOptimize off ; only saves us 0.1%, not worth it 26SetDatablockOptimize off ; only saves us 0.1%, not worth it
27XPStyle on ; add an XP manifest to the installer 27XPStyle on ; add an XP manifest to the installer
28 28
29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
30;;; Project flags 30;;; Project flags
31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
32 32
33%%VERSION%% 33%%VERSION%%
34 34
35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
36;; - language files - one for each language (or flavor thereof) 36;; - language files - one for each language (or flavor thereof)
37;; (these files are in the same place as the nsi template but the python script generates a new nsi file in the 37;; (these files are in the same place as the nsi template but the python script generates a new nsi file in the
38;; application directory so we have to add a path to these include files) 38;; application directory so we have to add a path to these include files)
39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
40!include "%%SOURCE%%\installers\windows\lang_de.nsi" 40!include "%%SOURCE%%\installers\windows\lang_de.nsi"
41!include "%%SOURCE%%\installers\windows\lang_en-us.nsi" 41!include "%%SOURCE%%\installers\windows\lang_en-us.nsi"
42!include "%%SOURCE%%\installers\windows\lang_ja.nsi" 42!include "%%SOURCE%%\installers\windows\lang_ja.nsi"
43!include "%%SOURCE%%\installers\windows\lang_ko.nsi" 43!include "%%SOURCE%%\installers\windows\lang_ko.nsi"
44 44
45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
46;; Tweak for different servers/builds (this placeholder is replaced by viewer_manifest.py) 46;; Tweak for different servers/builds (this placeholder is replaced by viewer_manifest.py)
47%%GRID_VARS%% 47%%GRID_VARS%%
48 48
49Name ${INSTNAME} 49Name ${INSTNAME}
50 50
51SubCaption 0 $(LicenseSubTitleSetup) ; override "license agreement" text 51SubCaption 0 $(LicenseSubTitleSetup) ; override "license agreement" text
52 52
53BrandingText " " ; bottom of window text 53BrandingText " " ; bottom of window text
54Icon %%SOURCE%%\res\install_icon.ico ; our custom icon 54Icon %%SOURCE%%\res\install_icon.ico ; our custom icon
55UninstallIcon %%SOURCE%%\res\uninstall_icon.ico ; our custom icon 55UninstallIcon %%SOURCE%%\res\uninstall_icon.ico ; our custom icon
56WindowIcon on ; show our icon in left corner 56WindowIcon on ; show our icon in left corner
57BGGradient off ; no big background window 57BGGradient off ; no big background window
58CRCCheck on ; make sure CRC is OK 58CRCCheck on ; make sure CRC is OK
59InstProgressFlags smooth colored ; new colored smooth look 59InstProgressFlags smooth colored ; new colored smooth look
60ShowInstDetails nevershow ; no details, no "show" button 60ShowInstDetails nevershow ; no details, no "show" button
61SetOverwrite on ; stomp files by default 61SetOverwrite on ; stomp files by default
62AutoCloseWindow true ; after all files install, close window 62AutoCloseWindow true ; after all files install, close window
63 63
64InstallDir "$PROGRAMFILES\${INSTNAME}" 64InstallDir "$PROGRAMFILES\${INSTNAME}"
65InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "" 65InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" ""
66!ifdef UPDATE 66!ifdef UPDATE
67DirText $(DirectoryChooseTitle) $(DirectoryChooseUpdate) 67DirText $(DirectoryChooseTitle) $(DirectoryChooseUpdate)
68!else 68!else
69DirText $(DirectoryChooseTitle) $(DirectoryChooseSetup) 69DirText $(DirectoryChooseTitle) $(DirectoryChooseSetup)
70!endif 70!endif
71 71
72 72
73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
74;;; Variables 74;;; Variables
75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
76Var INSTPROG 76Var INSTPROG
77Var INSTEXE 77Var INSTEXE
78Var INSTFLAGS 78Var INSTFLAGS
79Var LANGFLAGS 79Var LANGFLAGS
80Var INSTSHORTCUT 80Var INSTSHORTCUT
81 81
82;;; Function definitions should go before file includes, because the NSIS package 82;;; Function definitions should go before file includes, because the NSIS package
83;;; is a single stream of bytecodes + file data. So if your function definitions are at 83;;; is a single stream of bytecodes + file data. So if your function definitions are at
84;;; the end of the file it has to decompress the whole thing before it can call a function. JC 84;;; the end of the file it has to decompress the whole thing before it can call a function. JC
85 85
86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
87; PostInstallExe 87; PostInstallExe
88; This just runs any post installation scripts. 88; This just runs any post installation scripts.
89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
90Function PostInstallExe 90Function PostInstallExe
91push $0 91push $0
92 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "PostInstallExe" 92 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "PostInstallExe"
93 ;MessageBox MB_OK '$0' 93 ;MessageBox MB_OK '$0'
94 ExecWait '$0' 94 ExecWait '$0'
95pop $0 95pop $0
96FunctionEnd 96FunctionEnd
97 97
98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
99; CheckStartupParameters 99; CheckStartupParameters
100; Sets INSTFLAGS, INSTPROG, and INSTEXE. 100; Sets INSTFLAGS, INSTPROG, and INSTEXE.
101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
102Function CheckStartupParams 102Function CheckStartupParams
103push $0 103push $0
104push $R0 104push $R0
105 105
106 ; Look for a registry entry with info about where to update. 106 ; Look for a registry entry with info about where to update.
107 Call GetProgramName 107 Call GetProgramName
108 pop $R0 108 pop $R0
109 StrCpy $INSTPROG "$R0" 109 StrCpy $INSTPROG "$R0"
110 StrCpy $INSTEXE "$R0.exe" 110 StrCpy $INSTEXE "$R0.exe"
111 111
112 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" 112 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" ""
113 ; If key doesn't exist, skip install 113 ; If key doesn't exist, skip install
114 IfErrors ABORT 114 IfErrors ABORT
115 StrCpy $INSTDIR "$0" 115 StrCpy $INSTDIR "$0"
116 116
117 ; We now have a directory to install to. Get the startup parameters and shortcut as well. 117 ; We now have a directory to install to. Get the startup parameters and shortcut as well.
118 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags" 118 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags"
119 IfErrors +2 119 IfErrors +2
120 StrCpy $INSTFLAGS "$0" 120 StrCpy $INSTFLAGS "$0"
121 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut" 121 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut"
122 IfErrors +2 122 IfErrors +2
123 StrCpy $INSTSHORTCUT "$0" 123 StrCpy $INSTSHORTCUT "$0"
124 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe" 124 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe"
125 IfErrors +2 125 IfErrors +2
126 StrCpy $INSTEXE "$0" 126 StrCpy $INSTEXE "$0"
127 Goto FINISHED 127 Goto FINISHED
128 128
129ABORT: 129ABORT:
130 MessageBox MB_OK $(CheckStartupParamsMB) 130 MessageBox MB_OK $(CheckStartupParamsMB)
131 Quit 131 Quit
132 132
133FINISHED: 133FINISHED:
134 ;MessageBox MB_OK "INSTPROG: $INSTPROG, INSTEXE: $INSTEXE, INSTFLAGS: $INSTFLAGS" 134 ;MessageBox MB_OK "INSTPROG: $INSTPROG, INSTEXE: $INSTEXE, INSTFLAGS: $INSTFLAGS"
135pop $R0 135pop $R0
136pop $0 136pop $0
137FunctionEnd 137FunctionEnd
138 138
139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
140;; 140;;
141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
142Function un.CheckStartupParams 142Function un.CheckStartupParams
143push $0 143push $0
144push $R0 144push $R0
145 145
146 ; Look for a registry entry with info about where to update. 146 ; Look for a registry entry with info about where to update.
147 Call un.GetProgramName 147 Call un.GetProgramName
148 pop $R0 148 pop $R0
149 StrCpy $INSTPROG "$R0" 149 StrCpy $INSTPROG "$R0"
150 StrCpy $INSTEXE "$R0.exe" 150 StrCpy $INSTEXE "$R0.exe"
151 151
152 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" 152 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" ""
153 ; If key doesn't exist, skip install 153 ; If key doesn't exist, skip install
154 IfErrors ABORT 154 IfErrors ABORT
155 StrCpy $INSTDIR "$0" 155 StrCpy $INSTDIR "$0"
156 156
157 ; We now have a directory to install to. Get the startup parameters and shortcut as well. 157 ; We now have a directory to install to. Get the startup parameters and shortcut as well.
158 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags" 158 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags"
159 IfErrors +2 159 IfErrors +2
160 StrCpy $INSTFLAGS "$0" 160 StrCpy $INSTFLAGS "$0"
161 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut" 161 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut"
162 IfErrors +2 162 IfErrors +2
163 StrCpy $INSTSHORTCUT "$0" 163 StrCpy $INSTSHORTCUT "$0"
164 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe" 164 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe"
165 IfErrors +2 165 IfErrors +2
166 StrCpy $INSTEXE "$0" 166 StrCpy $INSTEXE "$0"
167 Goto FINISHED 167 Goto FINISHED
168 168
169ABORT: 169ABORT:
170 MessageBox MB_OK $(CheckStartupParamsMB) 170 MessageBox MB_OK $(CheckStartupParamsMB)
171 Quit 171 Quit
172 172
173FINISHED: 173FINISHED:
174 ;MessageBox MB_OK "INSTPROG: $INSTPROG, INSTEXE: $INSTEXE, INSTFLAGS: $INSTFLAGS" 174 ;MessageBox MB_OK "INSTPROG: $INSTPROG, INSTEXE: $INSTEXE, INSTFLAGS: $INSTFLAGS"
175pop $R0 175pop $R0
176pop $0 176pop $0
177FunctionEnd 177FunctionEnd
178 178
179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
180;;; After install completes, offer readme file 180;;; After install completes, offer readme file
181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
182Function .onInstSuccess 182Function .onInstSuccess
183 MessageBox MB_YESNO \ 183 MessageBox MB_YESNO \
184 $(InstSuccesssQuestion) /SD IDYES IDNO NoReadme 184 $(InstSuccesssQuestion) /SD IDYES IDNO NoReadme
185 ; Assumes SetOutPath $INSTDIR 185 ; Assumes SetOutPath $INSTDIR
186 Exec '"$INSTDIR\$INSTEXE" $INSTFLAGS' 186 Exec '"$INSTDIR\$INSTEXE" $INSTFLAGS'
187 NoReadme: 187 NoReadme:
188FunctionEnd 188FunctionEnd
189 189
190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
191; Remove old NSIS version. Modifies no variables. 191; Remove old NSIS version. Modifies no variables.
192; Does NOT delete the LindenWorld directory, or any 192; Does NOT delete the LindenWorld directory, or any
193; user files in that directory. 193; user files in that directory.
194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
195Function RemoveNSIS 195Function RemoveNSIS
196 Push $0 196 Push $0
197 ; Grab the installation directory of the old version 197 ; Grab the installation directory of the old version
198 DetailPrint $(RemoveOldNSISVersion) 198 DetailPrint $(RemoveOldNSISVersion)
199 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" 199 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" ""
200 200
201 ; If key doesn't exist, skip uninstall 201 ; If key doesn't exist, skip uninstall
202 IfErrors NO_NSIS 202 IfErrors NO_NSIS
203 203
204 ; Clean up legacy beta shortcuts 204 ; Clean up legacy beta shortcuts
205 Delete "$SMPROGRAMS\Second Life Beta.lnk" 205 Delete "$SMPROGRAMS\Second Life Beta.lnk"
206 Delete "$DESKTOP\Second Life Beta.lnk" 206 Delete "$DESKTOP\Second Life Beta.lnk"
207 Delete "$SMPROGRAMS\Second Life.lnk" 207 Delete "$SMPROGRAMS\Second Life.lnk"
208 208
209 ; Clean up old newview.exe file 209 ; Clean up old newview.exe file
210 Delete "$INSTDIR\newview.exe" 210 Delete "$INSTDIR\newview.exe"
211 211
212 ; Intentionally don't delete the stuff in 212 ; Intentionally don't delete the stuff in
213 ; Documents and Settings, so we keep the user's settings 213 ; Documents and Settings, so we keep the user's settings
214 214
215 NO_NSIS: 215 NO_NSIS:
216 Pop $0 216 Pop $0
217FunctionEnd 217FunctionEnd
218 218
219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
220; Make sure we're not on Windows 98 / ME 220; Make sure we're not on Windows 98 / ME
221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
222Function CheckWindowsVersion 222Function CheckWindowsVersion
223 DetailPrint "Checking Windows version..." 223 DetailPrint "Checking Windows version..."
224 Call GetWindowsVersion 224 Call GetWindowsVersion
225 Pop $R0 225 Pop $R0
226 ; Just get first two characters, ignore 4.0 part of "NT 4.0" 226 ; Just get first two characters, ignore 4.0 part of "NT 4.0"
227 StrCpy $R0 $R0 2 227 StrCpy $R0 $R0 2
228 ; Blacklist certain OS versions 228 ; Blacklist certain OS versions
229 StrCmp $R0 "95" win_ver_bad 229 StrCmp $R0 "95" win_ver_bad
230 StrCmp $R0 "98" win_ver_bad 230 StrCmp $R0 "98" win_ver_bad
231 StrCmp $R0 "ME" win_ver_bad 231 StrCmp $R0 "ME" win_ver_bad
232 StrCmp $R0 "NT" win_ver_bad 232 StrCmp $R0 "NT" win_ver_bad
233 Return 233 Return
234win_ver_bad: 234win_ver_bad:
235 MessageBox MB_YESNO $(CheckWindowsVersionMB) IDNO win_ver_abort 235 MessageBox MB_YESNO $(CheckWindowsVersionMB) IDNO win_ver_abort
236 Return 236 Return
237win_ver_abort: 237win_ver_abort:
238 Quit 238 Quit
239FunctionEnd 239FunctionEnd
240 240
241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
242; Make sure the user can install/uninstall 242; Make sure the user can install/uninstall
243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
244Function CheckIfAdministrator 244Function CheckIfAdministrator
245 DetailPrint $(CheckAdministratorInstDP) 245 DetailPrint $(CheckAdministratorInstDP)
246 UserInfo::GetAccountType 246 UserInfo::GetAccountType
247 Pop $R0 247 Pop $R0
248 StrCmp $R0 "Admin" is_admin 248 StrCmp $R0 "Admin" is_admin
249 MessageBox MB_OK $(CheckAdministratorInstMB) 249 MessageBox MB_OK $(CheckAdministratorInstMB)
250 Quit 250 Quit
251is_admin: 251is_admin:
252 Return 252 Return
253FunctionEnd 253FunctionEnd
254 254
255;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 255;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
256;; 256;;
257;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 257;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
258Function un.CheckIfAdministrator 258Function un.CheckIfAdministrator
259 DetailPrint $(CheckAdministratorUnInstDP) 259 DetailPrint $(CheckAdministratorUnInstDP)
260 UserInfo::GetAccountType 260 UserInfo::GetAccountType
261 Pop $R0 261 Pop $R0
262 StrCmp $R0 "Admin" is_admin 262 StrCmp $R0 "Admin" is_admin
263 MessageBox MB_OK $(CheckAdministratorUnInstMB) 263 MessageBox MB_OK $(CheckAdministratorUnInstMB)
264 Quit 264 Quit
265is_admin: 265is_admin:
266 Return 266 Return
267FunctionEnd 267FunctionEnd
268 268
269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
270; Checks to see if the current version has already been installed (according to the registry). 270; Checks to see if the current version has already been installed (according to the registry).
271; If it has, allow user to bail out of install process. 271; If it has, allow user to bail out of install process.
272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
273Function CheckIfAlreadyCurrent 273Function CheckIfAlreadyCurrent
274 Push $0 274 Push $0
275 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version" 275 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version"
276 StrCmp $0 ${VERSION_LONG} 0 DONE 276 StrCmp $0 ${VERSION_LONG} 0 DONE
277 MessageBox MB_OKCANCEL $(CheckIfCurrentMB) /SD IDOK IDOK DONE 277 MessageBox MB_OKCANCEL $(CheckIfCurrentMB) /SD IDOK IDOK DONE
278 Quit 278 Quit
279 279
280 DONE: 280 DONE:
281 Pop $0 281 Pop $0
282 Return 282 Return
283FunctionEnd 283FunctionEnd
284 284
285;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 285;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
286; Close the program, if running. Modifies no variables. 286; Close the program, if running. Modifies no variables.
287; Allows user to bail out of install process. 287; Allows user to bail out of install process.
288;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 288;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
289Function CloseSecondLife 289Function CloseSecondLife
290 Push $0 290 Push $0
291 FindWindow $0 "Second Life" "" 291 FindWindow $0 "Imprudence" ""
292 IntCmp $0 0 DONE 292 IntCmp $0 0 DONE
293 MessageBox MB_OKCANCEL $(CloseSecondLifeInstMB) IDOK CLOSE IDCANCEL CANCEL_INSTALL 293 MessageBox MB_OKCANCEL $(CloseSecondLifeInstMB) IDOK CLOSE IDCANCEL CANCEL_INSTALL
294 294
295 CANCEL_INSTALL: 295 CANCEL_INSTALL:
296 Quit 296 Quit
297 297
298 CLOSE: 298 CLOSE:
299 DetailPrint $(CloseSecondLifeInstDP) 299 DetailPrint $(CloseSecondLifeInstDP)
300 SendMessage $0 16 0 0 300 SendMessage $0 16 0 0
301 301
302 LOOP: 302 LOOP:
303 FindWindow $0 "Second Life" "" 303 FindWindow $0 "Imprudence" ""
304 IntCmp $0 0 DONE 304 IntCmp $0 0 DONE
305 Sleep 500 305 Sleep 500
306 Goto LOOP 306 Goto LOOP
307 307
308 DONE: 308 DONE:
309 Pop $0 309 Pop $0
310 Return 310 Return
311FunctionEnd 311FunctionEnd
312 312
313 313
314;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 314;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
315; Delete files in Documents and Settings\<user>\SecondLife\cache 315; Delete files in Documents and Settings\<user>\SecondLife\cache
316; Delete files in Documents and Settings\All Users\SecondLife\cache 316; Delete files in Documents and Settings\All Users\SecondLife\cache
317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
318;Function RemoveCacheFiles 318;Function RemoveCacheFiles
319; 319;
320;; Delete files in Documents and Settings\<user>\SecondLife 320;; Delete files in Documents and Settings\<user>\SecondLife
321;Push $0 321;Push $0
322;Push $1 322;Push $1
323;Push $2 323;Push $2
324; DetailPrint $(RemoveCacheFilesDP) 324; DetailPrint $(RemoveCacheFilesDP)
325; 325;
326; StrCpy $0 0 ; Index number used to iterate via EnumRegKey 326; StrCpy $0 0 ; Index number used to iterate via EnumRegKey
327; 327;
328; LOOP: 328; LOOP:
329; EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 329; EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
330; StrCmp $1 "" DONE ; no more users 330; StrCmp $1 "" DONE ; no more users
331; 331;
332; ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" 332; ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath"
333; StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing 333; StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing
334; 334;
335; ; Required since ProfileImagePath is of type REG_EXPAND_SZ 335; ; Required since ProfileImagePath is of type REG_EXPAND_SZ
336; ExpandEnvStrings $2 $2 336; ExpandEnvStrings $2 $2
337; 337;
338; ; When explicitly uninstalling, everything goes away 338; ; When explicitly uninstalling, everything goes away
339; RMDir /r "$2\Application Data\SecondLife\cache" 339; RMDir /r "$2\Application Data\SecondLife\cache"
340; 340;
341; CONTINUE: 341; CONTINUE:
342; IntOp $0 $0 + 1 342; IntOp $0 $0 + 1
343; Goto LOOP 343; Goto LOOP
344; DONE: 344; DONE:
345;Pop $2 345;Pop $2
346;Pop $1 346;Pop $1
347;Pop $0 347;Pop $0
348; 348;
349;; Delete files in Documents and Settings\All Users\SecondLife 349;; Delete files in Documents and Settings\All Users\SecondLife
350;Push $0 350;Push $0
351; ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" 351; ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
352; StrCmp $0 "" +2 352; StrCmp $0 "" +2
353; RMDir /r "$0\SecondLife\cache" 353; RMDir /r "$0\SecondLife\cache"
354;Pop $0 354;Pop $0
355; 355;
356;; Delete filse in C:\Windows\Application Data\SecondLife 356;; Delete filse in C:\Windows\Application Data\SecondLife
357;; If the user is running on a pre-NT system, Application Data lives here instead of 357;; If the user is running on a pre-NT system, Application Data lives here instead of
358;; in Documents and Settings. 358;; in Documents and Settings.
359;RMDir /r "$WINDIR\Application Data\SecondLife\cache" 359;RMDir /r "$WINDIR\Application Data\SecondLife\cache"
360; 360;
361;FunctionEnd 361;FunctionEnd
362 362
363;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 363;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
364;;; Delete the installed shader files 364;;; Delete the installed shader files
365;;; Since shaders are in active development, we'll likely need to shuffle them 365;;; Since shaders are in active development, we'll likely need to shuffle them
366;;; around a bit from build to build. This ensures that shaders that we move 366;;; around a bit from build to build. This ensures that shaders that we move
367;;; or rename in the dev tree don't get left behind in the install. 367;;; or rename in the dev tree don't get left behind in the install.
368;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 368;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
369Function RemoveOldShaders 369Function RemoveOldShaders
370 370
371;; Remove old shader files first so fallbacks will work. see DEV-5663 371;; Remove old shader files first so fallbacks will work. see DEV-5663
372RMDir /r "$INSTDIR\app_settings\shaders\*" 372RMDir /r "$INSTDIR\app_settings\shaders\*"
373 373
374FunctionEnd 374FunctionEnd
375 375
376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
377;;; Delete the installed XUI files 377;;; Delete the installed XUI files
378;;; We've changed the directory hierarchy for skins, putting all XUI and texture 378;;; We've changed the directory hierarchy for skins, putting all XUI and texture
379;;; files under a specific skin directory, i.e. skins/default/xui/en-us as opposed 379;;; files under a specific skin directory, i.e. skins/default/xui/en-us as opposed
380;;; to skins/xui/en-us. Need to clean up the old path when upgrading 380;;; to skins/xui/en-us. Need to clean up the old path when upgrading
381;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 381;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
382Function RemoveOldXUI 382Function RemoveOldXUI
383 383
384;; remove old XUI and texture files 384;; remove old XUI and texture files
385RmDir /r "$INSTDIR\skins\html" 385RmDir /r "$INSTDIR\skins\html"
386RmDir /r "$INSTDIR\skins\xui" 386RmDir /r "$INSTDIR\skins\xui"
387RmDir /r "$INSTDIR\skins\textures" 387RmDir /r "$INSTDIR\skins\textures"
388Delete "$INSTDIR\skins\*.txt" 388Delete "$INSTDIR\skins\*.txt"
389 389
390FunctionEnd 390FunctionEnd
391 391
392;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 392;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
393;;; Remove any releasenotes files. 393;;; Remove any releasenotes files.
394;;; We are no longer including release notes with the viewer. This will delete 394;;; We are no longer including release notes with the viewer. This will delete
395;;; any that were left behind by an older installer. Delete will not fail if 395;;; any that were left behind by an older installer. Delete will not fail if
396;;; the files do not exist 396;;; the files do not exist
397;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 397;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
398Function RemoveOldReleaseNotes 398Function RemoveOldReleaseNotes
399 399
400;; remove releasenotes.txt file from application directory, and the shortcut 400;; remove releasenotes.txt file from application directory, and the shortcut
401;; from the start menu. 401;; from the start menu.
402Delete "$SMPROGRAMS\$INSTSHORTCUT\SL Release Notes.lnk" 402Delete "$SMPROGRAMS\$INSTSHORTCUT\SL Release Notes.lnk"
403Delete "$INSTDIR\releasenotes.txt" 403Delete "$INSTDIR\releasenotes.txt"
404 404
405FunctionEnd 405FunctionEnd
406 406
407 407
408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
409; Delete files in Documents and Settings\<user>\SecondLife 409; Delete files in Documents and Settings\<user>\SecondLife
410; Delete files in Documents and Settings\All Users\SecondLife 410; Delete files in Documents and Settings\All Users\SecondLife
411;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 411;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
412Function un.DocumentsAndSettingsFolder 412Function un.DocumentsAndSettingsFolder
413 413
414; Delete files in Documents and Settings\<user>\SecondLife 414; Delete files in Documents and Settings\<user>\SecondLife
415Push $0 415Push $0
416Push $1 416Push $1
417Push $2 417Push $2
418 418
419 DetailPrint "Deleting files in Documents and Settings folder" 419 DetailPrint "Deleting files in Documents and Settings folder"
420 420
421 StrCpy $0 0 ; Index number used to iterate via EnumRegKey 421 StrCpy $0 0 ; Index number used to iterate via EnumRegKey
422 422
423 LOOP: 423 LOOP:
424 EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 424 EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
425 StrCmp $1 "" DONE ; no more users 425 StrCmp $1 "" DONE ; no more users
426 426
427 ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" 427 ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath"
428 StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing 428 StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing
429 429
430 ; Required since ProfileImagePath is of type REG_EXPAND_SZ 430 ; Required since ProfileImagePath is of type REG_EXPAND_SZ
431 ExpandEnvStrings $2 $2 431 ExpandEnvStrings $2 $2
432 432
433 ; If uninstalling a normal install remove everything 433 ; If uninstalling a normal install remove everything
434 ; Otherwise (preview/dmz etc) just remove cache 434 ; Otherwise (preview/dmz etc) just remove cache
435 StrCmp $INSTFLAGS "" RM_ALL RM_CACHE 435 StrCmp $INSTFLAGS "" RM_ALL RM_CACHE
436 RM_ALL: 436 RM_ALL:
437 RMDir /r "$2\Application Data\SecondLife" 437 RMDir /r "$2\Application Data\SecondLife"
438 GoTo CONTINUE 438 GoTo CONTINUE
439 RM_CACHE: 439 RM_CACHE:
440 RMDir /r "$2\Application Data\SecondLife\Cache" 440 RMDir /r "$2\Application Data\SecondLife\Cache"
441 Delete "$2\Application Data\SecondLife\user_settings\settings_windlight.xml" 441 Delete "$2\Application Data\SecondLife\user_settings\settings_windlight.xml"
442 442
443 CONTINUE: 443 CONTINUE:
444 IntOp $0 $0 + 1 444 IntOp $0 $0 + 1
445 Goto LOOP 445 Goto LOOP
446 DONE: 446 DONE:
447 447
448Pop $2 448Pop $2
449Pop $1 449Pop $1
450Pop $0 450Pop $0
451 451
452; Delete files in Documents and Settings\All Users\SecondLife 452; Delete files in Documents and Settings\All Users\SecondLife
453Push $0 453Push $0
454 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" 454 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
455 StrCmp $0 "" +2 455 StrCmp $0 "" +2
456 RMDir /r "$0\SecondLife" 456 RMDir /r "$0\SecondLife"
457Pop $0 457Pop $0
458 458
459; Delete filse in C:\Windows\Application Data\SecondLife 459; Delete filse in C:\Windows\Application Data\SecondLife
460; If the user is running on a pre-NT system, Application Data lives here instead of 460; If the user is running on a pre-NT system, Application Data lives here instead of
461; in Documents and Settings. 461; in Documents and Settings.
462RMDir /r "$WINDIR\Application Data\SecondLife" 462RMDir /r "$WINDIR\Application Data\SecondLife"
463 463
464FunctionEnd 464FunctionEnd
465 465
466;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 466;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
467; Close the program, if running. Modifies no variables. 467; Close the program, if running. Modifies no variables.
468; Allows user to bail out of uninstall process. 468; Allows user to bail out of uninstall process.
469;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 469;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
470Function un.CloseSecondLife 470Function un.CloseSecondLife
471 Push $0 471 Push $0
472 FindWindow $0 "Second Life" "" 472 FindWindow $0 "Imprudence" ""
473 IntCmp $0 0 DONE 473 IntCmp $0 0 DONE
474 MessageBox MB_OKCANCEL $(CloseSecondLifeUnInstMB) IDOK CLOSE IDCANCEL CANCEL_UNINSTALL 474 MessageBox MB_OKCANCEL $(CloseSecondLifeUnInstMB) IDOK CLOSE IDCANCEL CANCEL_UNINSTALL
475 475
476 CANCEL_UNINSTALL: 476 CANCEL_UNINSTALL:
477 Quit 477 Quit
478 478
479 CLOSE: 479 CLOSE:
480 DetailPrint $(CloseSecondLifeUnInstDP) 480 DetailPrint $(CloseSecondLifeUnInstDP)
481 SendMessage $0 16 0 0 481 SendMessage $0 16 0 0
482 482
483 LOOP: 483 LOOP:
484 FindWindow $0 "Second Life" "" 484 FindWindow $0 "Imprudence" ""
485 IntCmp $0 0 DONE 485 IntCmp $0 0 DONE
486 Sleep 500 486 Sleep 500
487 Goto LOOP 487 Goto LOOP
488 488
489 DONE: 489 DONE:
490 Pop $0 490 Pop $0
491 Return 491 Return
492FunctionEnd 492FunctionEnd
493 493
494 494
495;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 495;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
496; 496;
497; Delete the stored password for the current Windows user 497; Delete the stored password for the current Windows user
498; DEV-10821 -- Unauthorised user can gain access to an SL account after a real user has uninstalled 498; DEV-10821 -- Unauthorised user can gain access to an SL account after a real user has uninstalled
499; 499;
500Function un.RemovePassword 500Function un.RemovePassword
501 501
502DetailPrint "Removing Second Life password" 502DetailPrint "Removing Second Life password"
503 503
504SetShellVarContext current 504SetShellVarContext current
505Delete "$APPDATA\SecondLife\user_settings\password.dat" 505Delete "$APPDATA\SecondLife\user_settings\password.dat"
506SetShellVarContext all 506SetShellVarContext all
507 507
508FunctionEnd 508FunctionEnd
509 509
510;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 510;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
511;;; Delete the installed files 511;;; Delete the installed files
512;;; This deletes the uninstall executable, but it works 512;;; This deletes the uninstall executable, but it works
513;;; because it is copied to temp directory before running 513;;; because it is copied to temp directory before running
514;;; 514;;;
515;;; Note: You must list all files here, because we only 515;;; Note: You must list all files here, because we only
516;;; want to delete our files, not things users left in the 516;;; want to delete our files, not things users left in the
517;;; application directories. 517;;; application directories.
518;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 518;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
519Function un.ProgramFiles 519Function un.ProgramFiles
520 520
521;; Remove mozilla file first so recursive directory deletion doesn't get hung up 521;; Remove mozilla file first so recursive directory deletion doesn't get hung up
522Delete "$INSTDIR\app_settings\mozilla\components" 522Delete "$INSTDIR\app_settings\mozilla\components"
523 523
524;; This placeholder is replaced by the complete list of files to uninstall by viewer_manifest.py 524;; This placeholder is replaced by the complete list of files to uninstall by viewer_manifest.py
525%%DELETE_FILES%% 525%%DELETE_FILES%%
526 526
527;; Optional/obsolete files. Delete won't fail if they don't exist. 527;; Optional/obsolete files. Delete won't fail if they don't exist.
528Delete "$INSTDIR\dronesettings.ini" 528Delete "$INSTDIR\dronesettings.ini"
529Delete "$INSTDIR\message_template.msg" 529Delete "$INSTDIR\message_template.msg"
530Delete "$INSTDIR\newview.pdb" 530Delete "$INSTDIR\newview.pdb"
531Delete "$INSTDIR\newview.map" 531Delete "$INSTDIR\newview.map"
532Delete "$INSTDIR\SecondLife.pdb" 532Delete "$INSTDIR\SecondLife.pdb"
533Delete "$INSTDIR\SecondLife.map" 533Delete "$INSTDIR\SecondLife.map"
534Delete "$INSTDIR\comm.dat" 534Delete "$INSTDIR\comm.dat"
535Delete "$INSTDIR\*.glsl" 535Delete "$INSTDIR\*.glsl"
536Delete "$INSTDIR\motions\*.lla" 536Delete "$INSTDIR\motions\*.lla"
537Delete "$INSTDIR\trial\*.html" 537Delete "$INSTDIR\trial\*.html"
538Delete "$INSTDIR\newview.exe" 538Delete "$INSTDIR\newview.exe"
539;; Remove entire help directory 539;; Remove entire help directory
540Delete "$INSTDIR\help\Advanced\*" 540Delete "$INSTDIR\help\Advanced\*"
541RMDir "$INSTDIR\help\Advanced" 541RMDir "$INSTDIR\help\Advanced"
542Delete "$INSTDIR\help\basics\*" 542Delete "$INSTDIR\help\basics\*"
543RMDir "$INSTDIR\help\basics" 543RMDir "$INSTDIR\help\basics"
544Delete "$INSTDIR\help\Concepts\*" 544Delete "$INSTDIR\help\Concepts\*"
545RMDir "$INSTDIR\help\Concepts" 545RMDir "$INSTDIR\help\Concepts"
546Delete "$INSTDIR\help\welcome\*" 546Delete "$INSTDIR\help\welcome\*"
547RMDir "$INSTDIR\help\welcome" 547RMDir "$INSTDIR\help\welcome"
548Delete "$INSTDIR\help\*" 548Delete "$INSTDIR\help\*"
549RMDir "$INSTDIR\help" 549RMDir "$INSTDIR\help"
550 550
551Delete "$INSTDIR\uninst.exe" 551Delete "$INSTDIR\uninst.exe"
552RMDir "$INSTDIR" 552RMDir "$INSTDIR"
553 553
554IfFileExists "$INSTDIR" FOLDERFOUND NOFOLDER 554IfFileExists "$INSTDIR" FOLDERFOUND NOFOLDER
555 555
556FOLDERFOUND: 556FOLDERFOUND:
557 MessageBox MB_YESNO $(DeleteProgramFilesMB) IDNO NOFOLDER 557 MessageBox MB_YESNO $(DeleteProgramFilesMB) IDNO NOFOLDER
558 RMDir /r "$INSTDIR" 558 RMDir /r "$INSTDIR"
559 559
560NOFOLDER: 560NOFOLDER:
561 561
562FunctionEnd 562FunctionEnd
563 563
564;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 564;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
565;;; Uninstall settings 565;;; Uninstall settings
566;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 566;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
567UninstallText $(UninstallTextMsg) 567UninstallText $(UninstallTextMsg)
568ShowUninstDetails show 568ShowUninstDetails show
569 569
570;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 570;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
571;;; Uninstall section 571;;; Uninstall section
572;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 572;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
573Section Uninstall 573Section Uninstall
574 574
575; Start with some default values. 575; Start with some default values.
576StrCpy $INSTFLAGS "" 576StrCpy $INSTFLAGS ""
577StrCpy $INSTPROG "${INSTNAME}" 577StrCpy $INSTPROG "${INSTNAME}"
578StrCpy $INSTEXE "${INSTEXE}" 578StrCpy $INSTEXE "${INSTEXE}"
579StrCpy $INSTSHORTCUT "${SHORTCUT}" 579StrCpy $INSTSHORTCUT "${SHORTCUT}"
580Call un.CheckStartupParams ; Figure out where, what and how to uninstall. 580Call un.CheckStartupParams ; Figure out where, what and how to uninstall.
581Call un.CheckIfAdministrator ; Make sure the user can install/uninstall 581Call un.CheckIfAdministrator ; Make sure the user can install/uninstall
582 582
583; uninstall for all users (if you change this, change it in the install as well) 583; uninstall for all users (if you change this, change it in the install as well)
584SetShellVarContext all 584SetShellVarContext all
585 585
586; Make sure we're not running 586; Make sure we're not running
587Call un.CloseSecondLife 587Call un.CloseSecondLife
588 588
589; Clean up registry keys (these should all be !defines somewhere) 589; Clean up registry keys (these should all be !defines somewhere)
590DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" 590DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG"
591DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" 591DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG"
592DeleteRegKey HKEY_LOCAL_MACHINE "Software\Linden Research, Inc.\Installer Language" 592DeleteRegKey HKEY_LOCAL_MACHINE "Software\Linden Research, Inc.\Installer Language"
593 593
594; Clean up shortcuts 594; Clean up shortcuts
595Delete "$SMPROGRAMS\$INSTSHORTCUT\*.*" 595Delete "$SMPROGRAMS\$INSTSHORTCUT\*.*"
596RMDir "$SMPROGRAMS\$INSTSHORTCUT" 596RMDir "$SMPROGRAMS\$INSTSHORTCUT"
597 597
598Delete "$DESKTOP\$INSTSHORTCUT.lnk" 598Delete "$DESKTOP\$INSTSHORTCUT.lnk"
599Delete "$INSTDIR\$INSTSHORTCUT.lnk" 599Delete "$INSTDIR\$INSTSHORTCUT.lnk"
600Delete "$INSTDIR\Uninstall $INSTSHORTCUT.lnk" 600Delete "$INSTDIR\Uninstall $INSTSHORTCUT.lnk"
601 601
602; Clean up cache and log files. 602; Clean up cache and log files.
603; Leave them in-place for non AGNI installs. 603; Leave them in-place for non AGNI installs.
604 604
605!ifdef UNINSTALL_SETTINGS 605!ifdef UNINSTALL_SETTINGS
606Call un.DocumentsAndSettingsFolder 606Call un.DocumentsAndSettingsFolder
607!endif 607!endif
608 608
609; remove stored password on uninstall 609; remove stored password on uninstall
610Call un.RemovePassword 610Call un.RemovePassword
611 611
612Call un.ProgramFiles 612Call un.ProgramFiles
613 613
614SectionEnd ; end of uninstall section 614SectionEnd ; end of uninstall section
615 615
616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
617; (From the NSIS wiki, DK) 617; (From the NSIS wiki, DK)
618; GetParameterValue 618; GetParameterValue
619; 619;
620; Usage: 620; Usage:
621; !insertmacro GetParameterValue "/L=" "1033" 621; !insertmacro GetParameterValue "/L=" "1033"
622; pop $R0 622; pop $R0
623; 623;
624; Returns on top of stack 624; Returns on top of stack
625; 625;
626; Example command lines: 626; Example command lines:
627; foo.exe /S /L=1033 /D=C:\Program Files\Foo 627; foo.exe /S /L=1033 /D=C:\Program Files\Foo
628; or: 628; or:
629; foo.exe /S "/L=1033" /D="C:\Program Files\Foo" 629; foo.exe /S "/L=1033" /D="C:\Program Files\Foo"
630; gpv "/L=" "1033" 630; gpv "/L=" "1033"
631;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 631;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
632 632
633 !macro GetParameterValue SWITCH DEFAULT 633 !macro GetParameterValue SWITCH DEFAULT
634 Push $0 634 Push $0
635 Push $1 635 Push $1
636 Push $2 636 Push $2
637 Push $3 637 Push $3
638 Push $4 638 Push $4
639 639
640 ;$CMDLINE='"My Setup\Setup.exe" /L=1033 /S' 640 ;$CMDLINE='"My Setup\Setup.exe" /L=1033 /S'
641 Push "$CMDLINE" 641 Push "$CMDLINE"
642 Push '${SWITCH}"' 642 Push '${SWITCH}"'
643 !insertmacro StrStr 643 !insertmacro StrStr
644 Pop $0 644 Pop $0
645 StrCmp "$0" "" gpv_notquoted 645 StrCmp "$0" "" gpv_notquoted
646 ;$0='/L="1033" /S' 646 ;$0='/L="1033" /S'
647 StrLen $2 "$0" 647 StrLen $2 "$0"
648 Strlen $1 "${SWITCH}" 648 Strlen $1 "${SWITCH}"
649 IntOp $1 $1 + 1 649 IntOp $1 $1 + 1
650 StrCpy $0 "$0" $2 $1 650 StrCpy $0 "$0" $2 $1
651 ;$0='1033" /S' 651 ;$0='1033" /S'
652 Push "$0" 652 Push "$0"
653 Push '"' 653 Push '"'
654 !insertmacro StrStr 654 !insertmacro StrStr
655 Pop $1 655 Pop $1
656 StrLen $2 "$0" 656 StrLen $2 "$0"
657 StrLen $3 "$1" 657 StrLen $3 "$1"
658 IntOp $4 $2 - $3 658 IntOp $4 $2 - $3
659 StrCpy $0 $0 $4 0 659 StrCpy $0 $0 $4 0
660 Goto gpv_done 660 Goto gpv_done
661 661
662 gpv_notquoted: 662 gpv_notquoted:
663 Push "$CMDLINE" 663 Push "$CMDLINE"
664 Push "${SWITCH}" 664 Push "${SWITCH}"
665 !insertmacro StrStr 665 !insertmacro StrStr
666 Pop $0 666 Pop $0
667 StrCmp "$0" "" gpv_done 667 StrCmp "$0" "" gpv_done
668 ;$0='/L="1033" /S' 668 ;$0='/L="1033" /S'
669 StrLen $2 "$0" 669 StrLen $2 "$0"
670 Strlen $1 "${SWITCH}" 670 Strlen $1 "${SWITCH}"
671 StrCpy $0 "$0" $2 $1 671 StrCpy $0 "$0" $2 $1
672 ;$0=1033 /S' 672 ;$0=1033 /S'
673 Push "$0" 673 Push "$0"
674 Push ' ' 674 Push ' '
675 !insertmacro StrStr 675 !insertmacro StrStr
676 Pop $1 676 Pop $1
677 StrLen $2 "$0" 677 StrLen $2 "$0"
678 StrLen $3 "$1" 678 StrLen $3 "$1"
679 IntOp $4 $2 - $3 679 IntOp $4 $2 - $3
680 StrCpy $0 $0 $4 0 680 StrCpy $0 $0 $4 0
681 Goto gpv_done 681 Goto gpv_done
682 682
683 gpv_done: 683 gpv_done:
684 StrCmp "$0" "" 0 +2 684 StrCmp "$0" "" 0 +2
685 StrCpy $0 "${DEFAULT}" 685 StrCpy $0 "${DEFAULT}"
686 686
687 Pop $4 687 Pop $4
688 Pop $3 688 Pop $3
689 Pop $2 689 Pop $2
690 Pop $1 690 Pop $1
691 Exch $0 691 Exch $0
692 !macroend 692 !macroend
693 693
694; And I had to modify StrStr a tiny bit. 694; And I had to modify StrStr a tiny bit.
695; Possible upgrade switch the goto's to use ${__LINE__} 695; Possible upgrade switch the goto's to use ${__LINE__}
696 696
697!macro STRSTR 697!macro STRSTR
698 Exch $R1 ; st=haystack,old$R1, $R1=needle 698 Exch $R1 ; st=haystack,old$R1, $R1=needle
699 Exch ; st=old$R1,haystack 699 Exch ; st=old$R1,haystack
700 Exch $R2 ; st=old$R1,old$R2, $R2=haystack 700 Exch $R2 ; st=old$R1,old$R2, $R2=haystack
701 Push $R3 701 Push $R3
702 Push $R4 702 Push $R4
703 Push $R5 703 Push $R5
704 StrLen $R3 $R1 704 StrLen $R3 $R1
705 StrCpy $R4 0 705 StrCpy $R4 0
706 ; $R1=needle 706 ; $R1=needle
707 ; $R2=haystack 707 ; $R2=haystack
708 ; $R3=len(needle) 708 ; $R3=len(needle)
709 ; $R4=cnt 709 ; $R4=cnt
710 ; $R5=tmp 710 ; $R5=tmp
711 ; loop; 711 ; loop;
712 StrCpy $R5 $R2 $R3 $R4 712 StrCpy $R5 $R2 $R3 $R4
713 StrCmp $R5 $R1 +4 713 StrCmp $R5 $R1 +4
714 StrCmp $R5 "" +3 714 StrCmp $R5 "" +3
715 IntOp $R4 $R4 + 1 715 IntOp $R4 $R4 + 1
716 Goto -4 716 Goto -4
717 ; done; 717 ; done;
718 StrCpy $R1 $R2 "" $R4 718 StrCpy $R1 $R2 "" $R4
719 Pop $R5 719 Pop $R5
720 Pop $R4 720 Pop $R4
721 Pop $R3 721 Pop $R3
722 Pop $R2 722 Pop $R2
723 Exch $R1 723 Exch $R1
724!macroend 724!macroend
725 725
726Function GetProgramName 726Function GetProgramName
727 !insertmacro GetParameterValue "/P=" "SecondLife" 727 !insertmacro GetParameterValue "/P=" "Imprudence"
728FunctionEnd 728FunctionEnd
729 729
730Function un.GetProgramName 730Function un.GetProgramName
731 !insertmacro GetParameterValue "/P=" "SecondLife" 731 !insertmacro GetParameterValue "/P=" "Imprudence"
732FunctionEnd 732FunctionEnd
733 733
734;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 734;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
735; (From the NSIS documentation, JC) 735; (From the NSIS documentation, JC)
736; GetWindowsVersion 736; GetWindowsVersion
737; 737;
738; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/ 738; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/
739; Updated by Joost Verburg 739; Updated by Joost Verburg
740; 740;
741; Returns on top of stack 741; Returns on top of stack
742; 742;
743; Windows Version (95, 98, ME, NT x.x, 2000, XP, 2003) 743; Windows Version (95, 98, ME, NT x.x, 2000, XP, 2003)
744; or 744; or
745; '' (Unknown Windows Version) 745; '' (Unknown Windows Version)
746; 746;
747; Usage: 747; Usage:
748; Call GetWindowsVersion 748; Call GetWindowsVersion
749; Pop $R0 749; Pop $R0
750; ; at this point $R0 is "NT 4.0" or whatnot 750; ; at this point $R0 is "NT 4.0" or whatnot
751;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 751;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
752Function GetWindowsVersion 752Function GetWindowsVersion
753 753
754 Push $R0 754 Push $R0
755 Push $R1 755 Push $R1
756 756
757 ReadRegStr $R0 HKLM \ 757 ReadRegStr $R0 HKLM \
758 "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion 758 "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
759 759
760 IfErrors 0 lbl_winnt 760 IfErrors 0 lbl_winnt
761 761
762 ; we are not NT 762 ; we are not NT
763 ReadRegStr $R0 HKLM \ 763 ReadRegStr $R0 HKLM \
764 "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber 764 "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
765 765
766 StrCpy $R1 $R0 1 766 StrCpy $R1 $R0 1
767 StrCmp $R1 '4' 0 lbl_error 767 StrCmp $R1 '4' 0 lbl_error
768 768
769 StrCpy $R1 $R0 3 769 StrCpy $R1 $R0 3
770 770
771 StrCmp $R1 '4.0' lbl_win32_95 771 StrCmp $R1 '4.0' lbl_win32_95
772 StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98 772 StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
773 773
774 lbl_win32_95: 774 lbl_win32_95:
775 StrCpy $R0 '95' 775 StrCpy $R0 '95'
776 Goto lbl_done 776 Goto lbl_done
777 777
778 lbl_win32_98: 778 lbl_win32_98:
779 StrCpy $R0 '98' 779 StrCpy $R0 '98'
780 Goto lbl_done 780 Goto lbl_done
781 781
782 lbl_win32_ME: 782 lbl_win32_ME:
783 StrCpy $R0 'ME' 783 StrCpy $R0 'ME'
784 Goto lbl_done 784 Goto lbl_done
785 785
786 lbl_winnt: 786 lbl_winnt:
787 787
788 StrCpy $R1 $R0 1 788 StrCpy $R1 $R0 1
789 789
790 StrCmp $R1 '3' lbl_winnt_x 790 StrCmp $R1 '3' lbl_winnt_x
791 StrCmp $R1 '4' lbl_winnt_x 791 StrCmp $R1 '4' lbl_winnt_x
792 792
793 StrCpy $R1 $R0 3 793 StrCpy $R1 $R0 3
794 794
795 StrCmp $R1 '5.0' lbl_winnt_2000 795 StrCmp $R1 '5.0' lbl_winnt_2000
796 StrCmp $R1 '5.1' lbl_winnt_XP 796 StrCmp $R1 '5.1' lbl_winnt_XP
797 StrCmp $R1 '5.2' lbl_winnt_2003 lbl_error 797 StrCmp $R1 '5.2' lbl_winnt_2003 lbl_error
798 798
799 lbl_winnt_x: 799 lbl_winnt_x:
800 StrCpy $R0 "NT $R0" 6 800 StrCpy $R0 "NT $R0" 6
801 Goto lbl_done 801 Goto lbl_done
802 802
803 lbl_winnt_2000: 803 lbl_winnt_2000:
804 Strcpy $R0 '2000' 804 Strcpy $R0 '2000'
805 Goto lbl_done 805 Goto lbl_done
806 806
807 lbl_winnt_XP: 807 lbl_winnt_XP:
808 Strcpy $R0 'XP' 808 Strcpy $R0 'XP'
809 Goto lbl_done 809 Goto lbl_done
810 810
811 lbl_winnt_2003: 811 lbl_winnt_2003:
812 Strcpy $R0 '2003' 812 Strcpy $R0 '2003'
813 Goto lbl_done 813 Goto lbl_done
814 814
815 lbl_error: 815 lbl_error:
816 Strcpy $R0 '' 816 Strcpy $R0 ''
817 lbl_done: 817 lbl_done:
818 818
819 Pop $R1 819 Pop $R1
820 Exch $R0 820 Exch $R0
821 821
822FunctionEnd 822FunctionEnd
823 823
824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
825;; Note: to add new languages, add a language file include to the list 825;; Note: to add new languages, add a language file include to the list
826;; at the top of this file, add an entry to the menu and then add an 826;; at the top of this file, add an entry to the menu and then add an
827;; entry to the language ID selector below 827;; entry to the language ID selector below
828;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 828;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
829Function .onInit 829Function .onInit
830 830
831 ; read the language from registry (ok if not there) and set langauge menu 831 ; read the language from registry (ok if not there) and set langauge menu
832 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" 832 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage"
833 StrCpy $LANGUAGE $0 833 StrCpy $LANGUAGE $0
834 834
835 Push "" 835 Push ""
836 Push ${LANG_ENGLISH} 836 Push ${LANG_ENGLISH}
837 Push English 837 Push English
838 Push ${LANG_GERMAN} 838 Push ${LANG_GERMAN}
839 Push German 839 Push German
840 Push ${LANG_JAPANESE} 840 Push ${LANG_JAPANESE}
841 Push Japanese 841 Push Japanese
842 Push ${LANG_KOREAN} 842 Push ${LANG_KOREAN}
843 Push Korean 843 Push Korean
844 Push A ; A means auto count languages for the auto count to work the first empty push (Push "") must remain 844 Push A ; A means auto count languages for the auto count to work the first empty push (Push "") must remain
845 LangDLL::LangDialog "Installer Language" "Please select the language of the installer" 845 LangDLL::LangDialog "Installer Language" "Please select the language of the installer"
846 Pop $LANGUAGE 846 Pop $LANGUAGE
847 StrCmp $LANGUAGE "cancel" 0 +2 847 StrCmp $LANGUAGE "cancel" 0 +2
848 Abort 848 Abort
849 849
850 ; save language in registry 850 ; save language in registry
851 WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" $LANGUAGE 851 WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" $LANGUAGE
852FunctionEnd 852FunctionEnd
853 853
854;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 854;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
855Function un.onInit 855Function un.onInit
856 856
857 ; read language from registry and set for ininstaller 857 ; read language from registry and set for ininstaller
858 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" 858 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage"
859 StrCpy $LANGUAGE $0 859 StrCpy $LANGUAGE $0
860 860
861FunctionEnd 861FunctionEnd
862 862
863 863
864;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 864;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
865;;; Sections 865;;; Sections
866;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 866;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
867Section "" ; (default section) 867Section "" ; (default section)
868 868
869SetShellVarContext all ; install for all users (if you change this, change it in the uninstall as well) 869SetShellVarContext all ; install for all users (if you change this, change it in the uninstall as well)
870 870
871; Start with some default values. 871; Start with some default values.
872StrCpy $INSTFLAGS "${INSTFLAGS}" 872StrCpy $INSTFLAGS "${INSTFLAGS}"
873StrCpy $INSTPROG "${INSTNAME}" 873StrCpy $INSTPROG "${INSTNAME}"
874StrCpy $INSTEXE "${INSTEXE}" 874StrCpy $INSTEXE "${INSTEXE}"
875StrCpy $INSTSHORTCUT "${SHORTCUT}" 875StrCpy $INSTSHORTCUT "${SHORTCUT}"
876 876
877IfSilent +2 877IfSilent +2
878Goto NOT_SILENT 878Goto NOT_SILENT
879 Call CheckStartupParams ; Figure out where, what and how to install. 879 Call CheckStartupParams ; Figure out where, what and how to install.
880NOT_SILENT: 880NOT_SILENT:
881Call CheckWindowsVersion ; warn if on Windows 98/ME 881Call CheckWindowsVersion ; warn if on Windows 98/ME
882Call CheckIfAdministrator ; Make sure the user can install/uninstall 882Call CheckIfAdministrator ; Make sure the user can install/uninstall
883Call CheckIfAlreadyCurrent ; Make sure that we haven't already installed this version 883Call CheckIfAlreadyCurrent ; Make sure that we haven't already installed this version
884Call CloseSecondLife ; Make sure we're not running 884Call CloseSecondLife ; Make sure we're not running
885Call RemoveNSIS ; Check for old NSIS install to remove 885Call RemoveNSIS ; Check for old NSIS install to remove
886 886
887;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 887;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
888;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers. 888;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers.
889;Call RemoveCacheFiles ; Installing over removes potentially corrupted 889;Call RemoveCacheFiles ; Installing over removes potentially corrupted
890 ; VFS and cache files. 890 ; VFS and cache files.
891 891
892;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 892;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
893;;; Need to clean out shader files from previous installs to fix DEV-5663 893;;; Need to clean out shader files from previous installs to fix DEV-5663
894Call RemoveOldShaders 894Call RemoveOldShaders
895 895
896;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 896;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
897;;; Need to clean out old XUI files that predate skinning 897;;; Need to clean out old XUI files that predate skinning
898Call RemoveOldXUI 898Call RemoveOldXUI
899 899
900;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 900;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
901;;; Clear out old releasenotes.txt files. These are now on the public wiki. 901;;; Clear out old releasenotes.txt files. These are now on the public wiki.
902Call RemoveOldReleaseNotes 902Call RemoveOldReleaseNotes
903 903
904;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 904;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
905;;; Files 905;;; Files
906;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 906;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
907;; This placeholder is replaced by the complete list of all the files in the installer, by viewer_manifest.py 907;; This placeholder is replaced by the complete list of all the files in the installer, by viewer_manifest.py
908%%INSTALL_FILES%% 908%%INSTALL_FILES%%
909 909
910;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 910;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
911; If this is a silent update, we don't need to re-create these shortcuts or registry entries. 911; If this is a silent update, we don't need to re-create these shortcuts or registry entries.
912IfSilent POST_INSTALL 912IfSilent POST_INSTALL
913 913
914;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 914;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
915; Shortcuts in start menu 915; Shortcuts in start menu
916CreateDirectory "$SMPROGRAMS\$INSTSHORTCUT" 916CreateDirectory "$SMPROGRAMS\$INSTSHORTCUT"
917SetOutPath "$INSTDIR" 917SetOutPath "$INSTDIR"
918CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT.lnk" \ 918CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT.lnk" \
919 "$INSTDIR\$INSTEXE" "$INSTFLAGS" 919 "$INSTDIR\$INSTEXE" "$INSTFLAGS"
920 920
921!ifdef MUSEUM 921!ifdef MUSEUM
922CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT Museum.lnk" \ 922CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT Museum.lnk" \
923 923
924 "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple" 924 "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple"
925CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT Museum Spanish.lnk" \ 925CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT Museum Spanish.lnk" \
926 926
927 "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish" 927 "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish"
928!endif 928!endif
929 929
930WriteINIStr "$SMPROGRAMS\$INSTSHORTCUT\SL Create Trial Account.url" \ 930WriteINIStr "$SMPROGRAMS\$INSTSHORTCUT\SL Create Trial Account.url" \
931 "InternetShortcut" "URL" \ 931 "InternetShortcut" "URL" \
932 "http://www.secondlife.com/registration/" 932 "http://www.secondlife.com/registration/"
933WriteINIStr "$SMPROGRAMS\$INSTSHORTCUT\SL Your Account.url" \ 933WriteINIStr "$SMPROGRAMS\$INSTSHORTCUT\SL Your Account.url" \
934 "InternetShortcut" "URL" \ 934 "InternetShortcut" "URL" \
935 "http://www.secondlife.com/account/" 935 "http://www.secondlife.com/account/"
936CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\SL Scripting Language Help.lnk" \ 936CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\SL Scripting Language Help.lnk" \
937 "$INSTDIR\lsl_guide.html" 937 "$INSTDIR\lsl_guide.html"
938CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\Uninstall $INSTSHORTCUT.lnk" \ 938CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\Uninstall $INSTSHORTCUT.lnk" \
939 '"$INSTDIR\uninst.exe"' '/P="$INSTPROG"' 939 '"$INSTDIR\uninst.exe"' '/P="$INSTPROG"'
940 940
941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
942; Other shortcuts 942; Other shortcuts
943SetOutPath "$INSTDIR" 943SetOutPath "$INSTDIR"
944CreateShortCut "$DESKTOP\$INSTSHORTCUT.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS" 944CreateShortCut "$DESKTOP\$INSTSHORTCUT.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS"
945CreateShortCut "$INSTDIR\$INSTSHORTCUT.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS" 945CreateShortCut "$INSTDIR\$INSTSHORTCUT.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS"
946CreateShortCut "$INSTDIR\Uninstall $INSTSHORTCUT.lnk" \ 946CreateShortCut "$INSTDIR\Uninstall $INSTSHORTCUT.lnk" \
947 '"$INSTDIR\uninst.exe"' '/P="$INSTPROG"' 947 '"$INSTDIR\uninst.exe"' '/P="$INSTPROG"'
948 948
949!ifdef MUSEUM 949!ifdef MUSEUM
950CreateShortCut "$DESKTOP\$INSTSHORTCUT Museum.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple" 950CreateShortCut "$DESKTOP\$INSTSHORTCUT Museum.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple"
951 951
952CreateShortCut "$DESKTOP\$INSTSHORTCUT Museum Spanish.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish" 952CreateShortCut "$DESKTOP\$INSTSHORTCUT Museum Spanish.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish"
953 953
954CreateShortCut "$INSTDIR\$INSTSHORTCUT Museum.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple" 954CreateShortCut "$INSTDIR\$INSTSHORTCUT Museum.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple"
955 955
956CreateShortCut "$INSTDIR\$INSTSHORTCUT Museum Spanish.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish" 956CreateShortCut "$INSTDIR\$INSTSHORTCUT Museum Spanish.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish"
957 957
958!endif 958!endif
959 959
960;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 960;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
961; Write registry 961; Write registry
962WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" "$INSTDIR" 962WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" "$INSTDIR"
963WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version" "${VERSION_LONG}" 963WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version" "${VERSION_LONG}"
964WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags" "$INSTFLAGS" 964WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags" "$INSTFLAGS"
965WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut" "$INSTSHORTCUT" 965WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut" "$INSTSHORTCUT"
966WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe" "$INSTEXE" 966WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe" "$INSTEXE"
967WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "DisplayName" "$INSTPROG (remove only)" 967WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "DisplayName" "$INSTPROG (remove only)"
968WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "UninstallString" '"$INSTDIR\uninst.exe" /P="$INSTPROG"' 968WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "UninstallString" '"$INSTDIR\uninst.exe" /P="$INSTPROG"'
969 969
970;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 970;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
971; Write URL registry info 971; Write URL registry info
972WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "(default)" "URL:Second Life" 972WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "(default)" "URL:Second Life"
973WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "URL Protocol" "" 973WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "URL Protocol" ""
974WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}\DefaultIcon" "" '"$INSTDIR\$INSTEXE"' 974WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}\DefaultIcon" "" '"$INSTDIR\$INSTEXE"'
975WriteRegExpandStr HKEY_CLASSES_ROOT "${URLNAME}\shell\open\command" "" '"$INSTDIR\$INSTEXE" $INSTFLAGS -url "%1"' 975WriteRegExpandStr HKEY_CLASSES_ROOT "${URLNAME}\shell\open\command" "" '"$INSTDIR\$INSTEXE" $INSTFLAGS -url "%1"'
976 976
977Goto WRITE_UNINST 977Goto WRITE_UNINST
978 978
979POST_INSTALL: 979POST_INSTALL:
980; Run a post-executable script if necessary. 980; Run a post-executable script if necessary.
981Call PostInstallExe 981Call PostInstallExe
982 982
983WRITE_UNINST: 983WRITE_UNINST:
984; write out uninstaller 984; write out uninstaller
985WriteUninstaller "$INSTDIR\uninst.exe" 985WriteUninstaller "$INSTDIR\uninst.exe"
986 986
987; end of default section 987; end of default section
988SectionEnd 988SectionEnd
989 989
990;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; EOF ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 990;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; EOF ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/linden/indra/newview/installers/windows/lang_de.nsi b/linden/indra/newview/installers/windows/lang_de.nsi
index c410128..6be219e 100644
--- a/linden/indra/newview/installers/windows/lang_de.nsi
+++ b/linden/indra/newview/installers/windows/lang_de.nsi
@@ -1,57 +1,57 @@
1; First is default 1; First is default
2LoadLanguageFile "${NSISDIR}\Contrib\Language files\German.nlf" 2LoadLanguageFile "${NSISDIR}\Contrib\Language files\German.nlf"
3 3
4; subtitle on license text caption (setup new version or update current one 4; subtitle on license text caption (setup new version or update current one
5LangString LicenseSubTitleUpdate ${LANG_GERMAN} " Update" 5LangString LicenseSubTitleUpdate ${LANG_GERMAN} " Update"
6LangString LicenseSubTitleSetup ${LANG_GERMAN} " Setup" 6LangString LicenseSubTitleSetup ${LANG_GERMAN} " Setup"
7 7
8; description on license page 8; description on license page
9LangString LicenseDescUpdate ${LANG_GERMAN} "Dieses Paket wird das bereits installierte Second Life mit Version ${VERSION_LONG}. ersetzen." 9LangString LicenseDescUpdate ${LANG_GERMAN} "Dieses Paket wird das bereits installierte Imprudence mit Version ${VERSION_LONG}. ersetzen."
10LangString LicenseDescSetup ${LANG_GERMAN} "Dieses Paket wird Second Life auf Ihrem Computer installieren." 10LangString LicenseDescSetup ${LANG_GERMAN} "Dieses Paket wird Imprudence auf Ihrem Computer installieren."
11LangString LicenseDescNext ${LANG_GERMAN} "Weiter" 11LangString LicenseDescNext ${LANG_GERMAN} "Weiter"
12 12
13; installation directory text 13; installation directory text
14LangString DirectoryChooseTitle ${LANG_GERMAN} "Installations-Ordner" 14LangString DirectoryChooseTitle ${LANG_GERMAN} "Installations-Ordner"
15LangString DirectoryChooseUpdate ${LANG_GERMAN} "Wählen Sie den Second Life Ordner für dieses Update:" 15LangString DirectoryChooseUpdate ${LANG_GERMAN} "Wählen Sie den Imprudence Ordner für dieses Update:"
16LangString DirectoryChooseSetup ${LANG_GERMAN} "Pfad in dem Second Life installieren werden soll:" 16LangString DirectoryChooseSetup ${LANG_GERMAN} "Pfad in dem Imprudence installieren werden soll:"
17 17
18; CheckStartupParams message box 18; CheckStartupParams message box
19LangString CheckStartupParamsMB ${LANG_GERMAN} "Konnte Programm '$INSTPROG' nicht finden. Stilles Update fehlgeschlagen." 19LangString CheckStartupParamsMB ${LANG_GERMAN} "Konnte Programm '$INSTPROG' nicht finden. Stilles Update fehlgeschlagen."
20 20
21; installation success dialog 21; installation success dialog
22LangString InstSuccesssQuestion ${LANG_GERMAN} "Second Life starten?" 22LangString InstSuccesssQuestion ${LANG_GERMAN} "Imprudence starten?"
23 23
24; remove old NSIS version 24; remove old NSIS version
25LangString RemoveOldNSISVersion ${LANG_GERMAN} "Überprüfe alte Version ..." 25LangString RemoveOldNSISVersion ${LANG_GERMAN} "Überprüfe alte Version ..."
26 26
27; check windows version 27; check windows version
28LangString CheckWindowsVersionDP ${LANG_GERMAN} "Überprüfung der Windows Version ..." 28LangString CheckWindowsVersionDP ${LANG_GERMAN} "Überprüfung der Windows Version ..."
29LangString CheckWindowsVersionMB ${LANG_GERMAN} 'Second Life unterstützt nur Windows XP, Windows 2000 und Mac OS X.$\n$\nDer Versuch es auf Windows $R0 zu installieren, könnte zu unvorhersehbaren Abstürzen und Datenverlust führen.$\n$\nTrotzdem installieren?' 29LangString CheckWindowsVersionMB ${LANG_GERMAN} 'Imprudence unterstützt nur Windows XP, Windows 2000 und Mac OS X.$\n$\nDer Versuch es auf Windows $R0 zu installieren, könnte zu unvorhersehbaren Abstürzen und Datenverlust führen.$\n$\nTrotzdem installieren?'
30 30
31; checkifadministrator function (install) 31; checkifadministrator function (install)
32LangString CheckAdministratorInstDP ${LANG_GERMAN} "Überprüfung der Installations-Berechtigungen ..." 32LangString CheckAdministratorInstDP ${LANG_GERMAN} "Überprüfung der Installations-Berechtigungen ..."
33LangString CheckAdministratorInstMB ${LANG_GERMAN} 'Sie besitzen ungenügende Berechtigungen.$\nSie müssen ein "administrator" sein, um Second Life installieren zu können.' 33LangString CheckAdministratorInstMB ${LANG_GERMAN} 'Sie besitzen ungenügende Berechtigungen.$\nSie müssen ein "administrator" sein, um Imprudence installieren zu können.'
34 34
35; checkifadministrator function (uninstall) 35; checkifadministrator function (uninstall)
36LangString CheckAdministratorUnInstDP ${LANG_GERMAN} "Überprüfung der Entfernungs-Berechtigungen ..." 36LangString CheckAdministratorUnInstDP ${LANG_GERMAN} "Überprüfung der Entfernungs-Berechtigungen ..."
37LangString CheckAdministratorUnInstMB ${LANG_GERMAN} 'Sie besitzen ungenügende Berechtigungen.$\nSie müssen ein "administrator" sein, um Second Life entfernen zu können..' 37LangString CheckAdministratorUnInstMB ${LANG_GERMAN} 'Sie besitzen ungenügende Berechtigungen.$\nSie müssen ein "administrator" sein, um Imprudence entfernen zu können..'
38 38
39; checkifalreadycurrent 39; checkifalreadycurrent
40LangString CheckIfCurrentMB ${LANG_GERMAN} "Anscheinend ist Second Life ${VERSION_LONG} bereits installiert.$\n$\nWürden Sie es gerne erneut installieren?" 40LangString CheckIfCurrentMB ${LANG_GERMAN} "Anscheinend ist Imprudence ${VERSION_LONG} bereits installiert.$\n$\nWürden Sie es gerne erneut installieren?"
41 41
42; closesecondlife function (install) 42; closeimprudence function (install)
43LangString CloseSecondLifeInstDP ${LANG_GERMAN} "Warten auf die Beendigung von Second Life ..." 43LangString CloseSecondLifeInstDP ${LANG_GERMAN} "Warten auf die Beendigung von Imprudence ..."
44LangString CloseSecondLifeInstMB ${LANG_GERMAN} "Second Life kann nicht installiert oder ersetzt werden, wenn es bereits läuft.$\n$\nBeenden Sie, was Sie gerade tun und klicken Sie OK, um Second Life zu beenden.$\nKlicken Sie CANCEL, um die Installation abzubrechen." 44LangString CloseSecondLifeInstMB ${LANG_GERMAN} "Imprudence kann nicht installiert oder ersetzt werden, wenn es bereits läuft.$\n$\nBeenden Sie, was Sie gerade tun und klicken Sie OK, um Imprudence zu beenden.$\nKlicken Sie CANCEL, um die Installation abzubrechen."
45 45
46; closesecondlife function (uninstall) 46; closeimprudence function (uninstall)
47LangString CloseSecondLifeUnInstDP ${LANG_GERMAN} "Warten auf die Beendigung von Second Life ..." 47LangString CloseSecondLifeUnInstDP ${LANG_GERMAN} "Warten auf die Beendigung von Imprudence ..."
48LangString CloseSecondLifeUnInstMB ${LANG_GERMAN} "Second Life kann nicht entfernt werden, wenn es bereits läuft.$\n$\nBeenden Sie, was Sie gerade tun und klicken Sie OK, um Second Life zu beenden.$\nKlicken Sie CANCEL, um abzubrechen." 48LangString CloseSecondLifeUnInstMB ${LANG_GERMAN} "Imprudence kann nicht entfernt werden, wenn es bereits läuft.$\n$\nBeenden Sie, was Sie gerade tun und klicken Sie OK, um Imprudence zu beenden.$\nKlicken Sie CANCEL, um abzubrechen."
49 49
50; removecachefiles 50; removecachefiles
51LangString RemoveCacheFilesDP ${LANG_GERMAN} "Löschung aller Cache Dateien in Dokumente und Einstellungen." 51LangString RemoveCacheFilesDP ${LANG_GERMAN} "Löschung aller Cache Dateien in Dokumente und Einstellungen."
52 52
53; delete program files 53; delete program files
54LangString DeleteProgramFilesMB ${LANG_GERMAN} "Es existieren weiterhin Dateien in Ihrem SecondLife Programm Ordner.$\n$\nDies sind möglicherweise Dateien, die sie modifiziert oder bewegt haben:$\n$INSTDIR$\n$\nMöchten Sie diese ebenfalls löschen?" 54LangString DeleteProgramFilesMB ${LANG_GERMAN} "Es existieren weiterhin Dateien in Ihrem Imprudence Programm Ordner.$\n$\nDies sind möglicherweise Dateien, die sie modifiziert oder bewegt haben:$\n$INSTDIR$\n$\nMöchten Sie diese ebenfalls löschen?"
55 55
56; uninstall text 56; uninstall text
57LangString UninstallTextMsg ${LANG_GERMAN} "Dies wird Second Life ${VERSION_LONG} von Ihrem System entfernen." 57LangString UninstallTextMsg ${LANG_GERMAN} "Dies wird Imprudence ${VERSION_LONG} von Ihrem System entfernen."
diff --git a/linden/indra/newview/installers/windows/lang_en-us.nsi b/linden/indra/newview/installers/windows/lang_en-us.nsi
index 218f1c6..e203fb6 100644
--- a/linden/indra/newview/installers/windows/lang_en-us.nsi
+++ b/linden/indra/newview/installers/windows/lang_en-us.nsi
@@ -1,52 +1,52 @@
1; First is default 1; First is default
2LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" 2LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf"
3 3
4; subtitle on license text caption 4; subtitle on license text caption
5LangString LicenseSubTitleUpdate ${LANG_ENGLISH} " Update" 5LangString LicenseSubTitleUpdate ${LANG_ENGLISH} " Update"
6LangString LicenseSubTitleSetup ${LANG_ENGLISH} " Setup" 6LangString LicenseSubTitleSetup ${LANG_ENGLISH} " Setup"
7 7
8; installation directory text 8; installation directory text
9LangString DirectoryChooseTitle ${LANG_ENGLISH} "Installation Directory" 9LangString DirectoryChooseTitle ${LANG_ENGLISH} "Installation Directory"
10LangString DirectoryChooseUpdate ${LANG_ENGLISH} "Select the Second Life directory to update to version ${VERSION_LONG}.(XXX):" 10LangString DirectoryChooseUpdate ${LANG_ENGLISH} "Select the Imprudence directory to update to version ${VERSION_LONG}.(XXX):"
11LangString DirectoryChooseSetup ${LANG_ENGLISH} "Select the directory to install Second Life in:" 11LangString DirectoryChooseSetup ${LANG_ENGLISH} "Select the directory to install Imprudence in:"
12 12
13; CheckStartupParams message box 13; CheckStartupParams message box
14LangString CheckStartupParamsMB ${LANG_ENGLISH} "Could not find the program '$INSTPROG'. Silent update failed." 14LangString CheckStartupParamsMB ${LANG_ENGLISH} "Could not find the program '$INSTPROG'. Silent update failed."
15 15
16; installation success dialog 16; installation success dialog
17LangString InstSuccesssQuestion ${LANG_ENGLISH} "Start Second Life now?" 17LangString InstSuccesssQuestion ${LANG_ENGLISH} "Start Imprudence now?"
18 18
19; remove old NSIS version 19; remove old NSIS version
20LangString RemoveOldNSISVersion ${LANG_ENGLISH} "Checking for old version..." 20LangString RemoveOldNSISVersion ${LANG_ENGLISH} "Checking for old version..."
21 21
22; check windows version 22; check windows version
23LangString CheckWindowsVersionDP ${LANG_ENGLISH} "Checking Windows version..." 23LangString CheckWindowsVersionDP ${LANG_ENGLISH} "Checking Windows version..."
24LangString CheckWindowsVersionMB ${LANG_ENGLISH} 'Second Life only supports Windows XP, Windows 2000, and Mac OS X.$\n$\nAttempting to install on Windows $R0 can result in crashes and data loss.$\n$\nInstall anyway?' 24LangString CheckWindowsVersionMB ${LANG_ENGLISH} 'Imprudence only supports Windows XP, Windows 2000, and Mac OS X.$\n$\nAttempting to install on Windows $R0 can result in crashes and data loss.$\n$\nInstall anyway?'
25 25
26; checkifadministrator function (install) 26; checkifadministrator function (install)
27LangString CheckAdministratorInstDP ${LANG_ENGLISH} "Checking for permission to install..." 27LangString CheckAdministratorInstDP ${LANG_ENGLISH} "Checking for permission to install..."
28LangString CheckAdministratorInstMB ${LANG_ENGLISH} 'You appear to be using a "limited" account.$\nYou must be an "administrator" to install Second Life.' 28LangString CheckAdministratorInstMB ${LANG_ENGLISH} 'You appear to be using a "limited" account.$\nYou must be an "administrator" to install Imprudence.'
29 29
30; checkifadministrator function (uninstall) 30; checkifadministrator function (uninstall)
31LangString CheckAdministratorUnInstDP ${LANG_ENGLISH} "Checking for permission to uninstall..." 31LangString CheckAdministratorUnInstDP ${LANG_ENGLISH} "Checking for permission to uninstall..."
32LangString CheckAdministratorUnInstMB ${LANG_ENGLISH} 'You appear to be using a "limited" account.$\nYou must be an "administrator" to uninstall Second Life.' 32LangString CheckAdministratorUnInstMB ${LANG_ENGLISH} 'You appear to be using a "limited" account.$\nYou must be an "administrator" to uninstall Imprudence.'
33 33
34; checkifalreadycurrent 34; checkifalreadycurrent
35LangString CheckIfCurrentMB ${LANG_ENGLISH} "It appears that Second Life ${VERSION_LONG} is already installed.$\n$\nWould you like to install it again?" 35LangString CheckIfCurrentMB ${LANG_ENGLISH} "It appears that Imprudence ${VERSION_LONG} is already installed.$\n$\nWould you like to install it again?"
36 36
37; closesecondlife function (install) 37; closeimprudence function (install)
38LangString CloseSecondLifeInstDP ${LANG_ENGLISH} "Waiting for Second Life to shut down..." 38LangString CloseSecondLifeInstDP ${LANG_ENGLISH} "Waiting for Imprudence to shut down..."
39LangString CloseSecondLifeInstMB ${LANG_ENGLISH} "Second Life can't be installed while it is already running.$\n$\nFinish what you're doing then select OK to close Second Life and continue.$\nSelect CANCEL to cancel installation." 39LangString CloseSecondLifeInstMB ${LANG_ENGLISH} "Imprudence can't be installed while it is already running.$\n$\nFinish what you're doing then select OK to close Imprudence and continue.$\nSelect CANCEL to cancel installation."
40 40
41; closesecondlife function (uninstall) 41; closeimprudence function (uninstall)
42LangString CloseSecondLifeUnInstDP ${LANG_ENGLISH} "Waiting for Second Life to shut down..." 42LangString CloseSecondLifeUnInstDP ${LANG_ENGLISH} "Waiting for Imprudence to shut down..."
43LangString CloseSecondLifeUnInstMB ${LANG_ENGLISH} "Second Life can't be uninstalled while it is already running.$\n$\nFinish what you're doing then select OK to close Second Life and continue.$\nSelect CANCEL to cancel." 43LangString CloseSecondLifeUnInstMB ${LANG_ENGLISH} "Imprudence can't be uninstalled while it is already running.$\n$\nFinish what you're doing then select OK to close Imprudence and continue.$\nSelect CANCEL to cancel."
44 44
45; removecachefiles 45; removecachefiles
46LangString RemoveCacheFilesDP ${LANG_ENGLISH} "Deleting cache files in Documents and Settings folder" 46LangString RemoveCacheFilesDP ${LANG_ENGLISH} "Deleting cache files in Documents and Settings folder"
47 47
48; delete program files 48; delete program files
49LangString DeleteProgramFilesMB ${LANG_ENGLISH} "There are still files in your SecondLife program directory.$\n$\nThese are possibly files you created or moved to:$\n$INSTDIR$\n$\nDo you want to remove them?" 49LangString DeleteProgramFilesMB ${LANG_ENGLISH} "There are still files in your Imprudence program directory.$\n$\nThese are possibly files you created or moved to:$\n$INSTDIR$\n$\nDo you want to remove them?"
50 50
51; uninstall text 51; uninstall text
52LangString UninstallTextMsg ${LANG_ENGLISH} "This will uninstall Second Life ${VERSION_LONG} from your system." 52LangString UninstallTextMsg ${LANG_ENGLISH} "This will uninstall Imprudence ${VERSION_LONG} from your system."
diff --git a/linden/indra/newview/installers/windows/lang_ja.nsi b/linden/indra/newview/installers/windows/lang_ja.nsi
index 5e0496e..f59957a 100644
--- a/linden/indra/newview/installers/windows/lang_ja.nsi
+++ b/linden/indra/newview/installers/windows/lang_ja.nsi
@@ -1,57 +1,57 @@
1; First is default 1; First is default
2LoadLanguageFile "${NSISDIR}\Contrib\Language files\Japanese.nlf" 2LoadLanguageFile "${NSISDIR}\Contrib\Language files\Japanese.nlf"
3 3
4; subtitle on license text caption 4; subtitle on license text caption
5LangString LicenseSubTitleUpdate ${LANG_JAPANESE} " ƒAƒbƒvƒf[ƒg" 5LangString LicenseSubTitleUpdate ${LANG_JAPANESE} " ƒAƒbƒvƒf[ƒg"
6LangString LicenseSubTitleSetup ${LANG_JAPANESE} " ƒZƒbƒgƒAƒbƒv" 6LangString LicenseSubTitleSetup ${LANG_JAPANESE} " ƒZƒbƒgƒAƒbƒv"
7 7
8; description on license page 8; description on license page
9LangString LicenseDescUpdate ${LANG_JAPANESE} "‚±‚̃pƒbƒP[ƒW‚̓ZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒo[ƒWƒ‡ƒ“${VERSION_LONG}.‚ɃAƒbƒvƒf[ƒg‚µ‚Ü‚·B" 9LangString LicenseDescUpdate ${LANG_JAPANESE} "‚±‚̃pƒbƒP[ƒW‚̓ZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒo[ƒWƒ‡ƒ“${VERSION_LONG}.‚ɃAƒbƒvƒf[ƒg‚µ‚Ü‚·B"
10LangString LicenseDescSetup ${LANG_JAPANESE} "‚±‚̃pƒbƒP[ƒW‚Í‚ ‚È‚½‚̃Rƒ“ƒsƒ…[ƒ^‚ɃZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·B" 10LangString LicenseDescSetup ${LANG_JAPANESE} "‚±‚̃pƒbƒP[ƒW‚Í‚ ‚È‚½‚̃Rƒ“ƒsƒ…[ƒ^‚ɃZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·B"
11LangString LicenseDescNext ${LANG_JAPANESE} "ŽŸ" 11LangString LicenseDescNext ${LANG_JAPANESE} "ŽŸ"
12 12
13; installation directory text 13; installation directory text
14LangString DirectoryChooseTitle ${LANG_JAPANESE} "ƒCƒ“ƒXƒg[ƒ‹EƒfƒBƒŒƒNƒgƒŠ" 14LangString DirectoryChooseTitle ${LANG_JAPANESE} "ƒCƒ“ƒXƒg[ƒ‹EƒfƒBƒŒƒNƒgƒŠ"
15LangString DirectoryChooseUpdate ${LANG_JAPANESE} "ƒAƒbƒvƒf[ƒg‚·‚éƒZƒJƒ“ƒhƒ‰ƒCƒt‚̃fƒBƒŒƒNƒgƒŠ‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢B:" 15LangString DirectoryChooseUpdate ${LANG_JAPANESE} "ƒAƒbƒvƒf[ƒg‚·‚éƒZƒJƒ“ƒhƒ‰ƒCƒt‚̃fƒBƒŒƒNƒgƒŠ‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢B:"
16LangString DirectoryChooseSetup ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚éƒfƒBƒŒƒNƒgƒŠ‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢B: " 16LangString DirectoryChooseSetup ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚éƒfƒBƒŒƒNƒgƒŠ‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢B: "
17 17
18; CheckStartupParams message box 18; CheckStartupParams message box
19LangString CheckStartupParamsMB ${LANG_JAPANESE} "ƒvƒƒOƒ‰ƒ€–¼'$INSTPROG'‚ªŒ©‚‚©‚è‚Ü‚¹‚ñBƒTƒCƒŒƒ“ƒgEƒAƒbƒvƒf[ƒg‚ÉŽ¸”s‚µ‚Ü‚µ‚½B" 19LangString CheckStartupParamsMB ${LANG_JAPANESE} "ƒvƒƒOƒ‰ƒ€–¼'$INSTPROG'‚ªŒ©‚‚©‚è‚Ü‚¹‚ñBƒTƒCƒŒƒ“ƒgEƒAƒbƒvƒf[ƒg‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"
20 20
21; installation success dialog 21; installation success dialog
22LangString InstSuccesssQuestion ${LANG_JAPANESE} "’¼‚¿‚ɃZƒJƒ“ƒhƒ‰ƒCƒt‚ðŠJŽn‚µ‚Ü‚·‚©H " 22LangString InstSuccesssQuestion ${LANG_JAPANESE} "’¼‚¿‚ɃZƒJƒ“ƒhƒ‰ƒCƒt‚ðŠJŽn‚µ‚Ü‚·‚©H "
23 23
24; remove old NSIS version 24; remove old NSIS version
25LangString RemoveOldNSISVersion ${LANG_JAPANESE} "ŒÃ‚¢ƒo[ƒWƒ‡ƒ“î•ñ‚ðƒ`ƒFƒbƒN’†‚Å‚·c" 25LangString RemoveOldNSISVersion ${LANG_JAPANESE} "ŒÃ‚¢ƒo[ƒWƒ‡ƒ“î•ñ‚ðƒ`ƒFƒbƒN’†‚Å‚·c"
26 26
27; check windows version 27; check windows version
28LangString CheckWindowsVersionDP ${LANG_JAPANESE} "ƒEƒBƒ“ƒhƒEƒY‚̃o[ƒWƒ‡ƒ“î•ñ‚ðƒ`ƒFƒbƒN’†‚Å‚·..." 28LangString CheckWindowsVersionDP ${LANG_JAPANESE} "ƒEƒBƒ“ƒhƒEƒY‚̃o[ƒWƒ‡ƒ“î•ñ‚ðƒ`ƒFƒbƒN’†‚Å‚·..."
29LangString CheckWindowsVersionMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ÍWindows XPAWindows 2000AMac OS X‚Ì‚Ý‚ðƒTƒ|[ƒg‚µ‚Ä‚¢‚Ü‚·BWindows $R0‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚鎖‚ÍAƒf[ƒ^‚ÌÁŽ¸‚âƒNƒ‰ƒbƒVƒ…‚ÌŒ´ˆö‚É‚È‚é‰Â”\«‚ª‚ ‚è‚Ü‚·BƒCƒ“ƒXƒg[ƒ‹‚𑱂¯‚Ü‚·‚©H" 29LangString CheckWindowsVersionMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ÍWindows XPAWindows 2000AMac OS X‚Ì‚Ý‚ðƒTƒ|[ƒg‚µ‚Ä‚¢‚Ü‚·BWindows $R0‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚鎖‚ÍAƒf[ƒ^‚ÌÁŽ¸‚âƒNƒ‰ƒbƒVƒ…‚ÌŒ´ˆö‚É‚È‚é‰Â”\«‚ª‚ ‚è‚Ü‚·BƒCƒ“ƒXƒg[ƒ‹‚𑱂¯‚Ü‚·‚©H"
30 30
31; checkifadministrator function (install) 31; checkifadministrator function (install)
32LangString CheckAdministratorInstDP ${LANG_JAPANESE} "ƒCƒ“ƒXƒg[ƒ‹‚Ì‚½‚ß‚ÌŒ ŒÀ‚ðƒ`ƒFƒbƒN’†‚Å‚·..." 32LangString CheckAdministratorInstDP ${LANG_JAPANESE} "ƒCƒ“ƒXƒg[ƒ‹‚Ì‚½‚ß‚ÌŒ ŒÀ‚ðƒ`ƒFƒbƒN’†‚Å‚·..."
33LangString CheckAdministratorInstMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚é‚É‚ÍŠÇ—ŽÒŒ ŒÀ‚ª•K—v‚Å‚·B" 33LangString CheckAdministratorInstMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚é‚É‚ÍŠÇ—ŽÒŒ ŒÀ‚ª•K—v‚Å‚·B"
34 34
35; checkifadministrator function (uninstall) 35; checkifadministrator function (uninstall)
36LangString CheckAdministratorUnInstDP ${LANG_JAPANESE} "ƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚Ì‚½‚ß‚ÌŒ ŒÀ‚ðƒ`ƒFƒbƒN’†‚Å‚·..." 36LangString CheckAdministratorUnInstDP ${LANG_JAPANESE} "ƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚Ì‚½‚ß‚ÌŒ ŒÀ‚ðƒ`ƒFƒbƒN’†‚Å‚·..."
37LangString CheckAdministratorUnInstMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚·‚é‚É‚ÍŠÇ—ŽÒŒ ŒÀ‚ª•K—v‚Å‚·B" 37LangString CheckAdministratorUnInstMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚·‚é‚É‚ÍŠÇ—ŽÒŒ ŒÀ‚ª•K—v‚Å‚·B"
38 38
39; checkifalreadycurrent 39; checkifalreadycurrent
40LangString CheckIfCurrentMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt${VERSION_LONG} ‚̓Cƒ“ƒXƒg[ƒ‹Ï‚Ý‚Å‚·BÄ“xƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·‚©H " 40LangString CheckIfCurrentMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt${VERSION_LONG} ‚̓Cƒ“ƒXƒg[ƒ‹Ï‚Ý‚Å‚·BÄ“xƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·‚©H "
41 41
42; closesecondlife function (install) 42; closeimprudence function (install)
43LangString CloseSecondLifeInstDP ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðI—¹’†‚Å‚·..." 43LangString CloseSecondLifeInstDP ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðI—¹’†‚Å‚·..."
44LangString CloseSecondLifeInstMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚Ì‹N“®’†‚ɃCƒ“ƒXƒg[ƒ‹‚Ío—ˆ‚Ü‚¹‚ñB’¼‚¿‚ɃZƒJƒ“ƒhƒ‰ƒCƒt‚ðI—¹‚µ‚ăCƒ“ƒXƒg[ƒ‹‚ðŠJŽn‚·‚éꇂÍOKƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢BCANCEL‚ð‰Ÿ‚·‚Æ’†Ž~‚µ‚Ü‚·B" 44LangString CloseSecondLifeInstMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚Ì‹N“®’†‚ɃCƒ“ƒXƒg[ƒ‹‚Ío—ˆ‚Ü‚¹‚ñB’¼‚¿‚ɃZƒJƒ“ƒhƒ‰ƒCƒt‚ðI—¹‚µ‚ăCƒ“ƒXƒg[ƒ‹‚ðŠJŽn‚·‚éꇂÍOKƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢BCANCEL‚ð‰Ÿ‚·‚Æ’†Ž~‚µ‚Ü‚·B"
45 45
46; closesecondlife function (uninstall) 46; closeimprudence function (uninstall)
47LangString CloseSecondLifeUnInstDP ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðI—¹’†‚Å‚·..." 47LangString CloseSecondLifeUnInstDP ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðI—¹’†‚Å‚·..."
48LangString CloseSecondLifeUnInstMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚Ì‹N“®’†‚ɃAƒ“ƒCƒ“ƒXƒg[ƒ‹‚Ío—ˆ‚Ü‚¹‚ñB’¼‚¿‚ɃZƒJƒ“ƒhƒ‰ƒCƒt‚ðI—¹‚µ‚ăAƒ“ƒCƒ“ƒXƒg[ƒ‹‚ðŠJŽn‚·‚éꇂÍOKƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢BCANCEL‚ð‰Ÿ‚·‚Æ’†Ž~‚µ‚Ü‚·B" 48LangString CloseSecondLifeUnInstMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚Ì‹N“®’†‚ɃAƒ“ƒCƒ“ƒXƒg[ƒ‹‚Ío—ˆ‚Ü‚¹‚ñB’¼‚¿‚ɃZƒJƒ“ƒhƒ‰ƒCƒt‚ðI—¹‚µ‚ăAƒ“ƒCƒ“ƒXƒg[ƒ‹‚ðŠJŽn‚·‚éꇂÍOKƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢BCANCEL‚ð‰Ÿ‚·‚Æ’†Ž~‚µ‚Ü‚·B"
49 49
50; removecachefiles 50; removecachefiles
51LangString RemoveCacheFilesDP ${LANG_JAPANESE} " Documents and Settings ƒtƒHƒ‹ƒ_‚̃LƒƒƒbƒVƒ…ƒtƒ@ƒCƒ‹‚ðƒfƒŠ[ƒg’†‚Å‚·B" 51LangString RemoveCacheFilesDP ${LANG_JAPANESE} " Documents and Settings ƒtƒHƒ‹ƒ_‚̃LƒƒƒbƒVƒ…ƒtƒ@ƒCƒ‹‚ðƒfƒŠ[ƒg’†‚Å‚·B"
52 52
53; delete program files 53; delete program files
54LangString DeleteProgramFilesMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚̃fƒBƒŒƒNƒgƒŠ‚É‚ÍA‚Ü‚¾ƒtƒ@ƒCƒ‹‚ªŽc‚³‚ê‚Ä‚¢‚Ü‚·B$\n$INSTDIR$\n‚É‚ ‚È‚½‚ªì¬A‚Ü‚½‚͈ړ®‚³‚¹‚½ƒtƒ@ƒCƒ‹‚ª‚ ‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B‘S‚Ä휂µ‚Ü‚·‚©H " 54LangString DeleteProgramFilesMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚̃fƒBƒŒƒNƒgƒŠ‚É‚ÍA‚Ü‚¾ƒtƒ@ƒCƒ‹‚ªŽc‚³‚ê‚Ä‚¢‚Ü‚·B$\n$INSTDIR$\n‚É‚ ‚È‚½‚ªì¬A‚Ü‚½‚͈ړ®‚³‚¹‚½ƒtƒ@ƒCƒ‹‚ª‚ ‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B‘S‚Ä휂µ‚Ü‚·‚©H "
55 55
56; uninstall text 56; uninstall text
57LangString UninstallTextMsg ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt${VERSION_LONG}‚ðƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·B" 57LangString UninstallTextMsg ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt${VERSION_LONG}‚ðƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·B"
diff --git a/linden/indra/newview/installers/windows/lang_ko.nsi b/linden/indra/newview/installers/windows/lang_ko.nsi
index b570315..2530e4b 100644
--- a/linden/indra/newview/installers/windows/lang_ko.nsi
+++ b/linden/indra/newview/installers/windows/lang_ko.nsi
@@ -1,57 +1,57 @@
1; First is default 1; First is default
2LoadLanguageFile "${NSISDIR}\Contrib\Language files\Korean.nlf" 2LoadLanguageFile "${NSISDIR}\Contrib\Language files\Korean.nlf"
3 3
4; subtitle on license text caption 4; subtitle on license text caption
5LangString LicenseSubTitleUpdate ${LANG_KOREAN} "¾÷µ¥ÀÌÆ®" 5LangString LicenseSubTitleUpdate ${LANG_KOREAN} "¾÷µ¥ÀÌÆ®"
6LangString LicenseSubTitleSetup ${LANG_KOREAN} " ¼³Ä¡Çϱâ" 6LangString LicenseSubTitleSetup ${LANG_KOREAN} " ¼³Ä¡Çϱâ"
7 7
8; description on license page 8; description on license page
9LangString LicenseDescUpdate ${LANG_KOREAN} "ÀÌ ÆÑÅ°Áö´Â ¼¼ÄÁµå¶óÀÌÇÁ¸¦ ¹öÀü${VERSION_LONG}.À¸·Î ¾÷µ¥ÀÌÆ® ÇÕ´Ï´Ù. " 9LangString LicenseDescUpdate ${LANG_KOREAN} "ÀÌ ÆÑÅ°Áö´Â ¼¼ÄÁµå¶óÀÌÇÁ¸¦ ¹öÀü${VERSION_LONG}.À¸·Î ¾÷µ¥ÀÌÆ® ÇÕ´Ï´Ù. "
10LangString LicenseDescSetup ${LANG_KOREAN} "ÀÌ ÆÑÅ°Áö´Â ¼¼ÄÁµå¶óÀÌÇÁ¸¦ ÄÄÇ»ÅÍ¿¡ ¼³Ä¡ÇÕ´Ï´Ù." 10LangString LicenseDescSetup ${LANG_KOREAN} "ÀÌ ÆÑÅ°Áö´Â ¼¼ÄÁµå¶óÀÌÇÁ¸¦ ÄÄÇ»ÅÍ¿¡ ¼³Ä¡ÇÕ´Ï´Ù."
11LangString LicenseDescNext ${LANG_KOREAN} "´ÙÀ½" 11LangString LicenseDescNext ${LANG_KOREAN} "´ÙÀ½"
12 12
13; installation directory text 13; installation directory text
14LangString DirectoryChooseTitle ${LANG_KOREAN} "¼³Ä¡ µð·ºÅ丮" 14LangString DirectoryChooseTitle ${LANG_KOREAN} "¼³Ä¡ µð·ºÅ丮"
15LangString DirectoryChooseUpdate ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ ¾÷µ¥ÀÌÆ®ÇÒ µð·ºÅ丮¸¦ ¼±ÅÃÇϼ¼¿ä. " 15LangString DirectoryChooseUpdate ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ ¾÷µ¥ÀÌÆ®ÇÒ µð·ºÅ丮¸¦ ¼±ÅÃÇϼ¼¿ä. "
16LangString DirectoryChooseSetup ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ ¼³Ä¡ÇÒ µð·ºÅ丮¸¦ ¼±ÅÃÇϼ¼¿ä:" 16LangString DirectoryChooseSetup ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ ¼³Ä¡ÇÒ µð·ºÅ丮¸¦ ¼±ÅÃÇϼ¼¿ä:"
17 17
18; CheckStartupParams message box 18; CheckStartupParams message box
19LangString CheckStartupParamsMB ${LANG_KOREAN} " ¡®$INSTPROG¡¯ ÇÁ·Î±×·¥À» ãÁö ¸øÇß½À´Ï´Ù. ÀÚµ¿ ¾÷µ¥ÀÌÆ®¿¡ ½ÇÆÐÇß½À´Ï´Ù." 19LangString CheckStartupParamsMB ${LANG_KOREAN} " ¡®$INSTPROG¡¯ ÇÁ·Î±×·¥À» ãÁö ¸øÇß½À´Ï´Ù. ÀÚµ¿ ¾÷µ¥ÀÌÆ®¿¡ ½ÇÆÐÇß½À´Ï´Ù."
20 20
21; installation success dialog 21; installation success dialog
22LangString InstSuccesssQuestion ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ ½ÃÀÛÇÏ°Ú½À´Ï±î?" 22LangString InstSuccesssQuestion ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ ½ÃÀÛÇÏ°Ú½À´Ï±î?"
23 23
24; remove old NSIS version 24; remove old NSIS version
25LangString RemoveOldNSISVersion ${LANG_KOREAN} "ÀÌÀü ¹öÀüÀ» ã°í ÀÖ½À´Ï´Ù¡¦ " 25LangString RemoveOldNSISVersion ${LANG_KOREAN} "ÀÌÀü ¹öÀüÀ» ã°í ÀÖ½À´Ï´Ù¡¦ "
26 26
27; check windows version 27; check windows version
28LangString CheckWindowsVersionDP ${LANG_KOREAN} "À©µµ¿ì ¹öÀüÀ» È®ÀÎÇÏ°í ÀÖ½À´Ï´Ù." 28LangString CheckWindowsVersionDP ${LANG_KOREAN} "À©µµ¿ì ¹öÀüÀ» È®ÀÎÇÏ°í ÀÖ½À´Ï´Ù."
29LangString CheckWindowsVersionMB ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ´Â À©µµ¿ì XP, À©µµ¿ì 2000, ±×¸®°í ¸Æ OS X¸¦ Áö¿øÇÕ´Ï´Ù. À©µµ¿ì $R0¿¡ ¼³Ä¡¸¦ ½ÃµµÇÏ¸é ¿ÀÀÛµ¿°ú µ¥ÀÌÅÍ ºÐ½ÇÀÌ ÀϾ ¼ö ÀÖ½À´Ï´Ù. °è¼Ó ¼³Ä¡ÇÏ°Ú½À´Ï±î? " 29LangString CheckWindowsVersionMB ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ´Â À©µµ¿ì XP, À©µµ¿ì 2000, ±×¸®°í ¸Æ OS X¸¦ Áö¿øÇÕ´Ï´Ù. À©µµ¿ì $R0¿¡ ¼³Ä¡¸¦ ½ÃµµÇÏ¸é ¿ÀÀÛµ¿°ú µ¥ÀÌÅÍ ºÐ½ÇÀÌ ÀϾ ¼ö ÀÖ½À´Ï´Ù. °è¼Ó ¼³Ä¡ÇÏ°Ú½À´Ï±î? "
30 30
31; checkifadministrator function (install) 31; checkifadministrator function (install)
32LangString CheckAdministratorInstDP ${LANG_KOREAN} "¼³Ä¡ ±ÇÇÑÀ» È®ÀÎ ÁßÀÔ´Ï´Ù... " 32LangString CheckAdministratorInstDP ${LANG_KOREAN} "¼³Ä¡ ±ÇÇÑÀ» È®ÀÎ ÁßÀÔ´Ï´Ù... "
33LangString CheckAdministratorInstMB ${LANG_KOREAN} "ÇöÀç ¡®¼Õ´Ô¡¯°èÁ¤À» »ç¿ë ÁßÀÔ´Ï´Ù. ¼¼ÄÁµå¶óÀÌÇÁ¸¦ ¼³Ä¡Çϱâ À§Çؼ± ¡®¿î¿µÀÚ¡± °èÁ¤À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù." 33LangString CheckAdministratorInstMB ${LANG_KOREAN} "ÇöÀç ¡®¼Õ´Ô¡¯°èÁ¤À» »ç¿ë ÁßÀÔ´Ï´Ù. ¼¼ÄÁµå¶óÀÌÇÁ¸¦ ¼³Ä¡Çϱâ À§Çؼ± ¡®¿î¿µÀÚ¡± °èÁ¤À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù."
34 34
35; checkifadministrator function (uninstall) 35; checkifadministrator function (uninstall)
36LangString CheckAdministratorUnInstDP ${LANG_KOREAN} "Á¦°Å ±ÇÇÑÀ» È®ÀÎ ÁßÀÔ´Ï´Ù. " 36LangString CheckAdministratorUnInstDP ${LANG_KOREAN} "Á¦°Å ±ÇÇÑÀ» È®ÀÎ ÁßÀÔ´Ï´Ù. "
37LangString CheckAdministratorUnInstMB ${LANG_KOREAN} " ÇöÀç ¡®¼Õ´Ô¡¯°èÁ¤À» »ç¿ë ÁßÀÔ´Ï´Ù. ¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¦°ÅÇϱâ À§Çؼ± ¡®¿î¿µÀÚ¡± °èÁ¤À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. " 37LangString CheckAdministratorUnInstMB ${LANG_KOREAN} " ÇöÀç ¡®¼Õ´Ô¡¯°èÁ¤À» »ç¿ë ÁßÀÔ´Ï´Ù. ¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¦°ÅÇϱâ À§Çؼ± ¡®¿î¿µÀÚ¡± °èÁ¤À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. "
38 38
39; checkifalreadycurrent 39; checkifalreadycurrent
40LangString CheckIfCurrentMB ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ ¹öÀü ${VERSION_LONG}ÀÌ ÀÌ¹Ì ¼³Ä¡µÇ¾î ÀÖ½À´Ï´Ù. ´Ù½Ã ¼³Ä¡ÇϽðڽÀ´Ï±î? " 40LangString CheckIfCurrentMB ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ ¹öÀü ${VERSION_LONG}ÀÌ ÀÌ¹Ì ¼³Ä¡µÇ¾î ÀÖ½À´Ï´Ù. ´Ù½Ã ¼³Ä¡ÇϽðڽÀ´Ï±î? "
41 41
42; closesecondlife function (install) 42; closeimprudence function (install)
43LangString CloseSecondLifeInstDP ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¾·áÇÒ ¶§ ±îÁö ´ë±â Áß¡¦ " 43LangString CloseSecondLifeInstDP ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¾·áÇÒ ¶§ ±îÁö ´ë±â Áß¡¦ "
44LangString CloseSecondLifeInstMB ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ°¡ ÀÌ¹Ì ÀÛµ¿ ÁßÀÏ °æ¿ì ¼³Ä¡¸¦ °è¼Ó ÇÒ ¼ö ¾ø½À´Ï´Ù. ÇöÀç ÀÛ¾÷À» ¸ØÃß°í ¡®È®ÀΡ¯À» ´­·¯ ¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¾·áÇÑ ´ÙÀ½ ÁøÇàÇϱ⠹ٶø´Ï´Ù. ¼³Ä¡¸¦ Ãë¼ÒÇÏ·Á¸é ¡®Ãë¼Ò¡¯¸¦ ´©¸£¼¼¿ä." 44LangString CloseSecondLifeInstMB ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ°¡ ÀÌ¹Ì ÀÛµ¿ ÁßÀÏ °æ¿ì ¼³Ä¡¸¦ °è¼Ó ÇÒ ¼ö ¾ø½À´Ï´Ù. ÇöÀç ÀÛ¾÷À» ¸ØÃß°í ¡®È®ÀΡ¯À» ´­·¯ ¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¾·áÇÑ ´ÙÀ½ ÁøÇàÇϱ⠹ٶø´Ï´Ù. ¼³Ä¡¸¦ Ãë¼ÒÇÏ·Á¸é ¡®Ãë¼Ò¡¯¸¦ ´©¸£¼¼¿ä."
45 45
46; closesecondlife function (uninstall) 46; closeimprudence function (uninstall)
47LangString CloseSecondLifeUnInstDP ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¾·áÇÒ ¶§ ±îÁö ´ë±â Áß¡¦¡±" 47LangString CloseSecondLifeUnInstDP ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¾·áÇÒ ¶§ ±îÁö ´ë±â Áß¡¦¡±"
48LangString CloseSecondLifeUnInstMB ${LANG_KOREAN} " ¼¼ÄÁµå¶óÀÌÇÁ°¡ ÀÌ¹Ì ÀÛµ¿ ÁßÀÏ °æ¿ì Á¦°Å¸¦ °è¼Ó ÇÒ ¼ö ¾ø½À´Ï´Ù. ÇöÀç ÀÛ¾÷À» ¸ØÃß°í ¡®È®ÀΡ¯À» ´­·¯ ¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¾·áÇÑ ´ÙÀ½ ÁøÇàÇϱ⠹ٶø´Ï´Ù. ¼³Ä¡¸¦ ÃëÇÏ·Á¸é ¡®Ãë¼Ò¡¯¸¦ ´©¸£¼¼¿ä. " 48LangString CloseSecondLifeUnInstMB ${LANG_KOREAN} " ¼¼ÄÁµå¶óÀÌÇÁ°¡ ÀÌ¹Ì ÀÛµ¿ ÁßÀÏ °æ¿ì Á¦°Å¸¦ °è¼Ó ÇÒ ¼ö ¾ø½À´Ï´Ù. ÇöÀç ÀÛ¾÷À» ¸ØÃß°í ¡®È®ÀΡ¯À» ´­·¯ ¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¾·áÇÑ ´ÙÀ½ ÁøÇàÇϱ⠹ٶø´Ï´Ù. ¼³Ä¡¸¦ ÃëÇÏ·Á¸é ¡®Ãë¼Ò¡¯¸¦ ´©¸£¼¼¿ä. "
49 49
50; removecachefiles 50; removecachefiles
51LangString RemoveCacheFilesDP ${LANG_KOREAN} " Documents and Settings Æú´õ ³»ÀÇ Ä³½Ã ÆÄÀϵéÀ» Áö¿ó´Ï´Ù." 51LangString RemoveCacheFilesDP ${LANG_KOREAN} " Documents and Settings Æú´õ ³»ÀÇ Ä³½Ã ÆÄÀϵéÀ» Áö¿ó´Ï´Ù."
52 52
53; delete program files 53; delete program files
54LangString DeleteProgramFilesMB ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ ÇÁ·Î±×·¥ µð·ºÅ丮¿¡ ¾ÆÁ÷ ÆÄÀϵéÀÌ ³²¾Æ ÀÖ½À´Ï´Ù. ÀÌ ÆÄÀϵéÀº »ç¿ëÀÚ°¡ ¸¸µç °ÍµéÀ̰ųª$\n$INSTDIR$\n$\n·Î À̵¿ÇÑ ÆÄÀϵéÀÏ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÆÄÀϵéÀ» Á¦°ÅÇÏ°Ú½À´Ï±î?" 54LangString DeleteProgramFilesMB ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ ÇÁ·Î±×·¥ µð·ºÅ丮¿¡ ¾ÆÁ÷ ÆÄÀϵéÀÌ ³²¾Æ ÀÖ½À´Ï´Ù. ÀÌ ÆÄÀϵéÀº »ç¿ëÀÚ°¡ ¸¸µç °ÍµéÀ̰ųª$\n$INSTDIR$\n$\n·Î À̵¿ÇÑ ÆÄÀϵéÀÏ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÆÄÀϵéÀ» Á¦°ÅÇÏ°Ú½À´Ï±î?"
55 55
56; uninstall text 56; uninstall text
57LangString UninstallTextMsg ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ${VERSION_LONG}À» ½Ã½ºÅÛ¿¡¼­ Á¦°ÅÇÕ´Ï´Ù." 57LangString UninstallTextMsg ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ${VERSION_LONG}À» ½Ã½ºÅÛ¿¡¼­ Á¦°ÅÇÕ´Ï´Ù."
diff --git a/linden/indra/newview/linux_tools/handle_secondlifeprotocol.sh b/linden/indra/newview/linux_tools/handle_secondlifeprotocol.sh
index 7ff86d1..3613070 100755
--- a/linden/indra/newview/linux_tools/handle_secondlifeprotocol.sh
+++ b/linden/indra/newview/linux_tools/handle_secondlifeprotocol.sh
@@ -13,5 +13,5 @@ fi
13RUN_PATH=`dirname "$0" || echo .` 13RUN_PATH=`dirname "$0" || echo .`
14cd "${RUN_PATH}" 14cd "${RUN_PATH}"
15 15
16exec ./secondlife -url \'"${URL}"\' 16exec ./imprudence -url \'"${URL}"\'
17 17
diff --git a/linden/indra/newview/linux_tools/wrapper.sh b/linden/indra/newview/linux_tools/wrapper.sh
index 9d2e06b..e1c68b9 100755
--- a/linden/indra/newview/linux_tools/wrapper.sh
+++ b/linden/indra/newview/linux_tools/wrapper.sh
@@ -103,7 +103,7 @@ if [ -n "$LL_TCMALLOC" ]; then
103fi 103fi
104 104
105export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib:"`pwd`"/app_settings/mozilla-runtime-linux-i686:"${LD_LIBRARY_PATH}"' 105export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib:"`pwd`"/app_settings/mozilla-runtime-linux-i686:"${LD_LIBRARY_PATH}"'
106export SL_CMD='$LL_WRAPPER bin/do-not-directly-run-secondlife-bin' 106export SL_CMD='$LL_WRAPPER bin/do-not-directly-run-imprudence-bin'
107export SL_OPT="`cat gridargs.dat` $@" 107export SL_OPT="`cat gridargs.dat` $@"
108 108
109# Run the program 109# Run the program
@@ -118,9 +118,9 @@ if [ -n "$LL_RUN_ERR" ]; then
118 if [ "`uname -m`" = "x86_64" ]; then 118 if [ "`uname -m`" = "x86_64" ]; then
119 echo 119 echo
120 cat << EOFMARKER 120 cat << EOFMARKER
121You are running the Second Life Viewer on a x86_64 platform. The 121You are running the Imprudence Viewer on a x86_64 platform. The
122most common problems when launching the Viewer (particularly 122most common problems when launching the Viewer (particularly
123'bin/do-not-directly-run-secondlife-bin: not found' and 'error while 123'bin/do-not-directly-run-imprudence-bin: not found' and 'error while
124loading shared libraries') may be solved by installing your Linux 124loading shared libraries') may be solved by installing your Linux
125distribution's 32-bit compatibility packages. 125distribution's 32-bit compatibility packages.
126For example, on Ubuntu and other Debian-based Linuxes you might run: 126For example, on Ubuntu and other Debian-based Linuxes you might run:
@@ -129,11 +129,3 @@ EOFMARKER
129 fi 129 fi
130 fi 130 fi
131fi 131fi
132
133
134echo
135echo '*******************************************************'
136echo 'This is a BETA release of the Second Life linux client.'
137echo 'Thank you for testing!'
138echo 'Please see README-linux.txt before reporting problems.'
139echo
diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp
index f1b2e32..14214b5 100644
--- a/linden/indra/newview/llappviewer.cpp
+++ b/linden/indra/newview/llappviewer.cpp
@@ -293,10 +293,10 @@ BOOL gLogoutInProgress = FALSE;
293// Internal globals... that should be removed. 293// Internal globals... that should be removed.
294static std::string gArgs; 294static std::string gArgs;
295 295
296const std::string MARKER_FILE_NAME("SecondLife.exec_marker"); 296const std::string MARKER_FILE_NAME("Imprudence.exec_marker");
297const std::string ERROR_MARKER_FILE_NAME("SecondLife.error_marker"); 297const std::string ERROR_MARKER_FILE_NAME("Imprudence.error_marker");
298const std::string LLERROR_MARKER_FILE_NAME("SecondLife.llerror_marker"); 298const std::string LLERROR_MARKER_FILE_NAME("Imprudence.llerror_marker");
299const std::string LOGOUT_MARKER_FILE_NAME("SecondLife.logout_marker"); 299const std::string LOGOUT_MARKER_FILE_NAME("Imprudence.logout_marker");
300static BOOL gDoDisconnect = FALSE; 300static BOOL gDoDisconnect = FALSE;
301static std::string gLaunchFileOnQuit; 301static std::string gLaunchFileOnQuit;
302 302
@@ -308,7 +308,7 @@ const char *VFS_INDEX_FILE_BASE = "index.db2.x.";
308static std::string gSecondLife; 308static std::string gSecondLife;
309static std::string gWindowTitle; 309static std::string gWindowTitle;
310#ifdef LL_WINDOWS 310#ifdef LL_WINDOWS
311 static char sWindowClass[] = "Second Life"; 311 static char sWindowClass[] = "Imprudence";
312#endif 312#endif
313 313
314std::string gLoginPage; 314std::string gLoginPage;
@@ -580,7 +580,7 @@ bool LLAppViewer::init()
580 580
581 // Need to do this initialization before we do anything else, since anything 581 // Need to do this initialization before we do anything else, since anything
582 // that touches files should really go through the lldir API 582 // that touches files should really go through the lldir API
583 gDirUtilp->initAppDirs("SecondLife"); 583 gDirUtilp->initAppDirs(IMP_VIEWER_NAME);
584 // set skin search path to default, will be overridden later 584 // set skin search path to default, will be overridden later
585 // this allows simple skinned file lookups to work 585 // this allows simple skinned file lookups to work
586 gDirUtilp->setSkinFolder("default"); 586 gDirUtilp->setSkinFolder("default");
@@ -602,8 +602,13 @@ bool LLAppViewer::init()
602 writeSystemInfo(); 602 writeSystemInfo();
603 603
604 // Build a string representing the current version number. 604 // Build a string representing the current version number.
605 gCurrentVersion = llformat("%s %d.%d.%d.%d", 605 gCurrentVersion = llformat("%s %d.%d.%d %s / %s %d.%d.%d.%d",
606 gSavedSettings.getString("VersionChannelName").c_str(), 606 gSavedSettings.getString("VersionChannelName").c_str(),
607 IMP_VERSION_MAJOR,
608 IMP_VERSION_MINOR,
609 IMP_VERSION_PATCH,
610 IMP_VERSION_TEST,
611 LL_VIEWER_NAME,
607 LL_VERSION_MAJOR, 612 LL_VERSION_MAJOR,
608 LL_VERSION_MINOR, 613 LL_VERSION_MINOR,
609 LL_VERSION_PATCH, 614 LL_VERSION_PATCH,
@@ -1470,15 +1475,15 @@ bool LLAppViewer::initLogging()
1470 1475
1471 // Remove the last ".old" log file. 1476 // Remove the last ".old" log file.
1472 std::string old_log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, 1477 std::string old_log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,
1473 "SecondLife.old"); 1478 "Imprudence.old");
1474 LLFile::remove(old_log_file); 1479 LLFile::remove(old_log_file);
1475 1480
1476 // Rename current log file to ".old" 1481 // Rename current log file to ".old"
1477 std::string log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, 1482 std::string log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,
1478 "SecondLife.log"); 1483 "Imprudence.log");
1479 LLFile::rename(log_file, old_log_file); 1484 LLFile::rename(log_file, old_log_file);
1480 1485
1481 // Set the log file to SecondLife.log 1486 // Set the log file to Imprudence.log
1482 1487
1483 LLError::logToFile(log_file); 1488 LLError::logToFile(log_file);
1484 1489
@@ -1598,12 +1603,7 @@ bool LLAppViewer::initConfiguration()
1598 gSavedSettings.setString("ClientSettingsFile", 1603 gSavedSettings.setString("ClientSettingsFile",
1599 gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, getSettingsFileName("Global"))); 1604 gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, getSettingsFileName("Global")));
1600 1605
1601 gSavedSettings.setString("VersionChannelName", LL_CHANNEL); 1606 gSavedSettings.setString("VersionChannelName", IMP_VIEWER_NAME);
1602
1603#ifndef LL_RELEASE_FOR_DOWNLOAD
1604 gSavedSettings.setBOOL("ShowConsoleWindow", TRUE);
1605 gSavedSettings.setBOOL("AllowMultipleViewers", TRUE);
1606#endif
1607 1607
1608#if !LL_DYNAMIC_FONT_DISCOVERY 1608#if !LL_DYNAMIC_FONT_DISCOVERY
1609 // static font discovery - user settings can override. 1609 // static font discovery - user settings can override.
@@ -1683,7 +1683,7 @@ bool LLAppViewer::initConfiguration()
1683 llinfos << "Command line usage:\n" << clp << llendl; 1683 llinfos << "Command line usage:\n" << clp << llendl;
1684 1684
1685 std::ostringstream msg; 1685 std::ostringstream msg;
1686 msg << "Second Life found an error parsing the command line. \n" 1686 msg << gSecondLife << " found an error parsing the command line. \n"
1687 << "Please see: http://wiki.secondlife.com/wiki/Client_parameters \n" 1687 << "Please see: http://wiki.secondlife.com/wiki/Client_parameters \n"
1688 << "Error: " << clp.getErrorMessage(); 1688 << "Error: " << clp.getErrorMessage();
1689 1689
@@ -1865,7 +1865,7 @@ bool LLAppViewer::initConfiguration()
1865 mYieldTime = gSavedSettings.getS32("YieldTime"); 1865 mYieldTime = gSavedSettings.getS32("YieldTime");
1866 1866
1867 // XUI:translate 1867 // XUI:translate
1868 gSecondLife = "Second Life"; 1868 gSecondLife = IMP_VIEWER_NAME;
1869 1869
1870 // Read skin/branding settings if specified. 1870 // Read skin/branding settings if specified.
1871 //if (! gDirUtilp->getSkinDir().empty() ) 1871 //if (! gDirUtilp->getSkinDir().empty() )
@@ -2111,7 +2111,7 @@ bool LLAppViewer::initWindow()
2111 2111
2112 // always start windowed 2112 // always start windowed
2113 BOOL ignorePixelDepth = gSavedSettings.getBOOL("IgnorePixelDepth"); 2113 BOOL ignorePixelDepth = gSavedSettings.getBOOL("IgnorePixelDepth");
2114 gViewerWindow = new LLViewerWindow(gWindowTitle, "Second Life", 2114 gViewerWindow = new LLViewerWindow(gWindowTitle, gWindowTitle,
2115 gSavedSettings.getS32("WindowX"), gSavedSettings.getS32("WindowY"), 2115 gSavedSettings.getS32("WindowX"), gSavedSettings.getS32("WindowY"),
2116 gSavedSettings.getS32("WindowWidth"), gSavedSettings.getS32("WindowHeight"), 2116 gSavedSettings.getS32("WindowWidth"), gSavedSettings.getS32("WindowHeight"),
2117 FALSE, ignorePixelDepth); 2117 FALSE, ignorePixelDepth);
@@ -2245,6 +2245,10 @@ void LLAppViewer::writeSystemInfo()
2245 gDebugInfo["SLLog"] = LLError::logFileName(); 2245 gDebugInfo["SLLog"] = LLError::logFileName();
2246 2246
2247 gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName"); 2247 gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName");
2248 gDebugInfo["ClientInfo"]["ImpMajorVersion"] = IMP_VERSION_MAJOR;
2249 gDebugInfo["ClientInfo"]["ImpMinorVersion"] = IMP_VERSION_MINOR;
2250 gDebugInfo["ClientInfo"]["ImpPatchVersion"] = IMP_VERSION_PATCH;
2251 gDebugInfo["ClientInfo"]["ImpTestVersion"] = IMP_VERSION_TEST;
2248 gDebugInfo["ClientInfo"]["MajorVersion"] = LL_VERSION_MAJOR; 2252 gDebugInfo["ClientInfo"]["MajorVersion"] = LL_VERSION_MAJOR;
2249 gDebugInfo["ClientInfo"]["MinorVersion"] = LL_VERSION_MINOR; 2253 gDebugInfo["ClientInfo"]["MinorVersion"] = LL_VERSION_MINOR;
2250 gDebugInfo["ClientInfo"]["PatchVersion"] = LL_VERSION_PATCH; 2254 gDebugInfo["ClientInfo"]["PatchVersion"] = LL_VERSION_PATCH;
@@ -2274,9 +2278,7 @@ void LLAppViewer::writeSystemInfo()
2274#endif 2278#endif
2275 2279
2276 // Dump some debugging info 2280 // Dump some debugging info
2277 LL_INFOS("SystemInfo") << gSecondLife 2281 LL_INFOS("SystemInfo") << gCurrentVersion << LL_ENDL;
2278 << " version " << LL_VERSION_MAJOR << "." << LL_VERSION_MINOR << "." << LL_VERSION_PATCH
2279 << LL_ENDL;
2280 2282
2281 // Dump the local time and time zone 2283 // Dump the local time and time zone
2282 time_t now; 2284 time_t now;
@@ -2327,6 +2329,10 @@ void LLAppViewer::handleViewerCrash()
2327 //to check against no matter what 2329 //to check against no matter what
2328 gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName"); 2330 gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName");
2329 2331
2332 gDebugInfo["ClientInfo"]["ImpMajorVersion"] = IMP_VERSION_MAJOR;
2333 gDebugInfo["ClientInfo"]["ImpMinorVersion"] = IMP_VERSION_MINOR;
2334 gDebugInfo["ClientInfo"]["ImpPatchVersion"] = IMP_VERSION_PATCH;
2335 gDebugInfo["ClientInfo"]["ImpTestVersion"] = IMP_VERSION_TEST;
2330 gDebugInfo["ClientInfo"]["MajorVersion"] = LL_VERSION_MAJOR; 2336 gDebugInfo["ClientInfo"]["MajorVersion"] = LL_VERSION_MAJOR;
2331 gDebugInfo["ClientInfo"]["MinorVersion"] = LL_VERSION_MINOR; 2337 gDebugInfo["ClientInfo"]["MinorVersion"] = LL_VERSION_MINOR;
2332 gDebugInfo["ClientInfo"]["PatchVersion"] = LL_VERSION_PATCH; 2338 gDebugInfo["ClientInfo"]["PatchVersion"] = LL_VERSION_PATCH;
@@ -2680,7 +2686,7 @@ bool LLAppViewer::initCache()
2680 std::string cache_dir = gDirUtilp->getOSUserAppDir(); 2686 std::string cache_dir = gDirUtilp->getOSUserAppDir();
2681 std::string new_cache_dir = gDirUtilp->getOSCacheDir(); 2687 std::string new_cache_dir = gDirUtilp->getOSCacheDir();
2682 cache_dir = cache_dir + "/cache"; 2688 cache_dir = cache_dir + "/cache";
2683 new_cache_dir = new_cache_dir + "/SecondLife"; 2689 new_cache_dir = new_cache_dir + "/" + gSecondLife;
2684 if (gDirUtilp->fileExists(cache_dir)) 2690 if (gDirUtilp->fileExists(cache_dir))
2685 { 2691 {
2686 gDirUtilp->setCacheDir(cache_dir); 2692 gDirUtilp->setCacheDir(cache_dir);
@@ -2973,7 +2979,7 @@ void LLAppViewer::badNetworkHandler()
2973 message << 2979 message <<
2974 "The viewer has detected mangled network data indicative\n" 2980 "The viewer has detected mangled network data indicative\n"
2975 "of a bad upstream network connection or an incomplete\n" 2981 "of a bad upstream network connection or an incomplete\n"
2976 "local installation of " << LLAppViewer::instance()->getSecondLifeTitle() << ". \n" 2982 "local installation of " << gSecondLife << ". \n"
2977 " \n" 2983 " \n"
2978 "Try uninstalling and reinstalling to see if this resolves \n" 2984 "Try uninstalling and reinstalling to see if this resolves \n"
2979 "the issue. \n" 2985 "the issue. \n"
diff --git a/linden/indra/newview/llcolorscheme.cpp b/linden/indra/newview/llcolorscheme.cpp
index ef8b4a8..460f1a2 100644
--- a/linden/indra/newview/llcolorscheme.cpp
+++ b/linden/indra/newview/llcolorscheme.cpp
@@ -37,8 +37,6 @@
37 37
38LLColor4 gTrackColor; 38LLColor4 gTrackColor;
39LLColor4 gSelfMapColor; 39LLColor4 gSelfMapColor;
40LLColor4 gAvatarMapColor;
41LLColor4 gFriendMapColor;
42LLColor4 gLandmarkMapColor; 40LLColor4 gLandmarkMapColor;
43LLColor4 gLocationMapColor; 41LLColor4 gLocationMapColor;
44LLColor4 gTelehubMapColor; 42LLColor4 gTelehubMapColor;
@@ -56,8 +54,7 @@ void init_colors()
56 gDisabledTrackColor.setVec( 0.5f, 0.f, 0.f, 1.f ); 54 gDisabledTrackColor.setVec( 0.5f, 0.f, 0.f, 1.f );
57 55
58 gSelfMapColor = LLColor4::white; 56 gSelfMapColor = LLColor4::white;
59 gAvatarMapColor = LLColor4::green; 57
60 gFriendMapColor = LLColor4::yellow;
61 // fleshy color 58 // fleshy color
62 //gAvatarMapColor.setVec( 255.f/255.f, 223.f/255.f, 170.f/255.f, 1.f); 59 //gAvatarMapColor.setVec( 255.f/255.f, 223.f/255.f, 170.f/255.f, 1.f);
63 60
diff --git a/linden/indra/newview/llcolorscheme.h b/linden/indra/newview/llcolorscheme.h
index e772b11..bf1e053 100644
--- a/linden/indra/newview/llcolorscheme.h
+++ b/linden/indra/newview/llcolorscheme.h
@@ -36,8 +36,6 @@
36 36
37extern LLColor4 gTrackColor; 37extern LLColor4 gTrackColor;
38extern LLColor4 gSelfMapColor; 38extern LLColor4 gSelfMapColor;
39extern LLColor4 gAvatarMapColor;
40extern LLColor4 gFriendMapColor;
41extern LLColor4 gLandmarkMapColor; 39extern LLColor4 gLandmarkMapColor;
42extern LLColor4 gLocationMapColor; 40extern LLColor4 gLocationMapColor;
43extern LLColor4 gTelehubMapColor; 41extern LLColor4 gTelehubMapColor;
diff --git a/linden/indra/newview/lldrawable.cpp b/linden/indra/newview/lldrawable.cpp
index 0f89585..5e4aafc 100644
--- a/linden/indra/newview/lldrawable.cpp
+++ b/linden/indra/newview/lldrawable.cpp
@@ -951,6 +951,9 @@ BOOL LLDrawable::isVisible() const
951 return TRUE; 951 return TRUE;
952 } 952 }
953 953
954#if 0
955 //disabling this code fixes DEV-20105. Leaving in place in case some other bug pops up as a a result.
956 //should be safe to just always ask the spatial group for visibility.
954 if (isActive()) 957 if (isActive())
955 { 958 {
956 if (isRoot()) 959 if (isRoot())
@@ -973,6 +976,7 @@ BOOL LLDrawable::isVisible() const
973 } 976 }
974 } 977 }
975 else 978 else
979#endif
976 { 980 {
977 LLSpatialGroup* group = getSpatialGroup(); 981 LLSpatialGroup* group = getSpatialGroup();
978 if (group && group->isVisible()) 982 if (group && group->isVisible())
diff --git a/linden/indra/newview/lldrawpoolbump.cpp b/linden/indra/newview/lldrawpoolbump.cpp
index 0dd11d6..73d88f7 100644
--- a/linden/indra/newview/lldrawpoolbump.cpp
+++ b/linden/indra/newview/lldrawpoolbump.cpp
@@ -139,7 +139,7 @@ void LLStandardBumpmap::restoreGL()
139 return; 139 return;
140 } 140 }
141 141
142// llinfos << "Loading bumpmap: " << bump_file << " from viewerart" << llendl; 142 llinfos << "Loading bumpmap: " << bump_file << " from viewerart" << llendl;
143 gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mLabel = label; 143 gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mLabel = label;
144 gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage = 144 gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage =
145 gImageList.getImageFromFile(bump_file, 145 gImageList.getImageFromFile(bump_file,
diff --git a/linden/indra/newview/llfloaterabout.cpp b/linden/indra/newview/llfloaterabout.cpp
index 76586ed..af436c5 100644
--- a/linden/indra/newview/llfloaterabout.cpp
+++ b/linden/indra/newview/llfloaterabout.cpp
@@ -109,11 +109,14 @@ LLFloaterAbout::LLFloaterAbout()
109 viewer_link_style->setColor(gSavedSettings.getColor4("HTMLLinkColor")); 109 viewer_link_style->setColor(gSavedSettings.getColor4("HTMLLinkColor"));
110 110
111 // Version string 111 // Version string
112 std::string version = LLAppViewer::instance()->getSecondLifeTitle() 112 std::string version = llformat(
113 + llformat(" %d.%d.%d (%d) %s %s (%s)\n", 113 "%s %d.%d.%d %s / %s %d.%d.%d (%d), %s %s\n",
114 LL_VERSION_MAJOR, LL_VERSION_MINOR, LL_VERSION_PATCH, LL_VIEWER_BUILD, 114 IMP_VIEWER_NAME,
115 __DATE__, __TIME__, 115 IMP_VERSION_MAJOR, IMP_VERSION_MINOR, IMP_VERSION_PATCH, IMP_VERSION_TEST,
116 gSavedSettings.getString("VersionChannelName").c_str()); 116 LL_VIEWER_NAME,
117 LL_VERSION_MAJOR, LL_VERSION_MINOR, LL_VERSION_PATCH, LL_VIEWER_BUILD,
118 __DATE__, __TIME__);
119
117 support_widget->appendColoredText(version, FALSE, FALSE, gColors.getColor("TextFgReadOnlyColor")); 120 support_widget->appendColoredText(version, FALSE, FALSE, gColors.getColor("TextFgReadOnlyColor"));
118 support_widget->appendStyledText(LLTrans::getString("ReleaseNotes"), FALSE, FALSE, &viewer_link_style); 121 support_widget->appendStyledText(LLTrans::getString("ReleaseNotes"), FALSE, FALSE, &viewer_link_style);
119 122
@@ -259,17 +262,16 @@ void LLFloaterAbout::show(void*)
259static std::string get_viewer_release_notes_url() 262static std::string get_viewer_release_notes_url()
260{ 263{
261 std::ostringstream version; 264 std::ostringstream version;
262 version << LL_VERSION_MAJOR << "." 265 version << IMP_VERSION_MAJOR << "."
263 << LL_VERSION_MINOR << "." 266 << IMP_VERSION_MINOR << "."
264 << LL_VERSION_PATCH << "." 267 << IMP_VERSION_PATCH;
265 << LL_VERSION_BUILD;
266 268
267 LLSD query; 269 // Append the test version if it's not empty
268 query["channel"] = gSavedSettings.getString("VersionChannelName"); 270 if( strcmp(IMP_VERSION_TEST, "") != 0 )
269 query["version"] = version.str(); 271 version << "-" << IMP_VERSION_TEST;
270 272
271 std::ostringstream url; 273 std::ostringstream url;
272 url << RELEASE_NOTES_BASE_URL << LLURI::mapToQueryString(query); 274 url << RELEASE_NOTES_BASE_URL << version.str();
273 275
274 return url.str(); 276 return url.str();
275} 277}
diff --git a/linden/indra/newview/llfloateractivespeakers.cpp b/linden/indra/newview/llfloateractivespeakers.cpp
index 2352be3..4561110 100644
--- a/linden/indra/newview/llfloateractivespeakers.cpp
+++ b/linden/indra/newview/llfloateractivespeakers.cpp
@@ -1363,7 +1363,7 @@ void LLLocalSpeakerMgr::updateSpeakerList()
1363 for(avatar_it = LLCharacter::sInstances.begin(); avatar_it != LLCharacter::sInstances.end(); ++avatar_it) 1363 for(avatar_it = LLCharacter::sInstances.begin(); avatar_it != LLCharacter::sInstances.end(); ++avatar_it)
1364 { 1364 {
1365 LLVOAvatar* avatarp = (LLVOAvatar*)*avatar_it; 1365 LLVOAvatar* avatarp = (LLVOAvatar*)*avatar_it;
1366 if (dist_vec(avatarp->getPositionAgent(), gAgent.getPositionAgent()) <= CHAT_NORMAL_RADIUS) 1366 if (!avatarp->isDead() && dist_vec(avatarp->getPositionAgent(), gAgent.getPositionAgent()) <= CHAT_NORMAL_RADIUS)
1367 { 1367 {
1368 setSpeaker(avatarp->getID()); 1368 setSpeaker(avatarp->getID());
1369 } 1369 }
@@ -1377,7 +1377,7 @@ void LLLocalSpeakerMgr::updateSpeakerList()
1377 if (speakerp->mStatus == LLSpeaker::STATUS_TEXT_ONLY) 1377 if (speakerp->mStatus == LLSpeaker::STATUS_TEXT_ONLY)
1378 { 1378 {
1379 LLVOAvatar* avatarp = (LLVOAvatar*)gObjectList.findObject(speaker_id); 1379 LLVOAvatar* avatarp = (LLVOAvatar*)gObjectList.findObject(speaker_id);
1380 if (!avatarp || dist_vec(avatarp->getPositionAgent(), gAgent.getPositionAgent()) > CHAT_NORMAL_RADIUS) 1380 if (!avatarp || avatarp->isDead() || dist_vec(avatarp->getPositionAgent(), gAgent.getPositionAgent()) > CHAT_NORMAL_RADIUS)
1381 { 1381 {
1382 speakerp->mStatus = LLSpeaker::STATUS_NOT_IN_CHANNEL; 1382 speakerp->mStatus = LLSpeaker::STATUS_NOT_IN_CHANNEL;
1383 speakerp->mDotColor = INACTIVE_COLOR; 1383 speakerp->mDotColor = INACTIVE_COLOR;
diff --git a/linden/indra/newview/llfloaterdirectory.cpp b/linden/indra/newview/llfloaterdirectory.cpp
index 305a029..9a0c2fc 100644
--- a/linden/indra/newview/llfloaterdirectory.cpp
+++ b/linden/indra/newview/llfloaterdirectory.cpp
@@ -383,10 +383,6 @@ void LLFloaterDirectory::showPanel(const std::string& tabname)
383// static 383// static
384void LLFloaterDirectory::toggleFind(void*) 384void LLFloaterDirectory::toggleFind(void*)
385{ 385{
386#ifndef LL_RELEASE_FOR_DOWNLOAD
387 delete sInstance;
388 sInstance = NULL;
389#endif
390 if (!sInstance) 386 if (!sInstance)
391 { 387 {
392 std::string panel = gSavedSettings.getString("LastFindPanel"); 388 std::string panel = gSavedSettings.getString("LastFindPanel");
diff --git a/linden/indra/newview/llfloatergroupinvite.cpp b/linden/indra/newview/llfloatergroupinvite.cpp
index 643abf7..1644050 100644
--- a/linden/indra/newview/llfloatergroupinvite.cpp
+++ b/linden/indra/newview/llfloatergroupinvite.cpp
@@ -34,7 +34,7 @@
34#include "llfloatergroupinvite.h" 34#include "llfloatergroupinvite.h"
35#include "llpanelgroupinvite.h" 35#include "llpanelgroupinvite.h"
36 36
37const char FLOATER_TITLE[] = "Group Invitation"; 37const char FLOATER_TITLE[] = "Invite to ";
38const LLRect FGI_RECT(0, 380, 210, 0); 38const LLRect FGI_RECT(0, 380, 210, 0);
39 39
40class LLFloaterGroupInvite::impl 40class LLFloaterGroupInvite::impl
@@ -132,6 +132,11 @@ void LLFloaterGroupInvite::showForGroup(const LLUUID& group_id, std::vector<LLUU
132 group_id); 132 group_id);
133 133
134 impl::sInstances[group_id] = fgi; 134 impl::sInstances[group_id] = fgi;
135
136 // Look up the group name.
137 // The callback will insert it into the title.
138 const BOOL is_group = TRUE;
139 gCacheName->get(group_id, is_group, callbackLoadGroupName, NULL);
135 140
136 fgi->mImpl->mInvitePanelp->clear(); 141 fgi->mImpl->mInvitePanelp->clear();
137 } 142 }
@@ -145,3 +150,16 @@ void LLFloaterGroupInvite::showForGroup(const LLUUID& group_id, std::vector<LLUU
145 fgi->open(); /*Flawfinder: ignore*/ 150 fgi->open(); /*Flawfinder: ignore*/
146 fgi->mImpl->mInvitePanelp->update(); 151 fgi->mImpl->mInvitePanelp->update();
147} 152}
153
154void LLFloaterGroupInvite::callbackLoadGroupName(const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group, void* data)
155{
156 LLFloaterGroupInvite *fgi = get_if_there(impl::sInstances, id, (LLFloaterGroupInvite*)NULL);
157
158 if (fgi)
159 {
160 // Build a new title including the group name.
161 std::ostringstream title;
162 title << FLOATER_TITLE << first;
163 fgi->setTitle(title.str());
164 }
165}
diff --git a/linden/indra/newview/llfloatergroupinvite.h b/linden/indra/newview/llfloatergroupinvite.h
index 621b5dd..96b9161 100644
--- a/linden/indra/newview/llfloatergroupinvite.h
+++ b/linden/indra/newview/llfloatergroupinvite.h
@@ -52,6 +52,12 @@ protected:
52 52
53 class impl; 53 class impl;
54 impl* mImpl; 54 impl* mImpl;
55private:
56 static void callbackLoadGroupName(const LLUUID& id,
57 const std::string& first,
58 const std::string& last,
59 BOOL is_group,
60 void* data);
55}; 61};
56 62
57#endif 63#endif
diff --git a/linden/indra/newview/llfloaterhtmlhelp.cpp b/linden/indra/newview/llfloaterhtmlhelp.cpp
index d6d249e..7fe4d59 100644
--- a/linden/indra/newview/llfloaterhtmlhelp.cpp
+++ b/linden/indra/newview/llfloaterhtmlhelp.cpp
@@ -58,7 +58,9 @@ LLFloaterMediaBrowser::LLFloaterMediaBrowser(const LLSD& media_data)
58 58
59void LLFloaterMediaBrowser::draw() 59void LLFloaterMediaBrowser::draw()
60{ 60{
61 childSetEnabled("go", !mAddressCombo->getValue().asString().empty()); 61 BOOL url_exists = !mAddressCombo->getValue().asString().empty();
62 childSetEnabled("go", url_exists);
63 childSetEnabled("set_home", url_exists);
62 LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); 64 LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
63 if(parcel) 65 if(parcel)
64 { 66 {
@@ -84,6 +86,8 @@ BOOL LLFloaterMediaBrowser::postBuild()
84 childSetAction("close", onClickClose, this); 86 childSetAction("close", onClickClose, this);
85 childSetAction("open_browser", onClickOpenWebBrowser, this); 87 childSetAction("open_browser", onClickOpenWebBrowser, this);
86 childSetAction("assign", onClickAssign, this); 88 childSetAction("assign", onClickAssign, this);
89 childSetAction("home", onClickHome, this);
90 childSetAction("set_home", onClickSetHome, this);
87 91
88 buildURLHistory(); 92 buildURLHistory();
89 return TRUE; 93 return TRUE;
@@ -146,6 +150,7 @@ void LLFloaterMediaBrowser::onLocationChange( const EventType& eventIn )
146 childSetEnabled("back", mBrowser->canNavigateBack()); 150 childSetEnabled("back", mBrowser->canNavigateBack());
147 childSetEnabled("forward", mBrowser->canNavigateForward()); 151 childSetEnabled("forward", mBrowser->canNavigateForward());
148 childSetEnabled("reload", TRUE); 152 childSetEnabled("reload", TRUE);
153 gSavedSettings.setString("BrowserLastVisited", truncated_url);
149} 154}
150 155
151LLFloaterMediaBrowser* LLFloaterMediaBrowser::showInstance(const LLSD& media_url) 156LLFloaterMediaBrowser* LLFloaterMediaBrowser::showInstance(const LLSD& media_url)
@@ -156,6 +161,14 @@ LLFloaterMediaBrowser* LLFloaterMediaBrowser::showInstance(const LLSD& media_url
156 return floaterp; 161 return floaterp;
157} 162}
158 163
164void LLFloaterMediaBrowser::show()
165{
166 //Show home url if new session, last visited if not
167 std::string last_url = gSavedSettings.getString("BrowserLastVisited");
168 if(last_url.empty())
169 last_url = gSavedSettings.getString("BrowserHome");
170 showInstance(last_url);
171}
159//static 172//static
160void LLFloaterMediaBrowser::onEnterAddress(LLUICtrl* ctrl, void* user_data) 173void LLFloaterMediaBrowser::onEnterAddress(LLUICtrl* ctrl, void* user_data)
161{ 174{
@@ -238,6 +251,29 @@ void LLFloaterMediaBrowser::onClickAssign(void* user_data)
238 251
239} 252}
240 253
254void LLFloaterMediaBrowser::onClickHome(void* user_data)
255{
256 LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data;
257 if (self)
258 {
259 if (self->mBrowser)
260 {
261 std::string home_url = gSavedSettings.getString("BrowserHome");
262 self->mBrowser->navigateTo(home_url);
263 }
264 }
265}
266
267void LLFloaterMediaBrowser::onClickSetHome(void* user_data)
268{
269 LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data;
270 std::string url = self->mCurrentURL;
271 if(!url.empty())
272 {
273 gSavedSettings.setString("BrowserHome", url);
274 }
275}
276
241void LLFloaterMediaBrowser::openMedia(const std::string& media_url) 277void LLFloaterMediaBrowser::openMedia(const std::string& media_url)
242{ 278{
243 mBrowser->setHomePageUrl(media_url); 279 mBrowser->setHomePageUrl(media_url);
diff --git a/linden/indra/newview/llfloaterhtmlhelp.h b/linden/indra/newview/llfloaterhtmlhelp.h
index 7257566..d726b77 100644
--- a/linden/indra/newview/llfloaterhtmlhelp.h
+++ b/linden/indra/newview/llfloaterhtmlhelp.h
@@ -65,6 +65,7 @@ public:
65 void buildURLHistory(); 65 void buildURLHistory();
66 66
67 static LLFloaterMediaBrowser* showInstance(const LLSD& id); 67 static LLFloaterMediaBrowser* showInstance(const LLSD& id);
68 static void show();
68 static void onEnterAddress(LLUICtrl* ctrl, void* user_data); 69 static void onEnterAddress(LLUICtrl* ctrl, void* user_data);
69 static void onClickRefresh(void* user_data); 70 static void onClickRefresh(void* user_data);
70 static void onClickBack(void* user_data); 71 static void onClickBack(void* user_data);
@@ -73,6 +74,8 @@ public:
73 static void onClickClose(void* user_data); 74 static void onClickClose(void* user_data);
74 static void onClickOpenWebBrowser(void* user_data); 75 static void onClickOpenWebBrowser(void* user_data);
75 static void onClickAssign(void* user_data); 76 static void onClickAssign(void* user_data);
77 static void onClickHome(void* user_data);
78 static void onClickSetHome(void* user_data);
76 79
77private: 80private:
78 LLWebBrowserCtrl* mBrowser; 81 LLWebBrowserCtrl* mBrowser;
diff --git a/linden/indra/newview/llfloaterinspect.cpp b/linden/indra/newview/llfloaterinspect.cpp
index d308210..8a665b5 100644
--- a/linden/indra/newview/llfloaterinspect.cpp
+++ b/linden/indra/newview/llfloaterinspect.cpp
@@ -206,8 +206,9 @@ void LLFloaterInspect::refresh()
206 mObjectList->operateOnAll(LLScrollListCtrl::OP_DELETE); 206 mObjectList->operateOnAll(LLScrollListCtrl::OP_DELETE);
207 //List all transient objects, then all linked objects 207 //List all transient objects, then all linked objects
208 208
209 for (LLObjectSelection::iterator iter = mObjectSelection->begin(); 209 //Crash fix for VWR-10823
210 iter != mObjectSelection->end(); iter++) 210 for (LLObjectSelection::valid_iterator iter = mObjectSelection->valid_begin();
211 iter != mObjectSelection->valid_end(); iter++)
211 { 212 {
212 LLSelectNode* obj = *iter; 213 LLSelectNode* obj = *iter;
213 LLSD row; 214 LLSD row;
diff --git a/linden/indra/newview/llnetmap.cpp b/linden/indra/newview/llnetmap.cpp
index b277998..22dee9d 100644
--- a/linden/indra/newview/llnetmap.cpp
+++ b/linden/indra/newview/llnetmap.cpp
@@ -69,7 +69,7 @@
69 69
70#include "llglheaders.h" 70#include "llglheaders.h"
71 71
72const F32 MAP_SCALE_MIN = 64; 72const F32 MAP_SCALE_MIN = 32;
73const F32 MAP_SCALE_MID = 172; 73const F32 MAP_SCALE_MID = 172;
74const F32 MAP_SCALE_MAX = 512; 74const F32 MAP_SCALE_MAX = 512;
75const F32 MAP_SCALE_INCREMENT = 16; 75const F32 MAP_SCALE_INCREMENT = 16;
@@ -97,6 +97,9 @@ LLNetMap::LLNetMap(
97 mPixelsPerMeter = gMiniMapScale / REGION_WIDTH_METERS; 97 mPixelsPerMeter = gMiniMapScale / REGION_WIDTH_METERS;
98 98
99 LLNetMap::sRotateMap = gSavedSettings.getBOOL( "MiniMapRotate" ); 99 LLNetMap::sRotateMap = gSavedSettings.getBOOL( "MiniMapRotate" );
100
101 glyph_color_avatar = gColors.getColor("NetMapGlyphColorAvatar");
102 glyph_color_friend = gColors.getColor("NetMapGlyphColorFriend");
100 103
101 // Surface texture is dynamically generated/updated. 104 // Surface texture is dynamically generated/updated.
102// createObjectImage(); 105// createObjectImage();
@@ -411,7 +414,7 @@ void LLNetMap::draw()
411 } 414 }
412 LLWorldMapView::drawAvatar( 415 LLWorldMapView::drawAvatar(
413 pos_map.mV[VX], pos_map.mV[VY], 416 pos_map.mV[VX], pos_map.mV[VY],
414 show_as_friend ? gFriendMapColor : gAvatarMapColor, 417 show_as_friend ? glyph_color_friend : glyph_color_avatar,
415 pos_map.mV[VZ]); 418 pos_map.mV[VZ]);
416 } 419 }
417 } 420 }
diff --git a/linden/indra/newview/llnetmap.h b/linden/indra/newview/llnetmap.h
index 3fb20cc..91027c5 100644
--- a/linden/indra/newview/llnetmap.h
+++ b/linden/indra/newview/llnetmap.h
@@ -84,7 +84,10 @@ protected:
84 84
85public: 85public:
86 LLHandle<LLView> mPopupMenuHandle; 86 LLHandle<LLView> mPopupMenuHandle;
87
87 LLColor4 mBackgroundColor; 88 LLColor4 mBackgroundColor;
89 LLColor4 glyph_color_avatar;
90 LLColor4 glyph_color_friend;
88 91
89 F32 mScale; // Size of a region in pixels 92 F32 mScale; // Size of a region in pixels
90 F32 mPixelsPerMeter; // world meters to map pixels 93 F32 mPixelsPerMeter; // world meters to map pixels
diff --git a/linden/indra/newview/llpanellogin.cpp b/linden/indra/newview/llpanellogin.cpp
index ffee058..a495516 100644
--- a/linden/indra/newview/llpanellogin.cpp
+++ b/linden/indra/newview/llpanellogin.cpp
@@ -134,74 +134,14 @@ void LLLoginHandler::parse(const LLSD& queryMap)
134 mLastName = queryMap["last_name"].asString(); 134 mLastName = queryMap["last_name"].asString();
135 135
136 EGridInfo grid_choice = GRID_INFO_NONE; 136 EGridInfo grid_choice = GRID_INFO_NONE;
137 if (queryMap["grid"].asString() == "aditi") 137 if (queryMap["grid"].asString() == "sl beta grid")
138 { 138 {
139 grid_choice = GRID_INFO_ADITI; 139 grid_choice = GRID_INFO_ADITI;
140 } 140 }
141 else if (queryMap["grid"].asString() == "agni") 141 else if (queryMap["grid"].asString() == "sl main grid")
142 { 142 {
143 grid_choice = GRID_INFO_AGNI; 143 grid_choice = GRID_INFO_AGNI;
144 } 144 }
145 else if (queryMap["grid"].asString() == "siva")
146 {
147 grid_choice = GRID_INFO_SIVA;
148 }
149 else if (queryMap["grid"].asString() == "damballah")
150 {
151 grid_choice = GRID_INFO_DAMBALLAH;
152 }
153 else if (queryMap["grid"].asString() == "durga")
154 {
155 grid_choice = GRID_INFO_DURGA;
156 }
157 else if (queryMap["grid"].asString() == "shakti")
158 {
159 grid_choice = GRID_INFO_SHAKTI;
160 }
161 else if (queryMap["grid"].asString() == "soma")
162 {
163 grid_choice = GRID_INFO_SOMA;
164 }
165 else if (queryMap["grid"].asString() == "ganga")
166 {
167 grid_choice = GRID_INFO_GANGA;
168 }
169 else if (queryMap["grid"].asString() == "vaak")
170 {
171 grid_choice = GRID_INFO_VAAK;
172 }
173 else if (queryMap["grid"].asString() == "uma")
174 {
175 grid_choice = GRID_INFO_UMA;
176 }
177 else if (queryMap["grid"].asString() == "mohini")
178 {
179 grid_choice = GRID_INFO_MOHINI;
180 }
181 else if (queryMap["grid"].asString() == "yami")
182 {
183 grid_choice = GRID_INFO_YAMI;
184 }
185 else if (queryMap["grid"].asString() == "nandi")
186 {
187 grid_choice = GRID_INFO_NANDI;
188 }
189 else if (queryMap["grid"].asString() == "mitra")
190 {
191 grid_choice = GRID_INFO_MITRA;
192 }
193 else if (queryMap["grid"].asString() == "radha")
194 {
195 grid_choice = GRID_INFO_RADHA;
196 }
197 else if (queryMap["grid"].asString() == "ravi")
198 {
199 grid_choice = GRID_INFO_RAVI;
200 }
201 else if (queryMap["grid"].asString() == "aruna")
202 {
203 grid_choice = GRID_INFO_ARUNA;
204 }
205 145
206 if(grid_choice != GRID_INFO_NONE) 146 if(grid_choice != GRID_INFO_NONE)
207 { 147 {
@@ -419,15 +359,25 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
419 359
420 // childSetAction("quit_btn", onClickQuit, this); 360 // childSetAction("quit_btn", onClickQuit, this);
421 361
422 std::string channel = gSavedSettings.getString("VersionChannelName"); 362 std::string imp_channel = gSavedSettings.getString("VersionChannelName");
423 std::string version = llformat("%d.%d.%d (%d)", 363 std::string imp_version = llformat("%d.%d.%d %s",
364 IMP_VERSION_MAJOR,
365 IMP_VERSION_MINOR,
366 IMP_VERSION_PATCH,
367 IMP_VERSION_TEST );
368
369 std::string ll_channel = LL_VIEWER_NAME;
370 std::string ll_version = llformat("%d.%d.%d (%d)",
424 LL_VERSION_MAJOR, 371 LL_VERSION_MAJOR,
425 LL_VERSION_MINOR, 372 LL_VERSION_MINOR,
426 LL_VERSION_PATCH, 373 LL_VERSION_PATCH,
427 LL_VIEWER_BUILD ); 374 LL_VIEWER_BUILD );
375
428 LLTextBox* channel_text = getChild<LLTextBox>("channel_text"); 376 LLTextBox* channel_text = getChild<LLTextBox>("channel_text");
429 channel_text->setTextArg("[CHANNEL]", channel); 377 channel_text->setTextArg("[CHANNEL]", imp_channel);
430 channel_text->setTextArg("[VERSION]", version); 378 channel_text->setTextArg("[VERSION]", imp_version);
379 channel_text->setTextArg("[ALT_CHANNEL]", ll_channel);
380 channel_text->setTextArg("[ALT_VERSION]", ll_version);
431 channel_text->setClickedCallback(onClickVersion); 381 channel_text->setClickedCallback(onClickVersion);
432 channel_text->setCallbackUserData(this); 382 channel_text->setCallbackUserData(this);
433 383
@@ -762,6 +712,14 @@ void LLPanelLogin::addServer(const std::string& server, S32 domain_name)
762 combo->setCurrentByIndex(0); 712 combo->setCurrentByIndex(0);
763} 713}
764 714
715
716// static
717void LLPanelLogin::setServer(S32 domain_name)
718{
719 LLComboBox* combo = sInstance->getChild<LLComboBox>("server_combo");
720 combo->setCurrentByIndex(domain_name);
721}
722
765// static 723// static
766void LLPanelLogin::getFields(std::string &firstname, std::string &lastname, std::string &password, 724void LLPanelLogin::getFields(std::string &firstname, std::string &lastname, std::string &password,
767 BOOL &remember) 725 BOOL &remember)
@@ -840,12 +798,7 @@ void LLPanelLogin::refreshLocation( bool force_visible )
840 sInstance->childSetVisible("start_location_combo", show_start); 798 sInstance->childSetVisible("start_location_combo", show_start);
841 sInstance->childSetVisible("start_location_text", show_start); 799 sInstance->childSetVisible("start_location_text", show_start);
842 800
843#if LL_RELEASE_FOR_DOWNLOAD
844 BOOL show_server = gSavedSettings.getBOOL("ForceShowGrid");
845 sInstance->childSetVisible("server_combo", show_server);
846#else
847 sInstance->childSetVisible("server_combo", TRUE); 801 sInstance->childSetVisible("server_combo", TRUE);
848#endif
849 802
850#endif 803#endif
851} 804}
@@ -928,7 +881,7 @@ void LLPanelLogin::loadLoginPage()
928 curl_free(curl_version); 881 curl_free(curl_version);
929 882
930 // Grid 883 // Grid
931 char* curl_grid = curl_escape(LLViewerLogin::getInstance()->getGridLabel().c_str(), 0); 884 char* curl_grid = curl_escape(LLViewerLogin::getInstance()->getGridCodeName().c_str(), 0);
932 oStr << "&grid=" << curl_grid; 885 oStr << "&grid=" << curl_grid;
933 curl_free(curl_grid); 886 curl_free(curl_grid);
934 887
diff --git a/linden/indra/newview/llpanellogin.h b/linden/indra/newview/llpanellogin.h
index 539997b..78b0a22 100644
--- a/linden/indra/newview/llpanellogin.h
+++ b/linden/indra/newview/llpanellogin.h
@@ -87,6 +87,7 @@ public:
87 const std::string& password, BOOL remember); 87 const std::string& password, BOOL remember);
88 88
89 static void addServer(const std::string& server, S32 domain_name); 89 static void addServer(const std::string& server, S32 domain_name);
90 static void setServer(S32 domain_name);
90 static void refreshLocation( bool force_visible ); 91 static void refreshLocation( bool force_visible );
91 92
92 static void getFields(std::string& firstname, std::string& lastname, 93 static void getFields(std::string& firstname, std::string& lastname,
diff --git a/linden/indra/newview/llselectmgr.cpp b/linden/indra/newview/llselectmgr.cpp
index 2e4983c..90b1bd3 100644
--- a/linden/indra/newview/llselectmgr.cpp
+++ b/linden/indra/newview/llselectmgr.cpp
@@ -5745,7 +5745,8 @@ BOOL LLSelectMgr::canSelectObject(LLViewerObject* object)
5745 } 5745 }
5746 5746
5747 if ((gSavedSettings.getBOOL("SelectOwnedOnly") && !object->permYouOwner()) || 5747 if ((gSavedSettings.getBOOL("SelectOwnedOnly") && !object->permYouOwner()) ||
5748 (gSavedSettings.getBOOL("SelectMovableOnly") && !object->permMove())) 5748 (gSavedSettings.getBOOL("SelectMovableOnly") && !object->permMove()) ||
5749 (gSavedSettings.getBOOL("SelectCopyableOnly") && !object->permCopy()))
5749 { 5750 {
5750 // only select my own objects 5751 // only select my own objects
5751 return FALSE; 5752 return FALSE;
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp
index 0978fbb..6371f2b 100644
--- a/linden/indra/newview/llstartup.cpp
+++ b/linden/indra/newview/llstartup.cpp
@@ -2458,14 +2458,14 @@ void login_show()
2458 // UI textures have been previously loaded in doPreloadImages() 2458 // UI textures have been previously loaded in doPreloadImages()
2459 2459
2460 LL_DEBUGS("AppInit") << "Setting Servers" << LL_ENDL; 2460 LL_DEBUGS("AppInit") << "Setting Servers" << LL_ENDL;
2461 2461 LL_INFOS("AppInit") << "getGridChoice is " << LLViewerLogin::getInstance()->getGridChoice() << LL_ENDL;
2462 LLPanelLogin::addServer(LLViewerLogin::getInstance()->getGridLabel(), LLViewerLogin::getInstance()->getGridChoice());
2463 2462
2464 LLViewerLogin* vl = LLViewerLogin::getInstance(); 2463 LLViewerLogin* vl = LLViewerLogin::getInstance();
2465 for(int grid_index = GRID_INFO_ADITI; grid_index < GRID_INFO_OTHER; ++grid_index) 2464 for(int grid_index = GRID_INFO_NONE + 1; grid_index < GRID_INFO_OTHER; ++grid_index)
2466 { 2465 {
2467 LLPanelLogin::addServer(vl->getKnownGridLabel((EGridInfo)grid_index), grid_index); 2466 LLPanelLogin::addServer(vl->getKnownGridLabel((EGridInfo)grid_index), grid_index);
2468 } 2467 }
2468 LLPanelLogin::setServer(LLViewerLogin::getInstance()->getGridChoice()-1);
2469} 2469}
2470 2470
2471// Callback for when login screen is closed. Option 0 = connect, option 1 = quit. 2471// Callback for when login screen is closed. Option 0 = connect, option 1 = quit.
diff --git a/linden/indra/newview/lltexturecache.cpp b/linden/indra/newview/lltexturecache.cpp
index ce35377..8044859 100644
--- a/linden/indra/newview/lltexturecache.cpp
+++ b/linden/indra/newview/lltexturecache.cpp
@@ -892,6 +892,8 @@ LLTextureCache::LLTextureCache(bool threaded)
892 892
893LLTextureCache::~LLTextureCache() 893LLTextureCache::~LLTextureCache()
894{ 894{
895 purgeTextureFilesTimeSliced(TRUE); // force-flush all pending file deletes
896
895 apr_pool_destroy(mFileAPRPool); 897 apr_pool_destroy(mFileAPRPool);
896} 898}
897 899
@@ -1196,7 +1198,7 @@ void LLTextureCache::purgeTextures(bool validate)
1196 return; 1198 return;
1197 } 1199 }
1198 1200
1199 LL_DEBUGS("TextureCache") << "TEXTURE CACHE: Reading Entries..." << LL_ENDL; 1201 LL_DEBUGS("TextureCache") << "TEXTURE CACHE: Reading " << num_entries << " Entries from " << mTexturesDirEntriesFileName << LL_ENDL;
1200 1202
1201 std::map<LLUUID, S32> entry_idx_map; 1203 std::map<LLUUID, S32> entry_idx_map;
1202 S64 total_size = 0; 1204 S64 total_size = 0;
@@ -1225,7 +1227,7 @@ void LLTextureCache::purgeTextures(bool validate)
1225 LL_DEBUGS("TextureCache") << "TEXTURE CACHE: Validating: " << validate_idx << LL_ENDL; 1227 LL_DEBUGS("TextureCache") << "TEXTURE CACHE: Validating: " << validate_idx << LL_ENDL;
1226 } 1228 }
1227 1229
1228 S64 min_cache_size = (sCacheMaxTexturesSize * 9) / 10; 1230 S64 min_cache_size = sCacheMaxTexturesSize / 100 * 95;
1229 S32 purge_count = 0; 1231 S32 purge_count = 0;
1230 S32 next_idx = 0; 1232 S32 next_idx = 0;
1231 for (S32 idx=0; idx<num_entries; idx++) 1233 for (S32 idx=0; idx<num_entries; idx++)
@@ -1259,8 +1261,8 @@ void LLTextureCache::purgeTextures(bool validate)
1259 if (purge_entry) 1261 if (purge_entry)
1260 { 1262 {
1261 purge_count++; 1263 purge_count++;
1262 LL_DEBUGS("TextureCache") << "PURGING: " << filename << LL_ENDL; 1264 LL_DEBUGS("TextureCache") << "PURGING: " << filename << LL_ENDL;
1263 ll_apr_file_remove(filename, NULL); 1265 mFilesToDelete.push_back(filename);
1264 total_size -= entries[idx].mSize; 1266 total_size -= entries[idx].mSize;
1265 entries[idx].mSize = 0; 1267 entries[idx].mSize = 0;
1266 } 1268 }
@@ -1275,7 +1277,11 @@ void LLTextureCache::purgeTextures(bool validate)
1275 } 1277 }
1276 num_entries = next_idx; 1278 num_entries = next_idx;
1277 1279
1278 LL_DEBUGS("TextureCache") << "TEXTURE CACHE: Writing Entries: " << num_entries << LL_ENDL; 1280 mTimeLastFileDelete.reset();
1281
1282 LL_DEBUGS("TextureCache") << "TEXTURE CACHE: Writing Entries: "
1283 << num_entries << " (" << num_entries*sizeof(Entry)/1024 << "KB)"
1284 << LL_ENDL;
1279 1285
1280 ll_apr_file_remove(mTexturesDirEntriesFileName, NULL); 1286 ll_apr_file_remove(mTexturesDirEntriesFileName, NULL);
1281 ll_apr_file_write_ex(mTexturesDirEntriesFileName, NULL, 1287 ll_apr_file_write_ex(mTexturesDirEntriesFileName, NULL,
@@ -1298,10 +1304,56 @@ void LLTextureCache::purgeTextures(bool validate)
1298 LL_INFOS("TextureCache") << "TEXTURE CACHE:" 1304 LL_INFOS("TextureCache") << "TEXTURE CACHE:"
1299 << " PURGED: " << purge_count 1305 << " PURGED: " << purge_count
1300 << " ENTRIES: " << num_entries 1306 << " ENTRIES: " << num_entries
1301 << " CACHE SIZE: " << total_size / 1024*1024 << " MB" 1307 << " CACHE SIZE: " << total_size/1024/1024 << " MB"
1302 << llendl; 1308 << llendl;
1303} 1309}
1304 1310
1311
1312void LLTextureCache::purgeTextureFilesTimeSliced(BOOL force_all)
1313{
1314 LLMutexLock lock(&mHeaderMutex);
1315
1316 F32 delay_between_passes = 1.0f; // seconds
1317 F32 max_time_per_pass = 0.1f; // seconds
1318
1319 if (!force_all && mTimeLastFileDelete.getElapsedTimeF32() <= delay_between_passes)
1320 {
1321 return;
1322 }
1323
1324 LLTimer timer;
1325 S32 howmany = 0;
1326
1327 if (mFilesToDelete.size() > 0)
1328 {
1329 llinfos << "TEXTURE CACHE: " << mFilesToDelete.size() << " files scheduled for deletion" << llendl;
1330 }
1331
1332 for (LLTextureCache::filename_list_t::iterator iter = mFilesToDelete.begin(); iter!=mFilesToDelete.end(); )
1333 {
1334 LLTextureCache::filename_list_t::iterator iter2 = iter++;
1335 ll_apr_file_remove(*iter2, NULL);
1336 mFilesToDelete.erase(iter2);
1337 howmany++;
1338
1339 if (!force_all && timer.getElapsedTimeF32() > max_time_per_pass)
1340 {
1341 break;
1342 }
1343 }
1344
1345 if (!mFilesToDelete.empty())
1346 {
1347 llinfos << "TEXTURE CACHE: "<< howmany << " files deleted ("
1348 << mFilesToDelete.size() << " files left for next pass)"
1349 << llendl;
1350 }
1351
1352 mTimeLastFileDelete.reset();
1353}
1354
1355
1356
1305////////////////////////////////////////////////////////////////////////////// 1357//////////////////////////////////////////////////////////////////////////////
1306 1358
1307// call lockWorkers() first! 1359// call lockWorkers() first!
@@ -1471,6 +1523,10 @@ LLTextureCache::handle_t LLTextureCache::writeToCache(const LLUUID& id, U32 prio
1471 purgeTextures(false); 1523 purgeTextures(false);
1472 mDoPurge = FALSE; 1524 mDoPurge = FALSE;
1473 } 1525 }
1526
1527 purgeTextureFilesTimeSliced(); // purge textures from cache in a non-hiccup-way
1528
1529
1474 if (datasize >= TEXTURE_CACHE_ENTRY_SIZE) 1530 if (datasize >= TEXTURE_CACHE_ENTRY_SIZE)
1475 { 1531 {
1476 LLMutexLock lock(&mWorkersMutex); 1532 LLMutexLock lock(&mWorkersMutex);
diff --git a/linden/indra/newview/lltexturecache.h b/linden/indra/newview/lltexturecache.h
index 4bac15c..b5abb67 100644
--- a/linden/indra/newview/lltexturecache.h
+++ b/linden/indra/newview/lltexturecache.h
@@ -122,6 +122,7 @@ private:
122 void readHeaderCache(apr_pool_t* poolp = NULL); 122 void readHeaderCache(apr_pool_t* poolp = NULL);
123 void purgeAllTextures(bool purge_directories); 123 void purgeAllTextures(bool purge_directories);
124 void purgeTextures(bool validate); 124 void purgeTextures(bool validate);
125 void purgeTextureFilesTimeSliced(BOOL force_all = FALSE);
125 S32 getHeaderCacheEntry(const LLUUID& id, bool touch, S32* imagesize = NULL); 126 S32 getHeaderCacheEntry(const LLUUID& id, bool touch, S32* imagesize = NULL);
126 bool removeHeaderCacheEntry(const LLUUID& id); 127 bool removeHeaderCacheEntry(const LLUUID& id);
127 void lockHeaders() { mHeaderMutex.lock(); } 128 void lockHeaders() { mHeaderMutex.lock(); }
@@ -143,6 +144,10 @@ private:
143 144
144 typedef std::vector<std::pair<LLPointer<Responder>, bool> > responder_list_t; 145 typedef std::vector<std::pair<LLPointer<Responder>, bool> > responder_list_t;
145 responder_list_t mCompletedList; 146 responder_list_t mCompletedList;
147
148 typedef std::list<std::string> filename_list_t;
149 filename_list_t mFilesToDelete;
150 LLTimer mTimeLastFileDelete;
146 151
147 BOOL mReadOnly; 152 BOOL mReadOnly;
148 153
diff --git a/linden/indra/newview/lltooldraganddrop.cpp b/linden/indra/newview/lltooldraganddrop.cpp
index 39070b7..72ee24b 100644
--- a/linden/indra/newview/lltooldraganddrop.cpp
+++ b/linden/indra/newview/lltooldraganddrop.cpp
@@ -850,6 +850,12 @@ void LLToolDragAndDrop::dragOrDrop( S32 x, S32 y, MASK mask, BOOL drop,
850 { 850 {
851 LLInventoryObject* cargo = locateInventory(item, cat); 851 LLInventoryObject* cargo = locateInventory(item, cat);
852 852
853 if (!cargo)
854 {
855 handled = FALSE;
856 break;
857 }
858
853 EAcceptance item_acceptance = ACCEPT_NO; 859 EAcceptance item_acceptance = ACCEPT_NO;
854 handled = handled && root_view->handleDragAndDrop(x, y, mask, FALSE, 860 handled = handled && root_view->handleDragAndDrop(x, y, mask, FALSE,
855 mCargoTypes[mCurItemIndex], 861 mCargoTypes[mCurItemIndex],
diff --git a/linden/indra/newview/llurlhistory.cpp b/linden/indra/newview/llurlhistory.cpp
index ac3fa93..c10add4 100644
--- a/linden/indra/newview/llurlhistory.cpp
+++ b/linden/indra/newview/llurlhistory.cpp
@@ -72,9 +72,17 @@ bool LLURLHistory::loadFile(const std::string& filename)
72 72
73// static 73// static
74bool LLURLHistory::saveFile(const std::string& filename) 74bool LLURLHistory::saveFile(const std::string& filename)
75{ 75{
76 std::string temp_str = gDirUtilp->getLindenUserDir() + gDirUtilp->getDirDelimiter(); 76 std::string temp_str = gDirUtilp->getLindenUserDir();
77 llofstream out((temp_str + filename)); 77 if( temp_str.empty() )
78 {
79 llwarns << "Can't save " << filename
80 << ": No user directory set." << llendl;
81 return false;
82 }
83
84 temp_str += gDirUtilp->getDirDelimiter() + filename;
85 llofstream out(temp_str);
78 if (!out.good()) 86 if (!out.good())
79 { 87 {
80 llwarns << "Unable to open " << filename << " for output." << llendl; 88 llwarns << "Unable to open " << filename << " for output." << llendl;
diff --git a/linden/indra/newview/llviewerjointattachment.h b/linden/indra/newview/llviewerjointattachment.h
index 8e665aa..a69c10c 100644
--- a/linden/indra/newview/llviewerjointattachment.h
+++ b/linden/indra/newview/llviewerjointattachment.h
@@ -98,8 +98,7 @@ protected:
98 void calcLOD(); 98 void calcLOD();
99 99
100protected: 100protected:
101 // Backlink only; don't make this an LLPointer. 101 LLPointer<LLViewerObject> mAttachedObject;
102 LLViewerObject* mAttachedObject;
103 BOOL mVisibleInFirst; 102 BOOL mVisibleInFirst;
104 LLVector3 mOriginalPos; 103 LLVector3 mOriginalPos;
105 S32 mGroup; 104 S32 mGroup;
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp
index 5e67712..3bf390e 100644
--- a/linden/indra/newview/llviewermenu.cpp
+++ b/linden/indra/newview/llviewermenu.cpp
@@ -5305,6 +5305,10 @@ class LLShowFloater : public view_listener_t
5305 { 5305 {
5306 LLFloaterActiveSpeakers::toggleInstance(LLSD()); 5306 LLFloaterActiveSpeakers::toggleInstance(LLSD());
5307 } 5307 }
5308 else if (floater_name == "inworld browser")
5309 {
5310 LLFloaterMediaBrowser::show();
5311 }
5308 return true; 5312 return true;
5309 } 5313 }
5310}; 5314};
@@ -6714,6 +6718,18 @@ class LLToolsSelectOnlyMovableObjects : public view_listener_t
6714 } 6718 }
6715}; 6719};
6716 6720
6721class LLToolsSelectOnlyCopyableObjects : public view_listener_t
6722{
6723 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
6724 {
6725 BOOL cur_val = gSavedSettings.getBOOL("SelectCopyableOnly");
6726
6727 gSavedSettings.setBOOL("SelectCopyableOnly", ! cur_val );
6728
6729 return true;
6730 }
6731};
6732
6717class LLToolsSelectBySurrounding : public view_listener_t 6733class LLToolsSelectBySurrounding : public view_listener_t
6718{ 6734{
6719 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 6735 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
@@ -9829,6 +9845,7 @@ void initialize_menus()
9829 addMenu(new LLToolsSelectTool(), "Tools.SelectTool"); 9845 addMenu(new LLToolsSelectTool(), "Tools.SelectTool");
9830 addMenu(new LLToolsSelectOnlyMyObjects(), "Tools.SelectOnlyMyObjects"); 9846 addMenu(new LLToolsSelectOnlyMyObjects(), "Tools.SelectOnlyMyObjects");
9831 addMenu(new LLToolsSelectOnlyMovableObjects(), "Tools.SelectOnlyMovableObjects"); 9847 addMenu(new LLToolsSelectOnlyMovableObjects(), "Tools.SelectOnlyMovableObjects");
9848 addMenu(new LLToolsSelectOnlyCopyableObjects(), "Tools.SelectOnlyCopyableObjects");
9832 addMenu(new LLToolsSelectBySurrounding(), "Tools.SelectBySurrounding"); 9849 addMenu(new LLToolsSelectBySurrounding(), "Tools.SelectBySurrounding");
9833 addMenu(new LLToolsShowHiddenSelection(), "Tools.ShowHiddenSelection"); 9850 addMenu(new LLToolsShowHiddenSelection(), "Tools.ShowHiddenSelection");
9834 addMenu(new LLToolsShowSelectionLightRadius(), "Tools.ShowSelectionLightRadius"); 9851 addMenu(new LLToolsShowSelectionLightRadius(), "Tools.ShowSelectionLightRadius");
diff --git a/linden/indra/newview/llviewernetwork.cpp b/linden/indra/newview/llviewernetwork.cpp
index 13d432a..9019b88 100644
--- a/linden/indra/newview/llviewernetwork.cpp
+++ b/linden/indra/newview/llviewernetwork.cpp
@@ -38,6 +38,7 @@
38struct LLGridData 38struct LLGridData
39{ 39{
40 const char* mLabel; 40 const char* mLabel;
41 const char* mCodeName;
41 const char* mName; 42 const char* mName;
42 const char* mLoginURI; 43 const char* mLoginURI;
43 const char* mHelperURI; 44 const char* mHelperURI;
@@ -45,83 +46,23 @@ struct LLGridData
45 46
46static LLGridData gGridInfo[GRID_INFO_COUNT] = 47static LLGridData gGridInfo[GRID_INFO_COUNT] =
47{ 48{
48 { "None", "", "", ""}, 49 { "None", "", "", "", "" },
49 { "Aditi", 50 { "SL Main Grid",
50 "util.aditi.lindenlab.com", 51 "Agni",
51 "https://login.aditi.lindenlab.com/cgi-bin/login.cgi",
52 "http://aditi-secondlife.webdev.lindenlab.com/helpers/" },
53 { "Agni",
54 "util.agni.lindenlab.com", 52 "util.agni.lindenlab.com",
55 "https://login.agni.lindenlab.com/cgi-bin/login.cgi", 53 "https://login.agni.lindenlab.com/cgi-bin/login.cgi",
56 "https://secondlife.com/helpers/" }, 54 "https://secondlife.com/helpers/" },
57 { "Aruna", 55 { "SL Beta Grid",
58 "util.aruna.lindenlab.com", 56 "Aditi",
59 "https://login.aruna.lindenlab.com/cgi-bin/login.cgi", 57 "util.aditi.lindenlab.com",
60 "http://aruna-secondlife.webdev.lindenlab.com/helpers/" }, 58 "https://login.aditi.lindenlab.com/cgi-bin/login.cgi",
61 { "Damballah", 59 "http://aditi-secondlife.webdev.lindenlab.com/helpers/" },
62 "util.damballah.lindenlab.com", 60 { "Local OpenSim",
63 "https://login.damballah.lindenlab.com/cgi-bin/login.cgi", 61 "",
64 "http://damballah-secondlife.webdev.lindenlab.com/helpers/" }, 62 "localhost",
65 { "Durga", 63 "http://127.0.0.1:9000",
66 "util.durga.lindenlab.com",
67 "https://login.durga.lindenlab.com/cgi-bin/login.cgi",
68 "http://durga-secondlife.webdev.lindenlab.com/helpers/" },
69 { "Ganga",
70 "util.ganga.lindenlab.com",
71 "https://login.ganga.lindenlab.com/cgi-bin/login.cgi",
72 "http://ganga-secondlife.webdev.lindenlab.com/helpers/" },
73 { "Mitra",
74 "util.mitra.lindenlab.com",
75 "https://login.mitra.lindenlab.com/cgi-bin/login.cgi",
76 "http://mitra-secondlife.webdev.lindenlab.com/helpers/" },
77 { "Mohini",
78 "util.mohini.lindenlab.com",
79 "https://login.mohini.lindenlab.com/cgi-bin/login.cgi",
80 "http://mohini-secondlife.webdev.lindenlab.com/helpers/" },
81 { "Nandi",
82 "util.nandi.lindenlab.com",
83 "https://login.nandi.lindenlab.com/cgi-bin/login.cgi",
84 "http://nandi-secondlife.webdev.lindenlab.com/helpers/" },
85 { "Radha",
86 "util.radha.lindenlab.com",
87 "https://login.radha.lindenlab.com/cgi-bin/login.cgi",
88 "http://radha-secondlife.webdev.lindenlab.com/helpers/" },
89 { "Ravi",
90 "util.ravi.lindenlab.com",
91 "https://login.ravi.lindenlab.com/cgi-bin/login.cgi",
92 "http://ravi-secondlife.webdev.lindenlab.com/helpers/" },
93 { "Siva",
94 "util.siva.lindenlab.com",
95 "https://login.siva.lindenlab.com/cgi-bin/login.cgi",
96 "http://siva-secondlife.webdev.lindenlab.com/helpers/" },
97 { "Shakti",
98 "util.shakti.lindenlab.com",
99 "https://login.shakti.lindenlab.com/cgi-bin/login.cgi",
100 "http://shakti-secondlife.webdev.lindenlab.com/helpers/" },
101 { "Soma",
102 "util.soma.lindenlab.com",
103 "https://login.soma.lindenlab.com/cgi-bin/login.cgi",
104 "http://soma-secondlife.webdev.lindenlab.com/helpers/" },
105 { "Uma",
106 "util.uma.lindenlab.com",
107 "https://login.uma.lindenlab.com/cgi-bin/login.cgi",
108 "http://uma-secondlife.webdev.lindenlab.com/helpers/" },
109 { "Vaak",
110 "util.vaak.lindenlab.com",
111 "https://login.vaak.lindenlab.com/cgi-bin/login.cgi",
112 "http://vaak-secondlife.webdev.lindenlab.com/helpers/" },
113 { "Yami",
114 "util.yami.lindenlab.com",
115 "https://login.yami.lindenlab.com/cgi-bin/login.cgi",
116 "http://yami-secondlife.webdev.lindenlab.com/helpers/" },
117 { "Local",
118 "localhost",
119 "https://login.dmz.lindenlab.com/cgi-bin/login.cgi",
120 "" }, 64 "" },
121 { "Other", 65 { "Other", "", "", "", "" }
122 "",
123 "https://login.dmz.lindenlab.com/cgi-bin/login.cgi",
124 "" }
125}; 66};
126 67
127const EGridInfo DEFAULT_GRID_CHOICE = GRID_INFO_AGNI; 68const EGridInfo DEFAULT_GRID_CHOICE = GRID_INFO_AGNI;
@@ -169,34 +110,34 @@ void LLViewerLogin::setGridChoice(const std::string& grid_name)
169 // The string can be: 110 // The string can be:
170 // - a grid label from the gGridInfo table 111 // - a grid label from the gGridInfo table
171 // - an ip address 112 // - an ip address
172 if(!grid_name.empty()) 113 if(!grid_name.empty())
173 { 114 {
174 // find the grid choice from the user setting. 115 // find the grid choice from the user setting.
175 int grid_index = GRID_INFO_NONE; 116 int grid_index = GRID_INFO_NONE;
176 for(;grid_index < GRID_INFO_OTHER; ++grid_index) 117 for(;grid_index < GRID_INFO_OTHER; ++grid_index)
177 { 118 {
178 if(0 == LLStringUtil::compareInsensitive(gGridInfo[grid_index].mLabel, grid_name)) 119 if(0 == LLStringUtil::compareInsensitive(gGridInfo[grid_index].mLabel, grid_name))
179 { 120 {
180 // Founding a matching label in the list... 121 // Founding a matching label in the list...
181 setGridChoice((EGridInfo)grid_index); 122 setGridChoice((EGridInfo)grid_index);
182 break; 123 break;
183 } 124 }
184 } 125 }
185 126
186 if(GRID_INFO_OTHER == grid_index) 127 if(GRID_INFO_OTHER == grid_index)
187 { 128 {
188 // *FIX:MEP Can and should we validate that this is an IP address? 129 // *FIX:MEP Can and should we validate that this is an IP address?
189 mGridChoice = GRID_INFO_OTHER; 130 mGridChoice = GRID_INFO_OTHER;
190 mGridName = grid_name; 131 mGridName = grid_name;
191 gSavedSettings.setS32("ServerChoice", mGridChoice); 132 gSavedSettings.setS32("ServerChoice", mGridChoice);
192 gSavedSettings.setString("CustomServer", mGridName); 133 gSavedSettings.setString("CustomServer", mGridName);
193 } 134 }
194 } 135 }
195} 136}
196 137
197void LLViewerLogin::resetURIs() 138void LLViewerLogin::resetURIs()
198{ 139{
199 // Clear URIs when picking a new server 140 // Clear URIs when picking a new server
200 gSavedSettings.setValue("CmdLineLoginURI", LLSD::emptyArray()); 141 gSavedSettings.setValue("CmdLineLoginURI", LLSD::emptyArray());
201 gSavedSettings.setString("CmdLineHelperURI", ""); 142 gSavedSettings.setString("CmdLineHelperURI", "");
202} 143}
@@ -220,6 +161,17 @@ std::string LLViewerLogin::getGridLabel() const
220 return mGridName; 161 return mGridName;
221} 162}
222 163
164std::string LLViewerLogin::getGridCodeName() const
165{
166 // Fall back to grid label if code name is empty.
167 if( strcmp(gGridInfo[mGridChoice].mCodeName, "") == 0 )
168 {
169 return getGridLabel();
170 }
171
172 return gGridInfo[mGridChoice].mCodeName;
173}
174
223std::string LLViewerLogin::getKnownGridLabel(EGridInfo grid_index) const 175std::string LLViewerLogin::getKnownGridLabel(EGridInfo grid_index) const
224{ 176{
225 if(grid_index > GRID_INFO_NONE && grid_index < GRID_INFO_OTHER) 177 if(grid_index > GRID_INFO_NONE && grid_index < GRID_INFO_OTHER)
diff --git a/linden/indra/newview/llviewernetwork.h b/linden/indra/newview/llviewernetwork.h
index 53bb0ab..970e2ce 100644
--- a/linden/indra/newview/llviewernetwork.h
+++ b/linden/indra/newview/llviewernetwork.h
@@ -38,23 +38,8 @@ class LLHost;
38enum EGridInfo 38enum EGridInfo
39{ 39{
40 GRID_INFO_NONE, 40 GRID_INFO_NONE,
41 GRID_INFO_ADITI,
42 GRID_INFO_AGNI, 41 GRID_INFO_AGNI,
43 GRID_INFO_ARUNA, 42 GRID_INFO_ADITI,
44 GRID_INFO_DAMBALLAH,
45 GRID_INFO_DURGA,
46 GRID_INFO_GANGA,
47 GRID_INFO_MITRA,
48 GRID_INFO_MOHINI,
49 GRID_INFO_NANDI,
50 GRID_INFO_RADHA,
51 GRID_INFO_RAVI,
52 GRID_INFO_SIVA,
53 GRID_INFO_SHAKTI,
54 GRID_INFO_SOMA,
55 GRID_INFO_UMA,
56 GRID_INFO_VAAK,
57 GRID_INFO_YAMI,
58 GRID_INFO_LOCAL, 43 GRID_INFO_LOCAL,
59 GRID_INFO_OTHER, // IP address set via command line option 44 GRID_INFO_OTHER, // IP address set via command line option
60 GRID_INFO_COUNT 45 GRID_INFO_COUNT
@@ -87,6 +72,20 @@ public:
87 **/ 72 **/
88 std::string getGridLabel() const; 73 std::string getGridLabel() const;
89 74
75 /**
76 * @brief Get the code name for the grid choice.
77 *
78 * Returns the code name for the grid choice, as designated
79 * by Linden Lab. The SL main grid is Agni, and the beta
80 * grid is Aditi. There are other LL testing grids with code
81 * names, but we don't care about those.
82 *
83 * This string is used primarily for fetching the proper
84 * login splash page, since the web server expects "Agni"
85 * and "Aditi", not "SL Main Grid" and "SL Beta Grid".
86 */
87 std::string getGridCodeName() const;
88
90 std::string getKnownGridLabel(EGridInfo grid_index) const; 89 std::string getKnownGridLabel(EGridInfo grid_index) const;
91 90
92 void getLoginURIs(std::vector<std::string>& uris) const; 91 void getLoginURIs(std::vector<std::string>& uris) const;
diff --git a/linden/indra/newview/llviewerobjectlist.cpp b/linden/indra/newview/llviewerobjectlist.cpp
index 163b039..4fac9bc 100644
--- a/linden/indra/newview/llviewerobjectlist.cpp
+++ b/linden/indra/newview/llviewerobjectlist.cpp
@@ -861,6 +861,10 @@ void LLViewerObjectList::killObjects(LLViewerRegion *regionp)
861 if (objectp->mRegionp == regionp) 861 if (objectp->mRegionp == regionp)
862 { 862 {
863 killObject(objectp); 863 killObject(objectp);
864
865 // invalidate region pointer. region will become invalid, but
866 // refcounted objects may survive the cleanDeadObjects() call below
867 objectp->mRegionp = NULL;
864 } 868 }
865 } 869 }
866 870
diff --git a/linden/indra/newview/llviewerregion.cpp b/linden/indra/newview/llviewerregion.cpp
index 08dc979..2944d9d 100644
--- a/linden/indra/newview/llviewerregion.cpp
+++ b/linden/indra/newview/llviewerregion.cpp
@@ -1022,6 +1022,8 @@ void LLViewerRegion::updateCoarseLocations(LLMessageSystem* msg)
1022 U8 z_pos = 0; 1022 U8 z_pos = 0;
1023 1023
1024 U32 pos = 0x0; 1024 U32 pos = 0x0;
1025
1026 LLUUID agent_id = LLUUID::null;
1025 1027
1026 S16 agent_index; 1028 S16 agent_index;
1027 S16 target_index; 1029 S16 target_index;
@@ -1034,6 +1036,7 @@ void LLViewerRegion::updateCoarseLocations(LLMessageSystem* msg)
1034 msg->getU8Fast(_PREHASH_Location, _PREHASH_X, x_pos, i); 1036 msg->getU8Fast(_PREHASH_Location, _PREHASH_X, x_pos, i);
1035 msg->getU8Fast(_PREHASH_Location, _PREHASH_Y, y_pos, i); 1037 msg->getU8Fast(_PREHASH_Location, _PREHASH_Y, y_pos, i);
1036 msg->getU8Fast(_PREHASH_Location, _PREHASH_Z, z_pos, i); 1038 msg->getU8Fast(_PREHASH_Location, _PREHASH_Z, z_pos, i);
1039 msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id, i);
1037 1040
1038 //llinfos << " object X: " << (S32)x_pos << " Y: " << (S32)y_pos 1041 //llinfos << " object X: " << (S32)x_pos << " Y: " << (S32)y_pos
1039 // << " Z: " << (S32)(z_pos * 4) 1042 // << " Z: " << (S32)(z_pos * 4)
@@ -1059,6 +1062,7 @@ void LLViewerRegion::updateCoarseLocations(LLMessageSystem* msg)
1059 pos <<= 8; 1062 pos <<= 8;
1060 pos |= z_pos; 1063 pos |= z_pos;
1061 mMapAvatars.put(pos); 1064 mMapAvatars.put(pos);
1065 mMapAvatarIDs.put(agent_id);
1062 } 1066 }
1063 } 1067 }
1064} 1068}
diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp
index 64c042a..2e77316 100644
--- a/linden/indra/newview/llviewerwindow.cpp
+++ b/linden/indra/newview/llviewerwindow.cpp
@@ -470,7 +470,7 @@ public:
470 ypos += y_inc; 470 ypos += y_inc;
471 } 471 }
472 // only display these messages if we are actually rendering beacons at this moment 472 // only display these messages if we are actually rendering beacons at this moment
473 if (LLPipeline::getRenderBeacons(NULL) && gSavedSettings.getBOOL("BeaconAlwaysOn")) 473 if (LLPipeline::getRenderBeacons(NULL) && gSavedSettings.getBOOL("BeaconsEnabled"))
474 { 474 {
475 if (LLPipeline::getRenderParticleBeacons(NULL)) 475 if (LLPipeline::getRenderParticleBeacons(NULL))
476 { 476 {
diff --git a/linden/indra/newview/llworld.cpp b/linden/indra/newview/llworld.cpp
index 66c4068..4dee103 100644
--- a/linden/indra/newview/llworld.cpp
+++ b/linden/indra/newview/llworld.cpp
@@ -365,9 +365,14 @@ LLVector3d LLWorld::clipToVisibleRegions(const LLVector3d &start_pos, const LLVe
365 clip_factor = (region_coord.mV[VY] - region_width) / delta_pos_abs.mdV[VY]; 365 clip_factor = (region_coord.mV[VY] - region_width) / delta_pos_abs.mdV[VY];
366 } 366 }
367 367
368 // clamp to < 256 to stay in sim 368 // clamp to within region dimensions
369 LLVector3d final_region_pos = LLVector3d(region_coord) - (delta_pos * clip_factor); 369 LLVector3d final_region_pos = LLVector3d(region_coord) - (delta_pos * clip_factor);
370 final_region_pos.clamp(0.0, 255.999); 370 final_region_pos.mdV[VX] = llclamp(final_region_pos.mdV[VX], 0.0,
371 (F64)(region_width - F_ALMOST_ZERO));
372 final_region_pos.mdV[VY] = llclamp(final_region_pos.mdV[VY], 0.0,
373 (F64)(region_width - F_ALMOST_ZERO));
374 final_region_pos.mdV[VZ] = llclamp(final_region_pos.mdV[VZ], 0.0,
375 (F64)(LLWorld::getInstance()->getRegionMaxHeight()));
371 return regionp->getPosGlobalFromRegion(LLVector3(final_region_pos)); 376 return regionp->getPosGlobalFromRegion(LLVector3(final_region_pos));
372} 377}
373 378
diff --git a/linden/indra/newview/llworldmapview.cpp b/linden/indra/newview/llworldmapview.cpp
index 92d9588..0d266dd 100644
--- a/linden/indra/newview/llworldmapview.cpp
+++ b/linden/indra/newview/llworldmapview.cpp
@@ -208,6 +208,8 @@ LLWorldMapView::LLWorldMapView(const std::string& name, const LLRect& rect )
208 mTextBoxNorthWest = new LLTextBox( std::string("NW"), minor_dir_rect ); 208 mTextBoxNorthWest = new LLTextBox( std::string("NW"), minor_dir_rect );
209 mTextBoxNorthWest->setColor( minor_color ); 209 mTextBoxNorthWest->setColor( minor_color );
210 addChild( mTextBoxNorthWest ); 210 addChild( mTextBoxNorthWest );
211
212 glyph_color_avatar = gColors.getColor("NetMapGlyphColorAvatar");
211} 213}
212 214
213 215
@@ -886,8 +888,8 @@ void LLWorldMapView::drawAgents()
886 S32 agent_count = info.mExtra; 888 S32 agent_count = info.mExtra;
887 sim_agent_count += info.mExtra; 889 sim_agent_count += info.mExtra;
888 // Here's how we'd choose the color if info.mID were available but it's not being sent: 890 // Here's how we'd choose the color if info.mID were available but it's not being sent:
889 //LLColor4 color = (agent_count == 1 && is_agent_friend(info.mID)) ? gFriendMapColor : gAvatarMapColor; 891 //LLColor4 color = (agent_count == 1 && is_agent_friend(info.mID)) ? glyph_color_friend : glyph_color_avatar;
890 drawImageStack(info.mPosGlobal, sAvatarSmallImage, agent_count, 3.f, gAvatarMapColor); 892 drawImageStack(info.mPosGlobal, sAvatarSmallImage, agent_count, 3.f, glyph_color_avatar);
891 } 893 }
892 LLWorldMap::getInstance()->mNumAgents[handle] = sim_agent_count; // override mNumAgents for this sim 894 LLWorldMap::getInstance()->mNumAgents[handle] = sim_agent_count; // override mNumAgents for this sim
893 } 895 }
@@ -902,7 +904,7 @@ void LLWorldMapView::drawAgents()
902 region_center[VY] += REGION_WIDTH_METERS / 2; 904 region_center[VY] += REGION_WIDTH_METERS / 2;
903 // Reduce the stack size as you zoom out - always display at lease one agent where there is one or more 905 // Reduce the stack size as you zoom out - always display at lease one agent where there is one or more
904 S32 agent_count = (S32)(((num_agents-1) * agents_scale + (num_agents-1) * 0.1f)+.1f) + 1; 906 S32 agent_count = (S32)(((num_agents-1) * agents_scale + (num_agents-1) * 0.1f)+.1f) + 1;
905 drawImageStack(region_center, sAvatarSmallImage, agent_count, 3.f, gAvatarMapColor); 907 drawImageStack(region_center, sAvatarSmallImage, agent_count, 3.f, glyph_color_avatar);
906 } 908 }
907 } 909 }
908 } 910 }
diff --git a/linden/indra/newview/llworldmapview.h b/linden/indra/newview/llworldmapview.h
index 915a196..53f0bdd 100644
--- a/linden/indra/newview/llworldmapview.h
+++ b/linden/indra/newview/llworldmapview.h
@@ -189,6 +189,8 @@ public:
189 handle_list_t mVisibleRegions; // set every frame 189 handle_list_t mVisibleRegions; // set every frame
190 190
191 static std::map<std::string,std::string> sStringsMap; 191 static std::map<std::string,std::string> sStringsMap;
192
193 LLColor4 glyph_color_avatar;
192}; 194};
193 195
194#endif 196#endif
diff --git a/linden/indra/newview/pipeline.cpp b/linden/indra/newview/pipeline.cpp
index f232fdf..3523635 100644
--- a/linden/indra/newview/pipeline.cpp
+++ b/linden/indra/newview/pipeline.cpp
@@ -2101,7 +2101,7 @@ void LLPipeline::postSort(LLCamera& camera)
2101 } 2101 }
2102 2102
2103 // only render if the flag is set. The flag is only set if we are in edit mode or the toggle is set in the menus 2103 // only render if the flag is set. The flag is only set if we are in edit mode or the toggle is set in the menus
2104 if (gSavedSettings.getBOOL("BeaconAlwaysOn")) 2104 if (gSavedSettings.getBOOL("BeaconsEnabled"))
2105 { 2105 {
2106 if (sRenderScriptedTouchBeacons) 2106 if (sRenderScriptedTouchBeacons)
2107 { 2107 {
diff --git a/linden/indra/newview/res-sdl/imprudence_icon.BMP b/linden/indra/newview/res-sdl/imprudence_icon.BMP
new file mode 100644
index 0000000..c3f4887
--- /dev/null
+++ b/linden/indra/newview/res-sdl/imprudence_icon.BMP
Binary files differ
diff --git a/linden/indra/newview/res/imprudence_icon.png b/linden/indra/newview/res/imprudence_icon.png
new file mode 100644
index 0000000..8795fa7
--- /dev/null
+++ b/linden/indra/newview/res/imprudence_icon.png
Binary files differ
diff --git a/linden/indra/newview/res/viewerRes.rc b/linden/indra/newview/res/viewerRes.rc
index a39bb9f..002830a 100644
--- a/linden/indra/newview/res/viewerRes.rc
+++ b/linden/indra/newview/res/viewerRes.rc
@@ -247,14 +247,14 @@ BEGIN
247 BEGIN 247 BEGIN
248 BLOCK "040904b0" 248 BLOCK "040904b0"
249 BEGIN 249 BEGIN
250 VALUE "CompanyName", "Linden Lab" 250 VALUE "CompanyName", "Imprudence Viewer Project"
251 VALUE "FileDescription", "Second Life" 251 VALUE "FileDescription", "Imprudence"
252 VALUE "FileVersion", "1.20.9.87416" 252 VALUE "FileVersion", "1.0.0"
253 VALUE "InternalName", "Second Life" 253 VALUE "InternalName", "Imprudence"
254 VALUE "LegalCopyright", "Copyright © 2001-2008, Linden Research, Inc." 254 VALUE "LegalCopyright", "Copyright © 2001-2008, Linden Research, Inc."
255 VALUE "OriginalFilename", "SecondLife.exe" 255 VALUE "OriginalFilename", "Imprudence.exe"
256 VALUE "ProductName", "Second Life" 256 VALUE "ProductName", "Imprudence"
257 VALUE "ProductVersion", "1.20.9.87416" 257 VALUE "ProductVersion", "1.0.0"
258 END 258 END
259 END 259 END
260 BLOCK "VarFileInfo" 260 BLOCK "VarFileInfo"
diff --git a/linden/indra/newview/skins/default/colors_base.xml b/linden/indra/newview/skins/default/colors_base.xml
index 3b85efa..ff3d53e 100644
--- a/linden/indra/newview/skins/default/colors_base.xml
+++ b/linden/indra/newview/skins/default/colors_base.xml
@@ -1,146 +1,180 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<settings version = "101"> 2<settings version = "101">
3 3<!-- Additional comments by McCabe Maxsted -->
4
4<!-- WINDOWS --> 5<!-- WINDOWS -->
5<TitleBarFocusColor value="255, 255, 255, 30" /> <!-- Focused window title bar highlight, no equivalent for unfocused windows --> 6<TitleBarFocusColor value="255, 255, 255, 30" /> <!-- Focused window title bar highlight, no equivalent for unfocused windows -->
6<FloaterFocusBorderColor value="0, 0, 0, 80" /> 7<FloaterFocusBorderColor value="0, 0, 0, 80" /> <!-- Focused window border color -->
7<FloaterUnfocusBorderColor value="0, 0, 0, 80" /> 8<FloaterUnfocusBorderColor value="0, 0, 0, 80" /> <!-- Unfocused window border color -->
8<FocusBackgroundColor value="62, 62, 62, 255" /> <!-- Background color of focused floaters --> 9<FocusBackgroundColor value="62, 62, 62, 255" /> <!-- Background color of focused windows -->
9<DefaultBackgroundColor value="62, 62, 62, 140" /> <!-- Background color for unfocused floaters --> 10<DefaultBackgroundColor value="62, 62, 62, 140" /> <!-- Background color for unfocused windows -->
10<ColorDropShadow value="0, 0, 0, 200" /> <!-- The drop shadow behind windows and menus --> 11<ColorDropShadow value="0, 0, 0, 200" /> <!-- The drop shadow behind windows and menus -->
11<DefaultHighlightDark value="26, 26, 26, 255" /> 12<DefaultHighlightDark value="26, 26, 26, 255" />
12<DefaultHighlightLight value="115, 132, 155, 255" /> 13<DefaultHighlightLight value="115, 132, 155, 255" /> <!-- Unfocused border, bottom portion -->
13<DefaultShadowDark value="26, 26, 26, 255" /> 14<DefaultShadowDark value="26, 26, 26, 255" /> <!-- Unfocused border, top portion -->
14<DefaultShadowLight value="0, 0, 0, 255" /> 15<DefaultShadowLight value="0, 0, 0, 255" /> <!-- Tab area border for IMs -->
15 16
16<!-- LABELS --> 17<!-- WINDOW LABELS -->
17<LabelDisabledColor value="147, 169, 213, 77" /> 18<LabelDisabledColor value="147, 169, 213, 77" /> <!-- Color for unfocused window titles -->
18<LabelSelectedColor value="255, 255, 255, 255" /> 19<LabelSelectedColor value="255, 255, 255, 255" /> <!-- Color for mouseovered clickable labels, e.g. version info on the login screen -->
19<LabelSelectedDisabledColor value="164, 190, 237, 128" /> 20<LabelSelectedDisabledColor value="164, 190, 237, 128" />
20<LabelTextColor value="147, 169, 213, 255" /> 21<LabelTextColor value="147, 169, 213, 255" /> <!-- Color for window labels and titles -->
21 22
22<!-- LOGIN --> 23<!-- LOGIN -->
23<LoginProgressBarBgColor value="255, 255, 255, 255" /> 24<LoginProgressBarBgColor value="255, 255, 255, 255" /> <!-- Login progress bar background -->
24<LoginProgressBarFgColor value="255, 255, 255, 255" /> 25<LoginProgressBarFgColor value="255, 255, 255, 255" /> <!-- Login progress bar -->
25<LoginProgressBoxBorderColor value="0, 30, 60, 0" /> 26<LoginProgressBoxBorderColor value="0, 30, 60, 0" /> <!-- Login progress box border -->
26<LoginProgressBoxCenterColor value="0, 0, 0, 200" /> 27<LoginProgressBoxCenterColor value="0, 0, 0, 200" /> <!-- Login progress box background -->
27<LoginProgressBoxShadowColor value="0, 0, 0, 200" /> 28<LoginProgressBoxShadowColor value="0, 0, 0, 200" /> <!-- Login progress box shadow -->
28<LoginProgressBoxTextColor value="255, 255, 255, 255"/> 29<LoginProgressBoxTextColor value="255, 255, 255, 255"/> <!-- Login progress text -->
29 30
30<!-- BUTTONS --> 31<!-- BUTTONS -->
31<ButtonLabelColor value="220, 220, 220, 255" /> <!-- Text labels for buttons, like the "OK" text --> 32<ButtonLabelColor value="220, 220, 220, 255" /> <!-- Label text color for buttons, like the "OK" text -->
32<ButtonLabelSelectedColor value="220, 220, 220, 255" /> 33<ButtonLabelSelectedColor value="220, 220, 220, 255" /> <!-- Label text color when button selected -->
33<ButtonLabelDisabledColor value="147, 169, 213, 200" /> 34<ButtonLabelDisabledColor value="147, 169, 213, 200" /> <!-- Label text color when button disabled -->
34<ButtonLabelSelectedDisabledColor value="164, 190, 237, 200" /> 35<ButtonLabelSelectedDisabledColor value="164, 190, 237, 200" /> <!-- Label text color when button disabled but selected -->
35<ButtonSelectedBgColor value="62, 62, 62, 255" /> 36<ButtonSelectedBgColor value="62, 62, 62, 255" /> <!-- Not used -->
36<ButtonSelectedColor value="255, 255, 255, 255" /> 37<ButtonSelectedColor value="255, 255, 255, 255" /> <!-- Not used -->
37<ButtonUnselectedBgColor value="62, 62, 62, 255" /> 38<ButtonUnselectedBgColor value="62, 62, 62, 255" /> <!-- Not used -->
38<ButtonUnselectedFgColor value="255, 255, 255, 255" /> 39<ButtonUnselectedFgColor value="255, 255, 255, 255" /> <!-- Not used -->
39<ButtonBorderColor value="239, 156, 0, 255" /> 40<ButtonBorderColor value="239, 156, 0, 255" /> <!-- Not used -->
40<ButtonFlashBgColor value="255, 190, 62, 127" /> 41<ButtonFlashBgColor value="255, 190, 62, 127" /> <!-- Color of tab flashing on incoming IM -->
41<ButtonColor value="255, 255, 255, 255" /> <!-- Blended with button art, usually left as opaque white --> 42<ButtonColor value="255, 255, 255, 255" /> <!-- Blended with button art, usually left as opaque white -->
42<ButtonImageColor value="255, 255, 255, 255" /> <!-- Blended with button art, usually left as opaque white --> 43<ButtonImageColor value="255, 255, 255, 255" /> <!-- Button color override (also checkboxes and scroll arrows).
43 44 Blended with button art, usually left as opaque white -->
44<!-- SLIDERS --> 45
45<SliderDisabledThumbColor value="0, 0, 0, 255" /> 46<!-- SLIDERS, single line -->
46<SliderThumbCenterColor value="200, 200, 200, 255" /> 47<SliderDisabledThumbColor value="0, 0, 0, 255" /> <!-- Not used -->
47<SliderThumbOutlineColor value="255, 255, 255, 255" /> 48<SliderThumbCenterColor value="200, 200, 200, 255" /> <!-- Unfocused slider thumb color -->
48<SliderTrackColor value="255, 255, 255, 255" /> 49<SliderThumbOutlineColor value="255, 255, 255, 255" /> <!-- Focused slider thumb color -->
49 50<SliderTrackColor value="255, 255, 255, 255" /> <!-- Not used -->
51
52<!-- SLIDERS, multi line (as in the sky editor) -->
53<MultiSliderDisabledThumbColor value="0, 0, 0, 255"/> <!-- Not used -->
54<MultiSliderThumbCenterColor value="183, 184, 188, 255"/> <!-- Not used -->
55<MultiSliderThumbOutlineColor value="0, 0, 0, 255"/> <!-- Not used -->
56<MultiSliderTrackColor value="30, 30, 30, 255"/> <!-- Not used -->
57<MultiSliderThumbCenterSelectedColor value="255, 50, 50, 255"/> <!-- Not used -->
58<MultiSliderTriangleColor value="255, 255, 50, 255"/> <!-- Not used -->
59
50<!-- TEXTFIELDS --> 60<!-- TEXTFIELDS -->
51<TextBgFocusColor value="200, 209, 204, 255" /> <!-- Text field background when receiving input (focused) --> 61<TextBgFocusColor value="200, 209, 204, 255" /> <!-- Text field background when receiving input (focused) -->
52<TextBgReadOnlyColor value="62, 62, 62, 160" /> <!-- Text field background when read-only --> 62<TextBgReadOnlyColor value="62, 62, 62, 160" /> <!-- Text field background when read-only -->
53<TextBgWriteableColor value="200, 209, 204, 230" /> <!-- Text field background when not receiving input (unfocused) --> 63<TextBgWriteableColor value="200, 209, 204, 230" /> <!-- Text field background when not receiving input (unfocused) -->
54<TextCursorColor value="0, 0, 0, 255" /> 64<TextCursorColor value="0, 0, 0, 255" /> <!-- Cursor color in notecards and scripts only -->
55<TextFgColor value="0, 0, 0, 255" /> 65<TextFgColor value="0, 0, 0, 255" /> <!-- Text color for all text entry fields; cursor color for line editors -->
56<TextFgReadOnlyColor value="255, 255, 255, 200" /> 66<TextFgReadOnlyColor value="255, 255, 255, 200" /> <!-- Text color in read-only fields -->
57<TextFgTentativeColor value="0, 0, 0, 128" /> 67<TextFgTentativeColor value="0, 0, 0, 128" /> <!-- Initial entry in text entry fields, e.g. "Click here to chat." -->
58<TextEmbeddedItemReadOnlyColor value="58, 147, 242, 255" /> <!-- i.e. About Land name that you don't own --> 68<TextEmbeddedItemReadOnlyColor value="58, 147, 242, 255" /> <!-- Text of read-only items embedded in notecards -->
59<TextEmbeddedItemColor value="0, 0, 128, 255" /> 69<TextEmbeddedItemColor value="0, 0, 128, 255" /> <!-- Text of items embedded in notecards -->
60<TextDefaultColor value="0, 20, 0, 255"/> 70<TextDefaultColor value="0, 20, 0, 255"/> <!-- Non-keyword text in the script editor -->
61 71<ScriptBgReadOnlyColor value="100, 100, 100, 255" /> <!-- Not used -->
72
62<!-- LISTBOXES --> 73<!-- LISTBOXES -->
63<ScrollBgReadOnlyColor value="200, 209, 204, 255" /> 74<ScrollBgReadOnlyColor value="200, 209, 204, 255" /> <!-- Background of read only lists -->
64<ScrollBgWriteableColor value="200, 209, 204, 255" /> 75<ScrollBgWriteableColor value="200, 209, 204, 255" /> <!-- Background of editable lists, e.g. groups-->
65<ScrollBGStripeColor value="100, 100, 100, 40" /> 76<ScrollBGStripeColor value="100, 100, 100, 40" /> <!-- Background stripes in sortable lists, e.g. Events Search -->
66<ScrollDisabledColor value="128, 128, 128, 204" /> 77<ScrollDisabledColor value="128, 128, 128, 204" />
67<ScrollSelectedBGColor value="100, 100, 188, 150" /> 78<ScrollSelectedBGColor value="100, 100, 188, 150" /> <!-- Selected item in a list highlight -->
68<ScrollSelectedFGColor value="0, 0, 0, 204" /> <!-- Text color --> 79<ScrollSelectedFGColor value="0, 0, 0, 204" /> <!-- Text color -->
69<ScrollUnselectedColor value="0, 0, 0, 204" /> <!-- Text color --> 80<ScrollUnselectedColor value="0, 0, 0, 204" /> <!-- Text color -->
70<ScrollHighlightedColor value="183, 184, 188, 128" /> <!-- Hover color --> 81<ScrollHighlightedColor value="183, 184, 188, 128" /> <!-- Hover color -->
71<ScrollbarThumbColor value="60, 76, 124, 255" /> <!-- Scroll bar--> 82<ScrollbarThumbColor value="60, 76, 124, 255" /> <!-- Scroll bar -->
72<ScrollbarTrackColor value="153, 154, 158, 255" /> <!-- Scroll bar background--> 83<ScrollbarTrackColor value="153, 154, 158, 255" /> <!-- Scroll bar background -->
73 84
74<!-- MENUS --> 85<!-- MENUS -->
75<MenuBarBgColor value="62, 62, 62, 255" /> 86<MenuBarBgColor value="62, 62, 62, 255" /> <!-- Menu bar background -->
76<MenuBarGodBgColor value="62, 128, 62, 255" /> 87<MenuBarGodBgColor value="62, 128, 62, 255" /> <!-- Menu bar background with God Mode enabled -->
77<MenuNonProductionGodBgColor value="0, 128, 0, 255" /> 88<MenuNonProductionGodBgColor value="0, 128, 0, 255" /> <!-- Beta viewer menu bar background -->
78<MenuNonProductionBgColor value="128, 0, 0, 255" /> 89<MenuNonProductionBgColor value="128, 0, 0, 255" /> <!-- Beta viewer menu bar background with God Mode enabled -->
79<MenuDefaultBgColor value="0, 0, 0, 255" /> 90<MenuDefaultBgColor value="0, 0, 0, 255" /> <!-- Menu background -->
80<MenuItemDisabledColor value="133, 133, 164, 128" /> <!-- Menu text color; also text color for pie menus and treeviews (like Inventory) --> 91<MenuItemDisabledColor value="133, 133, 164, 128" /> <!-- Menu text color; also text color for pie menus and treeviews (like Inventory) -->
81<MenuItemEnabledColor value="255, 255, 255, 255" /> <!-- Menu text color; also text color for pie menus and treeviews (like Inventory) --> 92<MenuItemEnabledColor value="255, 255, 255, 255" /> <!-- Menu text color; also text color for pie menus and treeviews (like Inventory) -->
82<MenuItemHighlightBgColor value="183, 184, 188, 100" /> 93<MenuItemHighlightBgColor value="183, 184, 188, 100" /> <!-- Highlighted menu item background color -->
83<MenuItemHighlightFgColor value="255, 255, 255, 255" /> <!-- Highlighted menu text color; also treeview node selection highlight --> 94<MenuItemHighlightFgColor value="255, 255, 255, 255" /> <!-- Highlighted menu item text color; also treeview node selection highlight -->
84<MenuPopupBgColor value="0, 0, 0, 255" /> 95<MenuPopupBgColor value="0, 0, 0, 255" /> <!-- Right-click menu background -->
85 96
86<!-- PIE MENUS --> 97<!-- PIE MENUS -->
87<PieMenuBgColor value="62, 62, 62, 150" /> 98<PieMenuBgColor value="62, 62, 62, 150" /> <!-- Color of pie menu -->
88<PieMenuLineColor value="0, 0, 0, 128" /> 99<PieMenuLineColor value="0, 0, 0, 128" /> <!-- Color of pie menu slice separators -->
89<PieMenuSelectedColor value="183, 184, 188, 77" /> 100<PieMenuSelectedColor value="183, 184, 188, 77" /> <!-- Color of pie menu slice when selected -->
90 101
102<!-- MENU BAR -->
103<ParcelTextColor value="144, 165, 208, 255" /> <!-- Parcel name on menu bar, normal state -->
104<ParcelHoverColor value="255, 255, 255, 255" /> <!-- Parcel name on menu bar, hover state -->
105<TimeTextColor value="255, 255, 255, 255" /> <!-- SL Time on menu bar -->
106<BalanceTextColor value="0, 255, 0, 255" /> <!-- Linden dollar balance on menu bar -->
107<HealthTextColor value="255, 255, 255, 255" /> <!-- Damage meter text on menu bar -->
108
91<!-- TOOLTIPS --> 109<!-- TOOLTIPS -->
92<ToolTipBgColor value="183, 184, 188, 200" /> 110<ToolTipBgColor value="183, 184, 188, 200" /> <!-- Tool tips, i.e. "Hover Tips" -->
93<ToolTipBorderColor value="171, 212, 245, 255" /> 111<ToolTipBorderColor value="171, 212, 245, 255" /> <!-- Not used -->
94<ToolTipTextColor value="0, 0, 0, 255" /> 112<ToolTipTextColor value="0, 0, 0, 255" /> <!-- Tool tips text color -->
95 113
96<!-- NOTIFICATION POP-UPS --> 114<!-- NOTIFICATION POP-UPS -->
97<NotifyBoxColor value="70, 170, 255, 255" /> 115<NotifyBoxColor value="70, 170, 255, 255" /> <!-- Notification background, i.e. tp requests -->
98<NotifyTextColor value="0, 0, 0, 255" /> 116<NotifyTextColor value="0, 0, 0, 255" /> <!-- Notification text -->
99<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts --> 117<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- Background color of caution permissions prompts -->
100<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts --> 118<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- Foreground color of the special title text in caution permissions prompts -->
101<GroupNotifyBoxColor value="70, 170, 255, 255" /> 119<GroupNotifyBoxColor value="70, 170, 255, 255" /> <!-- Group notices background -->
102<GroupNotifyTextColor value="0, 30, 60, 255" /> 120<GroupNotifyTextColor value="0, 30, 60, 255" /> <!-- Group notices text -->
103 121
122<!-- ALERT BOX COLORS -->
123<AlertBoxColor value="62, 62, 62, 255" /> <!-- Alert floaters, like the warning before returning objects -->
124<AlertTextColor value="147, 169, 213, 255" /> <!-- Alert floater text -->
125<AlertCautionBoxColor value="254, 209, 118, 255" /> <!-- Background color of caution alerts -->
126<AlertCautionTextColor value="0, 0, 0, 255" /> <!-- Foreground color of the special title text in caution alerts -->
127
104<!-- CHAT AND IM HISTORY TEXTBOX COLORS --> 128<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
105<ChatHistoryBgColor value="0, 0, 0, 0" /> 129<ChatHistoryBgColor value="0, 0, 0, 0" /> <!-- Local Chat background -->
106<ChatHistoryTextColor value="255, 255, 255, 255" /> 130<ChatHistoryTextColor value="255, 255, 255, 255" /> <!-- Local Chat text -->
107<IMHistoryBgColor value="0, 30, 80, 200" /> 131<IMHistoryBgColor value="0, 30, 80, 200" /> <!-- Instant Message background -->
108<IMHistoryTextColor value="255, 255, 255, 255" /> 132<IMHistoryTextColor value="255, 255, 255, 255" /> <!-- Instant Message text -->
109 133
110<!-- IN-WORLD SELECTION --> 134<!-- IN-WORLD SELECTION -->
111<SilhouetteParentColor value="255, 255, 0, 255" /> 135<SilhouetteParentColor value="255, 255, 0, 255" /> <!-- Root prim selection outline -->
112<SilhouetteChildColor value="32, 106, 196, 255" /> 136<SilhouetteChildColor value="32, 106, 196, 255" /> <!-- Child prim selection outline -->
113<HighlightParentColor value="171, 212, 245, 255" /> 137<HighlightParentColor value="171, 212, 245, 255" />
114<HighlightChildColor value="171, 212, 245, 255" /> 138<HighlightChildColor value="171, 212, 245, 255" />
115<HighlightInspectColor value="255, 0, 255, 255" /> 139<HighlightInspectColor value="255, 0, 255, 255" /> <!-- Selection outline when inspecting -->
116 140
117<!-- EDIT MODE GRID --> 141<!-- EDIT MODE GRID -->
118<GridFocusPointColor value="255, 255, 255, 128" /> 142<GridFocusPointColor value="255, 255, 255, 128" /> <!-- Not used -->
119<GridlineColor value="255, 255, 255, 255" /> 143<GridlineColor value="255, 255, 255, 255" /> <!-- Grid color -->
120<GridlineBGColor value="235, 235, 255, 200" /> 144<GridlineBGColor value="235, 235, 255, 200" /> <!-- Grid background color -->
121<GridlineShadowColor value="0, 0, 0, 80" /> 145<GridlineShadowColor value="0, 0, 0, 80" /> <!-- Grid drop shadow -->
122 146
123<!-- PROPERTY LINES --> 147<!-- PROPERTY LINES -->
124<PropertyColorAvail value="0, 0, 0, 0" /> 148<PropertyColorAvail value="0, 0, 0, 0" />
125<PropertyColorGroup value="0, 184, 184, 102" /> 149<PropertyColorGroup value="0, 184, 184, 102" /> <!-- Property group owns -->
126<PropertyColorOther value="255, 0, 0, 102" /> 150<PropertyColorOther value="255, 0, 0, 102" /> <!-- Property others own -->
127<PropertyColorSelf value="0, 255, 0, 102" /> 151<PropertyColorSelf value="0, 255, 0, 102" /> <!-- Property you own -->
128<PropertyColorForSale value="255, 128, 0, 102" /> 152<PropertyColorForSale value="255, 128, 0, 102" /> <!-- Property for sale -->
129<PropertyColorAuction value="128, 0, 255, 102" /> <!-- Match the color on the world map --> 153<PropertyColorAuction value="128, 0, 255, 102" /> <!-- Match the color on the world map -->
130 154
131<!-- Icon Enable/Disable --> 155<!-- MEDIA ICONS -->
132<IconEnabledColor value="255, 255, 255, 255"/> 156<IconEnabledColor value="255, 255, 255, 255"/> <!-- Media/music icon enabled -->
133<IconDisabledColor value="147, 169, 213, 200"/> 157<IconDisabledColor value="147, 169, 213, 200"/> <!-- Media/music icon disabled -->
134 158
135<!-- MINI-MAP --> 159<!-- MINI-MAP -->
136<NetMapBackgroundColor value="0, 0, 0, 77" /> 160<NetMapBackgroundColor value="0, 0, 0, 77" /> <!-- Mini-map floater background -->
137<NetMapYouOwnAboveWater value="0, 255, 255, 255" /> 161<NetMapYouOwnAboveWater value="0, 255, 255, 255" /> <!-- Objects owned by you above water -->
138<NetMapYouOwnBelowWater value="0, 200, 200, 255" /> 162<NetMapYouOwnBelowWater value="0, 200, 200, 255" /> <!-- Objects owned by you below water -->
139<NetMapGroupOwnAboveWater value="255, 0, 255, 255" /> 163<NetMapGroupOwnAboveWater value="255, 0, 255, 255" /> <!-- Group owned objects above water -->
140<NetMapGroupOwnBelowWater value="200, 0, 200, 255" /> 164<NetMapGroupOwnBelowWater value="200, 0, 200, 255" /> <!-- Group owned objects below water -->
141<NetMapOtherOwnAboveWater value="60, 60, 60, 255" /> 165<NetMapOtherOwnAboveWater value="60, 60, 60, 255" /> <!-- Objects owned by others above water -->
142<NetMapOtherOwnBelowWater value="30, 30, 30, 255" /> 166<NetMapOtherOwnBelowWater value="30, 30, 30, 255" /> <!-- Objects owned by others below water -->
143 167<NetMapGlyphColorAvatar value="0, 255, 0, 255" /> <!-- Also the color of avatar glyphs on the map -->
168<NetMapGlyphColorFriend value="255, 255, 0, 255" />
169
170<!-- INVENTORY -->
171<InventoryBackgroundColor value="62, 62, 62, 80"/> <!-- Inventory floater background -->
172<FolderViewLoadingMessageTextColor value="240, 165, 90, 255"/> <!-- "loading..." -->
173<InventoryItemSuffixColor value="191, 216, 216, 255"/> <!-- "worn", "no modify", etc -->
174<FilterBackgroundColor value="0, 0, 20, 255" /> <!-- Inventory search background -->
175<FilterTextColor value="255, 200, 70, 255" /> <!-- Inventory search text -->
176<InventorySearchStatusColor value="255, 255, 255, 255" /> <!-- "Searching..." -->
177
144<!-- HELP WINDOW --> 178<!-- HELP WINDOW -->
145<HelpBgColor value="200, 209, 204, 255" /> 179<HelpBgColor value="200, 209, 204, 255" />
146<HelpFgColor value="0, 0, 0, 255" /> 180<HelpFgColor value="0, 0, 0, 255" />
@@ -150,40 +184,13 @@
150<HelpScrollShadowColor value="0, 0, 0, 255" /> 184<HelpScrollShadowColor value="0, 0, 0, 255" />
151 185
152<!-- MISC --> 186<!-- MISC -->
153<AvatarNameColor value="251, 175, 93, 255" /> <!-- Text color of avatar nametags --> 187<AvatarNameColor value="251, 175, 93, 255" /> <!-- Text color of avatar nametags -->
154<FocusColor value="239, 156, 0, 255" /> <!-- Color of the glow around UI controls with keyboard focus --> 188<FocusColor value="239, 156, 0, 255" /> <!-- Color of the glow around UI controls with keyboard focus -->
155<FloaterButtonImageColor value="239, 156, 0, 255" /> <!-- The floater buttons (like the close box) are white images that receive this color. --> 189<FloaterButtonImageColor value="239, 156, 0, 255" /> <!-- The floater buttons (like the close box) are white images that receive this color. -->
156<ButtonCautionImageColor value="255, 255, 255, 255" /> <!-- Match the caution dialog buttons to the default --> 190<ButtonCautionImageColor value="255, 255, 255, 255" /> <!-- Match the caution dialog buttons to the default -->
157<HealthTextColor value="255, 255, 255, 255" />
158<MapAutopilotColor value="255, 128, 0, 255" /> 191<MapAutopilotColor value="255, 128, 0, 255" />
159<ContextSilhouetteColor value="239, 156, 0, 255" /> <!-- For "context" highlighting, i.e. pie menu --> 192<ContextSilhouetteColor value="239, 156, 0, 255" /> <!-- For "context" highlighting, i.e. pie menu -->
160<ScriptBgReadOnlyColor value="100, 100, 100, 255" /> 193<GroupOverTierColor value="110, 15, 15, 255" /> <!-- Warning text in Group Info window -->
161<ParcelTextColor value="144, 165, 208, 255" /> <!-- Parcel name on menu bar, normal state --> 194<ConsoleBackground value="0, 0, 0, 255" /> <!-- Background for inworld chat -->
162<ParcelHoverColor value="255, 255, 255, 255" /> <!-- Parcel name on menu bar, hover state --> 195
163<TimeTextColor value="255, 255, 255, 255" /> <!-- SL Time on menu bar -->
164<BalanceTextColor value="0, 255, 0, 255" /> <!-- Linden dollar balance on menu bar -->
165<HealthTextColor value="255, 255, 255, 255" /> <!-- Damage meter text on menu bar -->
166<GroupOverTierColor value="110, 15, 15, 255" /> <!-- Warning text in Group Info window -->
167<FilterBackgroundColor value="0, 0, 20, 255" /> <!-- Matching region of Inventory search text -->
168<FilterTextColor value="255, 200, 70, 255" />
169<InventoryItemSuffixColor value="191, 216, 216, 255" /> <!-- "worn", "no modify", etc-->
170<InventorySearchStatusColor value="255, 255, 255, 255" />
171<ConsoleBackground value="0, 0, 0, 255" />
172<FolderViewLoadingMessageTextColor value="240, 165, 90, 255"/> <!-- "loading..." in the inv -->
173<InventoryBackgroundColor value="62, 62, 62, 80"/>
174
175<!-- Alert box colors -->
176<AlertBoxColor value="62, 62, 62, 255" /> <!-- Warnings floaters, like when returning objects -->
177<AlertTextColor value="147, 169, 213, 255" />
178<AlertCautionBoxColor value="254, 209, 118, 255" /> <!-- Background color of caution alerts -->
179<AlertCautionTextColor value="0, 0, 0, 255" /> <!-- Foreground color of the special title text in caution alerts -->
180
181<!-- Multi sliders, as in the sky animation setting -->
182<MultiSliderDisabledThumbColor value="0, 0, 0, 255"/>
183<MultiSliderThumbCenterColor value="183, 184, 188, 255"/>
184<MultiSliderThumbOutlineColor value="0, 0, 0, 255"/>
185<MultiSliderTrackColor value="30, 30, 30, 255"/>
186<MultiSliderThumbCenterSelectedColor value="255, 50, 50, 255"/>
187<MultiSliderTriangleColor value="255, 255, 50, 255"/>
188
189</settings> 196</settings>
diff --git a/linden/indra/newview/skins/default/xui/en-us/alerts.xml b/linden/indra/newview/skins/default/xui/en-us/alerts.xml
index 8bbdc3d..c2d4301 100644
--- a/linden/indra/newview/skins/default/xui/en-us/alerts.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/alerts.xml
@@ -2957,9 +2957,9 @@ Download to your Applications folder?
2957 Cancel 2957 Cancel
2958 </option> 2958 </option>
2959 </alert> 2959 </alert>
2960 <alert modal="true" name="WebLaunchSupportWiki"> 2960 <alert modal="true" name="WebLaunchImprudenceBlog">
2961 <message name="message"> 2961 <message name="message">
2962 Go to the Official Linden Blog, for the Latest News and Information. 2962 Go to the Official Imprudence Blog, for the Latest News and Information.
2963 </message> 2963 </message>
2964 <ignore name="ignore"> 2964 <ignore name="ignore">
2965 When launching web browser to view the blog 2965 When launching web browser to view the blog
@@ -2971,6 +2971,20 @@ Download to your Applications folder?
2971 Cancel 2971 Cancel
2972 </option> 2972 </option>
2973 </alert> 2973 </alert>
2974 <alert modal="true" name="WebLaunchImprudenceForums">
2975 <message name="message">
2976 Go to the Official Imprudence Forums to discuss the Imprudence Project.
2977 </message>
2978 <ignore name="ignore">
2979 When launching web browser to view the forums
2980 </ignore>
2981 <option name="Gotopage">
2982 OK
2983 </option>
2984 <option name="Cancel">
2985 Cancel
2986 </option>
2987 </alert>
2974 <alert modal="true" name="WebLaunchLSLGuide"> 2988 <alert modal="true" name="WebLaunchLSLGuide">
2975 <message name="message"> 2989 <message name="message">
2976 Go to the Scripting Guide for scripting help? 2990 Go to the Scripting Guide for scripting help?
@@ -4225,7 +4239,7 @@ will only work if a script is added with a money() event.
4225 </alert> 4239 </alert>
4226 <alert modal="true" name="ClickOpenF1Help"> 4240 <alert modal="true" name="ClickOpenF1Help">
4227 <message name="message"> 4241 <message name="message">
4228 Visit the Second Life Support Web site? 4242 Visit the Second Life Support Web site? (note: this is not an Imprudence Help site)
4229 </message> 4243 </message>
4230 <ignore name="ignore"> 4244 <ignore name="ignore">
4231 When visiting the Second Life Support Website. 4245 When visiting the Second Life Support Website.
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/en-us/floater_instant_message.xml
index c3058c4..076598c 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_instant_message.xml
@@ -36,9 +36,12 @@
36 </string> 36 </string>
37 <button bottom="-40" follows="left|top" height="20" label="Profile..." left="5" 37 <button bottom="-40" follows="left|top" height="20" label="Profile..." left="5"
38 name="profile_callee_btn" width="80" /> 38 name="profile_callee_btn" width="80" />
39 <button bottom_delta="0" follows="left|top" font="SansSerif"
40 halign="center" bottom ="-40" height="20" label="Offer Teleport" left_delta="85"
41 mouse_opaque="true" name="offer_tp_btn" scale_image="true" width="102" />
39 <button bottom="-40" follows="left|top" halign="center" height="20" 42 <button bottom="-40" follows="left|top" halign="center" height="20"
40 image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left" 43 image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left"
41 label="Call" left_delta="85" name="start_call_btn" width="100" /> 44 label="Call" left_delta="107" name="start_call_btn" width="100" />
42 <button bottom="-40" follows="left|top" halign="center" height="20" 45 <button bottom="-40" follows="left|top" halign="center" height="20"
43 image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" 46 image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left"
44 label="End Call" left_delta="0" name="end_call_btn" pad_right="10" 47 label="End Call" left_delta="0" name="end_call_btn" pad_right="10"
@@ -51,9 +54,6 @@
51 image_unselected="icn_speaker_dark.tga" label="" left_delta="56" 54 image_unselected="icn_speaker_dark.tga" label="" left_delta="56"
52 name="mute_btn" tool_tip="Mute voice" width="25" /> 55 name="mute_btn" tool_tip="Mute voice" width="25" />
53 </panel> 56 </panel>
54 <button bottom_delta="0" follows="right|top" font="SansSerif"
55 halign="center" bottom ="-40" height="20" label="Offer Teleport" right="-5"
56 mouse_opaque="true" name="offer_tp_btn" scale_image="true" width="102" />
57 <text_editor type="string" length="1" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" 57 <text_editor type="string" length="1" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor"
58 bottom="30" embedded_items="false" enabled="false" 58 bottom="30" embedded_items="false" enabled="false"
59 follows="left|top|right|bottom" font="SansSerif" height="221" left="5" 59 follows="left|top|right|bottom" font="SansSerif" height="221" left="5"
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_media_browser.xml b/linden/indra/newview/skins/default/xui/en-us/floater_media_browser.xml
index 5b2d310..077ab23 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_media_browser.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_media_browser.xml
@@ -12,9 +12,11 @@
12 <button bottom_delta="0" enabled="false" follows="left|top" height="20" label="Reload" 12 <button bottom_delta="0" enabled="false" follows="left|top" height="20" label="Reload"
13 left_delta="65" name="reload" width="70" /> 13 left_delta="65" name="reload" width="70" />
14 <combo_box allow_text_entry="true" bottom_delta="0" follows="left|top|right" height="20" 14 <combo_box allow_text_entry="true" bottom_delta="0" follows="left|top|right" height="20"
15 left_delta="75" max_chars="255" name="address" width="280" /> 15 left_delta="75" max_chars="235" name="address" width="225" />
16 <button bottom_delta="0" enabled="false" follows="right|top" height="20" label="Go" 16 <button bottom_delta="0" enabled="false" follows="right|top" height="20" label="Go"
17 left_delta="285" name="go" width="55" /> 17 left_delta="230" name="go" width="55" />
18 <button bottom_delta="0" enabled="true" follows="right|top" height="20" label="Home"
19 left_delta="60" name="home" width="55" />
18 </layout_panel> 20 </layout_panel>
19 <layout_panel auto_resize="false" bottom="0" height="20" left="0" 21 <layout_panel auto_resize="false" bottom="0" height="20" left="0"
20 name="parcel_owner_controls" user_resize="false" width="540"> 22 name="parcel_owner_controls" user_resize="false" width="540">
@@ -30,6 +32,8 @@
30 <check_box bottom="5" control_name="UseExternalBrowser" follows="bottom|left" height="20" 32 <check_box bottom="5" control_name="UseExternalBrowser" follows="bottom|left" height="20"
31 label="Always open in my web browser" left_delta="190" name="open_always" 33 label="Always open in my web browser" left_delta="190" name="open_always"
32 width="200" /> 34 width="200" />
35 <button bottom="5" enabled="false" follows="bottom|right" height="20" label="Set Home To Here"
36 left="-265" name="set_home" width="155" />
33 <button bottom="5" follows="bottom|right" height="20" label="Close" left="-70" 37 <button bottom="5" follows="bottom|right" height="20" label="Close" left="-70"
34 name="close" width="70" /> 38 name="close" width="70" />
35 </layout_panel> 39 </layout_panel>
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_login.xml b/linden/indra/newview/skins/default/xui/en-us/menu_login.xml
index 2afc560..8d06657 100644
--- a/linden/indra/newview/skins/default/xui/en-us/menu_login.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/menu_login.xml
@@ -21,12 +21,12 @@
21 <menu bottom="219" create_jump_keys="true" drop_shadow="true" enabled="true" 21 <menu bottom="219" create_jump_keys="true" drop_shadow="true" enabled="true"
22 height="317" label="Help" left="80" mouse_opaque="false" name="Help" 22 height="317" label="Help" left="80" mouse_opaque="false" name="Help"
23 opaque="true" tear_off="false" width="166"> 23 opaque="true" tear_off="false" width="166">
24 <menu_item_call bottom="-29" enabled="true" height="19" label="Second Life Help" left="0" 24 <menu_item_call bottom="-29" enabled="true" height="19" label="Viewer Help" left="0"
25 mouse_opaque="true" name="Second Life Help" shortcut="F1" width="166"> 25 mouse_opaque="true" name="Viewer Help" shortcut="F1" width="166">
26 <on_click function="ShowFloater" userdata="help f1" /> 26 <on_click function="ShowFloater" userdata="help f1" />
27 </menu_item_call> 27 </menu_item_call>
28 <menu_item_call bottom="-48" enabled="true" height="19" label="About Second Life..." left="0" 28 <menu_item_call bottom="-48" enabled="true" height="19" label="About Imprudence..." left="0"
29 mouse_opaque="true" name="About Second Life..." width="166"> 29 mouse_opaque="true" name="About Imprudence..." width="166">
30 <on_click function="ShowFloater" userdata="about" /> 30 <on_click function="ShowFloater" userdata="about" />
31 </menu_item_call> 31 </menu_item_call>
32 </menu> 32 </menu>
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 f82f254..682acb9 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
@@ -271,6 +271,11 @@
271 <on_enable function="View.EnableLastChatter" /> 271 <on_enable function="View.EnableLastChatter" />
272 </menu_item_call> 272 </menu_item_call>
273 <menu_item_separator /> 273 <menu_item_separator />
274 <menu_item_call name="Web Browser" label="Web Browser"
275 shortcut="control|B">
276 <on_click function="ShowFloater" userdata="inworld browser" />
277 </menu_item_call>
278 <menu_item_separator />
274 <menu_item_check name="Toolbar" label="Toolbar"> 279 <menu_item_check name="Toolbar" label="Toolbar">
275 <on_click function="ShowFloater" userdata="toolbar" /> 280 <on_click function="ShowFloater" userdata="toolbar" />
276 <on_check function="FloaterVisible" userdata="toolbar" /> 281 <on_check function="FloaterVisible" userdata="toolbar" />
@@ -360,9 +365,9 @@
360 <on_click function="View.HighlightTransparent" userdata="" /> 365 <on_click function="View.HighlightTransparent" userdata="" />
361 <on_check function="View.CheckHighlightTransparent" /> 366 <on_check function="View.CheckHighlightTransparent" />
362 </menu_item_check> 367 </menu_item_check>
363 <menu_item_check name="Beacons Always On" label="Beacons Always On"> 368 <menu_item_check name="Beacons Always On" label="Show Beacons">
364 <on_click function="ToggleControl" userdata="BeaconAlwaysOn" /> 369 <on_click function="ToggleControl" userdata="BeaconsEnabled" />
365 <on_check control="BeaconAlwaysOn" /> 370 <on_check control="BeaconsEnabled" />
366 </menu_item_check> 371 </menu_item_check>
367 <menu name="Beacons" create_jump_keys="true" label="Beacons" 372 <menu name="Beacons" create_jump_keys="true" label="Beacons"
368 opaque="true" tear_off="true"> 373 opaque="true" tear_off="true">
@@ -608,6 +613,12 @@
608 userdata="movable" /> 613 userdata="movable" />
609 <on_check control="SelectMovableOnly" /> 614 <on_check control="SelectMovableOnly" />
610 </menu_item_check> 615 </menu_item_check>
616 <menu_item_check name="Select Only Copyable Objects"
617 label="Select Only Copyable Objects">
618 <on_click function="Tools.SelectOnlyCopyableObjects"
619 userdata="copyable" />
620 <on_check control="SelectCopyableOnly" />
621 </menu_item_check>
611 <menu_item_check name="Select By Surrounding" 622 <menu_item_check name="Select By Surrounding"
612 label="Select By Surrounding"> 623 label="Select By Surrounding">
613 <on_click function="Tools.SelectBySurrounding" 624 <on_click function="Tools.SelectBySurrounding"
@@ -764,7 +775,7 @@
764 775
765 <menu name="Help" create_jump_keys="true" label="Help" 776 <menu name="Help" create_jump_keys="true" label="Help"
766 opaque="true" tear_off="true"> 777 opaque="true" tear_off="true">
767 <menu_item_call name="Second Life Help" label="Second Life Help" 778 <menu_item_call name="Viewer Help" label="Viewer Help"
768 shortcut="F1"> 779 shortcut="F1">
769 <on_click function="ShowFloater" userdata="help f1" /> 780 <on_click function="ShowFloater" userdata="help f1" />
770 </menu_item_call> 781 </menu_item_call>
@@ -772,10 +783,15 @@
772 <on_click function="ShowFloater" userdata="help tutorial" /> 783 <on_click function="ShowFloater" userdata="help tutorial" />
773 </menu_item_call> 784 </menu_item_call>
774 <menu_item_separator /> 785 <menu_item_separator />
775 <menu_item_call name="Official Linden Blog..." 786 <menu_item_call name="Imprudence Blog..."
776 label="Official Linden Blog..."> 787 label="Imprudence Blog...">
788 <on_click function="PromptShowURL"
789 userdata="WebLaunchImprudenceBlog,http://www.imprudenceviewer.org/" />
790 </menu_item_call>
791 <menu_item_call name="Imprudence Forums..."
792 label="Imprudence Forums...">
777 <on_click function="PromptShowURL" 793 <on_click function="PromptShowURL"
778 userdata="WebLaunchSupportWiki,http://blog.secondlife.com/" /> 794 userdata="WebLaunchImprudenceForums,http://www.imprudenceviewer.org/forums/" />
779 </menu_item_call> 795 </menu_item_call>
780 <menu_item_separator /> 796 <menu_item_separator />
781 <menu_item_call name="Scripting Guide..." 797 <menu_item_call name="Scripting Guide..."
@@ -801,42 +817,8 @@
801 <on_click function="ShowFloater" userdata="lag meter" /> 817 <on_click function="ShowFloater" userdata="lag meter" />
802 </menu_item_call> 818 </menu_item_call>
803 <menu_item_separator /> 819 <menu_item_separator />
804 <menu name="Bug Reporting" create_jump_keys="true" 820 <menu_item_call name="About Imprudence..."
805 label="Bug Reporting" opaque="true" tear_off="true"> 821 label="About Imprudence...">
806 <menu_item_call name="Public Issue Tracker..."
807 label="Public Issue Tracker...">
808 <on_click function="PromptShowURL"
809 userdata="WebLaunchPublicIssue,http://jira.secondlife.com" />
810 </menu_item_call>
811 <menu_item_call name="Publc Issue Tracker Help..."
812 label="Public Issue Tracker Help...">
813 <on_click function="PromptShowURL"
814 userdata="WebLaunchPublicIssueHelp,http://wiki.secondlife.com/wiki/Issue_tracker" />
815 </menu_item_call>
816 <menu_item_separator />
817 <menu_item_call name="Bug Reporing 101..."
818 label="Bug Reporting 101...">
819 <on_click function="PromptShowURL"
820 userdata="WebLaunchBugReport101,http://wiki.secondlife.com/wiki/Bug_Reporting_101" />
821 </menu_item_call>
822 <menu_item_call name="Security Issues..."
823 label="Security Issues...">
824 <on_click function="PromptShowURL"
825 userdata="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues" />
826 </menu_item_call>
827 <menu_item_call name="QA Wiki..." label="QA Wiki...">
828 <on_click function="PromptShowURL"
829 userdata="WebLaunchQAWiki,http://wiki.secondlife.com/wiki/QA_Portal" />
830 </menu_item_call>
831 <menu_item_separator />
832 <menu_item_call name="Report Bug..." label="Report Bug...">
833 <on_click function="PromptShowURL"
834 userdata="WebLaunchPublicIssue,http://jira.secondlife.com" />
835 </menu_item_call>
836 </menu>
837 <menu_item_separator />
838 <menu_item_call name="About Second Life..."
839 label="About Second Life...">
840 <on_click function="ShowFloater" userdata="about" /> 822 <on_click function="ShowFloater" userdata="about" />
841 </menu_item_call> 823 </menu_item_call>
842 </menu> 824 </menu>
diff --git a/linden/indra/newview/skins/default/xui/en-us/notify.xml b/linden/indra/newview/skins/default/xui/en-us/notify.xml
index 6af19ee..d207a74 100644
--- a/linden/indra/newview/skins/default/xui/en-us/notify.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/notify.xml
@@ -579,6 +579,9 @@ to his or her location:
579 <option name="Decline"> 579 <option name="Decline">
580 Decline 580 Decline
581 </option> 581 </option>
582 <option name="Ignore">
583 Ignore
584 </option>
582 </notify> 585 </notify>
583 <notify name="OfferFriendshipNoMessage" tip="false"> 586 <notify name="OfferFriendshipNoMessage" tip="false">
584 <message name="message"> 587 <message name="message">
@@ -593,6 +596,9 @@ see each other&apos;s online status.)
593 <option name="Decline"> 596 <option name="Decline">
594 Decline 597 Decline
595 </option> 598 </option>
599 <option name="Ignore">
600 Ignore
601 </option>
596 </notify> 602 </notify>
597 <notify name="FriendshipAccepted" tip="false"> 603 <notify name="FriendshipAccepted" tip="false">
598 <message name="message"> 604 <message name="message">
@@ -616,6 +622,9 @@ so you can quickly IM this resident.
616 <option name="Decline"> 622 <option name="Decline">
617 Decline 623 Decline
618 </option> 624 </option>
625 <option name="Ignore">
626 Ignore
627 </option>
619 </notify> 628 </notify>
620 <notify name="RegionRestartMinutes" tip="false"> 629 <notify name="RegionRestartMinutes" tip="false">
621 <message name="message"> 630 <message name="message">
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_group_invite.xml b/linden/indra/newview/skins/default/xui/en-us/panel_group_invite.xml
index 8c5cbb5..74d71f4 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_group_invite.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_group_invite.xml
@@ -4,10 +4,10 @@
4 <text bottom_delta="-78" height="54" left="7" width="200" name="help_text"> 4 <text bottom_delta="-78" height="54" left="7" width="200" name="help_text">
5 You can select multiple residents to 5 You can select multiple residents to
6invite to your group. Click &apos;Open 6invite to your group. Click &apos;Open
7Person Chooser&apos; to start. 7Resident Chooser&apos; to start.
8 </text> 8 </text>
9 <button bottom_delta="-10" font="SansSerifSmall" halign="center" height="20" 9 <button bottom_delta="-10" font="SansSerifSmall" halign="center" height="20"
10 label="Open Person Chooser" left="5" name="add_button" tool_tip="" 10 label="Open Resident Chooser" left="5" name="add_button" tool_tip=""
11 width="200" /> 11 width="200" />
12 <name_list allow_calling_card_drop="true" background_visible="true" bottom_delta="-178" 12 <name_list allow_calling_card_drop="true" background_visible="true" bottom_delta="-178"
13 column_padding="0" draw_border="true" height="174" left="5" 13 column_padding="0" draw_border="true" height="174" left="5"
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_group_roles.xml b/linden/indra/newview/skins/default/xui/en-us/panel_group_roles.xml
index 53f847a..bd64622 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_group_roles.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_group_roles.xml
@@ -80,7 +80,7 @@ execute the Ability.
80 <column label="Last Login" name="online" width="116" /> 80 <column label="Last Login" name="online" width="116" />
81 </name_list> 81 </name_list>
82 <button bottom_delta="-20" font="SansSerif" halign="center" height="19" 82 <button bottom_delta="-20" font="SansSerif" halign="center" height="19"
83 label="Invite New Person ..." left="4" name="member_invite" width="146" /> 83 label="Invite New Member ..." left="4" name="member_invite" width="146" />
84 <button bottom_delta="0" font="SansSerif" halign="center" height="19" 84 <button bottom_delta="0" font="SansSerif" halign="center" height="19"
85 label="Eject From Group" left="-153" name="member_eject" width="146" /> 85 label="Eject From Group" left="-153" name="member_eject" width="146" />
86 <string name="help_text"> 86 <string name="help_text">
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_groups.xml b/linden/indra/newview/skins/default/xui/en-us/panel_groups.xml
index 6fa099e..c47985b 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_groups.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_groups.xml
@@ -25,15 +25,15 @@
25 label="IM/Call" left_delta="0" name="IM" 25 label="IM/Call" left_delta="0" name="IM"
26 tool_tip="Open Instant Message session" width="80" /> 26 tool_tip="Open Instant Message session" width="80" />
27 <button bottom_delta="-25" follows="top|right" font="SansSerif" height="22" 27 <button bottom_delta="-25" follows="top|right" font="SansSerif" height="22"
28 label="Info" name="Info" width="80" />
29 <button bottom_delta="-25" follows="top|right" font="SansSerif" height="22"
30 label="Activate" name="Activate" width="80" /> 28 label="Activate" name="Activate" width="80" />
31 <button bottom_delta="-25" follows="top|right" font="SansSerif" height="22" 29 <button bottom_delta="-25" follows="top|right" font="SansSerif" height="22"
32 label="Leave" name="Leave" width="80" /> 30 label="Invite..." name="Invite..." width="80" />
31 <button bottom_delta="-25" follows="top|right" font="SansSerif" height="22"
32 label="Info" name="Info" width="80" />
33 <button bottom_delta="-35" follows="top|right" font="SansSerif" height="22" 33 <button bottom_delta="-35" follows="top|right" font="SansSerif" height="22"
34 label="Create..." name="Create" width="80" /> 34 label="Create..." name="Create" width="80" />
35 <button bottom_delta="-25" follows="top|right" font="SansSerif" height="22" 35 <button bottom_delta="-25" follows="top|right" font="SansSerif" height="22"
36 label="Search..." name="Search..." width="80" /> 36 label="Search..." name="Search..." width="80" />
37 <button bottom_delta="-25" follows="top|right" font="SansSerif" height="22" 37 <button bottom_delta="-25" follows="top|right" font="SansSerif" height="22"
38 label="Invite..." name="Invite..." width="80" /> 38 label="Leave" name="Leave" width="80" />
39</panel> 39</panel>
diff --git a/linden/indra/newview/skins/silver/colors_base.xml b/linden/indra/newview/skins/silver/colors_base.xml
index 38db85c..dabada6 100644
--- a/linden/indra/newview/skins/silver/colors_base.xml
+++ b/linden/indra/newview/skins/silver/colors_base.xml
@@ -1,188 +1,188 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<settings version = "101"> 2<settings version = "101">
3 3<!-- Additional comments by McCabe Maxsted -->
4
4<!-- WINDOWS --> 5<!-- WINDOWS -->
5<TitleBarFocusColor value="50, 115, 185, 120" /> <!-- Focused window title bar highlight, no equivalent for unfocused windows --> 6<TitleBarFocusColor value="50, 115, 185, 120" /> <!-- Focused window title bar highlight, no equivalent for unfocused windows -->
6<FloaterFocusBorderColor value="50, 115, 185, 75" /> 7<FloaterFocusBorderColor value="50, 115, 185, 75" /> <!-- Focused window border color -->
7<FloaterUnfocusBorderColor value="110, 110, 110, 60" /> 8<FloaterUnfocusBorderColor value="110, 110, 110, 60" /> <!-- Unfocused window border color -->
8<FocusBackgroundColor value="165, 180, 200, 245" /> <!-- Background color of focused floaters --> 9<FocusBackgroundColor value="165, 180, 200, 245" /> <!-- Background color of focused windows -->
9<DefaultBackgroundColor value="165, 180, 200, 128" /> <!-- Background color for unfocused floaters --> 10<DefaultBackgroundColor value="165, 180, 200, 128" /> <!-- Background color for unfocused windows -->
10<ColorDropShadow value="0, 0, 0, 200" /> <!-- The drop shadow behind windows and menus --> 11<ColorDropShadow value="0, 0, 0, 200" /> <!-- The drop shadow behind windows and menus -->
11<DefaultHighlightDark value="50, 115, 185, 255" /> 12<DefaultHighlightDark value="50, 115, 185, 255" />
12<DefaultHighlightLight value="50, 115, 185, 255" /> 13<DefaultHighlightLight value="50, 115, 185, 255" /> <!-- Unfocused border, bottom portion -->
13<DefaultShadowDark value="50, 115, 185, 255" /> 14<DefaultShadowDark value="50, 115, 185, 255" /> <!-- Unfocused border, top portion -->
14<DefaultShadowLight value="50, 115, 185, 255" /> 15<DefaultShadowLight value="50, 115, 185, 255" /> <!-- Tab area border for IMs -->
15 16
16<!-- LABELS --> 17<!-- WINDOW LABELS -->
17<LabelDisabledColor value="0, 30, 60, 128" /> 18<LabelDisabledColor value="0, 30, 60, 128" /> <!-- Color for unfocused window titles -->
18<LabelSelectedColor value="255, 255, 255, 255" /> 19<LabelSelectedColor value="255, 255, 255, 255" /> <!-- Color for mouseovered clickable labels, e.g. version info on the login screen -->
19<LabelSelectedDisabledColor value="164, 190, 237, 128" /> 20<LabelSelectedDisabledColor value="164, 190, 237, 128" />
20<LabelTextColor value="0, 30, 60, 255" /> 21<LabelTextColor value="0, 30, 60, 255" /> <!-- Color for window labels and titles -->
21 22
22<!-- LOGIN --> 23<!-- LOGIN -->
23<LoginProgressBarBgColor value="255, 255, 255, 255" /> 24<LoginProgressBarBgColor value="255, 255, 255, 255" /> <!-- Login progress bar background -->
24<LoginProgressBarFgColor value="255, 255, 255, 255" /> 25<LoginProgressBarFgColor value="255, 255, 255, 255" /> <!-- Login progress bar -->
25<LoginProgressBoxBorderColor value="0, 30, 60, 0" /> 26<LoginProgressBoxBorderColor value="0, 30, 60, 0" /> <!-- Login progress box border -->
26<LoginProgressBoxCenterColor value="0, 0, 0, 200" /> 27<LoginProgressBoxCenterColor value="0, 0, 0, 200" /> <!-- Login progress box background -->
27<LoginProgressBoxShadowColor value="0, 0, 0, 200" /> 28<LoginProgressBoxShadowColor value="0, 0, 0, 200" /> <!-- Login progress box shadow -->
28<LoginProgressBoxTextColor value="255, 255, 255, 255"/> 29<LoginProgressBoxTextColor value="255, 255, 255, 255"/> <!-- Login progress text -->
29 30
30<!-- BUTTONS --> 31<!-- BUTTONS -->
31<ButtonLabelColor value="0, 30, 60, 255" /> <!-- Text labels for buttons, like the "OK" text --> 32<ButtonLabelColor value="0, 30, 60, 255" /> <!-- Label text color for buttons, like the "OK" text -->
32<ButtonLabelSelectedColor value="255, 255, 255, 255" /> 33<ButtonLabelSelectedColor value="255, 255, 255, 255" /> <!-- Label text color when button selected -->
33<ButtonLabelDisabledColor value="0, 30, 60, 128" /> 34<ButtonLabelDisabledColor value="0, 30, 60, 128" /> <!-- Label text color when button disabled -->
34<ButtonLabelSelectedDisabledColor value="0, 30, 60, 128" /> 35<ButtonLabelSelectedDisabledColor value="0, 30, 60, 128" /> <!-- Label text color when button disabled but selected -->
35<ButtonSelectedBgColor value="62, 62, 62, 255" /> 36<ButtonSelectedBgColor value="62, 62, 62, 255" /> <!-- Not used -->
36<ButtonSelectedColor value="255, 255, 255, 255" /> 37<ButtonSelectedColor value="255, 255, 255, 255" /> <!-- Not used -->
37<ButtonUnselectedBgColor value="62, 62, 62, 255" /> 38<ButtonUnselectedBgColor value="62, 62, 62, 255" /> <!-- Not used -->
38<ButtonUnselectedFgColor value="255, 255, 255, 255" /> 39<ButtonUnselectedFgColor value="255, 255, 255, 255" /> <!-- Not used -->
39<ButtonBorderColor value="239, 156, 0, 255" /> 40<ButtonBorderColor value="239, 156, 0, 255" /> <!-- Not used -->
40<ButtonFlashBgColor value="255, 190, 62, 127" /> 41<ButtonFlashBgColor value="255, 190, 62, 127" /> <!-- Color of tab flashing on incoming IM -->
41<ButtonColor value="255, 255, 255, 255" /> <!-- Blended with button art, usually left as opaque white --> 42<ButtonColor value="255, 255, 255, 255" /> <!-- Blended with button art, usually left as opaque white -->
42<ButtonImageColor value="255, 255, 255, 255" /> <!-- Blended with button art, usually left as opaque white --> 43<ButtonImageColor value="255, 255, 255, 255" /> <!-- Button color override (also checkboxes and scroll arrows).
43 44 Blended with button art, usually left as opaque white -->
44<!-- SLIDERS --> 45
45<SliderDisabledThumbColor value="0, 0, 0, 255" /> 46<!-- SLIDERS, single line -->
46<SliderThumbCenterColor value="255, 255, 255, 255" /> 47<SliderDisabledThumbColor value="0, 0, 0, 255" /> <!-- Not used -->
47<SliderThumbOutlineColor value="37, 64, 99, 255" /> 48<SliderThumbCenterColor value="255, 255, 255, 255" /> <!-- Unfocused slider thumb color -->
48<SliderTrackColor value="37, 64, 99, 255" /> 49<SliderThumbOutlineColor value="37, 64, 99, 255" /> <!-- Focused slider thumb color -->
49 50<SliderTrackColor value="37, 64, 99, 255" /> <!-- Not used -->
51
52<!-- SLIDERS, multi line (as in the sky editor) -->
53<MultiSliderDisabledThumbColor value="0, 0, 0, 255"/> <!-- Not used -->
54<MultiSliderThumbCenterColor value="183, 184, 188, 255"/> <!-- Not used -->
55<MultiSliderThumbOutlineColor value="0, 0, 0, 255"/> <!-- Not used -->
56<MultiSliderTrackColor value="30, 30, 30, 255"/> <!-- Not used -->
57<MultiSliderThumbCenterSelectedColor value="255, 50, 50, 255"/> <!-- Not used -->
58<MultiSliderTriangleColor value="255, 255, 50, 255"/> <!-- Not used -->
59
50<!-- TEXTFIELDS --> 60<!-- TEXTFIELDS -->
51<TextBgFocusColor value="255, 255, 255, 255" /> <!-- Text field background when receiving input (focused) --> 61<TextBgFocusColor value="255, 255, 255, 255" /> <!-- Text field background when receiving input (focused) -->
52<TextBgReadOnlyColor value="255, 255, 255, 140" /> <!-- Text field background when read-only --> 62<TextBgReadOnlyColor value="255, 255, 255, 140" /> <!-- Text field background when read-only -->
53<TextBgWriteableColor value="255, 255, 255, 255" /> <!-- Text field background when not receiving input (unfocused) --> 63<TextBgWriteableColor value="255, 255, 255, 255" /> <!-- Text field background when not receiving input (unfocused) -->
54<TextCursorColor value="0, 0, 0, 255" /> 64<TextCursorColor value="0, 0, 0, 255" /> <!-- Cursor color in notecards and scripts only -->
55<TextFgColor value="45, 48, 45, 255" /> 65<TextFgColor value="48, 48, 45, 255" /> <!-- Text color for all text entry fields; cursor color for line editors -->
56<TextFgReadOnlyColor value="0, 0, 0, 200" /> 66<TextFgReadOnlyColor value="0, 0, 0, 200" /> <!-- Text color in read-only fields -->
57<TextFgTentativeColor value="0, 0, 0, 128" /> 67<TextFgTentativeColor value="0, 0, 0, 128" /> <!-- Initial entry in text entry fields, e.g. "Click here to chat." -->
58<TextEmbeddedItemReadOnlyColor value="58, 147, 242, 255" /> <!-- i.e. About Land name that you don't own --> 68<TextEmbeddedItemReadOnlyColor value="58, 147, 242, 255" /> <!-- Text of read-only items embedded in notecards -->
59<TextEmbeddedItemColor value="0, 0, 128, 255" /> 69<TextEmbeddedItemColor value="0, 0, 128, 255" /> <!-- Text of items embedded in notecards -->
60<TextDefaultColor value="0, 20, 0, 255"/> 70<TextDefaultColor value="0, 20, 0, 255"/> <!-- Non-keyword text in the script editor -->
61 71<ScriptBgReadOnlyColor value="180, 180, 180, 255" /> <!-- Not used -->
72
62<!-- LISTBOXES --> 73<!-- LISTBOXES -->
63<ScrollBgReadOnlyColor value="255, 255, 255, 140" /> 74<ScrollBgReadOnlyColor value="255, 255, 255, 140" /> <!-- Background of read only lists -->
64<ScrollBgWriteableColor value="255, 255, 255, 140" /> 75<ScrollBgWriteableColor value="255, 255, 255, 140" /> <!-- Background of editable lists, e.g. groups-->
65<ScrollBGStripeColor value="145, 180, 220, 60" /> 76<ScrollBGStripeColor value="145, 180, 220, 60" /> <!-- Background stripes in sortable lists, e.g. Events Search -->
66<ScrollDisabledColor value="128, 128, 128, 204" /> 77<ScrollDisabledColor value="128, 128, 128, 204" />
67<ScrollSelectedBGColor value="50, 115, 185, 150" /> 78<ScrollSelectedBGColor value="50, 115, 185, 150" /> <!-- Selected item in a list highlight -->
68<ScrollSelectedFGColor value="0, 30, 60, 255" /> <!-- Text color --> 79<ScrollSelectedFGColor value="0, 30, 60, 255" /> <!-- Text color -->
69<ScrollUnselectedColor value="0, 30, 60, 255" /> <!-- Text color --> 80<ScrollUnselectedColor value="0, 30, 60, 255" /> <!-- Text color -->
70<ScrollHighlightedColor value="145, 180, 220, 128" /> <!-- Hover color --> 81<ScrollHighlightedColor value="145, 180, 220, 128" /> <!-- Hover color -->
71<ScrollbarThumbColor value="120, 160, 200, 255" /> 82<ScrollbarThumbColor value="120, 160, 200, 255" /> <!-- Scroll bar -->
72<ScrollbarTrackColor value="183, 202, 220, 255" /> 83<ScrollbarTrackColor value="183, 202, 220, 255" /> <!-- Scroll bar background -->
73 84
74<!-- MENUS --> 85<!-- MENUS -->
75<MenuBarBgColor value="185, 200, 220, 230" /> 86<MenuBarBgColor value="185, 200, 220, 230" /> <!-- Menu bar background -->
76<MenuBarGodBgColor value="100, 200, 130, 230" /> 87<MenuBarGodBgColor value="100, 200, 130, 230" /> <!-- Menu bar background with God Mode enabled -->
77<MenuNonProductionGodBgColor value="100, 200, 130, 230" /> 88<MenuNonProductionGodBgColor value="100, 200, 130, 230" /> <!-- Beta viewer menu bar background -->
78<MenuNonProductionBgColor value="230, 70, 70, 230" /> 89<MenuNonProductionBgColor value="230, 70, 70, 230" /> <!-- Beta viewer menu bar background with God Mode enabled -->
79<MenuDefaultBgColor value="210, 220, 230, 245" /> 90<MenuDefaultBgColor value="210, 220, 230, 245" /> <!-- Menu background -->
80<MenuItemDisabledColor value="0, 30, 60, 128" /> <!-- Menu text color; also text color for pie menus and treeviews (like Inventory) --> 91<MenuItemDisabledColor value="0, 30, 60, 128" /> <!-- Menu text color; also text color for pie menus and treeviews (like Inventory) -->
81<MenuItemEnabledColor value="0, 30, 60, 255" /> <!-- Menu text color; also text color for pie menus and treeviews (like Inventory) --> 92<MenuItemEnabledColor value="0, 30, 60, 255" /> <!-- Menu text color; also text color for pie menus and treeviews (like Inventory) -->
82<MenuItemHighlightBgColor value="50, 115, 185, 100" /> 93<MenuItemHighlightBgColor value="50, 115, 185, 100" /> <!-- Highlighted menu item background color -->
83<MenuItemHighlightFgColor value="0, 30, 60, 255" /> <!-- Highlighted menu text color; also treeview node selection highlight --> 94<MenuItemHighlightFgColor value="0, 30, 60, 255" /> <!-- Highlighted menu item text color; also treeview node selection highlight -->
84<MenuPopupBgColor value="197, 217, 234, 240" /> 95<MenuPopupBgColor value="197, 217, 234, 240" /> <!-- Right-click menu background -->
85 96
86<!-- PIE MENUS --> 97<!-- PIE MENUS -->
87<PieMenuBgColor value="118, 156, 201, 230" /> 98<PieMenuBgColor value="118, 156, 201, 230" /> <!-- Color of pie menu -->
88<PieMenuLineColor value="255, 255, 255, 60" /> 99<PieMenuLineColor value="255, 255, 255, 60" /> <!-- Color of pie menu slice separators -->
89<PieMenuSelectedColor value="185, 200, 220, 120" /> 100<PieMenuSelectedColor value="185, 200, 220, 120" /> <!-- Color of pie menu slice when selected -->
90 101
102<!-- MENU BAR -->
103<ParcelTextColor value="40, 40, 90, 255" /> <!-- Parcel name on menu bar, normal state -->
104<ParcelHoverColor value="70, 70, 100, 255" /> <!-- Parcel name on menu bar, hover state -->
105<TimeTextColor value="0, 30, 60, 255" /> <!-- SL Time on menu bar -->
106<BalanceTextColor value="0, 100, 40, 255" /> <!-- Linden dollar balance on menu bar -->
107<HealthTextColor value="110, 15, 15, 255" /> <!-- Damage meter text on menu bar -->
108
91<!-- TOOLTIPS --> 109<!-- TOOLTIPS -->
92<ToolTipBgColor value="250, 255, 225, 230" /> 110<ToolTipBgColor value="250, 255, 225, 230" /> <!-- Tool tips, i.e. "Hover Tips" -->
93<ToolTipBorderColor value="171, 212, 245, 255" /> 111<ToolTipBorderColor value="171, 212, 245, 255" /> <!-- Not used -->
94<ToolTipTextColor value="0, 0, 0, 255" /> 112<ToolTipTextColor value="0, 0, 0, 255" /> <!-- Tool tips text color -->
95 113
96<!-- NOTIFICATION POP-UPS --> 114<!-- NOTIFICATION POP-UPS -->
97<NotifyBoxColor value="170, 210, 255, 240" /> 115<NotifyBoxColor value="170, 210, 255, 240" /> <!-- Notification background, i.e. tp requests -->
98<NotifyTextColor value="0, 30, 60, 255" /> 116<NotifyTextColor value="0, 30, 60, 255" /> <!-- Notification text -->
99<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts --> 117<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- Background color of caution permissions prompts -->
100<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts --> 118<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- Foreground color of the special title text in caution permissions prompts -->
101<GroupNotifyBoxColor value="170, 210, 255, 240" /> 119<GroupNotifyBoxColor value="170, 210, 255, 240" /> <!-- Group notices background -->
102<GroupNotifyTextColor value="0, 30, 60, 255" /> 120<GroupNotifyTextColor value="0, 30, 60, 255" /> <!-- Group notices text -->
103 121
122<!-- ALERT BOX COLORS -->
123<AlertBoxColor value="165, 180, 200, 245" /> <!-- Alert floaters, like the warning before returning objects -->
124<AlertTextColor value="0, 30, 60, 255" /> <!-- Alert floater text -->
125<AlertCautionBoxColor value="254, 209, 118, 255" /> <!-- Background color of caution alerts -->
126<AlertCautionTextColor value="0, 0, 0, 255" /> <!-- Foreground color of the special title text in caution alerts -->
127
104<!-- CHAT AND IM HISTORY TEXTBOX COLORS --> 128<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
105<ChatHistoryBgColor value="0, 30, 80, 200" /> 129<ChatHistoryBgColor value="0, 30, 80, 200" /> <!-- Local Chat background -->
106<ChatHistoryTextColor value="255, 255, 255, 255" /> 130<ChatHistoryTextColor value="255, 255, 255, 255" /> <!-- Local Chat text -->
107<IMHistoryBgColor value="0, 30, 80, 200" /> 131<IMHistoryBgColor value="0, 30, 80, 200" /> <!-- Instant Message background -->
108<IMHistoryTextColor value="255, 255, 255, 255" /> 132<IMHistoryTextColor value="255, 255, 255, 255" /> <!-- Instant Message text -->
109 133
110<!-- IN-WORLD SELECTION --> 134<!-- IN-WORLD SELECTION -->
111<SilhouetteParentColor value="255, 255, 0, 255" /> 135<SilhouetteParentColor value="255, 255, 0, 255" /> <!-- Root prim selection outline -->
112<SilhouetteChildColor value="32, 106, 196, 255" /> 136<SilhouetteChildColor value="32, 106, 196, 255" /> <!-- Child prim selection outline -->
113<HighlightParentColor value="171, 212, 245, 255" /> 137<HighlightParentColor value="171, 212, 245, 255" />
114<HighlightChildColor value="171, 212, 245, 255" /> 138<HighlightChildColor value="171, 212, 245, 255" />
115<HighlightInspectColor value="255, 0, 255, 255" /> 139<HighlightInspectColor value="255, 0, 255, 255" /> <!-- Selection outline when inspecting -->
116 140
117<!-- EDIT MODE GRID --> 141<!-- EDIT MODE GRID -->
118<GridFocusPointColor value="255, 255, 255, 128" /> 142<GridFocusPointColor value="255, 255, 255, 128" /> <!-- Not used -->
119<GridlineColor value="255, 255, 255, 255" /> 143<GridlineColor value="255, 255, 255, 255" /> <!-- Grid color -->
120<GridlineBGColor value="235, 235, 255, 200" /> 144<GridlineBGColor value="235, 235, 255, 200" /> <!-- Grid background color -->
121<GridlineShadowColor value="0, 0, 0, 80" /> 145<GridlineShadowColor value="0, 0, 0, 80" /> <!-- Grid drop shadow -->
122 146
123<!-- PROPERTY LINES --> 147<!-- PROPERTY LINES -->
124<PropertyColorAvail value="0, 0, 0, 0" /> 148<PropertyColorAvail value="0, 0, 0, 0" />
125<PropertyColorGroup value="0, 184, 184, 102" /> 149<PropertyColorGroup value="0, 184, 184, 102" /> <!-- Property group owns -->
126<PropertyColorOther value="255, 0, 0, 102" /> 150<PropertyColorOther value="255, 0, 0, 102" /> <!-- Property others own -->
127<PropertyColorSelf value="0, 255, 0, 102" /> 151<PropertyColorSelf value="0, 255, 0, 102" /> <!-- Property you own -->
128<PropertyColorForSale value="255, 128, 0, 102" /> 152<PropertyColorForSale value="255, 128, 0, 102" /> <!-- Property for sale -->
129<PropertyColorAuction value="128, 0, 255, 102" /> <!-- Match the color on the world map --> 153<PropertyColorAuction value="128, 0, 255, 102" /> <!-- Match the color on the world map -->
130 154
131<!-- Icon Enable/Disable --> 155<!-- MEDIA ICONS -->
132<IconEnabledColor value="255, 255, 255, 255"/> 156<IconEnabledColor value="255, 255, 255, 255"/> <!-- Media/music icon enabled -->
133<IconDisabledColor value="147, 169, 213, 200"/> 157<IconDisabledColor value="147, 169, 213, 200"/> <!-- Media/music icon disabled -->
134 158
135<!-- MINI-MAP --> 159<!-- MINI-MAP -->
136<NetMapBackgroundColor value="0, 0, 0, 77" /> 160<NetMapBackgroundColor value="0, 0, 0, 77" /> <!-- Mini-map floater background -->
137<NetMapYouOwnAboveWater value="0, 255, 255, 255" /> 161<NetMapYouOwnAboveWater value="0, 255, 255, 255" /> <!-- Objects owned by you above water -->
138<NetMapYouOwnBelowWater value="0, 200, 200, 255" /> 162<NetMapYouOwnBelowWater value="0, 200, 200, 255" /> <!-- Objects owned by you below water -->
139<NetMapGroupOwnAboveWater value="255, 0, 255, 255" /> 163<NetMapGroupOwnAboveWater value="255, 0, 255, 255" /> <!-- Group owned objects above water -->
140<NetMapGroupOwnBelowWater value="200, 0, 200, 255" /> 164<NetMapGroupOwnBelowWater value="200, 0, 200, 255" /> <!-- Group owned objects below water -->
141<NetMapOtherOwnAboveWater value="60, 60, 60, 255" /> 165<NetMapOtherOwnAboveWater value="60, 60, 60, 255" /> <!-- Objects owned by others above water -->
142<NetMapOtherOwnBelowWater value="30, 30, 30, 255" /> 166<NetMapOtherOwnBelowWater value="30, 30, 30, 255" /> <!-- Objects owned by others below water -->
143 167<NetMapGlyphColorAvatar value="0, 255, 0, 255" /> <!-- Also the color of avatar glyphs on the map -->
144<!-- HELP WINDOW --> 168<NetMapGlyphColorFriend value="255, 255, 0, 255" />
145<HelpBgColor value="200, 209, 204, 255" /> 169
146<HelpFgColor value="0, 0, 0, 255" /> 170<!-- INVENTORY -->
147<HelpScrollTrackColor value="0, 0, 0, 255" /> 171<InventoryBackgroundColor value="255, 255, 255, 80"/> <!-- Inventory floater background -->
148<HelpScrollThumbColor value="255, 255, 255, 255" /> 172<FolderViewLoadingMessageTextColor value="240, 165, 90, 255"/> <!-- "loading..." -->
149<HelpScrollHighlightColor value="115, 132, 155, 255" /> 173<InventoryItemSuffixColor value="120, 70, 55, 255"/> <!-- "worn", "no modify", etc -->
150<HelpScrollShadowColor value="0, 0, 0, 255" /> 174<FilterBackgroundColor value="75, 75, 150, 180" /> <!-- Inventory search background -->
151 175<FilterTextColor value="255, 200, 70, 255" /> <!-- Inventory search text -->
176<InventorySearchStatusColor value="0, 0, 0, 255" /> <!-- "Searching..." -->
177
152<!-- MISC --> 178<!-- MISC -->
153<AvatarNameColor value="251, 175, 93, 255" /> <!-- Text color of avatar nametags --> 179<AvatarNameColor value="251, 175, 93, 255" /> <!-- Text color of avatar nametags -->
154<FocusColor value="239, 156, 0, 255" /> <!-- Color of the glow around UI controls with keyboard focus --> 180<FocusColor value="239, 156, 0, 255" /> <!-- Color of the glow around UI controls with keyboard focus -->
155<FloaterButtonImageColor value="255, 255, 255, 255" /> <!-- The floater buttons (like the close box) are white images that receive this color. --> 181<FloaterButtonImageColor value="255, 255, 255, 255" /> <!-- The floater buttons (like the close box) are white images that receive this color. -->
156<ButtonCautionImageColor value="255, 255, 255, 255" /> <!-- Match the caution dialog buttons to the default --> 182<ButtonCautionImageColor value="255, 255, 255, 255" /> <!-- Match the caution dialog buttons to the default -->
157<HealthTextColor value="255, 255, 255, 255" />
158<MapAutopilotColor value="255, 128, 0, 255" /> 183<MapAutopilotColor value="255, 128, 0, 255" />
159<ContextSilhouetteColor value="239, 156, 0, 255" /> <!-- For "context" highlighting, i.e. pie menu --> 184<ContextSilhouetteColor value="239, 156, 0, 255" /> <!-- For "context" highlighting, i.e. pie menu -->
160<ScriptBgReadOnlyColor value="180, 180, 180, 255" /> 185<GroupOverTierColor value="110, 15, 15, 255" /> <!-- Warning text in Group Info window -->
161<ParcelTextColor value="40, 40, 90, 255" /> <!-- Parcel name on menu bar, normal state --> 186<ConsoleBackground value="0, 0, 0, 255" /> <!-- Background for inworld chat -->
162<ParcelHoverColor value="70, 70, 100, 255" /> <!-- Parcel name on menu bar, hover state -->
163<TimeTextColor value="0, 30, 60, 255" /> <!-- SL Time on menu bar -->
164<BalanceTextColor value="0, 100, 40, 255" /> <!-- Linden dollar balance on menu bar -->
165<HealthTextColor value="110, 15, 15, 255" /> <!-- Damage meter text on menu bar -->
166<GroupOverTierColor value="110, 15, 15, 255" /> <!-- Warning text in Group Info window -->
167<FilterBackgroundColor value="75, 75, 150, 180" /> <!-- Matching region of Inventory search text -->
168<FilterTextColor value="255, 200, 70, 255" />
169<InventoryItemSuffixColor value="120, 70, 55, 255"/>
170<InventorySearchStatusColor value="0, 0, 0, 255" />
171<ConsoleBackground value="0, 0, 0, 255" />
172<FolderViewLoadingMessageTextColor value="240, 165, 90, 255"/>
173<InventoryBackgroundColor value="255, 255, 255, 80"/>
174
175 <!-- Alert box colors -->
176<AlertBoxColor value="165, 180, 200, 245"/>
177<AlertTextColor value="0, 30, 60, 255"/>
178<AlertCautionBoxColor value="254, 209, 118, 255"/> <!-- Background color of caution alerts -->
179<AlertCautionTextColor value="0, 0, 0, 255"/> <!-- Foreground color of the special title text in caution alerts -->
180 187
181<!-- Multi sliders, as in the sky animation setting -->
182<MultiSliderDisabledThumbColor value="0, 0, 0, 255"/>
183<MultiSliderThumbCenterColor value="183, 184, 188, 255"/>
184<MultiSliderThumbOutlineColor value="0, 0, 0, 255"/>
185<MultiSliderTrackColor value="30, 30, 30, 255"/>
186<MultiSliderThumbCenterSelectedColor value="255, 50, 50, 255"/>
187<MultiSliderTriangleColor value="255, 255, 50, 255"/>
188</settings> 188</settings>
diff --git a/linden/indra/newview/skins/silver/xui/en-us/floater_tools.xml b/linden/indra/newview/skins/silver/xui/en-us/floater_tools.xml
deleted file mode 100644
index 143442c..0000000
--- a/linden/indra/newview/skins/silver/xui/en-us/floater_tools.xml
+++ /dev/null
@@ -1,1275 +0,0 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater bottom="-359" can_close="true" can_drag_on_left="false" can_minimize="true"
3 can_resize="false" follows="left|top" height="550"
4 left="308" min_height="100" min_width="100" mouse_opaque="true"
5 name="toolbox floater" rect_control="ToolboxRect" sound_flags="0" title=""
6 short_title="Build" width="272">
7
8<!-- Main floater tabs -->
9
10 <button bottom="-34" follows="left|top" font="SansSerif" halign="center" height="32"
11 image_disabled="tool_zoom.tga"
12 image_disabled_selected="tool_zoom_active.tga"
13 image_selected="tool_zoom_active.tga" image_unselected="tool_zoom.tga"
14 label="" label_selected="" left="4" mouse_opaque="true" name="button focus"
15 tool_tip="Focus" width="32" />
16 <button bottom="-34" follows="left|top" font="SansSerif" halign="center" height="32"
17 image_disabled="UIImgGrabUUID"
18 image_disabled_selected="UIImgGrabSelectedUUID"
19 image_selected="UIImgGrabSelectedUUID" image_unselected="UIImgGrabUUID"
20 label="" label_selected="" left="40" mouse_opaque="true" name="button move"
21 tool_tip="Move" width="32" />
22 <button bottom="-34" follows="left|top" font="SansSerif" halign="center" height="32"
23 image_disabled="UIImgFaceUUID"
24 image_disabled_selected="UIImgFaceSelectedUUID"
25 image_selected="UIImgFaceSelectedUUID" image_unselected="UIImgFaceUUID"
26 label="" label_selected="" left="76" mouse_opaque="true" name="button edit"
27 tool_tip="Edit" width="32" />
28 <button bottom="-34" follows="left|top" font="SansSerif" halign="center" height="32"
29 image_disabled="UIImgCreateUUID"
30 image_disabled_selected="UIImgCreateSelectedUUID"
31 image_selected="UIImgCreateSelectedUUID" image_unselected="UIImgCreateUUID"
32 label="" label_selected="" left="112" mouse_opaque="true"
33 name="button create" tool_tip="Create" width="32" />
34 <button bottom="-34" follows="left|top" font="SansSerif" halign="center" height="32"
35 image_disabled="tool_dozer.tga"
36 image_disabled_selected="tool_dozer_active.tga"
37 image_selected="tool_dozer_active.tga" image_unselected="tool_dozer.tga"
38 label="" label_selected="" left="148" mouse_opaque="true"
39 name="button land" tool_tip="Land" width="32" />
40
41<!-- Focus panel -->
42
43 <check_box bottom="-70" follows="left|top" font="SansSerifSmall" height="16"
44 initial_value="false" label="Zoom" left="4" mouse_opaque="true"
45 name="radio zoom" radio_style="true" width="114" />
46 <volume_slider bottom="-69" follows="left|top" height="14" increment="0.01"
47 initial_val="0.125" left="114" max_val="0.5" min_val="0"
48 mouse_opaque="true" name="slider zoom" width="134" />
49 <check_box bottom="-84" follows="left|top" font="SansSerifSmall" height="16"
50 initial_value="false" label="Orbit (Ctrl)" left="4" mouse_opaque="true"
51 name="radio orbit" radio_style="true" width="114" />
52 <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16"
53 initial_value="false" label="Pan (Ctrl-Shift)" left="4"
54 mouse_opaque="true" name="radio pan" radio_style="true" width="114" />
55
56<!-- Move panel -->
57
58 <check_box bottom="-70" follows="left|top" font="SansSerifSmall" height="16"
59 initial_value="false" label="Move" left="4" mouse_opaque="true"
60 name="radio move" radio_style="true" width="114" />
61 <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16"
62 initial_value="false" label="Lift (Ctrl)" left="4" mouse_opaque="true"
63 name="radio lift" radio_style="true" width="114" />
64 <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16"
65 initial_value="false" label="Spin (Ctrl-Shift)" left="4"
66 mouse_opaque="true" name="radio spin" radio_style="true" width="114" />
67
68<!-- Edit panel -->
69
70 <check_box bottom="-70" follows="left|top" font="SansSerifSmall" height="16"
71 initial_value="false" label="Position" left="4" mouse_opaque="true"
72 name="radio position" radio_style="true" width="114" />
73 <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16"
74 initial_value="false" label="Rotate (Ctrl)" left="4" mouse_opaque="true"
75 name="radio rotate" radio_style="true" width="114" />
76 <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16"
77 initial_value="false" label="Stretch (Ctrl-Shift)" left="4"
78 mouse_opaque="true" name="radio stretch" radio_style="true" width="123" />
79 <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16"
80 initial_value="false" label="Select Texture" left="4" mouse_opaque="true"
81 name="radio select face" radio_style="true" width="114" />
82 <check_box bottom_delta="-19" control_name="EditLinkedParts" follows="left|top"
83 font="SansSerifSmall" height="16" initial_value="false"
84 label="Edit linked parts" left="4" mouse_opaque="true"
85 name="checkbox edit linked parts" width="114" />
86 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
87 bottom_delta="-20" drop_shadow_visible="true" follows="left|top"
88 font="SansSerifSmall" h_pad="0" halign="left" height="14" left="6"
89 mouse_opaque="true" name="text ruler mode" v_pad="0" width="68">
90 Ruler mode:
91 </text>
92 <combo_box allow_text_entry="false" bottom_delta="-4" follows="left|top" height="20"
93 left_delta="74" max_chars="20" mouse_opaque="true"
94 name="combobox grid mode" width="86">
95 <combo_item name="World" value="World">
96 World
97 </combo_item>
98 <combo_item name="Local" value="Local">
99 Local
100 </combo_item>
101 <combo_item name="Reference" value="Reference">
102 Reference
103 </combo_item>
104 </combo_box>
105 <check_box bottom="-70" control_name="ScaleUniform" follows="left|top"
106 font="SansSerifSmall" height="16" initial_value="false"
107 label="Stretch Both Sides" left="143" mouse_opaque="true"
108 name="checkbox uniform" width="134" />
109 <check_box bottom_delta="-15" control_name="ScaleStretchTextures" follows="left|top"
110 font="SansSerifSmall" height="16" initial_value="true"
111 label="Stretch Textures" left_delta="0" mouse_opaque="true"
112 name="checkbox stretch textures" width="134" />
113 <check_box bottom_delta="-19" control_name="SnapEnabled" follows="left|top"
114 font="SansSerifSmall" height="16" initial_value="true" label="Use Grid"
115 left_delta="0" mouse_opaque="true" name="checkbox snap to grid" width="134" />
116 <button bottom_delta="-14" follows="left|top" font="SansSerifSmall" halign="center"
117 height="16" label="Options..." label_selected="Options..." left_delta="20"
118 mouse_opaque="true" name="Options..." scale_image="TRUE" width="80" />
119
120<!-- Help text -->
121
122 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
123 bottom="-52" drop_shadow_visible="true" follows="left|top"
124 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
125 mouse_opaque="true" name="text status" v_pad="0" width="264">
126 Drag to move, shift-drag to copy
127 </text>
128
129<!-- Create panel -->
130
131 <button bottom="-78" follows="left|top" font="SansSerif" halign="center" height="30"
132 image_disabled="object_cube.tga"
133 image_disabled_selected="object_cube_active.tga"
134 image_selected="object_cube_active.tga" image_unselected="object_cube.tga"
135 label="" label_selected="" left="4" mouse_opaque="true" name="ToolCube"
136 scale_image="TRUE" width="30" tool_tip="Cube"/>
137 <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center"
138 height="30" image_disabled="object_prism.tga"
139 image_disabled_selected="object_prism_active.tga"
140 image_selected="object_prism_active.tga"
141 image_unselected="object_prism.tga" label="" label_selected=""
142 left_delta="28" mouse_opaque="true" name="ToolPrism" scale_image="TRUE"
143 tool_tip="Prism" width="30" />
144 <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center"
145 height="30" image_disabled="object_pyramid.tga"
146 image_disabled_selected="object_pyramid_active.tga"
147 image_selected="object_pyramid_active.tga"
148 image_unselected="object_pyramid.tga" label="" label_selected=""
149 left_delta="28" mouse_opaque="true" name="ToolPyramid" scale_image="TRUE"
150 tool_tip="Pyramid" width="30" />
151 <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center"
152 height="30" image_disabled="object_tetrahedron.tga"
153 image_disabled_selected="object_tetrahedron_active.tga"
154 image_selected="object_tetrahedron_active.tga"
155 image_unselected="object_tetrahedron.tga" label="" label_selected=""
156 left_delta="23" mouse_opaque="true" name="ToolTetrahedron"
157 scale_image="TRUE" tool_tip="Tetrahedron" width="30" />
158 <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center"
159 height="30" image_disabled="object_cylinder.tga"
160 image_disabled_selected="object_cylinder_active.tga"
161 image_selected="object_cylinder_active.tga"
162 image_unselected="object_cylinder.tga" label="" label_selected=""
163 left_delta="23" mouse_opaque="true" tool_tip="Cylinder" name="ToolCylinder" scale_image="TRUE"
164 width="30" />
165 <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center"
166 height="30" image_disabled="object_hemi_cylinder.tga"
167 image_disabled_selected="object_hemi_cylinder_active.tga"
168 image_selected="object_hemi_cylinder_active.tga"
169 image_unselected="object_hemi_cylinder.tga" label="" label_selected=""
170 left_delta="23" mouse_opaque="true" name="ToolHemiCylinder"
171 scale_image="TRUE" tool_tip="Hemicylinder" width="30" />
172 <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center"
173 height="30" image_disabled="object_cone.tga"
174 image_disabled_selected="object_cone_active.tga"
175 image_selected="object_cone_active.tga" image_unselected="object_cone.tga"
176 label="" label_selected="" left_delta="23" mouse_opaque="true"
177 name="ToolCone" scale_image="TRUE" tool_tip="Cone" width="30" />
178 <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center"
179 height="30" image_disabled="object_hemi_cone.tga"
180 image_disabled_selected="object_hemi_cone_active.tga"
181 image_selected="object_hemi_cone_active.tga"
182 image_unselected="object_hemi_cone.tga" label="" label_selected=""
183 left_delta="23" mouse_opaque="true" name="ToolHemiCone" scale_image="TRUE"
184 tool_tip="Hemicone" width="30" />
185 <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center"
186 height="30" image_disabled="object_sphere.tga"
187 image_disabled_selected="object_sphere_active.tga"
188 image_selected="object_sphere_active.tga"
189 image_unselected="object_sphere.tga" label="" label_selected=""
190 left_delta="23" mouse_opaque="true" name="ToolSphere" scale_image="TRUE"
191 width="30" tool_tip="Sphere" />
192 <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center"
193 height="30" image_disabled="object_hemi_sphere.tga"
194 image_disabled_selected="object_hemi_sphere_active.tga"
195 image_selected="object_hemi_sphere_active.tga"
196 image_unselected="object_hemi_sphere.tga" label="" label_selected=""
197 left_delta="23" mouse_opaque="true" name="ToolHemiSphere"
198 scale_image="TRUE" tool_tip="Hemisphere" width="30" />
199 <button bottom_delta="-23" follows="left|top" font="SansSerif" halign="center"
200 height="30" image_disabled="object_torus.tga"
201 image_disabled_selected="object_torus_active.tga"
202 image_selected="object_torus_active.tga"
203 image_unselected="object_torus.tga" label="" label_selected="" left="4"
204 mouse_opaque="true" name="ToolTorus" scale_image="TRUE" tool_tip="Torus" width="30" />
205 <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center"
206 height="30" image_disabled="object_tube.tga"
207 image_disabled_selected="object_tube_active.tga"
208 image_selected="object_tube_active.tga" image_unselected="object_tube.tga"
209 label="" label_selected="" left_delta="23" mouse_opaque="true"
210 name="ToolTube" scale_image="TRUE" tool_tip="Tube" width="30" />
211 <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center"
212 height="30" image_disabled="object_ring.tga"
213 image_disabled_selected="object_ring_active.tga"
214 image_selected="object_ring_active.tga" image_unselected="object_ring.tga"
215 label="" label_selected="" left_delta="23" mouse_opaque="true"
216 name="ToolRing" scale_image="TRUE" tool_tip="Ring" width="30" />
217 <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center"
218 height="30" image_disabled="object_tree.tga"
219 image_disabled_selected="object_tree_active.tga"
220 image_selected="object_tree_active.tga" image_unselected="object_tree.tga"
221 label="" label_selected="" left_delta="23" mouse_opaque="true"
222 name="ToolTree" scale_image="TRUE" tool_tip="Tree" width="30" />
223 <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center"
224 height="30" image_disabled="object_grass.tga"
225 image_disabled_selected="object_grass_active.tga"
226 image_selected="object_grass_active.tga"
227 image_unselected="object_grass.tga" label="" label_selected=""
228 left_delta="28" mouse_opaque="true" name="ToolGrass" scale_image="TRUE"
229 tool_tip="Grass" width="30" />
230 <check_box bottom="-120" control_name="CreateToolKeepSelected" follows="left|top"
231 font="SansSerifSmall" height="16" initial_value="false"
232 label="Keep Tool Selected" left="4" mouse_opaque="true"
233 name="checkbox sticky" width="128" />
234 <check_box bottom_delta="-15" control_name="CreateToolCopySelection" follows="left|top"
235 font="SansSerifSmall" height="16" initial_value="false"
236 label="Copy Selection" left_delta="0" mouse_opaque="true"
237 name="checkbox copy selection" width="134" />
238 <check_box bottom_delta="-15" control_name="CreateToolCopyCenters" follows="left|top"
239 font="SansSerifSmall" height="16" initial_value="true" label="Center Copy"
240 left_delta="20" mouse_opaque="true" name="checkbox copy centers"
241 width="134" />
242 <check_box bottom_delta="-15" control_name="CreateToolCopyRotates" follows="left|top"
243 font="SansSerifSmall" height="16" initial_value="false" label="Rotate Copy"
244 left_delta="0" mouse_opaque="true" name="checkbox copy rotates" width="134" />
245
246<!-- Land panel -->
247
248 <check_box bottom="-70" follows="left|top" font="SansSerifSmall" height="16"
249 initial_value="false" label="Select Land" left="4" mouse_opaque="true"
250 name="radio select land" radio_style="true" width="114" />
251 <check_box bottom_delta="-14" follows="left|top" font="SansSerifSmall" height="16"
252 initial_value="false" label="Flatten Land" left="4" mouse_opaque="true"
253 name="radio flatten" radio_style="true" width="114" />
254 <check_box bottom_delta="-14" follows="left|top" font="SansSerifSmall" height="16"
255 initial_value="false" label="Raise Land" left="4" mouse_opaque="true"
256 name="radio raise" radio_style="true" width="114" />
257 <check_box bottom_delta="-14" follows="left|top" font="SansSerifSmall" height="16"
258 initial_value="false" label="Lower Land" left="4" mouse_opaque="true"
259 name="radio lower" radio_style="true" width="114" />
260 <check_box bottom_delta="-14" follows="left|top" font="SansSerifSmall" height="16"
261 initial_value="false" label="Smooth Land" left="4" mouse_opaque="true"
262 name="radio smooth" radio_style="true" width="114" />
263 <check_box bottom_delta="-14" follows="left|top" font="SansSerifSmall" height="16"
264 initial_value="false" label="Roughen Land" left="4" mouse_opaque="true"
265 name="radio noise" radio_style="true" width="114" />
266 <check_box bottom_delta="-14" follows="left|top" font="SansSerifSmall" height="16"
267 initial_value="false" label="Revert Land" left="4" mouse_opaque="true"
268 name="radio revert" radio_style="true" width="114" />
269 <combo_box allow_text_entry="false" bottom="-85" follows="left|top" height="18" left="118"
270 max_chars="20" mouse_opaque="true" name="combobox brush size" width="134">
271 <combo_item name="Small" value="Small">
272 Small
273 </combo_item>
274 <combo_item name="Medium" value="Medium">
275 Medium
276 </combo_item>
277 <combo_item name="Large" value="Large">
278 Large
279 </combo_item>
280 </combo_box>
281 <volume_slider bottom_delta="-19" follows="left|top" height="16" hidden="false" increment="0.1"
282 initial_val="0.00" left="176" max_val="2.0" min_val="-1.0"
283 mouse_opaque="true" name="slider force" width="70" />
284 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
285 bottom_delta="4" drop_shadow_visible="true" enabled="true" follows="left|top"
286 font="SansSerifSmall" h_pad="0" halign="left" height="12" hidden="false"
287 left="126" mouse_opaque="true" name="Strength:" v_pad="0" width="128">
288 Strength:
289 </text>
290 <button bottom_delta="-20" follows="left|top" font="SansSerifSmall" halign="center"
291 height="16" label="Apply to selection" label_selected="Apply to selection"
292 left="118" mouse_opaque="true" name="button apply to selection"
293 scale_image="TRUE" tool_tip="Modify Selected Land" width="134" />
294 <check_box bottom_delta="-20" control_name="ShowParcelOwners" follows="left|top"
295 font="SansSerifSmall" height="16" initial_value="false" label="Show Owners"
296 left="118" mouse_opaque="true" name="checkbox show owners" width="134" />
297 <button bottom="-163" follows="left|top" font="SansSerifSmall" halign="center"
298 height="20" label="More &gt;&gt;" left="186" mouse_opaque="true"
299 name="button more" scale_image="TRUE" tool_tip="Advanced Options"
300 width="80" />
301 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" halign="center"
302 height="20" label="&lt;&lt; Less" left_delta="0" mouse_opaque="true"
303 name="button less" scale_image="TRUE" tool_tip="Advanced Options"
304 width="80" />
305
306<!-- Sub-tabs -->
307
308 <tab_container bottom="-550" follows="left|top" height="384" left="0" mouse_opaque="false"
309 name="Object Info Tabs" tab_max_width="52" tab_min_width="40"
310 tab_position="top" width="272">
311 <panel border="true" bottom="-383" follows="left|top|right|bottom" height="367"
312 label="General" left="1" mouse_opaque="false" name="General" width="270">
313 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
314 bottom="-20" drop_shadow_visible="true" follows="left|top"
315 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
316 mouse_opaque="true" name="Name:" v_pad="0" width="78">
317 Name:
318 </text>
319 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-26"
320 follows="left|top|right" font="SansSerifSmall" height="16" left="88"
321 max_length="63" mouse_opaque="true" name="Object Name"
322 select_all_on_focus_received="true" width="172" />
323 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
324 bottom="-40" drop_shadow_visible="true" follows="left|top"
325 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
326 mouse_opaque="true" name="Description:" v_pad="0" width="78">
327 Description:
328 </text>
329 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-46"
330 follows="left|top|right" font="SansSerifSmall" height="16" left="88"
331 max_length="127" mouse_opaque="true" name="Object Description"
332 select_all_on_focus_received="true" width="172" />
333 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
334 bottom="-66" drop_shadow_visible="true" follows="left|top"
335 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10"
336 mouse_opaque="true" name="Creator:" v_pad="0" width="78">
337 Creator:
338 </text>
339 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
340 bottom="-66" drop_shadow_visible="true" follows="left|top"
341 font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="78"
342 mouse_opaque="true" name="Creator Name" v_pad="0" width="88">
343 Thrax Linden
344 </text>
345 <button bottom="-66" follows="top|right" font="SansSerifSmall" halign="center"
346 height="16" label="Profile..." label_selected="Profile..." left_delta="94"
347 mouse_opaque="true" name="button creator profile" scale_image="TRUE"
348 width="78" />
349 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
350 bottom="-86" drop_shadow_visible="true" follows="left|top"
351 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10"
352 mouse_opaque="true" name="Owner:" v_pad="0" width="78">
353 Owner:
354 </text>
355 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
356 bottom="-86" drop_shadow_visible="true" follows="left|top"
357 font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="78"
358 mouse_opaque="true" name="Owner Name" v_pad="0" width="88">
359 Thrax Linden
360 </text>
361 <button bottom="-86" follows="top|right" font="SansSerifSmall" halign="center"
362 height="16" label="Profile..." label_selected="Profile..." left_delta="94"
363 mouse_opaque="true" name="button owner profile" scale_image="TRUE"
364 width="78" />
365 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
366 bottom="-106" drop_shadow_visible="true" follows="left|top"
367 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10"
368 mouse_opaque="true" name="Group:" v_pad="0" width="78">
369 Group:
370 </text>
371 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
372 bottom="-106" drop_shadow_visible="true" follows="left|top"
373 font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="78"
374 mouse_opaque="true" name="Group Name Proxy" v_pad="0" visible="false"
375 width="88">
376 The Lindens
377 </text>
378 <button bottom="-106" follows="top|right" font="SansSerifSmall" halign="center"
379 height="16" label="Set..." label_selected="Set..." left_delta="94"
380 mouse_opaque="true" name="button set group" scale_image="TRUE" width="78" />
381 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
382 bottom="-126" drop_shadow_visible="true" follows="left|top"
383 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10"
384 mouse_opaque="true" name="prim info" v_pad="0" width="166">
385 1 Object, 1 Primitive
386 </text>
387 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
388 bottom_delta="-20" drop_shadow_visible="true" follows="left|top"
389 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10"
390 mouse_opaque="true" name="Permissions:" v_pad="0" width="85">
391 Permissions:
392 </text>
393 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
394 bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
395 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10"
396 mouse_opaque="true" name="perm_modify" v_pad="0" width="250">
397 You can modify this object.
398 </text>
399 <check_box bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="16"
400 initial_value="false" label="Share with group" left="10"
401 mouse_opaque="true" name="checkbox share with group"
402 tool_tip="Allow group members to move, modify, copy and delete."
403 width="166" />
404 <string name="text deed continued">
405 Deed...
406 </string>
407 <string name="text deed">
408 Deed
409 </string>
410 <button bottom="-186" follows="top|right" font="SansSerifSmall" halign="center"
411 height="16" label="Deed..." label_selected="Deed..." left_delta="172"
412 mouse_opaque="true" name="button deed" scale_image="TRUE"
413 tool_tip="Group shared objects can be deeded by a group officer."
414 width="78" />
415 <check_box bottom="-206" follows="left|top" font="SansSerifSmall" height="16"
416 initial_value="false" label="Allow anyone to move" left="10"
417 mouse_opaque="true" name="checkbox allow everyone move" width="142" />
418 <check_box bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="16"
419 initial_value="false" label="Allow anyone to copy" left="10"
420 mouse_opaque="true" name="checkbox allow everyone copy" width="141" />
421 <check_box bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="16"
422 initial_value="false" label="Show in search" left="10" name="search_check"
423 tool_tip="Let people see this object in search results" width="78" />
424 <check_box bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="16"
425 initial_value="false" label="For Sale" left="10" mouse_opaque="true"
426 name="checkbox for sale" width="78" />
427 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
428 bottom_delta="0" drop_shadow_visible="true" follows="left|top"
429 font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="90"
430 mouse_opaque="true" name="Cost" v_pad="0" width="78">
431 Price: L$
432 </text>
433 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="0"
434 follows="left|top|right" font="SansSerifSmall" height="16" left_delta="80"
435 max_length="25" mouse_opaque="true" name="Edit Cost" width="75" />
436 <radio_group bottom="-286" draw_border="false" follows="left|top|right" height="16"
437 left="42" mouse_opaque="true" name="sale type" width="218">
438 <radio_item bottom="-16" follows="left|top" height="16" left="0" mouse_opaque="true"
439 name="Original" width="70">
440 Original
441 </radio_item>
442 <radio_item bottom="-16" follows="left|top" height="16" left="70" mouse_opaque="true"
443 name="Copy" width="70">
444 Copy
445 </radio_item>
446 <radio_item bottom="-16" follows="left|top" height="16" left="140" mouse_opaque="true"
447 name="Contents" width="76">
448 Contents
449 </radio_item>
450 </radio_group>
451 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
452 bottom="-298" drop_shadow_visible="true" follows="left|top|right"
453 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
454 mouse_opaque="true" name="Next owner can:" v_pad="0" width="250">
455 Next owner can:
456 </text>
457 <check_box bottom_delta="-22" follows="left|top|right" font="SansSerifSmall" height="16"
458 initial_value="false" label="Modify" left="10" mouse_opaque="true"
459 name="checkbox next owner can modify" width="250" />
460 <check_box bottom_delta="0" follows="left|top|right" font="SansSerifSmall" height="16"
461 initial_value="false" label="Copy" left_delta="60" mouse_opaque="true"
462 name="checkbox next owner can copy" width="190" />
463 <check_box bottom_delta="0" follows="left|top|right" font="SansSerifSmall" height="16"
464 initial_value="false" label="Resell/Give away" left_delta="60"
465 mouse_opaque="true" name="checkbox next owner can transfer" width="130" />
466 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
467 bottom="-332" drop_shadow_visible="true" follows="left|top"
468 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
469 mouse_opaque="true" name="label click action" v_pad="0" width="150">
470 When Left-Clicked:
471 </text>
472 <combo_box allow_text_entry="false" bottom_delta="-25" follows="left|top" height="18"
473 left="10" max_chars="20" mouse_opaque="true" name="clickaction" width="150">
474 <!-- Do not reorder these items, the index numbers are
475 used internally. JC -->
476 <combo_item name="Touch/grab(default)" value="Touch/grab (default)">
477 Touch/grab (default)
478 </combo_item>
479 <combo_item name="Sitonobject" value="Sit on object">
480 Sit on object
481 </combo_item>
482 <combo_item name="Buyobject" value="Buy object">
483 Buy object
484 </combo_item>
485 <combo_item name="Payobject" value="Pay object">
486 Pay object
487 </combo_item>
488 <combo_item name="Open" value="Open">
489 Open
490 </combo_item>
491 <combo_item name="Play" value="Play">
492 Play parcel media
493 </combo_item>
494 <combo_item name="Opemmedia" value="Open Media">
495 Open parcel media
496 </combo_item>
497 </combo_box>
498 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
499 bottom="-135" drop_shadow_visible="true" follows="left|top"
500 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="88"
501 mouse_opaque="true" name="B:" v_pad="0" width="174">
502 B:
503 </text>
504 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
505 bottom="-135" drop_shadow_visible="true" follows="left|top"
506 font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="50"
507 mouse_opaque="true" name="O:" v_pad="0" width="124">
508 O;
509 </text>
510 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
511 bottom="-135" drop_shadow_visible="true" follows="left|top"
512 font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="50"
513 mouse_opaque="true" name="G:" v_pad="0" width="74">
514 G:
515 </text>
516 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
517 bottom="-147" drop_shadow_visible="true" follows="left|top"
518 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="88"
519 mouse_opaque="true" name="E:" v_pad="0" width="174">
520 E:
521 </text>
522 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
523 bottom="-147" drop_shadow_visible="true" follows="left|top"
524 font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="50"
525 mouse_opaque="true" name="N:" v_pad="0" width="124">
526 N:
527 </text>
528 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
529 bottom="-147" drop_shadow_visible="true" follows="left|top"
530 font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="50"
531 mouse_opaque="true" name="F:" v_pad="0" width="74">
532 F:
533 </text>
534 <string name="text modify info 1">
535 You can modify this object.
536 </string>
537 <string name="text modify info 2">
538 You can modify these objects.
539 </string>
540 <string name="text modify info 3">
541 You cannot modify this object.
542 </string>
543 <string name="text modify info 4">
544 You cannot modify these objects.
545 </string>
546 <string name="text modify warning">
547 Must select entire object to set permissions.
548 </string>
549 <string name="Cost Default">
550 Price: L$
551 </string>
552 <string name="Cost Total">
553 Total Price: L$
554 </string>
555 <string name="Cost Per Unit">
556 Price Per: L$
557 </string>
558 <string name="Cost Mixed">
559 Mixed Price
560 </string>
561 <string name="Sale Mixed">
562 Mixed Sale
563 </string>
564 </panel>
565
566<!-- Object sub-tab -->
567
568 <panel border="true" bottom="-383" follows="left|top|right|bottom" height="367"
569 label="Object" left="1" mouse_opaque="false" name="Object" width="270">
570 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
571 bottom="-20" drop_shadow_visible="true" follows="left|top"
572 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
573 mouse_opaque="true" name="select_single" v_pad="0" width="252">
574 Select only one primitive to edit parameters.
575 </text>
576 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
577 bottom_delta="0" drop_shadow_visible="true" follows="left|top"
578 font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0"
579 mouse_opaque="true" name="edit_object" v_pad="0" width="252">
580 Edit object parameters:
581 </text>
582 <check_box bottom_delta="-26" follows="left|top" font="SansSerifSmall" height="16"
583 initial_value="false" label="Locked" left="8" mouse_opaque="true"
584 name="checkbox locked"
585 tool_tip="Prevents object from being moved or deleted. Frequently useful during building to avoid unintended edits."
586 width="123" />
587 <check_box bottom_delta="-18" follows="left|top" font="SansSerifSmall" height="16"
588 initial_value="false" label="Physical" left="8" mouse_opaque="true"
589 name="Physical Checkbox Ctrl"
590 tool_tip="Allows object to be pushed and affected by gravity" width="123" />
591 <check_box bottom_delta="-18" follows="left|top" font="SansSerifSmall" height="16"
592 initial_value="false" label="Temporary" left="8" mouse_opaque="true"
593 name="Temporary Checkbox Ctrl"
594 tool_tip="Causes object to be deleted 1 minute after creation." width="123" />
595 <check_box bottom_delta="-18" follows="left|top" font="SansSerifSmall" height="16"
596 initial_value="false" label="Phantom" left="8" mouse_opaque="true"
597 name="Phantom Checkbox Ctrl"
598 tool_tip="Causes object to not collide with other objects or avatars"
599 width="123" />
600 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
601 bottom_delta="-14" drop_shadow_visible="true" follows="left|top"
602 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
603 mouse_opaque="true" name="label position" v_pad="0" width="121">
604 Position (meters)
605 </text>
606 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16"
607 increment="0.01" initial_val="0" label="X" label_width="10" left="10"
608 max_val="512" min_val="-256" mouse_opaque="true" name="Pos X"
609 text_enabled_color="110, 15, 15, 255" width="87" />
610 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16"
611 increment="0.01" initial_val="0" label="Y" label_width="10" left="10"
612 max_val="512" min_val="-256" mouse_opaque="true" name="Pos Y"
613 text_enabled_color="0, 100, 40, 255" width="87" />
614 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16"
615 increment="0.01" initial_val="0" label="Z" label_width="10" left="10"
616 max_val="4096" min_val="0" mouse_opaque="true" name="Pos Z"
617 text_enabled_color="0, 67, 132, 255" width="87" />
618 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
619 bottom_delta="-16" drop_shadow_visible="true" follows="left|top"
620 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
621 mouse_opaque="true" name="label size" v_pad="0" width="121">
622 Size (meters)
623 </text>
624 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16"
625 increment="0.01" initial_val="0" label="X" label_width="10" left="10"
626 max_val="10" min_val="0.01" mouse_opaque="true" name="Scale X"
627 text_enabled_color="1, 1, 1, 1" width="87" />
628 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16"
629 increment="0.01" initial_val="0" label="Y" label_width="10" left="10"
630 max_val="10" min_val="0.01" mouse_opaque="true" name="Scale Y"
631 text_enabled_color="1, 1, 1, 1" width="87" />
632 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16"
633 increment="0.01" initial_val="0" label="Z" label_width="10" left="10"
634 max_val="10" min_val="0.01" mouse_opaque="true" name="Scale Z"
635 text_enabled_color="1, 1, 1, 1" width="87" />
636 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
637 bottom_delta="-16" drop_shadow_visible="true" follows="left|top"
638 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
639 mouse_opaque="true" name="label rotation" v_pad="0" width="121">
640 Rotation (degrees)
641 </text>
642 <spinner bottom_delta="-22" decimal_digits="2" follows="left|top" height="16"
643 increment="1" initial_val="0" label="X" label_width="10" left="10"
644 max_val="9999" min_val="-9999" mouse_opaque="true" name="Rot X"
645 text_enabled_color="1, 1, 1, 1" width="87" />
646 <spinner bottom_delta="-18" decimal_digits="2" follows="left|top" height="16"
647 increment="1" initial_val="0" label="Y" label_width="10" left="10"
648 max_val="9999" min_val="-9999" mouse_opaque="true" name="Rot Y"
649 text_enabled_color="1, 1, 1, 1" width="87" />
650 <spinner bottom_delta="-18" decimal_digits="2" follows="left|top" height="16"
651 increment="1" initial_val="0" label="Z" label_width="10" left="10"
652 max_val="9999" min_val="-9999" mouse_opaque="true" name="Rot Z"
653 text_enabled_color="1, 1, 1, 1" width="87" />
654 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
655 bottom_delta="-16" drop_shadow_visible="true" follows="left|top"
656 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
657 mouse_opaque="true" name="label material" v_pad="0" width="121">
658 Material
659 </text>
660 <combo_box allow_text_entry="false" bottom_delta="-22" follows="left|top" height="18"
661 left="10" max_chars="20" mouse_opaque="true" name="material" width="87">
662 <combo_item name="Stone" value="Stone">
663 Stone
664 </combo_item>
665 <combo_item name="Metal" value="Metal">
666 Metal
667 </combo_item>
668 <combo_item name="Glass" value="Glass">
669 Glass
670 </combo_item>
671 <combo_item name="Wood" value="Wood">
672 Wood
673 </combo_item>
674 <combo_item name="Flesh" value="Flesh">
675 Flesh
676 </combo_item>
677 <combo_item name="Plastic" value="Plastic">
678 Plastic
679 </combo_item>
680 <combo_item name="Rubber" value="Rubber">
681 Rubber
682 </combo_item>
683 </combo_box>
684 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
685 bottom="-36" drop_shadow_visible="true" follows="left|top"
686 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="121"
687 mouse_opaque="true" name="label basetype" v_pad="0" width="141">
688 Building Block Type
689 </text>
690 <combo_box allow_text_entry="false" bottom_delta="-24" follows="left|top" height="18"
691 left="121" max_chars="20" mouse_opaque="true" name="comboBaseType"
692 width="141">
693 <combo_item name="Box" value="Box">
694 Box
695 </combo_item>
696 <combo_item name="Cylinder" value="Cylinder">
697 Cylinder
698 </combo_item>
699 <combo_item name="Prism" value="Prism">
700 Prism
701 </combo_item>
702 <combo_item name="Sphere" value="Sphere">
703 Sphere
704 </combo_item>
705 <combo_item name="Torus" value="Torus">
706 Torus
707 </combo_item>
708 <combo_item name="Tube" value="Tube">
709 Tube
710 </combo_item>
711 <combo_item name="Ring" value="Ring">
712 Ring
713 </combo_item>
714 <combo_item name="Sculpted" value="Sculpted">
715 Sculpted
716 </combo_item>
717 </combo_box>
718 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
719 bottom_delta="-12" drop_shadow_visible="true" follows="left|top"
720 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="121"
721 mouse_opaque="true" name="text cut" v_pad="0" width="141">
722 Path Cut Begin and End
723 </text>
724 <spinner bottom_delta="-22" decimal_digits="3" follows="left|top" height="16"
725 increment="0.05" initial_val="0" label="B" label_width="10" left="121"
726 max_val="0.98" min_val="0" mouse_opaque="true" name="cut begin" width="68" />
727 <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16"
728 increment="0.05" initial_val="1" label="E" label_width="10" left_delta="73"
729 max_val="1" min_val="0.02" mouse_opaque="true" name="cut end" width="68" />
730 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
731 bottom_delta="-14" drop_shadow_visible="true" follows="left|top"
732 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="121"
733 mouse_opaque="true" name="text hollow" v_pad="0" width="68">
734 Hollow
735 </text>
736 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
737 bottom_delta="0" drop_shadow_visible="true" follows="left|top"
738 font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="78"
739 mouse_opaque="true" name="text skew" v_pad="0" width="63">
740 Skew
741 </text>
742 <spinner bottom_delta="-20" decimal_digits="1" follows="left|top" height="16"
743 increment="5" initial_val="0" left="121" max_val="95" min_val="0"
744 mouse_opaque="true" name="Scale 1" width="68" />
745 <spinner bottom_delta="0" decimal_digits="2" follows="left|top" height="16"
746 increment="0.05" initial_val="0" left_delta="73" max_val="0.95"
747 min_val="-0.95" mouse_opaque="true" name="Skew" width="68" />
748 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
749 bottom_delta="-15" drop_shadow_visible="true" follows="left|top"
750 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="121"
751 mouse_opaque="true" name="Hollow Shape" v_pad="0" width="141">
752 Hollow Shape
753 </text>
754 <combo_box allow_text_entry="false" bottom_delta="-24" follows="left|top" height="18"
755 left="121" max_chars="20" mouse_opaque="true" name="hole" width="141">
756 <combo_item name="Default" value="Default">
757 Default
758 </combo_item>
759 <combo_item name="Circle" value="Circle">
760 Circle
761 </combo_item>
762 <combo_item name="Square" value="Square">
763 Square
764 </combo_item>
765 <combo_item name="Triangle" value="Triangle">
766 Triangle
767 </combo_item>
768 </combo_box>
769 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
770 bottom_delta="-12" drop_shadow_visible="true" follows="left|top"
771 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="121"
772 mouse_opaque="true" name="text twist" v_pad="0" width="141">
773 Twist Begin and End
774 </text>
775 <spinner bottom_delta="-22" decimal_digits="0" follows="left|top" height="16"
776 increment="9" initial_val="0" label="B" label_width="10" left="121"
777 max_val="180" min_val="-180" mouse_opaque="true" name="Twist Begin"
778 width="68" />
779 <spinner bottom_delta="0" decimal_digits="0" follows="left|top" height="16"
780 increment="9" initial_val="0" label="E" label_width="10" left_delta="73"
781 max_val="180" min_val="-180" mouse_opaque="true" name="Twist End"
782 width="68" />
783 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
784 bottom_delta="-14" drop_shadow_visible="true" follows="left|top"
785 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="121"
786 mouse_opaque="true" name="scale_taper" v_pad="0" width="141">
787 Taper
788 </text>
789 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
790 bottom_delta="0" drop_shadow_visible="true" follows="left|top"
791 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="121"
792 mouse_opaque="true" name="scale_hole" v_pad="0" width="141">
793 Hole Size
794 </text>
795 <spinner bottom_delta="-20" decimal_digits="2" follows="left|top" height="16"
796 increment="0.05" initial_val="0" label="X" label_width="10" left="121"
797 max_val="1" min_val="-1" mouse_opaque="true" name="Taper Scale X"
798 width="68" />
799 <spinner bottom_delta="0" decimal_digits="2" follows="left|top" height="16"
800 increment="0.05" initial_val="0" label="Y" label_width="10" left_delta="73"
801 max_val="1" min_val="-1" mouse_opaque="true" name="Taper Scale Y"
802 width="68" />
803 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
804 bottom_delta="-14" drop_shadow_visible="true" follows="left|top"
805 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="121"
806 mouse_opaque="true" name="text topshear" v_pad="0" width="141">
807 Top Shear
808 </text>
809 <spinner bottom_delta="-20" decimal_digits="2" follows="left|top" height="16"
810 increment="0.05" initial_val="0" label="X" label_width="10" left="121"
811 max_val="0.5" min_val="-0.5" mouse_opaque="true" name="Shear X" width="68" />
812 <spinner bottom_delta="0" decimal_digits="2" follows="left|top" height="16"
813 increment="0.05" initial_val="0" label="Y" label_width="10" left_delta="73"
814 max_val="0.5" min_val="-0.5" mouse_opaque="true" name="Shear Y" width="68" />
815 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
816 bottom_delta="-14" drop_shadow_visible="true" follows="left|top"
817 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="121"
818 mouse_opaque="true" name="advanced_cut" v_pad="0" width="141">
819 Profile Cut Begin and End
820 </text>
821 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
822 bottom_delta="0" drop_shadow_visible="true" follows="left|top"
823 font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0"
824 mouse_opaque="true" name="advanced_dimple" v_pad="0" width="141">
825 Dimple Begin and End
826 </text>
827 <spinner bottom_delta="-19" decimal_digits="3" follows="left|top" height="16"
828 increment="0.05" initial_val="0" label="B" label_width="10" left="121"
829 max_val="0.95" min_val="0" mouse_opaque="true" name="Path Limit Begin"
830 width="68" />
831 <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16"
832 increment="0.05" initial_val="1" label="E" label_width="10" left_delta="73"
833 max_val="1" min_val="0.05" mouse_opaque="true" name="Path Limit End"
834 width="68" />
835 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
836 bottom_delta="-14" drop_shadow_visible="true" follows="left|top"
837 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="121"
838 mouse_opaque="true" name="text taper2" v_pad="0" width="141">
839 Taper
840 </text>
841 <spinner bottom_delta="-19" decimal_digits="2" follows="left|top" height="16"
842 increment="0.05" initial_val="0" label="X" label_width="10" left="121"
843 max_val="1" min_val="-1" mouse_opaque="true" name="Taper X" width="68" />
844 <spinner bottom_delta="0" decimal_digits="2" follows="left|top" height="16"
845 increment="0.05" initial_val="0" label="Y" label_width="10" left_delta="73"
846 max_val="1" min_val="-1" mouse_opaque="true" name="Taper Y" width="68" />
847 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
848 bottom_delta="-12" drop_shadow_visible="true" follows="left|top"
849 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="121"
850 mouse_opaque="true" name="text radius delta" v_pad="0" width="78">
851 Radius
852 </text>
853 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
854 bottom_delta="0" drop_shadow_visible="true" follows="left|top"
855 font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="73"
856 mouse_opaque="true" name="text revolutions" v_pad="0" width="68">
857 Revolutions
858 </text>
859 <spinner bottom_delta="-19" decimal_digits="3" follows="left|top" height="16"
860 increment="0.05" initial_val="0" left="121" max_val="1" min_val="-1"
861 mouse_opaque="true" name="Radius Offset" width="68" />
862 <spinner bottom_delta="0" decimal_digits="2" follows="left|top" height="16"
863 increment="0.1" initial_val="1" left_delta="73" max_val="4" min_val="1"
864 mouse_opaque="true" name="Revolutions" width="68" />
865 <texture_picker allow_no_texture="false" bottom="-211" can_apply_immediately="true"
866 default_image_name="Default" follows="left|top" height="141"
867 label="Sculpt Texture" left="121" mouse_opaque="true"
868 name="sculpt texture control" tool_tip="Click to choose a picture"
869 visible="false" width="141" />
870 <check_box bottom_delta="-24" follows="left|top" font="SansSerifSmall" height="16"
871 initial_value="false" label="Mirror" left="121" mouse_opaque="true"
872 name="sculpt mirror control" visible="false"
873 tool_tip="Flips sculpted prim along the X axis."
874 width="121" />
875 <check_box bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="16"
876 initial_value="false" label="Inside-out" left="121" mouse_opaque="true"
877 name="sculpt invert control" visible="false"
878 tool_tip="Inverts the sculpted prims normals, making it appear inside-out."
879 width="121" />
880 <text align="left" bg_visible="false" border_drop_shadow_visible="false"
881 border_visible="false" bottom_delta="-20" drop_shadow_visible="true"
882 follows="left|top" font="SansSerifSmall" h_pad="0" height="10" left="121"
883 mouse_opaque="true" name="label sculpt type" v_pad="0" visible="false"
884 width="121">
885 Stitching type
886 </text>
887 <combo_box allow_text_entry="false" bottom_delta="-24" follows="left|top" height="18"
888 left="121" max_chars="20" mouse_opaque="true" name="sculpt type control"
889 visible="false" width="141">
890 <combo_item name="None" value="None">
891 (none)
892 </combo_item>
893 <combo_item name="Sphere" value="Sphere">
894 Sphere
895 </combo_item>
896 <combo_item name="Torus" value="Torus">
897 Torus
898 </combo_item>
899 <combo_item name="Plane" value="Plane">
900 Plane
901 </combo_item>
902 <combo_item name="Cylinder" value="Cylinder">
903 Cylinder
904 </combo_item>
905 </combo_box>
906 </panel>
907
908<!-- Features sub-tab -->
909
910 <panel border="true" bottom="-383" follows="left|top|right|bottom" height="367"
911 label="Features" left="1" mouse_opaque="false" name="Features" width="270">
912 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
913 bottom="-20" drop_shadow_visible="true" follows="left|top"
914 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
915 mouse_opaque="true" name="select_single" v_pad="0" width="252">
916 Select only one primitive to edit features.
917 </text>
918 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
919 bottom_delta="0" drop_shadow_visible="true" follows="left|top"
920 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
921 mouse_opaque="true" name="edit_object" v_pad="0" width="252">
922 Edit object features:
923 </text>
924 <check_box bottom_delta="-26" follows="left|top" font="SansSerifSmall" height="16"
925 initial_value="false" label="Flexible Path" left="10" mouse_opaque="true"
926 name="Flexible1D Checkbox Ctrl"
927 tool_tip="Allows object to flex about the Z axis. (Client-side only)"
928 width="121" />
929 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16"
930 increment="1" initial_val="2" label="Softness" label_width="65" left="10"
931 max_val="3" min_val="0" mouse_opaque="true" name="FlexNumSections"
932 width="128" />
933 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16"
934 increment="0.5" initial_val="0.3" label="Gravity" label_width="65"
935 left="10" max_val="10" min_val="-10" mouse_opaque="true" name="FlexGravity"
936 width="128" />
937 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16"
938 increment="0.5" initial_val="2" label="Drag" label_width="65" left="10"
939 max_val="10" min_val="0" mouse_opaque="true" name="FlexFriction"
940 width="128" />
941 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16"
942 increment="0.5" initial_val="0" label="Wind" label_width="65" left="10"
943 max_val="10" min_val="0" mouse_opaque="true" name="FlexWind" width="128" />
944 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16"
945 increment="0.5" initial_val="1" label="Tension" label_width="65" left="10"
946 max_val="10" min_val="0" mouse_opaque="true" name="FlexTension" width="128" />
947 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16"
948 increment="0.01" initial_val="0" label="Force X" label_width="65" left="10"
949 max_val="10" min_val="-10" mouse_opaque="true" name="FlexForceX"
950 width="128" />
951 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16"
952 increment="0.01" initial_val="0" label="Force Y" label_width="65" left="10"
953 max_val="10" min_val="-10" mouse_opaque="true" name="FlexForceY"
954 width="128" />
955 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16"
956 increment="0.01" initial_val="0" label="Force Z" label_width="65" left="10"
957 max_val="10" min_val="-10" mouse_opaque="true" name="FlexForceZ"
958 width="128" />
959 <check_box bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16"
960 initial_value="false" label="Light" left="10" mouse_opaque="true"
961 name="Light Checkbox Ctrl" tool_tip="Causes object to emit light"
962 width="121" />
963 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
964 bottom_delta="-21" drop_shadow_visible="true" follows="left|top"
965 font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0"
966 mouse_opaque="true" name="label color" v_pad="0" width="58">
967 Color
968 </text>
969 <color_swatch border_color="0.45098, 0.517647, 0.607843, 1" bottom_delta="-28"
970 can_apply_immediately="true" color="0.5, 0.5, 0.5, 1" follows="left|top"
971 height="48" label="" left_delta="67" mouse_opaque="true" name="colorswatch"
972 tool_tip="Click to open Color Picker" width="32" />
973 <spinner bottom_delta="-4" decimal_digits="3" follows="left|top" height="16"
974 increment="0.1" initial_val="0.5" label="Intensity" label_width="65"
975 left="10" max_val="1" min_val="0" mouse_opaque="true"
976 name="Light Intensity" width="128" />
977 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16"
978 increment="0.1" initial_val="5" label="Radius" label_width="65"
979 left_delta="0" max_val="20" min_val="0" mouse_opaque="true"
980 name="Light Radius" width="128" />
981 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16"
982 increment="0.25" initial_val="1" label="Falloff" label_width="65"
983 left_delta="0" max_val="2" min_val="0" mouse_opaque="true"
984 name="Light Falloff" width="128" />
985 </panel>
986
987<!-- Texture sub-tab -->
988
989 <panel border="true" bottom="-383" follows="left|top|right|bottom" height="367"
990 label="Texture" left="1" mouse_opaque="false" name="Texture" width="270">
991 <texture_picker allow_no_texture="false" bottom="-90" can_apply_immediately="true"
992 default_image_name="Default" follows="left|top" height="80" label="Texture"
993 left="10" mouse_opaque="true" name="texture control"
994 tool_tip="Click to choose a picture" width="64" />
995 <color_swatch border_color="0.45098, 0.517647, 0.607843, 1" bottom="-90"
996 can_apply_immediately="true" color="1, 1, 1, 1" follows="left|top"
997 height="80" label="Color" left_delta="90" mouse_opaque="true"
998 name="colorswatch" tool_tip="Click to open Color Picker" width="64" />
999 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1000 bottom="-11" drop_shadow_visible="true" follows="left|top"
1001 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="180"
1002 mouse_opaque="true" name="color trans" v_pad="0" width="80">
1003 Transparency %
1004 </text>
1005 <spinner bottom_delta="-20" decimal_digits="0" follows="left|top" height="16"
1006 increment="2" initial_val="0" left="180" max_val="90" min_val="0"
1007 mouse_opaque="true" name="ColorTrans" width="80" />
1008 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1009 bottom_delta="-12" drop_shadow_visible="true" follows="left|top"
1010 font="SansSerifSmall" h_pad="0" halign="left" height="10"
1011 left="180" mouse_opaque="true" name="glow label" v_pad="0" width="80">
1012 Glow
1013 </text>
1014 <spinner bottom_delta="-20" decimal_digits="2" follows="left|top" height="16"
1015 increment="0.1" initial_val="0" left="180" max_val="1"
1016 min_val="0" mouse_opaque="true" name="glow" width="80" />
1017 <check_box bottom_delta="-23" follows="left|top" font="SansSerifSmall" height="16"
1018 initial_value="false" label="Full Bright" left="180" mouse_opaque="true"
1019 name="checkbox fullbright" width="81" />
1020 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1021 bottom="-104" drop_shadow_visible="true" follows="left|top"
1022 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
1023 mouse_opaque="true" name="tex gen" v_pad="0" width="90">
1024 Mapping
1025 </text>
1026 <combo_box allow_text_entry="false" bottom_delta="-22" follows="left|top" height="18"
1027 left="10" max_chars="20" mouse_opaque="true" name="combobox texgen"
1028 width="80">
1029 <combo_item name="Default" value="Default">
1030 Default
1031 </combo_item>
1032 <combo_item name="Planar" value="Planar">
1033 Planar
1034 </combo_item>
1035 </combo_box>
1036 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1037 bottom="-104" drop_shadow_visible="true" follows="left|top"
1038 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="100"
1039 mouse_opaque="true" name="label shininess" v_pad="0" width="70">
1040 Shininess
1041 </text>
1042 <combo_box allow_text_entry="false" bottom_delta="-22" follows="left|top" height="18"
1043 left="100" max_chars="20" mouse_opaque="true" name="combobox shininess"
1044 width="70">
1045 <combo_item name="None" value="None">
1046 None
1047 </combo_item>
1048 <combo_item name="Low" value="Low">
1049 Low
1050 </combo_item>
1051 <combo_item name="Medium" value="Medium">
1052 Medium
1053 </combo_item>
1054 <combo_item name="High" value="High">
1055 High
1056 </combo_item>
1057 </combo_box>
1058 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1059 bottom="-104" drop_shadow_visible="true" follows="left|top"
1060 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="180"
1061 mouse_opaque="true" name="label bumpiness" v_pad="0" width="80">
1062 Bumpiness
1063 </text>
1064 <combo_box allow_text_entry="false" bottom_delta="-22" follows="left|top" height="18"
1065 left="180" max_chars="20" mouse_opaque="true" name="combobox bumpiness"
1066 width="80">
1067 <combo_item name="None" value="None">
1068 None
1069 </combo_item>
1070 <combo_item name="Brightness" value="Brightness">
1071 Brightness
1072 </combo_item>
1073 <combo_item name="Darkness" value="Darkness">
1074 Darkness
1075 </combo_item>
1076 <combo_item name="woodgrain" value="woodgrain">
1077 woodgrain
1078 </combo_item>
1079 <combo_item name="bark" value="bark">
1080 bark
1081 </combo_item>
1082 <combo_item name="bricks" value="bricks">
1083 bricks
1084 </combo_item>
1085 <combo_item name="checker" value="checker">
1086 checker
1087 </combo_item>
1088 <combo_item name="concrete" value="concrete">
1089 concrete
1090 </combo_item>
1091 <combo_item name="crustytile" value="crustytile">
1092 crustytile
1093 </combo_item>
1094 <combo_item name="cutstone" value="cutstone">
1095 cutstone
1096 </combo_item>
1097 <combo_item name="discs" value="discs">
1098 discs
1099 </combo_item>
1100 <combo_item name="gravel" value="gravel">
1101 gravel
1102 </combo_item>
1103 <combo_item name="petridish" value="petridish">
1104 petridish
1105 </combo_item>
1106 <combo_item name="siding" value="siding">
1107 siding
1108 </combo_item>
1109 <combo_item name="stonetile" value="stonetile">
1110 stonetile
1111 </combo_item>
1112 <combo_item name="stucco" value="stucco">
1113 stucco
1114 </combo_item>
1115 <combo_item name="suction" value="suction">
1116 suction
1117 </combo_item>
1118 <combo_item name="weave" value="weave">
1119 weave
1120 </combo_item>
1121 </combo_box>
1122 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1123 bottom="-158" drop_shadow_visible="true" follows="left|top"
1124 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
1125 mouse_opaque="true" name="tex scale" v_pad="0" width="160">
1126 Repeats per Face
1127 </text>
1128 <spinner bottom="-178" decimal_digits="3" follows="left|top" height="16" increment="0.1"
1129 initial_val="0" label="Horizontal (U)" label_width="90" left="20"
1130 max_val="100" min_val="0" mouse_opaque="true" name="TexScaleU" width="160" />
1131 <check_box bottom="-179" follows="left|top" font="SansSerifSmall" height="16"
1132 initial_value="false" label="Flip" left_delta="170" mouse_opaque="true"
1133 name="checkbox flip s" width="70" />
1134 <spinner bottom="-196" decimal_digits="3" follows="left|top" height="16" increment="0.1"
1135 initial_val="0" label="Vertical (V)" label_width="90" left="20"
1136 max_val="100" min_val="0" mouse_opaque="true" name="TexScaleV" width="160" />
1137 <check_box bottom="-197" follows="left|top" font="SansSerifSmall" height="16"
1138 initial_value="false" label="Flip" left_delta="170" mouse_opaque="true"
1139 name="checkbox flip t" width="70" />
1140 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1141 bottom="-228" drop_shadow_visible="true" follows="left|top"
1142 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
1143 mouse_opaque="true" name="tex rotate" v_pad="0" width="102">
1144 Rotation (degrees)
1145 </text>
1146 <spinner bottom="-234" decimal_digits="2" follows="left|top" height="16" increment="1"
1147 initial_val="0" left="112" max_val="9999" min_val="-9999"
1148 mouse_opaque="true" name="TexRot" width="68" />
1149 <string name="string repeats per meter">
1150 Repeats Per Meter
1151 </string>
1152 <string name="string repeats per face">
1153 Repeats Per Face
1154 </string>
1155 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1156 bottom="-250" drop_shadow_visible="true" follows="left|top"
1157 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
1158 mouse_opaque="true" name="rpt" v_pad="0" width="160">
1159 Repeats Per Meter
1160 </text>
1161 <spinner bottom="-256" decimal_digits="1" follows="left|top" height="16" increment="0.1"
1162 initial_val="1" left="112" max_val="10" min_val="0.1" mouse_opaque="true"
1163 name="rptctrl" width="68" />
1164 <button bottom="-256" follows="left|top" font="SansSerifSmall" halign="center"
1165 height="16" label="Apply" label_selected="Apply" left_delta="78"
1166 mouse_opaque="true" name="button apply" scale_image="TRUE" width="75" />
1167 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1168 bottom="-288" drop_shadow_visible="true" follows="left|top"
1169 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
1170 mouse_opaque="true" name="tex offset" v_pad="0" width="160">
1171 Offset
1172 </text>
1173 <spinner bottom="-308" decimal_digits="3" follows="left|top" height="16" increment="0.1"
1174 initial_val="0" label="Horizontal (U)" label_width="90" left="20"
1175 max_val="1" min_val="-1" mouse_opaque="true" name="TexOffsetU" width="160" />
1176 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16"
1177 increment="0.1" initial_val="0" label="Vertical (V)" label_width="90"
1178 left="20" max_val="1" min_val="-1" mouse_opaque="true" name="TexOffsetV"
1179 width="160" />
1180 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1181 bottom="-352" drop_shadow_visible="true" follows="left|top"
1182 font="SansSerifSmall" h_pad="0" halign="left" height="20" left="10"
1183 mouse_opaque="true" name="textbox autofix" v_pad="0" width="160">
1184 Align media texture
1185(must load first)
1186 </text>
1187 <button bottom="-360" follows="left|top" font="SansSerifSmall" halign="center"
1188 height="16" label="Align" label_selected="Align" left="112"
1189 mouse_opaque="true" name="button align" scale_image="TRUE" width="68" />
1190 </panel>
1191 <panel border="true" bottom="-383" follows="left|top|right|bottom" height="367"
1192 label="Content" left="1" mouse_opaque="false" name="Contents" width="270">
1193 <button bottom="-30" follows="left|top" font="SansSerif" halign="center" height="20"
1194 label="New Script..." label_selected="New Script..."
1195 left="10" mouse_opaque="true" name="button new script" scale_image="TRUE"
1196 width="130" />
1197 <panel bottom_delta="-330" follows="left|top" height="325" left="10"
1198 mouse_opaque="true" name="ContentsInventory" width="252" />
1199 </panel>
1200 </tab_container>
1201
1202<!-- Land Info sub-tab -->
1203
1204 <panel bottom="-550" follows="left|top" height="384" left="0" mouse_opaque="true"
1205 name="land info panel" width="272">
1206 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1207 bottom="-18" drop_shadow_visible="true" follows="left|top"
1208 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
1209 mouse_opaque="true" name="label_area_price" v_pad="0" width="150">
1210 Price: L$[PRICE] for [AREA] sq. m.
1211 </text>
1212 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1213 bottom_delta="0" drop_shadow_visible="true" follows="left|top"
1214 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
1215 mouse_opaque="true" name="label_area" v_pad="0" width="128">
1216 Area: [AREA] sq. m.
1217 </text>
1218 <button bottom_delta="-38" follows="left|top" font="SansSerif" halign="center"
1219 height="20" label="Buy Land..." label_selected="Buy Land..." left="76"
1220 mouse_opaque="true" name="button buy land" scale_image="TRUE" width="102" />
1221 <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center"
1222 height="20" label="Abandon Land..." label_selected="Abandon Land..."
1223 left="76" mouse_opaque="true" name="button abandon land" scale_image="TRUE"
1224 width="102" />
1225 <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center"
1226 height="20" label="Subdivide..." label_selected="Subdivide..." left="76"
1227 mouse_opaque="true" name="button subdivide land" scale_image="TRUE"
1228 width="102" />
1229 <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center"
1230 height="20" label="Join..." label_selected="Join..." left="76"
1231 mouse_opaque="true" name="button join land" scale_image="TRUE" width="102" />
1232 <button bottom_delta="-40" follows="left|top" font="SansSerif" halign="center"
1233 height="20" label="About Land..." label_selected="About Land..." left="76"
1234 mouse_opaque="true" name="button about land" scale_image="TRUE" width="102" />
1235 </panel>
1236 <string name="status_rotate">
1237 Drag colored bands to rotate object
1238 </string>
1239 <string name="status_scale">
1240 Click and drag to stretch selected side
1241 </string>
1242 <string name="status_move">
1243 Drag to move, shift-drag to copy
1244 </string>
1245 <string name="status_modifyland">
1246 Click and hold to modify land
1247 </string>
1248 <string name="status_camera">
1249 Click and drag to change view
1250 </string>
1251 <string name="status_grab">
1252 Drag to move objects, Ctrl to lift, Ctrl-Shift to spin
1253 </string>
1254 <string name="status_place">
1255 Click in the world to create, shift-click to select
1256 </string>
1257 <string name="status_selectland">
1258 Click and drag to select land
1259 </string>
1260 <string name="grid_screen_text">
1261 Screen
1262 </string>
1263 <string name="grid_local_text">
1264 Local
1265 </string>
1266 <string name="grid_world_text">
1267 World
1268 </string>
1269 <string name="grid_reference_text">
1270 Reference
1271 </string>
1272 <string name="grid_attachment_text">
1273 Attachment
1274 </string>
1275</floater>
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py
index 3d56c7d..62c9537 100755
--- a/linden/indra/newview/viewer_manifest.py
+++ b/linden/indra/newview/viewer_manifest.py
@@ -69,34 +69,66 @@ class ViewerManifest(LLManifest):
69 69
70 # Include our fonts 70 # Include our fonts
71 if self.prefix(src="fonts"): 71 if self.prefix(src="fonts"):
72 self.path("*.ttf") 72 self.path("LiberationSans-Bold.ttf")
73 self.path("LiberationSans-Regular.ttf")
74 self.path("VeraMono.ttf")
73 self.path("*.txt") 75 self.path("*.txt")
74 self.end_prefix("fonts") 76 self.end_prefix("fonts")
75 77
76 # skins 78 # skins
77 if self.prefix(src="skins"): 79 if self.prefix(src="skins"):
78 self.path("paths.xml") 80 self.path("paths.xml")
79 # include the entire textures directory recursively 81
80 if self.prefix(src="*/textures"): 82 # include the entire textures directory recursively
81 self.path("*.tga") 83 if self.prefix(src="*/textures"):
82 self.path("*.j2c") 84 self.path("*.tga")
83 self.path("*.jpg") 85 self.path("*.j2c")
84 self.path("*.png") 86 self.path("*.jpg")
85 self.path("textures.xml") 87 self.path("*.png")
86 self.end_prefix("*/textures") 88 self.path("textures.xml")
87 self.path("*/xui/*/*.xml") 89 self.end_prefix("*/textures")
88 self.path("*/*.xml") 90
89 91 self.path("*/xui/*/*.xml")
90 # Local HTML files (e.g. loading screen) 92 self.path("*/*.xml")
91 if self.prefix(src="*/html"): 93
92 self.path("*.png") 94 # Local HTML files (e.g. loading screen)
93 self.path("*/*/*.html") 95 if self.prefix(src="*/html"):
94 self.path("*/*/*.gif") 96 self.path("*.png")
95 self.end_prefix("*/html") 97 self.path("*/*/*.html")
96 self.end_prefix("skins") 98 self.path("*/*/*.gif")
99 self.end_prefix("*/html")
100
101 self.end_prefix("skins")
102
97 self.path("lsl_guide.html") 103 self.path("lsl_guide.html")
98 self.path("gpu_table.txt") 104 self.path("gpu_table.txt")
99 105
106
107 # Gather up the README file, etc.
108 def gather_documents(self):
109 # From the top level directory (imprudence)
110 if self.prefix("../../..", dst=""):
111 self.path("README.txt")
112 self.path("MANIFESTO.txt")
113 self.path("CONTRIBUTE.txt")
114 self.path("RELEASE_NOTES.txt")
115 self.path("ChangeLog.txt")
116 self.end_prefix("../../..")
117
118 # From the linden directory
119 if self.prefix("../..", dst="doc"):
120 self.path("LICENSE-source.txt")
121 self.path("LICENSE-logos.txt", "LICENSE-artwork.txt")
122 self.end_prefix("../..")
123
124 # From the linden/doc directory
125 if self.prefix("../../doc", dst="doc"):
126 self.path("contributions.txt")
127 self.path("GPL-license.txt", "GPL.txt")
128 self.path("FLOSS-exception.txt")
129 self.end_prefix("../../doc")
130
131
100 def login_channel(self): 132 def login_channel(self):
101 """Channel reported for login and upgrade purposes ONLY; 133 """Channel reported for login and upgrade purposes ONLY;
102 used for A/B testing""" 134 used for A/B testing"""
@@ -139,9 +171,9 @@ class WindowsManifest(ViewerManifest):
139 def final_exe(self): 171 def final_exe(self):
140 if self.default_channel(): 172 if self.default_channel():
141 if self.default_grid(): 173 if self.default_grid():
142 return "SecondLife.exe" 174 return "Imprudence.exe"
143 else: 175 else:
144 return "SecondLifePreview.exe" 176 return "ImprudencePreview.exe"
145 else: 177 else:
146 return ''.join(self.channel().split()) + '.exe' 178 return ''.join(self.channel().split()) + '.exe'
147 179
@@ -150,16 +182,22 @@ class WindowsManifest(ViewerManifest):
150 super(WindowsManifest, self).construct() 182 super(WindowsManifest, self).construct()
151 # the final exe is complicated because we're not sure where it's coming from, 183 # the final exe is complicated because we're not sure where it's coming from,
152 # nor do we have a fixed name for the executable 184 # nor do we have a fixed name for the executable
153 self.path(self.find_existing_file('debug/secondlife-bin.exe', 'release/secondlife-bin.exe', 'relwithdebinfo/secondlife-bin.exe'), dst=self.final_exe()) 185 self.path(self.find_existing_file('debug/imprudence-bin.exe', 'release/imprudence-bin.exe', 'relwithdebinfo/imprudence-bin.exe'), dst=self.final_exe())
154 # need to get the kdu dll from any of the build directories as well 186 # need to get the kdu dll from any of the build directories as well
155 self.path(self.find_existing_file( 187 #self.path(self.find_existing_file(
156 # *FIX:Mani we need to add support for packaging specific targets. 188 # *FIX:Mani we need to add support for packaging specific targets.
157 #'../llkdu/debug/llkdu.dll', 189 #'../llkdu/debug/llkdu.dll',
158 '../llkdu/release/llkdu.dll', 190 #'../llkdu/release/llkdu.dll',
159 '../llkdu/relwithdebinfo/llkdu.dll', 191 #'../llkdu/relwithdebinfo/llkdu.dll',
160 '../../libraries/i686-win32/lib/release/llkdu.dll'), 192 #'../../libraries/i686-win32/lib/release/llkdu.dll'),
161 dst='llkdu.dll') 193 # dst='llkdu.dll')
162 self.path(src="licenses-win32.txt", dst="licenses.txt") 194
195 self.gather_documents()
196
197 if self.prefix("../..", dst="doc"):
198 self.path("LICENSE-libraries-win32.txt")
199 self.end_prefix("../..")
200
163 201
164 self.path("featuretable.txt") 202 self.path("featuretable.txt")
165 203
@@ -167,7 +205,7 @@ class WindowsManifest(ViewerManifest):
167 self.path("dbghelp.dll") 205 self.path("dbghelp.dll")
168 206
169 # For using FMOD for sound... DJS 207 # For using FMOD for sound... DJS
170 self.path("fmod.dll") 208 #self.path("fmod.dll")
171 209
172 # For textures 210 # For textures
173 if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""): 211 if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""):
@@ -206,18 +244,18 @@ class WindowsManifest(ViewerManifest):
206 self.end_prefix() 244 self.end_prefix()
207 245
208 # Vivox runtimes 246 # Vivox runtimes
209 if self.prefix(src="vivox-runtime/i686-win32", dst=""): 247 #if self.prefix(src="vivox-runtime/i686-win32", dst=""):
210 self.path("SLVoice.exe") 248 # self.path("SLVoice.exe")
211 self.path("SLVoiceAgent.exe") 249 # self.path("SLVoiceAgent.exe")
212 self.path("libeay32.dll") 250 # self.path("libeay32.dll")
213 self.path("srtp.dll") 251 # self.path("srtp.dll")
214 self.path("ssleay32.dll") 252 # self.path("ssleay32.dll")
215 self.path("tntk.dll") 253 # self.path("tntk.dll")
216 self.path("alut.dll") 254 # self.path("alut.dll")
217 self.path("vivoxsdk.dll") 255 # self.path("vivoxsdk.dll")
218 self.path("ortp.dll") 256 # self.path("ortp.dll")
219 self.path("wrap_oal.dll") 257 # self.path("wrap_oal.dll")
220 self.end_prefix() 258 # self.end_prefix()
221 259
222# # pull in the crash logger and updater from other projects 260# # pull in the crash logger and updater from other projects
223# self.path(src=self.find_existing_file( # tag:"crash-logger" here as a cue to the exporter 261# self.path(src=self.find_existing_file( # tag:"crash-logger" here as a cue to the exporter
@@ -299,36 +337,36 @@ class WindowsManifest(ViewerManifest):
299 if self.default_channel(): 337 if self.default_channel():
300 if self.default_grid(): 338 if self.default_grid():
301 # release viewer 339 # release viewer
302 installer_file = "Second_Life_%(version_dashes)s_Setup.exe" 340 installer_file = "Imprudence_%(version_dashes)s_Setup.exe"
303 grid_vars_template = """ 341 grid_vars_template = """
304 OutFile "%(installer_file)s" 342 OutFile "%(installer_file)s"
305 !define INSTFLAGS "%(flags)s" 343 !define INSTFLAGS "%(flags)s"
306 !define INSTNAME "SecondLife" 344 !define INSTNAME "Imprudence"
307 !define SHORTCUT "Second Life" 345 !define SHORTCUT "Imprudence"
308 !define URLNAME "secondlife" 346 !define URLNAME "imprudence"
309 Caption "Second Life ${VERSION}" 347 Caption "Imprudence ${VERSION}"
310 """ 348 """
311 else: 349 else:
312 # beta grid viewer 350 # beta grid viewer
313 installer_file = "Second_Life_%(version_dashes)s_(%(grid_caps)s)_Setup.exe" 351 installer_file = "Imprudence_%(version_dashes)s_(%(grid_caps)s)_Setup.exe"
314 grid_vars_template = """ 352 grid_vars_template = """
315 OutFile "%(installer_file)s" 353 OutFile "%(installer_file)s"
316 !define INSTFLAGS "%(flags)s" 354 !define INSTFLAGS "%(flags)s"
317 !define INSTNAME "SecondLife%(grid_caps)s" 355 !define INSTNAME "Imprudence%(grid_caps)s"
318 !define SHORTCUT "Second Life (%(grid_caps)s)" 356 !define SHORTCUT "Imprudence (%(grid_caps)s)"
319 !define URLNAME "secondlife%(grid)s" 357 !define URLNAME "imprudence%(grid)s"
320 !define UNINSTALL_SETTINGS 1 358 !define UNINSTALL_SETTINGS 1
321 Caption "Second Life %(grid)s ${VERSION}" 359 Caption "Imprudence %(grid)s ${VERSION}"
322 """ 360 """
323 else: 361 else:
324 # some other channel on some grid 362 # some other channel on some grid
325 installer_file = "Second_Life_%(version_dashes)s_%(channel_oneword)s_Setup.exe" 363 installer_file = "Imprudence_%(version_dashes)s_%(channel_oneword)s_Setup.exe"
326 grid_vars_template = """ 364 grid_vars_template = """
327 OutFile "%(installer_file)s" 365 OutFile "%(installer_file)s"
328 !define INSTFLAGS "%(flags)s" 366 !define INSTFLAGS "%(flags)s"
329 !define INSTNAME "SecondLife%(channel_oneword)s" 367 !define INSTNAME "Imprudence%(channel_oneword)s"
330 !define SHORTCUT "%(channel)s" 368 !define SHORTCUT "%(channel)s"
331 !define URLNAME "secondlife" 369 !define URLNAME "imprudence"
332 !define UNINSTALL_SETTINGS 1 370 !define UNINSTALL_SETTINGS 1
333 Caption "%(channel)s ${VERSION}" 371 Caption "%(channel)s ${VERSION}"
334 """ 372 """
@@ -338,7 +376,7 @@ class WindowsManifest(ViewerManifest):
338 installer_file = installer_file % substitution_strings 376 installer_file = installer_file % substitution_strings
339 substitution_strings['installer_file'] = installer_file 377 substitution_strings['installer_file'] = installer_file
340 378
341 tempfile = "secondlife_setup_tmp.nsi" 379 tempfile = "imprudence_setup_tmp.nsi"
342 # the following replaces strings in the nsi template 380 # the following replaces strings in the nsi template
343 # it also does python-style % substitution 381 # it also does python-style % substitution
344 self.replace_in("installers/windows/installer_template.nsi", tempfile, { 382 self.replace_in("installers/windows/installer_template.nsi", tempfile, {
@@ -358,7 +396,7 @@ class WindowsManifest(ViewerManifest):
358class DarwinManifest(ViewerManifest): 396class DarwinManifest(ViewerManifest):
359 def construct(self): 397 def construct(self):
360 # copy over the build result (this is a no-op if run within the xcode script) 398 # copy over the build result (this is a no-op if run within the xcode script)
361 self.path(self.args['configuration'] + "/Second Life.app", dst="") 399 self.path(self.args['configuration'] + "/Imprudence.app", dst="")
362 400
363 if self.prefix(src="", dst="Contents"): # everything goes in Contents 401 if self.prefix(src="", dst="Contents"): # everything goes in Contents
364 # Expand the tar file containing the assorted mozilla bits into 402 # Expand the tar file containing the assorted mozilla bits into
@@ -384,16 +422,17 @@ class DarwinManifest(ViewerManifest):
384 self.path("*.tif") 422 self.path("*.tif")
385 self.end_prefix("cursors_mac") 423 self.end_prefix("cursors_mac")
386 424
387 self.path("licenses-mac.txt", dst="licenses.txt") 425 # From the linden directory
426 if self.prefix("../..", dst="doc"):
427 self.path("LICENSE-libraries-mac.txt")
428 self.end_prefix("../..")
429
430 self.gather_documents()
431
388 self.path("featuretable_mac.txt") 432 self.path("featuretable_mac.txt")
389 self.path("SecondLife.nib") 433 self.path("SecondLife.nib")
390 434
391 # If we are not using the default channel, use the 'Firstlook 435 self.path("secondlife.icns")
392 # icon' to show that it isn't a stable release.
393 if self.default_channel() and self.default_grid():
394 self.path("secondlife.icns")
395 else:
396 self.path("secondlife_firstlook.icns", "secondlife.icns")
397 436
398 # Translations 437 # Translations
399 self.path("English.lproj") 438 self.path("English.lproj")
@@ -402,18 +441,18 @@ class DarwinManifest(ViewerManifest):
402 self.path("Korean.lproj") 441 self.path("Korean.lproj")
403 442
404 # SLVoice and vivox lols 443 # SLVoice and vivox lols
405 self.path("vivox-runtime/universal-darwin/libalut.dylib", "libalut.dylib") 444 #self.path("vivox-runtime/universal-darwin/libalut.dylib", "libalut.dylib")
406 self.path("vivox-runtime/universal-darwin/libopenal.dylib", "libopenal.dylib") 445 #self.path("vivox-runtime/universal-darwin/libopenal.dylib", "libopenal.dylib")
407 self.path("vivox-runtime/universal-darwin/libortp.dylib", "libortp.dylib") 446 #self.path("vivox-runtime/universal-darwin/libortp.dylib", "libortp.dylib")
408 self.path("vivox-runtime/universal-darwin/libvivoxsdk.dylib", "libvivoxsdk.dylib") 447 #self.path("vivox-runtime/universal-darwin/libvivoxsdk.dylib", "libvivoxsdk.dylib")
409 self.path("vivox-runtime/universal-darwin/SLVoice", "SLVoice") 448 #self.path("vivox-runtime/universal-darwin/SLVoice", "SLVoice")
410 self.path("vivox-runtime/universal-darwin/SLVoiceAgent.app", "SLVoiceAgent.app") 449 #self.path("vivox-runtime/universal-darwin/SLVoiceAgent.app", "SLVoiceAgent.app")
411 450
412 # llkdu dynamic library 451 # llkdu dynamic library
413# self.path("../../libraries/universal-darwin/lib_release/libllkdu.dylib", "libllkdu.dylib") 452# self.path("../../libraries/universal-darwin/lib_release/libllkdu.dylib", "libllkdu.dylib")
414 453
415 #libfmodwrapper.dylib 454 #libfmodwrapper.dylib
416 self.path(self.args['configuration'] + "/libfmodwrapper.dylib", "libfmodwrapper.dylib") 455 #self.path(self.args['configuration'] + "/libfmodwrapper.dylib", "libfmodwrapper.dylib")
417 456
418 # our apps 457 # our apps
419# self.path("../mac_crash_logger/" + self.args['configuration'] + "/mac-crash-logger.app", "mac-crash-logger.app") 458# self.path("../mac_crash_logger/" + self.args['configuration'] + "/mac-crash-logger.app", "mac-crash-logger.app")
@@ -437,16 +476,16 @@ class DarwinManifest(ViewerManifest):
437 476
438 477
439 def package_finish(self): 478 def package_finish(self):
440 channel_standin = 'Second Life' # hah, our default channel is not usable on its own 479 channel_standin = 'Imprudence' # hah, our default channel is not usable on its own
441 if not self.default_channel(): 480 if not self.default_channel():
442 channel_standin = self.channel() 481 channel_standin = self.channel()
443 482
444 imagename="SecondLife_" + '_'.join(self.args['version']) 483 imagename="Imprudence_" + '_'.join(self.args['version'])
445 484
446 # MBW -- If the mounted volume name changes, it breaks the .DS_Store's background image and icon positioning. 485 # MBW -- If the mounted volume name changes, it breaks the .DS_Store's background image and icon positioning.
447 # If we really need differently named volumes, we'll need to create multiple DS_Store file images, or use some other trick. 486 # If we really need differently named volumes, we'll need to create multiple DS_Store file images, or use some other trick.
448 487
449 volname="Second Life Installer" # DO NOT CHANGE without understanding comment above 488 volname="Imprudence Installer" # DO NOT CHANGE without understanding comment above
450 489
451 if self.default_channel(): 490 if self.default_channel():
452 if not self.default_grid(): 491 if not self.default_grid():
@@ -473,7 +512,7 @@ class DarwinManifest(ViewerManifest):
473 # Copy everything in to the mounted .dmg 512 # Copy everything in to the mounted .dmg
474 513
475 if self.default_channel() and not self.default_grid(): 514 if self.default_channel() and not self.default_grid():
476 app_name = "Second Life " + self.args['grid'] 515 app_name = "Imprudence " + self.args['grid']
477 else: 516 else:
478 app_name = channel_standin.strip() 517 app_name = channel_standin.strip()
479 518
@@ -528,16 +567,23 @@ class DarwinManifest(ViewerManifest):
528class LinuxManifest(ViewerManifest): 567class LinuxManifest(ViewerManifest):
529 def construct(self): 568 def construct(self):
530 super(LinuxManifest, self).construct() 569 super(LinuxManifest, self).construct()
531 self.path("licenses-linux.txt","licenses.txt") 570
532 self.path("res/ll_icon.png","secondlife_icon.png") 571 self.path("res/imprudence_icon.png","imprudence_icon.png")
533 if self.prefix("linux_tools", dst=""): 572 if self.prefix("linux_tools", dst=""):
534 self.path("client-readme.txt","README-linux.txt") 573 #self.path("client-readme.txt","README-linux.txt")
535 self.path("client-readme-voice.txt","README-linux-voice.txt") 574 #self.path("client-readme-voice.txt","README-linux-voice.txt")
536 self.path("wrapper.sh","secondlife") 575 self.path("wrapper.sh","imprudence")
537 self.path("handle_secondlifeprotocol.sh") 576 self.path("handle_secondlifeprotocol.sh")
538 self.path("register_secondlifeprotocol.sh") 577 self.path("register_secondlifeprotocol.sh")
539 self.end_prefix("linux_tools") 578 self.end_prefix("linux_tools")
540 579
580 self.gather_documents()
581
582 # From the linden directory
583 if self.prefix("../..", dst="doc"):
584 self.path("LICENSE-libraries-linux.txt")
585 self.end_prefix("../..")
586
541 # Create an appropriate gridargs.dat for this package, denoting required grid. 587 # Create an appropriate gridargs.dat for this package, denoting required grid.
542 self.put_in_file(self.flags_list(), 'gridargs.dat') 588 self.put_in_file(self.flags_list(), 'gridargs.dat')
543 589
@@ -553,7 +599,7 @@ class LinuxManifest(ViewerManifest):
553 if 'installer_name' in self.args: 599 if 'installer_name' in self.args:
554 installer_name = self.args['installer_name'] 600 installer_name = self.args['installer_name']
555 else: 601 else:
556 installer_name_components = ['SecondLife_', self.args.get('arch')] 602 installer_name_components = ['Imprudence_', self.args.get('arch')]
557 installer_name_components.extend(self.args['version']) 603 installer_name_components.extend(self.args['version'])
558 installer_name = "_".join(installer_name_components) 604 installer_name = "_".join(installer_name_components)
559 if self.default_channel(): 605 if self.default_channel():
@@ -598,7 +644,7 @@ class LinuxManifest(ViewerManifest):
598class Linux_i686Manifest(LinuxManifest): 644class Linux_i686Manifest(LinuxManifest):
599 def construct(self): 645 def construct(self):
600 super(Linux_i686Manifest, self).construct() 646 super(Linux_i686Manifest, self).construct()
601 self.path("secondlife-stripped","bin/do-not-directly-run-secondlife-bin") 647 self.path("imprudence-stripped","bin/do-not-directly-run-imprudence-bin")
602# self.path("../linux_crash_logger/linux-crash-logger-stripped","linux-crash-logger.bin") 648# self.path("../linux_crash_logger/linux-crash-logger-stripped","linux-crash-logger.bin")
603 self.path("linux_tools/launch_url.sh","launch_url.sh") 649 self.path("linux_tools/launch_url.sh","launch_url.sh")
604 if self.prefix("res-sdl"): 650 if self.prefix("res-sdl"):
@@ -613,7 +659,7 @@ class Linux_i686Manifest(LinuxManifest):
613 659
614 if self.prefix("../../libraries/i686-linux/lib_release_client", dst="lib"): 660 if self.prefix("../../libraries/i686-linux/lib_release_client", dst="lib"):
615# self.path("libkdu_v42R.so") 661# self.path("libkdu_v42R.so")
616 self.path("libfmod-3.75.so") 662# self.path("libfmod-3.75.so")
617 self.path("libapr-1.so.0") 663 self.path("libapr-1.so.0")
618 self.path("libaprutil-1.so.0") 664 self.path("libaprutil-1.so.0")
619 self.path("libdb-4.2.so") 665 self.path("libdb-4.2.so")
@@ -631,20 +677,20 @@ class Linux_i686Manifest(LinuxManifest):
631 self.end_prefix("lib") 677 self.end_prefix("lib")
632 678
633 # Vivox runtimes 679 # Vivox runtimes
634 if self.prefix(src="vivox-runtime/i686-linux", dst="bin"): 680 #if self.prefix(src="vivox-runtime/i686-linux", dst="bin"):
635 self.path("SLVoice") 681 # self.path("SLVoice")
636 self.end_prefix() 682 # self.end_prefix()
637 if self.prefix(src="vivox-runtime/i686-linux", dst="lib"): 683 #if self.prefix(src="vivox-runtime/i686-linux", dst="lib"):
638 self.path("libopenal.so.1") 684 # self.path("libopenal.so.1")
639 self.path("libortp.so") 685 # self.path("libortp.so")
640 self.path("libvivoxsdk.so") 686 # self.path("libvivoxsdk.so")
641 self.path("libalut.so") 687 # self.path("libalut.so")
642 self.end_prefix("lib") 688 # self.end_prefix("lib")
643 689
644class Linux_x86_64Manifest(LinuxManifest): 690class Linux_x86_64Manifest(LinuxManifest):
645 def construct(self): 691 def construct(self):
646 super(Linux_x86_64Manifest, self).construct() 692 super(Linux_x86_64Manifest, self).construct()
647 self.path("secondlife-stripped","bin/do-not-directly-run-secondlife-bin") 693 self.path("imprudence-stripped","bin/do-not-directly-run-imprudence-bin")
648# self.path("../linux_crash_logger/linux-crash-logger-stripped","linux-crash-logger.bin") 694# self.path("../linux_crash_logger/linux-crash-logger-stripped","linux-crash-logger.bin")
649 self.path("linux_tools/launch_url.sh","launch_url.sh") 695 self.path("linux_tools/launch_url.sh","launch_url.sh")
650 if self.prefix("res-sdl"): 696 if self.prefix("res-sdl"):
diff --git a/linden/indra/win_updater/updater.cpp b/linden/indra/win_updater/updater.cpp
index 5ea4695..9b99f91 100644
--- a/linden/indra/win_updater/updater.cpp
+++ b/linden/indra/win_updater/updater.cpp
@@ -376,7 +376,7 @@ WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nSho
376 } 376 }
377 else 377 else
378 { 378 {
379 mbstowcs(window_title, "Second Life Updater", 2048); 379 mbstowcs(window_title, "Imprudence Updater", 2048);
380 } 380 }
381 381
382 WNDCLASSEX wndclassex = { 0 }; 382 WNDCLASSEX wndclassex = { 0 };
@@ -469,11 +469,11 @@ WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nSho
469 if (gTotalBytesRead < (1024 * 1024) && ! cancelled) 469 if (gTotalBytesRead < (1024 * 1024) && ! cancelled)
470 { 470 {
471 MessageBox(gWindow, 471 MessageBox(gWindow,
472 L"The Second Life auto-update has failed.\n" 472 L"The Imprudence auto-update has failed.\n"
473 L"The problem may be caused by other software installed \n" 473 L"The problem may be caused by other software installed \n"
474 L"on your computer, such as a firewall.\n" 474 L"on your computer, such as a firewall.\n"
475 L"Please visit http://secondlife.com/download/ \n" 475 L"Please visit http://imprudenceviewer.org/download/ \n"
476 L"to download the latest version of Second Life.\n", 476 L"to download the latest version of Imprudence.\n",
477 NULL, MB_OK); 477 NULL, MB_OK);
478 return 1; 478 return 1;
479 } 479 }
@@ -487,7 +487,7 @@ WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nSho
487 if (!success) 487 if (!success)
488 { 488 {
489 MessageBox(gWindow, 489 MessageBox(gWindow,
490 L"Second Life download failed.\n" 490 L"Imprudence download failed.\n"
491 L"Please try again later.", 491 L"Please try again later.",
492 NULL, MB_OK); 492 NULL, MB_OK);
493 return 1; 493 return 1;