From 29401ee50a6db78c46dd5180ce3cb6116e4ead1d Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Thu, 29 Sep 2011 10:56:10 -0400 Subject: Fixes for installer, icon names to remove the 2 now that we are on version 3 --- indra/newview/viewer_manifest.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) mode change 100644 => 100755 indra/newview/viewer_manifest.py (limited to 'indra') diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py old mode 100644 new mode 100755 index f0bee2bfee..aea5dc0649 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -574,9 +574,9 @@ class WindowsManifest(ViewerManifest): OutFile "%(installer_file)s" !define INSTFLAGS "%(flags)s" !define INSTNAME "SecondLifeViewer2" - !define SHORTCUT "Second Life Viewer 2" + !define SHORTCUT "Second Life Viewer" !define URLNAME "secondlife" - Caption "Second Life ${VERSION}" + Caption "Second Life" """ else: # beta grid viewer @@ -804,7 +804,7 @@ class DarwinManifest(ViewerManifest): self.run_command("chmod +x %r" % os.path.join(self.get_dst_prefix(), script)) def package_finish(self): - channel_standin = 'Second Life Viewer 2' # hah, our default channel is not usable on its own + channel_standin = 'Second Life Viewer' # hah, our default channel is not usable on its own if not self.default_channel(): channel_standin = self.channel() -- cgit v1.2.3 From 41d9ad5cd3a054ad566dad392ecc8cf60ab52934 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Fri, 30 Sep 2011 11:06:12 -0400 Subject: SH-2515 WIP - changed app name in mac-updater --- indra/viewer_components/updater/scripts/darwin/update_install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 indra/viewer_components/updater/scripts/darwin/update_install (limited to 'indra') diff --git a/indra/viewer_components/updater/scripts/darwin/update_install b/indra/viewer_components/updater/scripts/darwin/update_install old mode 100644 new mode 100755 index 6a95f96d86..e7f36dc5a3 --- a/indra/viewer_components/updater/scripts/darwin/update_install +++ b/indra/viewer_components/updater/scripts/darwin/update_install @@ -6,5 +6,5 @@ # cd "$(dirname "$0")" -(../Resources/mac-updater.app/Contents/MacOS/mac-updater -dmg "$1" -name "Second Life Viewer 2"; if [ $? -ne 0 ]; then echo $3 >> "$2"; fi;) & +(../Resources/mac-updater.app/Contents/MacOS/mac-updater -dmg "$1" -name "Second Life Viewer"; if [ $? -ne 0 ]; then echo $3 >> "$2"; fi;) & exit 0 -- cgit v1.2.3 From 47a4ce19c7fea465eefe85ec236394fb2990470d Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Fri, 30 Sep 2011 13:16:29 -0400 Subject: SH-2515 WIP - changed app name in linux updater, dir name in windows installer --- indra/newview/viewer_manifest.py | 2 +- indra/viewer_components/updater/scripts/linux/update_install | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 indra/viewer_components/updater/scripts/linux/update_install (limited to 'indra') diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index aea5dc0649..6165292457 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -573,7 +573,7 @@ class WindowsManifest(ViewerManifest): grid_vars_template = """ OutFile "%(installer_file)s" !define INSTFLAGS "%(flags)s" - !define INSTNAME "SecondLifeViewer2" + !define INSTNAME "SecondLifeViewer" !define SHORTCUT "Second Life Viewer" !define URLNAME "secondlife" Caption "Second Life" diff --git a/indra/viewer_components/updater/scripts/linux/update_install b/indra/viewer_components/updater/scripts/linux/update_install old mode 100644 new mode 100755 index 88451340ec..e0505a9f72 --- a/indra/viewer_components/updater/scripts/linux/update_install +++ b/indra/viewer_components/updater/scripts/linux/update_install @@ -1,7 +1,7 @@ #! /bin/bash INSTALL_DIR=$(cd "$(dirname "$0")/.." ; pwd) export LD_LIBRARY_PATH="$INSTALL_DIR/lib" -bin/linux-updater.bin --file "$1" --dest "$INSTALL_DIR" --name "Second Life Viewer 2" --stringsdir "$INSTALL_DIR/skins/default/xui/en" --stringsfile "strings.xml" +bin/linux-updater.bin --file "$1" --dest "$INSTALL_DIR" --name "Second Life Viewer" --stringsdir "$INSTALL_DIR/skins/default/xui/en" --stringsfile "strings.xml" if [ $? -ne 0 ] then echo $3 >> "$2" -- cgit v1.2.3 From c0db4bdfe7a736c0fc961f555dff8d1013ddb303 Mon Sep 17 00:00:00 2001 From: Leslie Linden Date: Mon, 3 Oct 2011 17:27:08 -0700 Subject: Mac installer icon alignment updates --- .../installers/darwin/dmg-cleanup.applescript | 2 +- .../darwin/fix_application_icon_position.sh | 2 +- .../newview/installers/darwin/release-dmg/_DS_Store | Bin 12292 -> 12292 bytes 3 files changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 indra/newview/installers/darwin/fix_application_icon_position.sh (limited to 'indra') diff --git a/indra/newview/installers/darwin/dmg-cleanup.applescript b/indra/newview/installers/darwin/dmg-cleanup.applescript index f3d39aec21..8a71b392f9 100644 --- a/indra/newview/installers/darwin/dmg-cleanup.applescript +++ b/indra/newview/installers/darwin/dmg-cleanup.applescript @@ -19,7 +19,7 @@ tell application "Finder" set current view of foo to icon view set toolbar visible of foo to false set statusbar visible of foo to false - set the bounds of foo to {100, 100, 600, 399} + set the bounds of foo to {100, 100, 600, 449} -- set the position of front window to {100, 100} -- get {name, position} of every item of front window diff --git a/indra/newview/installers/darwin/fix_application_icon_position.sh b/indra/newview/installers/darwin/fix_application_icon_position.sh old mode 100644 new mode 100755 index c6b92589db..618e34820c --- a/indra/newview/installers/darwin/fix_application_icon_position.sh +++ b/indra/newview/installers/darwin/fix_application_icon_position.sh @@ -1,6 +1,6 @@ # just run this script each time after you change the installer's name to fix the icon misalignment #!/bin/bash -cp -r ./../../../build-darwin-i386/newview/*.dmg ~/Desktop/TempBuild.dmg +cp -r ../../../../build-darwin-i386/newview/*.dmg ~/Desktop/TempBuild.dmg hdid ~/Desktop/TempBuild.dmg open -a finder /Volumes/Second\ Life\ Installer osascript dmg-cleanup.applescript diff --git a/indra/newview/installers/darwin/release-dmg/_DS_Store b/indra/newview/installers/darwin/release-dmg/_DS_Store index 8f6c25c2f4..7022814254 100644 Binary files a/indra/newview/installers/darwin/release-dmg/_DS_Store and b/indra/newview/installers/darwin/release-dmg/_DS_Store differ -- cgit v1.2.3 From 96faab5251fa3a5880ec7f3d4de67f962f3b58a8 Mon Sep 17 00:00:00 2001 From: Leslie Linden Date: Tue, 4 Oct 2011 09:38:57 -0700 Subject: DS_Store update to handle developer and release app names --- .../newview/installers/darwin/release-dmg/_DS_Store | Bin 12292 -> 12292 bytes 1 file changed, 0 insertions(+), 0 deletions(-) (limited to 'indra') diff --git a/indra/newview/installers/darwin/release-dmg/_DS_Store b/indra/newview/installers/darwin/release-dmg/_DS_Store index 7022814254..747ca961d8 100644 Binary files a/indra/newview/installers/darwin/release-dmg/_DS_Store and b/indra/newview/installers/darwin/release-dmg/_DS_Store differ -- cgit v1.2.3 From 55cbe344f8aebba2301f127cab2a94c63d5b0978 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Wed, 5 Oct 2011 10:23:46 -0400 Subject: SH-2515 WIP - Preserve user settings --- .../installers/windows/installer_template.nsi | 94 ++++++++++++++++++++++ 1 file changed, 94 insertions(+) mode change 100644 => 100755 indra/newview/installers/windows/installer_template.nsi (limited to 'indra') diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi old mode 100644 new mode 100755 index a874ce1245..abd2e7f7c5 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -342,6 +342,97 @@ FunctionEnd ; ;FunctionEnd +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Save files from cache +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Function PreserveCacheFiles + +Push $0 +Push $1 +Push $2 + + RMDir /r "$TEMP\SecondLifeSettingsBackup" + CreateDirectory "$TEMP\SecondLifeSettingsBackup" + StrCpy $0 0 ; Index number used to iterate via EnumRegKey + + LOOP: + EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 + StrCmp $1 "" DONE ; no more users + + ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" + StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing + + ; Required since ProfileImagePath is of type REG_EXPAND_SZ + ExpandEnvStrings $2 $2 + + CreateDirectory "$TEMP\SecondLifeSettingsBackup\$0" + CopyFiles "$2\Application Data\SecondLife\*" "$TEMP\SecondLifeSettingsBackup\$0" + + CONTINUE: + IntOp $0 $0 + 1 + Goto LOOP + DONE: + +Pop $2 +Pop $1 +Pop $0 + +; Copy files in Documents and Settings\All Users\SecondLife +Push $0 + ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" + StrCmp $0 "" +2 + CreateDirectory "$TEMP\SecondLifeSettingsBackup\AllUsers\" + CopyFiles "$2\Application Data\SecondLife\*" "$TEMP\SecondLifeSettingsBackup\AllUsers\" +Pop $0 + +FunctionEnd + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Restore files from cache +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Function RestoreCacheFiles + +Push $0 +Push $1 +Push $2 + + StrCpy $0 0 ; Index number used to iterate via EnumRegKey + + LOOP: + EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 + StrCmp $1 "" DONE ; no more users + + ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" + StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing + + ; Required since ProfileImagePath is of type REG_EXPAND_SZ + ExpandEnvStrings $2 $2 + + RMDir /r "$2\Application Data\SecondLifeRestore\" + CreateDirectory "$2\Application Data\SecondLifeRestore\" + CopyFiles "$TEMP\SecondLifeSettingsBackup\$0\*" "$2\Application Data\SecondLifeRestore\" + + CONTINUE: + IntOp $0 $0 + 1 + Goto LOOP + DONE: + +Pop $2 +Pop $1 +Pop $0 + +; Copy files in Documents and Settings\All Users\SecondLife +Push $0 + ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" + StrCmp $0 "" +2 + RMDir /r "$2\Application Data\SecondLifeRestore\" + CreateDirectory "$2\Application Data\SecondLifeRestore\" + CopyFiles "$TEMP\SecondLifeSettingsBackup\AllUsers\*" "$2\Application Data\SecondLifeRestore\" +Pop $0 + +FunctionEnd + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Delete the installed shader files ;;; Since shaders are in active development, we'll likely need to shuffle them @@ -772,6 +863,9 @@ Call CheckNetworkConnection ; ping secondlife.com ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers. ;Call RemoveCacheFiles ; Installing over removes potentially corrupted + +Call PreserveCacheFiles +Call RestoreCacheFiles ; VFS and cache files. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -- cgit v1.2.3 From d66a999d1de3fbc77eb31aeb07ddc1e20d19647a Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Thu, 6 Oct 2011 13:10:01 -0400 Subject: SH-2515 WIP - uninstall viewer 2 when installing viewer 3+ --- .../installers/windows/installer_template.nsi | 42 +++++++++++++++++----- 1 file changed, 33 insertions(+), 9 deletions(-) (limited to 'indra') diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index abd2e7f7c5..1b07961e1c 100755 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -408,9 +408,9 @@ Push $2 ; Required since ProfileImagePath is of type REG_EXPAND_SZ ExpandEnvStrings $2 $2 - RMDir /r "$2\Application Data\SecondLifeRestore\" - CreateDirectory "$2\Application Data\SecondLifeRestore\" - CopyFiles "$TEMP\SecondLifeSettingsBackup\$0\*" "$2\Application Data\SecondLifeRestore\" + RMDir /r "$2\Application Data\SecondLife\" + CreateDirectory "$2\Application Data\SecondLife\" + CopyFiles "$TEMP\SecondLifeSettingsBackup\$0\*" "$2\Application Data\SecondLife\" CONTINUE: IntOp $0 $0 + 1 @@ -425,9 +425,9 @@ Pop $0 Push $0 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" StrCmp $0 "" +2 - RMDir /r "$2\Application Data\SecondLifeRestore\" - CreateDirectory "$2\Application Data\SecondLifeRestore\" - CopyFiles "$TEMP\SecondLifeSettingsBackup\AllUsers\*" "$2\Application Data\SecondLifeRestore\" + RMDir /r "$2\Application Data\SecondLife\" + CreateDirectory "$2\Application Data\SecondLife\" + CopyFiles "$TEMP\SecondLifeSettingsBackup\AllUsers\*" "$2\Application Data\SecondLife\" Pop $0 FunctionEnd @@ -863,10 +863,8 @@ Call CheckNetworkConnection ; ping secondlife.com ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers. ;Call RemoveCacheFiles ; Installing over removes potentially corrupted - -Call PreserveCacheFiles -Call RestoreCacheFiles ; VFS and cache files. +Call PreserveCacheFiles ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Need to clean out shader files from previous installs to fix DEV-5663 @@ -948,6 +946,32 @@ WriteRegExpandStr HKEY_CLASSES_ROOT "x-grid-location-info\shell\open\command" "" ; write out uninstaller WriteUninstaller "$INSTDIR\uninst.exe" +; Remove existing "Second Life Viewer 2" install if any. +StrCmp $INSTDIR "$PROGRAMFILES\SecondLifeViewer2" SLV2_DONE +IfFileExists "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" SLV2_FOUND SLV2_DONE + +SLV2_FOUND: +ExecWait '"$PROGRAMFILES\SecondLifeViewer2\uninst.exe" /S' + +; cheesy spin wait for uninstall to finish - uninstaller is supposed +; to take _? argument which combined with ExecWait would avoid need +; for this, but have not been able to get it to work. +SPIN_LOOP: +Sleep 500 +IntOp $0 $0 + 500 +IntCmp $0 10000 SLV2_TIMEOUT CONT SLV2_TIMEOUT +SLV2_TIMEOUT: +MsgBox MB_OK "Error in uninstall" +Goto SLV2_DONE + +CONT: +; Do we know this is the last file removed? +IfFileExists "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" SPIN_LOOP SLV2_DONE + +SLV2_DONE: +MessageBox MB_OK "Restoring Cache Files" +Call RestoreCacheFiles + ; end of default section SectionEnd -- cgit v1.2.3 From 0fcef13ab8ee947c1cb472407cbfe891a55043ad Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Thu, 6 Oct 2011 18:50:31 -0400 Subject: SH-2515 WIP --- indra/newview/installers/windows/installer_template.nsi | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'indra') diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index 1b07961e1c..fcc187dc6f 100755 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -505,6 +505,7 @@ Push $2 ; If uninstalling a normal install remove everything ; Otherwise (preview/dmz etc) just remove cache + MessageBox MB_OK 'RM_ALL points at "$2\Application Data\SecondLife"' StrCmp $INSTFLAGS "" RM_ALL RM_CACHE RM_ALL: RMDir /r "$2\Application Data\SecondLife" @@ -957,16 +958,16 @@ ExecWait '"$PROGRAMFILES\SecondLifeViewer2\uninst.exe" /S' ; to take _? argument which combined with ExecWait would avoid need ; for this, but have not been able to get it to work. SPIN_LOOP: -Sleep 500 -IntOp $0 $0 + 500 -IntCmp $0 10000 SLV2_TIMEOUT CONT SLV2_TIMEOUT + Sleep 500 + IntOp $0 $0 + 500 + IntCmp $0 10000 SLV2_TIMEOUT CONT SLV2_TIMEOUT SLV2_TIMEOUT: -MsgBox MB_OK "Error in uninstall" -Goto SLV2_DONE +;; MessageBox /SD IDOK MB_OK "Error in uninstall of Second Life Viewer 2" + Goto SLV2_DONE CONT: -; Do we know this is the last file removed? -IfFileExists "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" SPIN_LOOP SLV2_DONE + ; Do we know this is the last file removed? + IfFileExists "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" SPIN_LOOP SLV2_DONE SLV2_DONE: MessageBox MB_OK "Restoring Cache Files" -- cgit v1.2.3 From 63fdeb14ef74bed9c96092296015e69b6557f3ea Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Thu, 6 Oct 2011 23:00:33 -0400 Subject: SH-2515 WIP, STORM-280 WIP - ported over Oz fix for cache overdeletion during uninstall --- .../installers/windows/installer_template.nsi | 134 +++++++++++++++++++-- 1 file changed, 121 insertions(+), 13 deletions(-) (limited to 'indra') diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index fcc187dc6f..03280328f3 100755 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -1,6 +1,22 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; secondlife setup.nsi -;; Copyright 2004-2010, Linden Research, Inc. +;; Copyright 2004-2011, Linden Research, Inc. +;; +;; This library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public +;; License as published by the Free Software Foundation; +;; version 2.1 of the License only. +;; +;; This library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. +;; +;; You should have received a copy of the GNU Lesser General Public +;; License along with this library; if not, write to the Free Software +;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +;; +;; Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA ;; ;; NSIS Unicode 2.38.1 or higher required ;; http://www.scratchpaper.com/ @@ -293,6 +309,97 @@ Function CheckNetworkConnection Return FunctionEnd + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Save files from cache +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Function PreserveCacheFiles + +Push $0 +Push $1 +Push $2 + + RMDir /r "$TEMP\SecondLifeSettingsBackup" + CreateDirectory "$TEMP\SecondLifeSettingsBackup" + StrCpy $0 0 ; Index number used to iterate via EnumRegKey + + LOOP: + EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 + StrCmp $1 "" DONE ; no more users + + ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" + StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing + + ; Required since ProfileImagePath is of type REG_EXPAND_SZ + ExpandEnvStrings $2 $2 + + CreateDirectory "$TEMP\SecondLifeSettingsBackup\$0" + CopyFiles "$2\Application Data\SecondLife\*" "$TEMP\SecondLifeSettingsBackup\$0" + + CONTINUE: + IntOp $0 $0 + 1 + Goto LOOP + DONE: + +Pop $2 +Pop $1 +Pop $0 + +; Copy files in Documents and Settings\All Users\SecondLife +Push $0 + ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" + StrCmp $0 "" +2 + CreateDirectory "$TEMP\SecondLifeSettingsBackup\AllUsers\" + CopyFiles "$2\Application Data\SecondLife\*" "$TEMP\SecondLifeSettingsBackup\AllUsers\" +Pop $0 + +FunctionEnd + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Restore files from cache +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Function RestoreCacheFiles + +Push $0 +Push $1 +Push $2 + + StrCpy $0 0 ; Index number used to iterate via EnumRegKey + + LOOP: + EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 + StrCmp $1 "" DONE ; no more users + + ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" + StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing + + ; Required since ProfileImagePath is of type REG_EXPAND_SZ + ExpandEnvStrings $2 $2 + + RMDir /r "$2\Application Data\SecondLifeRestore\" + CreateDirectory "$2\Application Data\SecondLifeRestore\" + CopyFiles "$TEMP\SecondLifeSettingsBackup\$0\*" "$2\Application Data\SecondLifeRestore\" + + CONTINUE: + IntOp $0 $0 + 1 + Goto LOOP + DONE: + +Pop $2 +Pop $1 +Pop $0 + +; Copy files in Documents and Settings\All Users\SecondLife +Push $0 + ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" + StrCmp $0 "" +2 + RMDir /r "$2\Application Data\SecondLifeRestore\" + CreateDirectory "$2\Application Data\SecondLifeRestore\" + CopyFiles "$TEMP\SecondLifeSettingsBackup\AllUsers\*" "$2\Application Data\SecondLifeRestore\" +Pop $0 + +FunctionEnd + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Delete files in Documents and Settings\\SecondLife\cache ; Delete files in Documents and Settings\All Users\SecondLife\cache @@ -503,18 +610,15 @@ Push $2 ; Required since ProfileImagePath is of type REG_EXPAND_SZ ExpandEnvStrings $2 $2 - ; If uninstalling a normal install remove everything - ; Otherwise (preview/dmz etc) just remove cache - MessageBox MB_OK 'RM_ALL points at "$2\Application Data\SecondLife"' - StrCmp $INSTFLAGS "" RM_ALL RM_CACHE - RM_ALL: - RMDir /r "$2\Application Data\SecondLife" - RM_CACHE: - # Local Settings directory is the cache, there is no "cache" subdir - RMDir /r "$2\Local Settings\Application Data\SecondLife" - # Vista version of the same - RMDir /r "$2\AppData\Local\SecondLife" - Delete "$2\Application Data\SecondLife\user_settings\settings_windlight.xml" + ; Remove all cache and settings files but leave any other .txt files to preserve the chat logs + RMDir /r "$2\Application Data\SecondLife\logs" + RMDir /r "$2\Application Data\SecondLife\browser_profile" + RMDir /r "$2\Application Data\SecondLife\user_settings" + Delete "$2\Application Data\SecondLife\*.xml" + Delete "$2\Application Data\SecondLife\*.bmp" + Delete "$2\Application Data\SecondLife\search_history.txt" + Delete "$2\Application Data\SecondLife\plugin_cookies.txt" + Delete "$2\Application Data\SecondLife\typed_locations.txt" CONTINUE: IntOp $0 $0 + 1 @@ -862,6 +966,10 @@ Call CloseSecondLife ; Make sure we're not running Call CheckNetworkConnection ; ping secondlife.com ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Call PreserveCacheFiles + +Call RestoreCacheFiles + ;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers. ;Call RemoveCacheFiles ; Installing over removes potentially corrupted ; VFS and cache files. -- cgit v1.2.3 From c686e8b46d5624f384456c7b099b1d97f003079d Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Sat, 8 Oct 2011 17:26:54 -0400 Subject: Preserve logs and user_settings on uninstall --- indra/newview/installers/windows/installer_template.nsi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'indra') diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index 03280328f3..a4f7ab7c51 100755 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -611,9 +611,9 @@ Push $2 ExpandEnvStrings $2 $2 ; Remove all cache and settings files but leave any other .txt files to preserve the chat logs - RMDir /r "$2\Application Data\SecondLife\logs" +; RMDir /r "$2\Application Data\SecondLife\logs" RMDir /r "$2\Application Data\SecondLife\browser_profile" - RMDir /r "$2\Application Data\SecondLife\user_settings" +; RMDir /r "$2\Application Data\SecondLife\user_settings" Delete "$2\Application Data\SecondLife\*.xml" Delete "$2\Application Data\SecondLife\*.bmp" Delete "$2\Application Data\SecondLife\search_history.txt" @@ -636,7 +636,7 @@ Push $0 RMDir /r "$0\SecondLife" Pop $0 -; Delete filse in C:\Windows\Application Data\SecondLife +; Delete files in C:\Windows\Application Data\SecondLife ; If the user is running on a pre-NT system, Application Data lives here instead of ; in Documents and Settings. RMDir /r "$WINDIR\Application Data\SecondLife" -- cgit v1.2.3 From 6180d571376ee6719bcc01804d0277d51359609e Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Sat, 8 Oct 2011 17:28:44 -0400 Subject: CHOP-280 FIX - remove settings on uninstall --- indra/newview/installers/windows/installer_template.nsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index a4f7ab7c51..32ae2a8a15 100755 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -613,7 +613,7 @@ Push $2 ; Remove all cache and settings files but leave any other .txt files to preserve the chat logs ; RMDir /r "$2\Application Data\SecondLife\logs" RMDir /r "$2\Application Data\SecondLife\browser_profile" -; RMDir /r "$2\Application Data\SecondLife\user_settings" + RMDir /r "$2\Application Data\SecondLife\user_settings" Delete "$2\Application Data\SecondLife\*.xml" Delete "$2\Application Data\SecondLife\*.bmp" Delete "$2\Application Data\SecondLife\search_history.txt" -- cgit v1.2.3 From 44e5c8fdeac52ba4c9ba5414700ba54dcb363cd2 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Mon, 10 Oct 2011 08:30:18 -0400 Subject: SH-2515 WIP --- .../installers/windows/installer_template.nsi | 29 +++++++++++----------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'indra') diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index 32ae2a8a15..bbfd1881dc 100755 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -1060,22 +1060,23 @@ StrCmp $INSTDIR "$PROGRAMFILES\SecondLifeViewer2" SLV2_DONE IfFileExists "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" SLV2_FOUND SLV2_DONE SLV2_FOUND: -ExecWait '"$PROGRAMFILES\SecondLifeViewer2\uninst.exe" /S' - -; cheesy spin wait for uninstall to finish - uninstaller is supposed -; to take _? argument which combined with ExecWait would avoid need -; for this, but have not been able to get it to work. -SPIN_LOOP: - Sleep 500 - IntOp $0 $0 + 500 - IntCmp $0 10000 SLV2_TIMEOUT CONT SLV2_TIMEOUT -SLV2_TIMEOUT: +ExecWait '"$PROGRAMFILES\SecondLifeViewer2\uninst.exe" _?=$PROGRAMFILES\SecondLifeViewer2' +Sleep 1000 +Delete "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" + +;; cheesy spin wait for uninstall to finish - uninstaller is supposed +;; to take _? argument which combined with ExecWait would avoid need +;; for this, but have not been able to get it to work. +;SPIN_LOOP: +; IntOp $0 $0 + 500 +; IntCmp $0 10000 SLV2_TIMEOUT CONT SLV2_TIMEOUT +;SLV2_TIMEOUT: ;; MessageBox /SD IDOK MB_OK "Error in uninstall of Second Life Viewer 2" - Goto SLV2_DONE +; Goto SLV2_DONE -CONT: - ; Do we know this is the last file removed? - IfFileExists "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" SPIN_LOOP SLV2_DONE +;CONT: +; ; Do we know this is the last file removed? +; IfFileExists "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" SPIN_LOOP SLV2_DONE SLV2_DONE: MessageBox MB_OK "Restoring Cache Files" -- cgit v1.2.3 From 74a05b51fd8c217ef7520b3dd01323bc4e4618c7 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Mon, 10 Oct 2011 11:03:55 -0400 Subject: SH-2515 FIX - uninstall viewer 2 while preserving settings --- .../installers/windows/installer_template.nsi | 162 +-------------------- 1 file changed, 2 insertions(+), 160 deletions(-) (limited to 'indra') diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index bbfd1881dc..63e4b6be86 100755 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -376,146 +376,6 @@ Push $2 ; Required since ProfileImagePath is of type REG_EXPAND_SZ ExpandEnvStrings $2 $2 - RMDir /r "$2\Application Data\SecondLifeRestore\" - CreateDirectory "$2\Application Data\SecondLifeRestore\" - CopyFiles "$TEMP\SecondLifeSettingsBackup\$0\*" "$2\Application Data\SecondLifeRestore\" - - CONTINUE: - IntOp $0 $0 + 1 - Goto LOOP - DONE: - -Pop $2 -Pop $1 -Pop $0 - -; Copy files in Documents and Settings\All Users\SecondLife -Push $0 - ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" - StrCmp $0 "" +2 - RMDir /r "$2\Application Data\SecondLifeRestore\" - CreateDirectory "$2\Application Data\SecondLifeRestore\" - CopyFiles "$TEMP\SecondLifeSettingsBackup\AllUsers\*" "$2\Application Data\SecondLifeRestore\" -Pop $0 - -FunctionEnd - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Delete files in Documents and Settings\\SecondLife\cache -; Delete files in Documents and Settings\All Users\SecondLife\cache -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;Function RemoveCacheFiles -; -;; Delete files in Documents and Settings\\SecondLife -;Push $0 -;Push $1 -;Push $2 -; DetailPrint $(RemoveCacheFilesDP) -; -; StrCpy $0 0 ; Index number used to iterate via EnumRegKey -; -; LOOP: -; EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 -; StrCmp $1 "" DONE ; no more users -; -; ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" -; StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing -; -; ; Required since ProfileImagePath is of type REG_EXPAND_SZ -; ExpandEnvStrings $2 $2 -; -; ; When explicitly uninstalling, everything goes away -; RMDir /r "$2\Application Data\SecondLife\cache" -; -; CONTINUE: -; IntOp $0 $0 + 1 -; Goto LOOP -; DONE: -;Pop $2 -;Pop $1 -;Pop $0 -; -;; Delete files in Documents and Settings\All Users\SecondLife -;Push $0 -; ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" -; StrCmp $0 "" +2 -; RMDir /r "$0\SecondLife\cache" -;Pop $0 -; -;; Delete filse in C:\Windows\Application Data\SecondLife -;; If the user is running on a pre-NT system, Application Data lives here instead of -;; in Documents and Settings. -;RMDir /r "$WINDIR\Application Data\SecondLife\cache" -; -;FunctionEnd - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Save files from cache -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Function PreserveCacheFiles - -Push $0 -Push $1 -Push $2 - - RMDir /r "$TEMP\SecondLifeSettingsBackup" - CreateDirectory "$TEMP\SecondLifeSettingsBackup" - StrCpy $0 0 ; Index number used to iterate via EnumRegKey - - LOOP: - EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 - StrCmp $1 "" DONE ; no more users - - ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" - StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing - - ; Required since ProfileImagePath is of type REG_EXPAND_SZ - ExpandEnvStrings $2 $2 - - CreateDirectory "$TEMP\SecondLifeSettingsBackup\$0" - CopyFiles "$2\Application Data\SecondLife\*" "$TEMP\SecondLifeSettingsBackup\$0" - - CONTINUE: - IntOp $0 $0 + 1 - Goto LOOP - DONE: - -Pop $2 -Pop $1 -Pop $0 - -; Copy files in Documents and Settings\All Users\SecondLife -Push $0 - ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" - StrCmp $0 "" +2 - CreateDirectory "$TEMP\SecondLifeSettingsBackup\AllUsers\" - CopyFiles "$2\Application Data\SecondLife\*" "$TEMP\SecondLifeSettingsBackup\AllUsers\" -Pop $0 - -FunctionEnd - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Restore files from cache -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Function RestoreCacheFiles - -Push $0 -Push $1 -Push $2 - - StrCpy $0 0 ; Index number used to iterate via EnumRegKey - - LOOP: - EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 - StrCmp $1 "" DONE ; no more users - - ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" - StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing - - ; Required since ProfileImagePath is of type REG_EXPAND_SZ - ExpandEnvStrings $2 $2 - - RMDir /r "$2\Application Data\SecondLife\" CreateDirectory "$2\Application Data\SecondLife\" CopyFiles "$TEMP\SecondLifeSettingsBackup\$0\*" "$2\Application Data\SecondLife\" @@ -532,14 +392,12 @@ Pop $0 Push $0 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" StrCmp $0 "" +2 - RMDir /r "$2\Application Data\SecondLife\" CreateDirectory "$2\Application Data\SecondLife\" CopyFiles "$TEMP\SecondLifeSettingsBackup\AllUsers\*" "$2\Application Data\SecondLife\" Pop $0 FunctionEnd - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Delete the installed shader files ;;; Since shaders are in active development, we'll likely need to shuffle them @@ -1056,30 +914,14 @@ WriteRegExpandStr HKEY_CLASSES_ROOT "x-grid-location-info\shell\open\command" "" WriteUninstaller "$INSTDIR\uninst.exe" ; Remove existing "Second Life Viewer 2" install if any. -StrCmp $INSTDIR "$PROGRAMFILES\SecondLifeViewer2" SLV2_DONE +StrCmp $INSTDIR "$PROGRAMFILES\SecondLifeViewer2" SLV2_DONE ; unless that's the install directory IfFileExists "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" SLV2_FOUND SLV2_DONE SLV2_FOUND: -ExecWait '"$PROGRAMFILES\SecondLifeViewer2\uninst.exe" _?=$PROGRAMFILES\SecondLifeViewer2' -Sleep 1000 +ExecWait '"$PROGRAMFILES\SecondLifeViewer2\uninst.exe" /S _?=$PROGRAMFILES\SecondLifeViewer2' Delete "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" -;; cheesy spin wait for uninstall to finish - uninstaller is supposed -;; to take _? argument which combined with ExecWait would avoid need -;; for this, but have not been able to get it to work. -;SPIN_LOOP: -; IntOp $0 $0 + 500 -; IntCmp $0 10000 SLV2_TIMEOUT CONT SLV2_TIMEOUT -;SLV2_TIMEOUT: -;; MessageBox /SD IDOK MB_OK "Error in uninstall of Second Life Viewer 2" -; Goto SLV2_DONE - -;CONT: -; ; Do we know this is the last file removed? -; IfFileExists "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" SPIN_LOOP SLV2_DONE - SLV2_DONE: -MessageBox MB_OK "Restoring Cache Files" Call RestoreCacheFiles ; end of default section -- cgit v1.2.3 From cf7bc443b1a2229ea24cb1b2aa61c20f1ad65951 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Mon, 10 Oct 2011 11:54:27 -0400 Subject: SH-2515 FIX - some cleanup and test stuff --- .../installers/windows/installer_template.nsi | 58 ++++++++++++++++++---- 1 file changed, 48 insertions(+), 10 deletions(-) (limited to 'indra') diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index 63e4b6be86..bd1d06c31f 100755 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -311,9 +311,9 @@ FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Save files from cache +; Save user files to temp location ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Function PreserveCacheFiles +Function PreserveUserFiles Push $0 Push $1 @@ -356,9 +356,9 @@ Pop $0 FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Restore files from cache +; Restore user files from temp location ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Function RestoreCacheFiles +Function RestoreUserFiles Push $0 Push $1 @@ -398,6 +398,48 @@ Pop $0 FunctionEnd +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Clobber user files - TEST ONLY +; This is here for testing, generally not desirable to call it. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;Function ClobberUserFilesTESTONLY + +;Push $0 +;Push $1 +;Push $2 +; +; StrCpy $0 0 ; Index number used to iterate via EnumRegKey +; +; LOOP: +; EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 +; StrCmp $1 "" DONE ; no more users +; +; ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" +; StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing +; +; ; Required since ProfileImagePath is of type REG_EXPAND_SZ +; ExpandEnvStrings $2 $2 +; +; RMDir /r "$2\Application Data\SecondLife\" +; +; CONTINUE: +; IntOp $0 $0 + 1 +; Goto LOOP +; DONE: +; +;Pop $2 +;Pop $1 +;Pop $0 +; +;; Copy files in Documents and Settings\All Users\SecondLife +;Push $0 +; ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" +; StrCmp $0 "" +2 +; RMDir /r "$2\Application Data\SecondLife\" +;Pop $0 +; +;FunctionEnd + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Delete the installed shader files ;;; Since shaders are in active development, we'll likely need to shuffle them @@ -824,15 +866,11 @@ Call CloseSecondLife ; Make sure we're not running Call CheckNetworkConnection ; ping secondlife.com ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Call PreserveCacheFiles - -Call RestoreCacheFiles +Call PreserveUserFiles ;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers. ;Call RemoveCacheFiles ; Installing over removes potentially corrupted ; VFS and cache files. -Call PreserveCacheFiles - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Need to clean out shader files from previous installs to fix DEV-5663 Call RemoveOldShaders @@ -922,7 +960,7 @@ ExecWait '"$PROGRAMFILES\SecondLifeViewer2\uninst.exe" /S _?=$PROGRAMFILES\Secon Delete "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" SLV2_DONE: -Call RestoreCacheFiles +Call RestoreUserFiles ; end of default section SectionEnd -- cgit v1.2.3 From 3fe27c61b85545d22188baf5050207f13f4985b2 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Mon, 10 Oct 2011 13:45:30 -0400 Subject: SH-2515 FIX - small tweaks to cleanup --- indra/newview/installers/windows/installer_template.nsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index bd1d06c31f..98cc8fa702 100755 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -957,7 +957,8 @@ IfFileExists "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" SLV2_FOUND SLV2_DONE SLV2_FOUND: ExecWait '"$PROGRAMFILES\SecondLifeViewer2\uninst.exe" /S _?=$PROGRAMFILES\SecondLifeViewer2' -Delete "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" +Delete "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" ; with _? option above, uninst.exe will be left behind. +RMDir "$PROGRAMFILES\SecondLifeViewer2" ; will remove only if empty. SLV2_DONE: Call RestoreUserFiles -- cgit v1.2.3 From d7f123ab526df7dbef153e0de71f325ab1b69571 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Tue, 11 Oct 2011 13:37:46 -0400 Subject: CHOP-397 WIP - removed windows updater.exe, no longer used --- indra/newview/app_settings/settings.xml | 2 +- indra/newview/viewer_manifest.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) mode change 100644 => 100755 indra/newview/app_settings/settings.xml (limited to 'indra') diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml old mode 100644 new mode 100755 index 8804c40aff..1b539fe0db --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -5655,7 +5655,7 @@ Type Boolean Value - 1 + 0 MemProfiling diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 6165292457..0931c4ec9b 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -495,8 +495,9 @@ class WindowsManifest(ViewerManifest): # tag:"crash-logger" here as a cue to the exporter self.path(src='../win_crash_logger/%s/windows-crash-logger.exe' % self.args['configuration'], dst="win_crash_logger.exe") - self.path(src='../win_updater/%s/windows-updater.exe' % self.args['configuration'], - dst="updater.exe") +# For CHOP-397, windows updater no longer used. +# self.path(src='../win_updater/%s/windows-updater.exe' % self.args['configuration'], +# dst="updater.exe") if not self.is_packaging_viewer(): self.package_file = "copied_deps" -- cgit v1.2.3 From 694db7fc9a84ac1cc87e7dd6b0ff60f8c8433366 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Tue, 11 Oct 2011 15:35:33 -0400 Subject: CHOP-397 WIP - Removed accidental settings change --- indra/newview/app_settings/settings.xml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) (limited to 'indra') diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 12a8d297e7..8804c40aff 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -5655,18 +5655,7 @@ Type Boolean Value - 0 - - MemoryPrivatePoolSize - - Comment - Size of the private memory pool in MB (min. value is 256) - Persist 1 - Type - U32 - Value - 512 MemProfiling @@ -13575,7 +13564,7 @@ Type Boolean Value - 1 + 0 ShowOfferedInventory -- cgit v1.2.3 From af0be560002d4de4d9d89709b5d3b4cc1aef31fc Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Tue, 11 Oct 2011 15:57:00 -0400 Subject: settings fix --- indra/newview/app_settings/settings.xml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 8804c40aff..15f1bbd1b1 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -5657,6 +5657,17 @@ Value 1 + MemoryPrivatePoolSize + + Comment + Size of the private memory pool in MB (min. value is 256) + Persist + 1 + Type + U32 + Value + 512 + MemProfiling Comment @@ -13564,7 +13575,7 @@ Type Boolean Value - 0 + 1 ShowOfferedInventory -- cgit v1.2.3 From 0297f55c6d4be505fe6831a593ed2630d565e14a Mon Sep 17 00:00:00 2001 From: Seth ProductEngine Date: Fri, 21 Oct 2011 17:26:47 +0200 Subject: EXP-1416 FIXED "Speak" and "Voice controls" buttons added as control views in LLTransientFloaterMgr to prevent hiding the transient IM floater. --- indra/llui/lltoolbar.cpp | 14 +++++++++++++- indra/llui/lltoolbar.h | 5 +++++ indra/newview/lltoolbarview.cpp | 20 +++++++++++++++++++ indra/newview/lltoolbarview.h | 2 ++ indra/newview/lltransientfloatermgr.cpp | 34 +++++++++++++++++++++++---------- indra/newview/lltransientfloatermgr.h | 9 +++++---- 6 files changed, 69 insertions(+), 15 deletions(-) (limited to 'indra') diff --git a/indra/llui/lltoolbar.cpp b/indra/llui/lltoolbar.cpp index 515605200e..b0a072c00e 100644 --- a/indra/llui/lltoolbar.cpp +++ b/indra/llui/lltoolbar.cpp @@ -112,6 +112,7 @@ LLToolBar::LLToolBar(const LLToolBar::Params& p) mStartDragItemCallback(NULL), mHandleDragItemCallback(NULL), mHandleDropCallback(NULL), + mButtonAddSignal(NULL), mDragAndDropTarget(false) { mButtonParams[LLToolBarEnums::BTNTYPE_ICONS_WITH_TEXT] = p.button_icon_and_text; @@ -121,6 +122,7 @@ LLToolBar::LLToolBar(const LLToolBar::Params& p) LLToolBar::~LLToolBar() { delete mPopupMenuHandle.get(); + delete mButtonAddSignal; } void LLToolBar::createContextMenu() @@ -212,7 +214,6 @@ bool LLToolBar::addCommand(const LLCommandId& commandId, int rank) mButtonPanel->addChild(button); mButtonMap.insert(std::make_pair(commandId.uuid(), button)); - // Insert the command and button in the right place in their respective lists if ((rank >= mButtonCommands.size()) || (rank == RANK_NONE)) { @@ -236,6 +237,11 @@ bool LLToolBar::addCommand(const LLCommandId& commandId, int rank) mButtons.insert(it_button,button); } + if (mButtonAddSignal) + { + (*mButtonAddSignal)(button); + } + mNeedsLayout = true; return true; @@ -898,6 +904,12 @@ LLToolBarButton* LLToolBar::createButton(const LLCommandId& id) return button; } +boost::signals2::connection LLToolBar::setButtonAddCallback(const button_add_signal_t::slot_type& cb) +{ + if (!mButtonAddSignal) mButtonAddSignal = new button_add_signal_t(); + return mButtonAddSignal->connect(cb); +} + BOOL LLToolBar::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, EDragAndDropType cargo_type, void* cargo_data, diff --git a/indra/llui/lltoolbar.h b/indra/llui/lltoolbar.h index e634e57f93..68fc44ee8e 100644 --- a/indra/llui/lltoolbar.h +++ b/indra/llui/lltoolbar.h @@ -195,6 +195,9 @@ public: LLToolBarButton* createButton(const LLCommandId& id); + typedef boost::signals2::signal button_add_signal_t; + boost::signals2::connection setButtonAddCallback(const button_add_signal_t::slot_type& cb); + bool hasButtons() const { return !mButtons.empty(); } bool isModified() const { return mModified; } @@ -255,6 +258,8 @@ private: LLToolBarButton::Params mButtonParams[LLToolBarEnums::BTNTYPE_COUNT]; LLHandle mPopupMenuHandle; + + button_add_signal_t* mButtonAddSignal; }; diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp index 619d17efad..affa7241d1 100644 --- a/indra/newview/lltoolbarview.cpp +++ b/indra/newview/lltoolbarview.cpp @@ -35,6 +35,7 @@ #include "lltoolbar.h" #include "llbutton.h" #include "lltooldraganddrop.h" +#include "lltransientfloatermgr.h" #include "llclipboard.h" #include "llagent.h" // HACK for destinations guide on startup @@ -96,14 +97,17 @@ BOOL LLToolBarView::postBuild() mToolbarLeft->setStartDragCallback(boost::bind(LLToolBarView::startDragTool,_1,_2,_3)); mToolbarLeft->setHandleDragCallback(boost::bind(LLToolBarView::handleDragTool,_1,_2,_3,_4)); mToolbarLeft->setHandleDropCallback(boost::bind(LLToolBarView::handleDropTool,_1,_2,_3,_4)); + mToolbarLeft->setButtonAddCallback(boost::bind(LLToolBarView::onToolBarButtonAdded, _1)); mToolbarRight->setStartDragCallback(boost::bind(LLToolBarView::startDragTool,_1,_2,_3)); mToolbarRight->setHandleDragCallback(boost::bind(LLToolBarView::handleDragTool,_1,_2,_3,_4)); mToolbarRight->setHandleDropCallback(boost::bind(LLToolBarView::handleDropTool,_1,_2,_3,_4)); + mToolbarRight->setButtonAddCallback(boost::bind(LLToolBarView::onToolBarButtonAdded, _1)); mToolbarBottom->setStartDragCallback(boost::bind(LLToolBarView::startDragTool,_1,_2,_3)); mToolbarBottom->setHandleDragCallback(boost::bind(LLToolBarView::handleDragTool,_1,_2,_3,_4)); mToolbarBottom->setHandleDropCallback(boost::bind(LLToolBarView::handleDropTool,_1,_2,_3,_4)); + mToolbarBottom->setButtonAddCallback(boost::bind(LLToolBarView::onToolBarButtonAdded, _1)); LLAppViewer::instance()->setOnLoginCompletedCallback(boost::bind(&handleLoginToolbarSetup)); @@ -314,6 +318,22 @@ void LLToolBarView::addToToolset(command_id_list_t& command_list, Toolbar& toolb } } +void LLToolBarView::onToolBarButtonAdded(LLView* button) +{ + if (button && button->getName() == "speak") + { + // Add the "Speak" button as a control view in LLTransientFloaterMgr + // to prevent hiding the transient IM floater upon pressing "Speak". + LLTransientFloaterMgr::getInstance()->addControlView(button); + } + else if (button && button->getName() == "voice") + { + // Add the "Voice controls" button as a control view in LLTransientFloaterMgr + // to prevent hiding the transient IM floater upon pressing "Voice controls". + LLTransientFloaterMgr::getInstance()->addControlView(button); + } +} + void LLToolBarView::draw() { //LLPanel* sizer_left = getChild("sizer_left"); diff --git a/indra/newview/lltoolbarview.h b/indra/newview/lltoolbarview.h index 60ad6316f8..8cafbc9308 100644 --- a/indra/newview/lltoolbarview.h +++ b/indra/newview/lltoolbarview.h @@ -94,6 +94,8 @@ private: bool addCommand(const LLCommandId& commandId, LLToolBar* toolbar); void addToToolset(command_id_list_t& command_list, Toolbar& toolbar) const; + static void onToolBarButtonAdded(LLView* button); + // Pointers to the toolbars handled by the toolbar view LLToolBar* mToolbarLeft; LLToolBar* mToolbarRight; diff --git a/indra/newview/lltransientfloatermgr.cpp b/indra/newview/lltransientfloatermgr.cpp index c648a6a28a..d15efb048b 100644 --- a/indra/newview/lltransientfloatermgr.cpp +++ b/indra/newview/lltransientfloatermgr.cpp @@ -42,9 +42,9 @@ LLTransientFloaterMgr::LLTransientFloaterMgr() &LLTransientFloaterMgr::leftMouseClickCallback, this, _2, _3, _4)); } - mGroupControls.insert(std::pair >(GLOBAL, std::set())); - mGroupControls.insert(std::pair >(DOCKED, std::set())); - mGroupControls.insert(std::pair >(IM, std::set())); + mGroupControls.insert(std::pair(GLOBAL, controls_set_t())); + mGroupControls.insert(std::pair(DOCKED, controls_set_t())); + mGroupControls.insert(std::pair(IM, controls_set_t())); } void LLTransientFloaterMgr::registerTransientFloater(LLTransientFloater* floater) @@ -59,12 +59,16 @@ void LLTransientFloaterMgr::unregisterTransientFloater(LLTransientFloater* float void LLTransientFloaterMgr::addControlView(ETransientGroup group, LLView* view) { - mGroupControls.find(group)->second.insert(view); + if (!view) return; + + mGroupControls.find(group)->second.insert(view->getHandle()); } void LLTransientFloaterMgr::removeControlView(ETransientGroup group, LLView* view) { - mGroupControls.find(group)->second.erase(view); + if (!view) return; + + mGroupControls.find(group)->second.erase(view->getHandle()); } void LLTransientFloaterMgr::addControlView(LLView* view) @@ -89,7 +93,7 @@ void LLTransientFloaterMgr::hideTransientFloaters(S32 x, S32 y) { ETransientGroup group = floater->getGroup(); - bool hide = isControlClicked(mGroupControls.find(group)->second, x, y); + bool hide = isControlClicked(group, mGroupControls.find(group)->second, x, y); if (hide) { floater->setTransientVisible(FALSE); @@ -98,13 +102,23 @@ void LLTransientFloaterMgr::hideTransientFloaters(S32 x, S32 y) } } -bool LLTransientFloaterMgr::isControlClicked(std::set& set, S32 x, S32 y) +bool LLTransientFloaterMgr::isControlClicked(ETransientGroup group, controls_set_t& set, S32 x, S32 y) { bool res = true; for (controls_set_t::iterator it = set.begin(); it != set.end(); it++) { - LLView* control_view = *it; + LLView* control_view = NULL; + + LLHandle handle = *it; + if (handle.isDead()) + { + mGroupControls.find(group)->second.erase(handle); + continue; + } + + control_view = handle.get(); + if (!control_view->getVisible()) { continue; @@ -130,8 +144,8 @@ void LLTransientFloaterMgr::leftMouseClickCallback(S32 x, S32 y, return; } - bool hide = isControlClicked(mGroupControls.find(DOCKED)->second, x, y) - && isControlClicked(mGroupControls.find(GLOBAL)->second, x, y); + bool hide = isControlClicked(DOCKED, mGroupControls.find(DOCKED)->second, x, y) + && isControlClicked(GLOBAL, mGroupControls.find(GLOBAL)->second, x, y); if (hide) { hideTransientFloaters(x, y); diff --git a/indra/newview/lltransientfloatermgr.h b/indra/newview/lltransientfloatermgr.h index 2919244121..b4611c8c87 100644 --- a/indra/newview/lltransientfloatermgr.h +++ b/indra/newview/lltransientfloatermgr.h @@ -56,14 +56,15 @@ public: void removeControlView(LLView* view); private: + typedef std::set > controls_set_t; + typedef std::map group_controls_t; + void hideTransientFloaters(S32 x, S32 y); void leftMouseClickCallback(S32 x, S32 y, MASK mask); - bool isControlClicked(std::set& set, S32 x, S32 y); -private: + bool isControlClicked(ETransientGroup group, controls_set_t& set, S32 x, S32 y); + std::set mTransSet; - typedef std::set controls_set_t; - typedef std::map > group_controls_t; group_controls_t mGroupControls; }; -- cgit v1.2.3 From 2456573925567ed91d4cc227d7fc97b90248a1fa Mon Sep 17 00:00:00 2001 From: Paul ProductEngine Date: Fri, 21 Oct 2011 19:14:10 +0200 Subject: EXP-1404 FIXED (Dock icon shown in lower left corner of call dialog when user has speak icon hidden) - Don't draw tongue of dockable call dialog floater in case speak button is not present in any tool bar. --- indra/llui/lldockablefloater.h | 2 ++ indra/newview/llimview.cpp | 2 ++ 2 files changed, 4 insertions(+) (limited to 'indra') diff --git a/indra/llui/lldockablefloater.h b/indra/llui/lldockablefloater.h index 8deb6c1159..1484ea3978 100644 --- a/indra/llui/lldockablefloater.h +++ b/indra/llui/lldockablefloater.h @@ -113,6 +113,8 @@ public: bool getUniqueDocking() { return mUniqueDocking; } bool getUseTongue() { return mUseTongue; } + + void setUseTongue(bool use_tongue) { mUseTongue = use_tongue;} private: /** * Provides unique of dockable floater. diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 6e9baed5f2..33c6b2218c 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -1683,6 +1683,8 @@ BOOL LLCallDialog::postBuild() LLView *anchor_panel = gToolBarView->findChildView("speak"); setDockControl(new LLDockControl(anchor_panel, this, getDockTongue(), LLDockControl::TOP)); + setUseTongue(anchor_panel); + return TRUE; } -- cgit v1.2.3 From f19ee13c0450e0e16e7c8c9d7f700e11c36886ef Mon Sep 17 00:00:00 2001 From: Leslie Linden Date: Fri, 21 Oct 2011 14:43:16 -0700 Subject: EXP-1430 FIX -- Minimizing voice settings floater corrupts layout throughout rest of session * Added minimum size for layout panel that holds voice morphing and removed user resizability. Reviewed by Richard. --- indra/newview/skins/default/xui/en/floater_voice_controls.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/floater_voice_controls.xml b/indra/newview/skins/default/xui/en/floater_voice_controls.xml index 93a04050b6..6807b01fa3 100644 --- a/indra/newview/skins/default/xui/en/floater_voice_controls.xml +++ b/indra/newview/skins/default/xui/en/floater_voice_controls.xml @@ -89,7 +89,7 @@ visible="true" width="20" /> - + Date: Fri, 21 Oct 2011 16:29:36 -0700 Subject: EXP-1434 FIX -- Mini-location bar disappears after maximizing/restoring viewer window * The topinfo bar no longer follows the right edge of the window so it doesn't scale down and disappear. --- indra/newview/skins/default/xui/en/panel_topinfo_bar.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml b/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml index 79f29777ce..fc527f5f9d 100644 --- a/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml @@ -4,7 +4,7 @@ background_opaque="false" bg_opaque_color="Black_50" bg_alpha_color="Black_50" - follows="left|top|right" + follows="left|top" height="19" layout="topleft" name="topinfo_bar" -- cgit v1.2.3 From 5676e4a62efd2636840395a0667e3df3a48f1989 Mon Sep 17 00:00:00 2001 From: Merov Linden Date: Fri, 21 Oct 2011 18:36:06 -0700 Subject: EXP-1439 : Modify DaD on the Favorite toolbar so that reordering visible landmarks don't send any back to the end of the list --- indra/newview/llfavoritesbar.cpp | 65 ++++++++++++++++++++++++-------------- indra/newview/llfavoritesbar.h | 2 +- indra/newview/llinventorymodel.cpp | 50 +++++++++++++++++++++-------- indra/newview/llinventorymodel.h | 11 +++++-- 4 files changed, 86 insertions(+), 42 deletions(-) (limited to 'indra') diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp index 98de418878..4e0c838454 100644 --- a/indra/newview/llfavoritesbar.cpp +++ b/indra/newview/llfavoritesbar.cpp @@ -504,20 +504,29 @@ BOOL LLFavoritesBarCtrl::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, void LLFavoritesBarCtrl::handleExistingFavoriteDragAndDrop(S32 x, S32 y) { + // Identify the button hovered and the side to drop LLFavoriteLandmarkButton* dest = dynamic_cast(mLandingTab); + bool insert_before = true; + if (!dest) + { + insert_before = false; + dest = dynamic_cast(mLastTab); + } - // there is no need to handle if an item was dragged onto itself + // There is no need to handle if an item was dragged onto itself if (dest && dest->getLandmarkId() == mDragItemId) { return; } + // Insert the dragged item in the right place if (dest) { - LLInventoryModel::updateItemsOrder(mItems, mDragItemId, dest->getLandmarkId()); + LLInventoryModel::updateItemsOrder(mItems, mDragItemId, dest->getLandmarkId(), insert_before); } else { + // This can happen when the item list is empty mItems.push_back(gInventory.getItem(mDragItemId)); } @@ -534,22 +543,31 @@ void LLFavoritesBarCtrl::handleExistingFavoriteDragAndDrop(S32 x, S32 y) void LLFavoritesBarCtrl::handleNewFavoriteDragAndDrop(LLInventoryItem *item, const LLUUID& favorites_id, S32 x, S32 y) { + // Identify the button hovered and the side to drop LLFavoriteLandmarkButton* dest = dynamic_cast(mLandingTab); - - // there is no need to handle if an item was dragged onto itself + bool insert_before = true; + if (!dest) + { + insert_before = false; + dest = dynamic_cast(mLastTab); + } + + // There is no need to handle if an item was dragged onto itself if (dest && dest->getLandmarkId() == mDragItemId) { return; } - + LLPointer viewer_item = new LLViewerInventoryItem(item); + // Insert the dragged item in the right place if (dest) { - insertBeforeItem(mItems, dest->getLandmarkId(), viewer_item); + insertItem(mItems, dest->getLandmarkId(), viewer_item, insert_before); } else { + // This can happen when the item list is empty mItems.push_back(viewer_item); } @@ -1337,29 +1355,28 @@ BOOL LLFavoritesBarCtrl::needToSaveItemsOrder(const LLInventoryModel::item_array return result; } -LLInventoryModel::item_array_t::iterator LLFavoritesBarCtrl::findItemByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id) +void LLFavoritesBarCtrl::insertItem(LLInventoryModel::item_array_t& items, const LLUUID& dest_item_id, LLViewerInventoryItem* insertedItem, bool insert_before) { - LLInventoryModel::item_array_t::iterator result = items.end(); + // Get the iterator to the destination item + LLInventoryModel::item_array_t::iterator it_dest = LLInventoryModel::findItemIterByUUID(items, dest_item_id); + if (it_dest == items.end()) + return; - for (LLInventoryModel::item_array_t::iterator i = items.begin(); i != items.end(); ++i) + // Go to the next element if one wishes to insert after the dest element + if (!insert_before) { - if ((*i)->getUUID() == id) - { - result = i; - break; - } + ++it_dest; } - - return result; -} - -void LLFavoritesBarCtrl::insertBeforeItem(LLInventoryModel::item_array_t& items, const LLUUID& beforeItemId, LLViewerInventoryItem* insertedItem) -{ - LLViewerInventoryItem* beforeItem = gInventory.getItem(beforeItemId); - llassert(beforeItem); - if (beforeItem) + + // Insert the source item in the right place + if (it_dest != items.end()) + { + items.insert(it_dest, insertedItem); + } + else { - items.insert(findItemByUUID(items, beforeItem->getUUID()), insertedItem); + // Append to the list if it_dest reached the end + items.push_back(insertedItem); } } diff --git a/indra/newview/llfavoritesbar.h b/indra/newview/llfavoritesbar.h index 1b11d6196e..2f75b3bb0e 100644 --- a/indra/newview/llfavoritesbar.h +++ b/indra/newview/llfavoritesbar.h @@ -130,7 +130,7 @@ private: * inserts an item identified by insertedItemId BEFORE an item identified by beforeItemId. * this function assumes that an item identified by insertedItemId doesn't exist in items array. */ - void insertBeforeItem(LLInventoryModel::item_array_t& items, const LLUUID& beforeItemId, LLViewerInventoryItem* insertedItem); + void insertItem(LLInventoryModel::item_array_t& items, const LLUUID& dest_item_id, LLViewerInventoryItem* insertedItem, bool insert_before); // finds an item by it's UUID in the items array LLInventoryModel::item_array_t::iterator findItemByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id); diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index e86c427ae2..fb02fe0ff7 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -2879,40 +2879,62 @@ BOOL LLInventoryModel::getIsFirstTimeInViewer2() return sFirstTimeInViewer2; } -static LLInventoryModel::item_array_t::iterator find_item_iter_by_uuid(LLInventoryModel::item_array_t& items, const LLUUID& id) +LLInventoryModel::item_array_t::iterator LLInventoryModel::findItemIterByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id) { - LLInventoryModel::item_array_t::iterator result = items.end(); + LLInventoryModel::item_array_t::iterator curr_item = items.begin(); - for (LLInventoryModel::item_array_t::iterator i = items.begin(); i != items.end(); ++i) + while (curr_item != items.end()) { - if ((*i)->getUUID() == id) + if ((*curr_item)->getUUID() == id) { - result = i; break; } + ++curr_item; } - return result; + return curr_item; } // static // * @param[in, out] items - vector with items to be updated. It should be sorted in a right way // * before calling this method. // * @param src_item_id - LLUUID of inventory item to be moved in new position -// * @param dest_item_id - LLUUID of inventory item before which source item should be placed. -void LLInventoryModel::updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& src_item_id, const LLUUID& dest_item_id) +// * @param dest_item_id - LLUUID of inventory item before (or after) which source item should +// * be placed. +// * @param insert_before - bool indicating if src_item_id should be placed before or after +// * dest_item_id. Default is true. +void LLInventoryModel::updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& src_item_id, const LLUUID& dest_item_id, bool insert_before) { - LLInventoryModel::item_array_t::iterator it_src = find_item_iter_by_uuid(items, src_item_id); - LLInventoryModel::item_array_t::iterator it_dest = find_item_iter_by_uuid(items, dest_item_id); + LLInventoryModel::item_array_t::iterator it_src = findItemIterByUUID(items, src_item_id); + LLInventoryModel::item_array_t::iterator it_dest = findItemIterByUUID(items, dest_item_id); - if (it_src == items.end() || it_dest == items.end()) return; + // If one of the passed UUID is not in the item list, bail out + if ((it_src == items.end()) || (it_dest == items.end())) + return; + // Erase the source element from the list, keep a copy before erasing. LLViewerInventoryItem* src_item = *it_src; items.erase(it_src); - // target iterator can not be valid because the container was changed, so update it. - it_dest = find_item_iter_by_uuid(items, dest_item_id); - items.insert(it_dest, src_item); + // Note: Target iterator is not valid anymore because the container was changed, so update it. + it_dest = findItemIterByUUID(items, dest_item_id); + + // Go to the next element if one wishes to insert after the dest element + if (!insert_before) + { + ++it_dest; + } + + // Reinsert the source item in the right place + if (it_dest != items.end()) + { + items.insert(it_dest, src_item); + } + else + { + // Append to the list if it_dest reached the end + items.push_back(src_item); + } } //* @param[in] items vector of items in order to be saved. diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h index e0e81f1006..a0fd455cf3 100644 --- a/indra/newview/llinventorymodel.h +++ b/indra/newview/llinventorymodel.h @@ -332,11 +332,16 @@ protected: //-------------------------------------------------------------------- public: // Changes items order by insertion of the item identified by src_item_id - // before the item identified by dest_item_id. Both items must exist in items array. - // Sorting is stored after method is finished. Only src_item_id is moved before dest_item_id. + // before (or after) the item identified by dest_item_id. Both items must exist in items array. + // Sorting is stored after method is finished. Only src_item_id is moved before (or after) dest_item_id. + // The parameter "insert_before" controls on which side of dest_item_id src_item_id gets rensinserted. static void updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& src_item_id, - const LLUUID& dest_item_id); + const LLUUID& dest_item_id, + bool insert_before = true); + // Gets an iterator on an item vector knowing only the item UUID. + // Returns end() of the vector if not found. + static LLInventoryModel::item_array_t::iterator findItemIterByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id); // Saves current order of the passed items using inventory item sort field. // Resets 'items' sort fields and saves them on server. -- cgit v1.2.3 From 443d1b08b22262566dc4d476ca0bdef665518721 Mon Sep 17 00:00:00 2001 From: Merov Linden Date: Fri, 21 Oct 2011 18:51:39 -0700 Subject: EXP-1439 : Fix potential crash when the favorites bar is empty --- indra/newview/llfavoritesbar.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'indra') diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp index 4e0c838454..c48b809114 100644 --- a/indra/newview/llfavoritesbar.cpp +++ b/indra/newview/llfavoritesbar.cpp @@ -544,12 +544,16 @@ void LLFavoritesBarCtrl::handleExistingFavoriteDragAndDrop(S32 x, S32 y) void LLFavoritesBarCtrl::handleNewFavoriteDragAndDrop(LLInventoryItem *item, const LLUUID& favorites_id, S32 x, S32 y) { // Identify the button hovered and the side to drop - LLFavoriteLandmarkButton* dest = dynamic_cast(mLandingTab); - bool insert_before = true; - if (!dest) + LLFavoriteLandmarkButton* dest = NULL; + bool insert_before = true; + if (!mItems.empty()) { - insert_before = false; - dest = dynamic_cast(mLastTab); + dest = dynamic_cast(mLandingTab); + if (!dest) + { + insert_before = false; + dest = dynamic_cast(mLastTab); + } } // There is no need to handle if an item was dragged onto itself -- cgit v1.2.3 From 338914bd7d7e776d3ca5a4eb9a579fcbe53cf1b9 Mon Sep 17 00:00:00 2001 From: Paul ProductEngine Date: Mon, 24 Oct 2011 14:17:15 +0200 Subject: EXP-1400 FIXED (Call request docking icon overlays other toolbar buttons when speak button in side toolbar) - LLDockableFloater::getDockTongue to init dock tongue with proper image depending on floater dock side, also added images for left and right tongues. - Added proper call floater positioning relatively to the speak button --- indra/llui/lldockablefloater.cpp | 15 ++++++- indra/llui/lldockablefloater.h | 2 +- indra/llui/lldockcontrol.cpp | 43 +++++++++++++-------- indra/llui/lldockcontrol.h | 1 + indra/newview/llimview.cpp | 19 ++++++++- indra/newview/llimview.h | 5 ++- .../skins/default/textures/windows/Flyout_Left.png | Bin 0 -> 271 bytes .../default/textures/windows/Flyout_Right.png | Bin 0 -> 280 bytes .../skins/default/xui/en/floater_outgoing_call.xml | 1 + 9 files changed, 66 insertions(+), 20 deletions(-) create mode 100644 indra/newview/skins/default/textures/windows/Flyout_Left.png create mode 100644 indra/newview/skins/default/textures/windows/Flyout_Right.png (limited to 'indra') diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp index aea58be12a..0fcd937361 100644 --- a/indra/llui/lldockablefloater.cpp +++ b/indra/llui/lldockablefloater.cpp @@ -239,8 +239,21 @@ void LLDockableFloater::setDockControl(LLDockControl* dockControl) setDocked(isDocked()); } -const LLUIImagePtr& LLDockableFloater::getDockTongue() +const LLUIImagePtr& LLDockableFloater::getDockTongue(LLDockControl::DocAt dock_side) { + switch(dock_side) + { + case LLDockControl::LEFT: + mDockTongue = LLUI::getUIImage("windows/Flyout_Left.png"); + break; + case LLDockControl::RIGHT: + mDockTongue = LLUI::getUIImage("windows/Flyout_Right.png"); + break; + default: + mDockTongue = LLUI::getUIImage("windows/Flyout_Pointer.png"); + break; + } + return mDockTongue; } diff --git a/indra/llui/lldockablefloater.h b/indra/llui/lldockablefloater.h index 1484ea3978..89c9852f4a 100644 --- a/indra/llui/lldockablefloater.h +++ b/indra/llui/lldockablefloater.h @@ -124,7 +124,7 @@ private: protected: void setDockControl(LLDockControl* dockControl); - const LLUIImagePtr& getDockTongue(); + const LLUIImagePtr& getDockTongue(LLDockControl::DocAt dock_side = LLDockControl::TOP); // Checks if docking should be forced. // It may be useful e.g. if floater created in mouselook mode (see EXT-5609) diff --git a/indra/llui/lldockcontrol.cpp b/indra/llui/lldockcontrol.cpp index 6397bbd0de..8cb2e57b98 100644 --- a/indra/llui/lldockcontrol.cpp +++ b/indra/llui/lldockcontrol.cpp @@ -203,21 +203,33 @@ void LLDockControl::moveDockable() switch (mDockAt) { case LEFT: - x = dockRect.mLeft; - y = dockRect.mTop + mDockTongue->getHeight() + dockableRect.getHeight(); - // check is dockable inside root view rect - if (x < rootRect.mLeft) + + x = dockRect.mLeft - dockableRect.getWidth(); + y = dockRect.getCenterY() + dockableRect.getHeight() / 2; + + if (use_tongue) { - x = rootRect.mLeft; + x -= mDockTongue->getWidth(); } - if (x + dockableRect.getWidth() > rootRect.mRight) + + mDockTongueX = dockableRect.mRight; + mDockTongueY = dockableRect.getCenterY() - mDockTongue->getHeight() / 2; + + break; + + case RIGHT: + + x = dockRect.mRight; + y = dockRect.getCenterY() + dockableRect.getHeight() / 2; + + if (use_tongue) { - x = rootRect.mRight - dockableRect.getWidth(); + x += mDockTongue->getWidth(); } - - mDockTongueX = x + dockableRect.getWidth()/2 - mDockTongue->getWidth() / 2; - - mDockTongueY = dockRect.mTop; + + mDockTongueX = dockRect.mRight; + mDockTongueY = dockableRect.getCenterY() - mDockTongue->getHeight() / 2; + break; case TOP: @@ -315,13 +327,12 @@ void LLDockControl::moveDockable() dockableRect.setLeftTopAndSize(x, y, dockableRect.getWidth(), dockableRect.getHeight()); } + LLRect localDocableParentRect; - mDockableFloater->getParent()->screenRectToLocal(dockableRect, - &localDocableParentRect); - mDockableFloater->setRect(localDocableParentRect); - mDockableFloater->screenPointToLocal(mDockTongueX, mDockTongueY, - &mDockTongueX, &mDockTongueY); + mDockableFloater->getParent()->screenRectToLocal(dockableRect, &localDocableParentRect); + mDockableFloater->setRect(localDocableParentRect); + mDockableFloater->screenPointToLocal(mDockTongueX, mDockTongueY, &mDockTongueX, &mDockTongueY); } diff --git a/indra/llui/lldockcontrol.h b/indra/llui/lldockcontrol.h index 2e7359245f..463223fafd 100644 --- a/indra/llui/lldockcontrol.h +++ b/indra/llui/lldockcontrol.h @@ -43,6 +43,7 @@ public: { TOP, LEFT, + RIGHT, BOTTOM }; diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 33c6b2218c..c751394455 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -1681,7 +1681,8 @@ BOOL LLCallDialog::postBuild() return FALSE; LLView *anchor_panel = gToolBarView->findChildView("speak"); - setDockControl(new LLDockControl(anchor_panel, this, getDockTongue(), LLDockControl::TOP)); + LLDockControl::DocAt dock_pos = getDockControlPos(); + setDockControl(new LLDockControl(anchor_panel, this, getDockTongue(dock_pos), dock_pos)); setUseTongue(anchor_panel); @@ -1751,6 +1752,22 @@ void LLCallDialog::setIcon(const LLSD& session_id, const LLSD& participant_id) } } +LLDockControl::DocAt LLCallDialog::getDockControlPos() +{ + LLToolBar* tool_bar = NULL; + + if((tool_bar = gToolBarView->getChild("toolbar_left")) && tool_bar->hasChild("speak", true)) + { + return LLDockControl::RIGHT; // Speak button in the left toolbar so the call floater should be to the right of the speak button + } + else if((tool_bar = gToolBarView->getChild("toolbar_right")) && tool_bar->hasChild("speak", true)) + { + return LLDockControl::LEFT; // Speak button in the right toolbar so the call floater should be to the left of the speak button + } + + return LLDockControl::TOP; +} + bool LLCallDialog::lifetimeHasExpired() { if (mLifetimeTimer.getStarted()) diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h index 93b604d36a..33c7ae9e54 100644 --- a/indra/newview/llimview.h +++ b/indra/newview/llimview.h @@ -491,7 +491,7 @@ class LLCallDialog : public LLDockableFloater { public: LLCallDialog(const LLSD& payload); - ~LLCallDialog(); + virtual ~LLCallDialog(); virtual BOOL postBuild(); @@ -519,6 +519,9 @@ protected: void setIcon(const LLSD& session_id, const LLSD& participant_id); LLSD mPayload; + +private: + LLDockControl::DocAt getDockControlPos(); }; class LLIncomingCallDialog : public LLCallDialog diff --git a/indra/newview/skins/default/textures/windows/Flyout_Left.png b/indra/newview/skins/default/textures/windows/Flyout_Left.png new file mode 100644 index 0000000000..6ac9fe2efd Binary files /dev/null and b/indra/newview/skins/default/textures/windows/Flyout_Left.png differ diff --git a/indra/newview/skins/default/textures/windows/Flyout_Right.png b/indra/newview/skins/default/textures/windows/Flyout_Right.png new file mode 100644 index 0000000000..aa1f0625aa Binary files /dev/null and b/indra/newview/skins/default/textures/windows/Flyout_Right.png differ diff --git a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml index 9db6568ee3..ffbb6aa28b 100644 --- a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml +++ b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml @@ -8,6 +8,7 @@ layout="topleft" name="outgoing call" help_topic="outgoing_call" + save_dock_state="true" title="CALLING" width="410"> Date: Mon, 24 Oct 2011 13:56:14 -0700 Subject: EXP-1458 FIX Chat text entry bar does not have focus when chat floater is opened while chat history is toggled open made expando-button chrome, so it doesn't steal focus --- indra/newview/skins/default/xui/en/floater_chat_bar.xml | 1 + 1 file changed, 1 insertion(+) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/floater_chat_bar.xml b/indra/newview/skins/default/xui/en/floater_chat_bar.xml index 989b4a0580..86191b789c 100644 --- a/indra/newview/skins/default/xui/en/floater_chat_bar.xml +++ b/indra/newview/skins/default/xui/en/floater_chat_bar.xml @@ -68,6 +68,7 @@ image_pressed="ComboButton_UpSelected" image_pressed_selected="ComboButton_Selected" height="23" + chrome="true" name="show_nearby_chat" tool_tip="Shows/hides nearby chat log"> -- cgit v1.2.3 From cd13933b0942ef4fdf2d4ec8f558d0ec2312b691 Mon Sep 17 00:00:00 2001 From: Merov Linden Date: Mon, 24 Oct 2011 14:14:55 -0700 Subject: EXP-1354 : Fixed. Toolbars now saved whenever changing their config and only if initialized correctly. --- indra/newview/lltoolbarview.cpp | 14 +++++++++++++- indra/newview/lltoolbarview.h | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp index affa7241d1..f481455834 100644 --- a/indra/newview/lltoolbarview.cpp +++ b/indra/newview/lltoolbarview.cpp @@ -73,7 +73,8 @@ LLToolBarView::LLToolBarView(const LLToolBarView::Params& p) mToolbarRight(NULL), mToolbarBottom(NULL), mDragStarted(false), - mDragToolbarButton(NULL) + mDragToolbarButton(NULL), + mToolbarsLoaded(false) { } @@ -244,6 +245,7 @@ bool LLToolBarView::loadToolbars(bool force_default) } } } + mToolbarsLoaded = true; return true; } @@ -255,6 +257,10 @@ bool LLToolBarView::loadDefaultToolbars() if (gToolBarView) { retval = gToolBarView->loadToolbars(true); + if (retval) + { + gToolBarView->saveToolbars(); + } } return retval; @@ -262,6 +268,9 @@ bool LLToolBarView::loadDefaultToolbars() void LLToolBarView::saveToolbars() const { + if (!mToolbarsLoaded) + return; + // Build the parameter tree from the toolbar data LLToolBarView::ToolbarSet toolbar_set; if (mToolbarLeft) @@ -460,6 +469,9 @@ BOOL LLToolBarView::handleDropTool( void* cargo_data, S32 x, S32 y, LLToolBar* t int new_rank = toolbar->getRankFromPosition(x,y); toolbar->addCommand(command_id, new_rank); } + + // Save the new toolbars configuration + gToolBarView->saveToolbars(); } else { diff --git a/indra/newview/lltoolbarview.h b/indra/newview/lltoolbarview.h index 8cafbc9308..ea14e471cd 100644 --- a/indra/newview/lltoolbarview.h +++ b/indra/newview/lltoolbarview.h @@ -100,6 +100,7 @@ private: LLToolBar* mToolbarLeft; LLToolBar* mToolbarRight; LLToolBar* mToolbarBottom; + bool mToolbarsLoaded; bool mDragStarted; LLToolBarButton* mDragToolbarButton; -- cgit v1.2.3 From 399de4f345eb0bf43e84bf0a65b3251798f59a13 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Mon, 24 Oct 2011 14:28:09 -0700 Subject: EXP-1454 FIX People floater 'cascades' as if opening a new window while looking at group profiles --- indra/llui/llfloater.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 7100ea13a7..2c707afa8f 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -935,7 +935,7 @@ void LLFloater::applyPositioning(LLFloater* other) case LLFloaterEnums::OPEN_POSITIONING_CASCADE_GROUP: case LLFloaterEnums::OPEN_POSITIONING_CASCADING: - if (other != NULL) + if (other != NULL && other != this) { stackWith(*other); } -- cgit v1.2.3 From b3c1e967ee9aa1b19622fe7b40e73417ac931b1d Mon Sep 17 00:00:00 2001 From: Merov Linden Date: Mon, 24 Oct 2011 15:42:07 -0700 Subject: EXP-1354 : FIX. Force loading the default toolbars if the user toolbar loading fails somewhat. --- indra/newview/lltoolbarview.cpp | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'indra') diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp index f481455834..9eea49914f 100644 --- a/indra/newview/lltoolbarview.cpp +++ b/indra/newview/lltoolbarview.cpp @@ -151,6 +151,7 @@ bool LLToolBarView::addCommand(const LLCommandId& command, LLToolBar* toolbar) bool LLToolBarView::loadToolbars(bool force_default) { LLToolBarView::ToolbarSet toolbar_set; + bool err = false; // Load the toolbars.xml file std::string toolbar_file = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "toolbars.xml"); @@ -165,24 +166,39 @@ bool LLToolBarView::loadToolbars(bool force_default) } LLXMLNodePtr root; - if(!LLXMLNode::parseFile(toolbar_file, root, NULL)) + if (!LLXMLNode::parseFile(toolbar_file, root, NULL)) { llwarns << "Unable to load toolbars from file: " << toolbar_file << llendl; - return false; + err = true; } - if(!root->hasName("toolbars")) + + if (!err && !root->hasName("toolbars")) { llwarns << toolbar_file << " is not a valid toolbars definition file" << llendl; - return false; + err = true; } // Parse the toolbar settings LLXUIParser parser; - parser.readXUI(root, toolbar_set, toolbar_file); - if (!toolbar_set.validateBlock()) + if (!err) { - llerrs << "Unable to validate toolbars from file: " << toolbar_file << llendl; - return false; + parser.readXUI(root, toolbar_set, toolbar_file); + } + if (!err && !toolbar_set.validateBlock()) + { + llwarns << "Unable to validate toolbars from file: " << toolbar_file << llendl; + err = true; + } + + if (err) + { + if (force_default) + { + llerrs << "Unable to load toolbars from default file : " << toolbar_file << llendl; + return false; + } + // Try to load the default toolbars + return loadToolbars(true); } // Clear the toolbars now before adding the loaded commands and settings -- cgit v1.2.3 From 4af2cc2e743a79944df6aef6d209ea8b8a1c33e2 Mon Sep 17 00:00:00 2001 From: Leslie Linden Date: Mon, 24 Oct 2011 15:52:50 -0700 Subject: EXP-1421 FIX -- Linden Dollars Still visually looks like a button. * L$ background color now matches the menu bar. The tooltip and click behavior have been left untouched, per design. --- indra/newview/skins/default/xui/en/panel_status_bar.xml | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml index 422bbada7f..b321e0162e 100644 --- a/indra/newview/skins/default/xui/en/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml @@ -2,7 +2,7 @@ + follows="right|top" + name="balance_bg"> + + + + -- cgit v1.2.3 From 95da0d5421b86b3c01fc372db28d7aa568ef0b16 Mon Sep 17 00:00:00 2001 From: eli Date: Wed, 26 Oct 2011 18:45:06 -0700 Subject: FIX VWR-27349 Fix incorrect language name vs. native script name formats for Chinese --- .../skins/default/xui/zh/panel_preferences_general.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_general.xml b/indra/newview/skins/default/xui/zh/panel_preferences_general.xml index 29f9599c97..6827fab6e6 100644 --- a/indra/newview/skins/default/xui/zh/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/zh/panel_preferences_general.xml @@ -5,15 +5,15 @@ - - - - - - - - - + + + + + + + + + (須重新啟動) -- cgit v1.2.3 From e86adb53f4df0cb0b9d8ea9b6cc805782d9fcf71 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 27 Oct 2011 17:20:12 -0700 Subject: EXP-1479 FIX Chat history does not open when selecting toggle on chat floater and issue with minimizing and opening chat floater --- indra/newview/skins/default/xui/en/floater_chat_bar.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/floater_chat_bar.xml b/indra/newview/skins/default/xui/en/floater_chat_bar.xml index e7eb7652c7..87606c1a2a 100644 --- a/indra/newview/skins/default/xui/en/floater_chat_bar.xml +++ b/indra/newview/skins/default/xui/en/floater_chat_bar.xml @@ -24,7 +24,7 @@ follow="all" width="380" height="0" - visible="true" + visible="false" filename="panel_nearby_chat.xml" name="nearby_chat" /> Date: Fri, 28 Oct 2011 16:27:34 -0700 Subject: sync with viewer-development --- .../newview/skins/default/xui/da/floater_about.xml | 2 +- .../xui/en/floater_translation_settings.xml | 244 +++++++++++++++++++++ indra/newview/skins/default/xui/en/menu_viewer.xml | 10 + .../default/xui/en/panel_preferences_chat.xml | 127 +---------- indra/newview/skins/default/xui/en/strings.xml | 6 + .../newview/skins/default/xui/pl/floater_about.xml | 2 +- indra/newview/skins/default/xui/ru/strings.xml | 2 +- .../newview/skins/default/xui/zh/floater_about.xml | 2 +- 8 files changed, 276 insertions(+), 119 deletions(-) create mode 100644 indra/newview/skins/default/xui/en/floater_translation_settings.xml (limited to 'indra') diff --git a/indra/newview/skins/default/xui/da/floater_about.xml b/indra/newview/skins/default/xui/da/floater_about.xml index 0ccaab73ba..fc8bc33096 100644 --- a/indra/newview/skins/default/xui/da/floater_about.xml +++ b/indra/newview/skins/default/xui/da/floater_about.xml @@ -10,7 +10,7 @@ Du er ved [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] i regionen [REGION] lokaliseret ved <nolink>[HOSTNAME]</nolink> ([HOSTIP]) [SERVER_VERSION] -[[SERVER_RELEASE_NOTES_URL] [ReleaseNotes]] +[SERVER_RELEASE_NOTES_URL] CPU: [CPU] diff --git a/indra/newview/skins/default/xui/en/floater_translation_settings.xml b/indra/newview/skins/default/xui/en/floater_translation_settings.xml new file mode 100644 index 0000000000..c03f751265 --- /dev/null +++ b/indra/newview/skins/default/xui/en/floater_translation_settings.xml @@ -0,0 +1,244 @@ + + + + Bing appID not verified. Please try again. + Google API key not verified. Please try again. + + Bing appID verified. + Google API key verified. + + + + Translate chat into: + + + + + + + + + + + + + + + + + + + + + + + + Choose translation service: + + + + + + + + + Bing [http://www.bing.com/developers/createapp.aspx AppID]: + + + \ No newline at end of file diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index c4031de0f8..24cec13c4c 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -2183,6 +2183,8 @@ Returns a string with the requested data about the region Stomach Left Pec Right Pec + Neck + Avatar Center Invalid Attachment Point @@ -3529,6 +3531,10 @@ Try enclosing path to the editor with double quotes. Error parsing the external editor command. External editor failed to run. + + Translation failed: [REASON] + Error parsing translation response. + Esc Space diff --git a/indra/newview/skins/default/xui/pl/floater_about.xml b/indra/newview/skins/default/xui/pl/floater_about.xml index 637325ddd0..409429ffaa 100644 --- a/indra/newview/skins/default/xui/pl/floater_about.xml +++ b/indra/newview/skins/default/xui/pl/floater_about.xml @@ -10,7 +10,7 @@ Położenie [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] w [REGION] zlokalizowanym w <nolink>[HOSTNAME]</nolink> ([HOSTIP]) [SERVER_VERSION] -[[SERVER_RELEASE_NOTES_URL] [ReleaseNotes]] +[SERVER_RELEASE_NOTES_URL] Procesor: [CPU] diff --git a/indra/newview/skins/default/xui/ru/strings.xml b/indra/newview/skins/default/xui/ru/strings.xml index d52cee6b0d..0134298166 100644 --- a/indra/newview/skins/default/xui/ru/strings.xml +++ b/indra/newview/skins/default/xui/ru/strings.xml @@ -4252,7 +4252,7 @@ support@secondlife.com. Женщина – ух ты! - /поклониться + /поклон /хлопнуть diff --git a/indra/newview/skins/default/xui/zh/floater_about.xml b/indra/newview/skins/default/xui/zh/floater_about.xml index 0ac85d399e..7e19c124a1 100644 --- a/indra/newview/skins/default/xui/zh/floater_about.xml +++ b/indra/newview/skins/default/xui/zh/floater_about.xml @@ -10,7 +10,7 @@ You are at [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] in [REGION] located at <nolink>[HOSTNAME]</nolink> ([HOSTIP]) [SERVER_VERSION] -[[SERVER_RELEASE_NOTES_URL] [ReleaseNotes]] +[SERVER_RELEASE_NOTES_URL] CPU:[CPU] -- cgit v1.2.3 From 8f47f2222c207938c8fc55158a6fff64ccf1e781 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Mon, 31 Oct 2011 16:08:55 -0700 Subject: increment viewer version to 3.2.1 --- indra/llcommon/llversionviewer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h index aa37a03ef8..fc1c1449da 100644 --- a/indra/llcommon/llversionviewer.h +++ b/indra/llcommon/llversionviewer.h @@ -29,7 +29,7 @@ const S32 LL_VERSION_MAJOR = 3; const S32 LL_VERSION_MINOR = 2; -const S32 LL_VERSION_PATCH = 1; +const S32 LL_VERSION_PATCH = 2; const S32 LL_VERSION_BUILD = 0; const char * const LL_CHANNEL = "Second Life Developer"; -- cgit v1.2.3 From f76143a74ebbd9faf84fdcdee7fbf81a4090aafc Mon Sep 17 00:00:00 2001 From: eli Date: Mon, 31 Oct 2011 16:25:34 -0700 Subject: sync with viewer-development --- .../skins/default/xui/en/floater_chat_bar.xml | 97 ++++++++++++---------- .../skins/default/xui/en/floater_outgoing_call.xml | 1 + .../skins/default/xui/en/floater_toybox.xml | 2 +- .../default/xui/en/floater_voice_controls.xml | 2 +- .../newview/skins/default/xui/en/menu_toolbars.xml | 2 +- indra/newview/skins/default/xui/en/menu_viewer.xml | 11 ++- .../skins/default/xui/en/panel_status_bar.xml | 7 +- .../skins/default/xui/en/panel_topinfo_bar.xml | 2 +- indra/newview/skins/default/xui/en/strings.xml | 6 +- .../skins/default/xui/en/widgets/toolbar.xml | 4 + 10 files changed, 78 insertions(+), 56 deletions(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/floater_chat_bar.xml b/indra/newview/skins/default/xui/en/floater_chat_bar.xml index 989b4a0580..87606c1a2a 100644 --- a/indra/newview/skins/default/xui/en/floater_chat_bar.xml +++ b/indra/newview/skins/default/xui/en/floater_chat_bar.xml @@ -15,6 +15,7 @@ min_height="60" min_width="150" can_resize="true" + default_tab_group="1" name="chat_bar" width="380"> - - - - + + + + diff --git a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml index 9db6568ee3..ffbb6aa28b 100644 --- a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml +++ b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml @@ -8,6 +8,7 @@ layout="topleft" name="outgoing call" help_topic="outgoing_call" + save_dock_state="true" title="CALLING" width="410"> - + - + + + + name="balance_bg"> [mthnum,datetime,utc]/[day,datetime,utc]/[year,datetime,utc] - + Balance Credits Debits @@ -3711,6 +3711,10 @@ Try enclosing path to the editor with double quotes. Changing camera angle Volume controls for calls and people near you in world + currently in your bottom toolbar + currently in your left toolbar + currently in your right toolbar + Retain% Detail diff --git a/indra/newview/skins/default/xui/en/widgets/toolbar.xml b/indra/newview/skins/default/xui/en/widgets/toolbar.xml index 7e7a9c61cf..0aa478ace9 100644 --- a/indra/newview/skins/default/xui/en/widgets/toolbar.xml +++ b/indra/newview/skins/default/xui/en/widgets/toolbar.xml @@ -30,6 +30,8 @@ image_overlay_alignment="left" use_ellipses="true" auto_resize="true" + button_flash_count="99999" + button_flash_rate="1.0" flash_color="EmphasisColor"/> -- cgit v1.2.3 From 2d24ed6ec5a8a26099065bc259f6738d5464db33 Mon Sep 17 00:00:00 2001 From: eli Date: Fri, 4 Nov 2011 13:45:14 -0700 Subject: WIP INTL-82 LQA changes for Turkish; remove obsolete files --- .../default/xui/ru/floater_day_cycle_options.xml | 95 ---------------------- .../skins/default/xui/tr/floater_camera.xml | 2 +- .../default/xui/tr/floater_day_cycle_options.xml | 95 ---------------------- .../default/xui/tr/floater_edit_day_cycle.xml | 20 ++--- .../default/xui/tr/floater_edit_sky_preset.xml | 12 +-- .../newview/skins/default/xui/tr/floater_picks.xml | 2 +- .../default/xui/tr/floater_preview_texture.xml | 2 +- .../skins/default/xui/tr/floater_texture_ctrl.xml | 4 +- .../newview/skins/default/xui/tr/floater_tools.xml | 2 +- .../default/xui/tr/floater_windlight_options.xml | 2 +- .../skins/default/xui/tr/menu_gesture_gear.xml | 2 +- .../skins/default/xui/tr/menu_hide_navbar.xml | 4 +- .../newview/skins/default/xui/tr/menu_landmark.xml | 4 +- .../skins/default/xui/tr/menu_picks_plus.xml | 2 +- indra/newview/skins/default/xui/tr/menu_place.xml | 2 +- .../default/xui/tr/menu_places_gear_landmark.xml | 2 +- indra/newview/skins/default/xui/tr/menu_slurl.xml | 2 +- indra/newview/skins/default/xui/tr/menu_viewer.xml | 2 +- .../newview/skins/default/xui/tr/notifications.xml | 46 +++++------ .../skins/default/xui/tr/panel_edit_pick.xml | 4 +- .../skins/default/xui/tr/panel_landmarks.xml | 2 +- indra/newview/skins/default/xui/tr/panel_me.xml | 2 +- .../skins/default/xui/tr/panel_navigation_bar.xml | 4 +- .../skins/default/xui/tr/panel_outfit_edit.xml | 4 +- .../skins/default/xui/tr/panel_outfits_list.xml | 2 +- .../newview/skins/default/xui/tr/panel_people.xml | 2 +- indra/newview/skins/default/xui/tr/panel_picks.xml | 8 +- .../default/xui/tr/panel_preferences_privacy.xml | 2 +- .../skins/default/xui/tr/panel_profile_view.xml | 2 +- .../newview/skins/default/xui/tr/role_actions.xml | 8 +- .../skins/default/xui/tr/sidepanel_appearance.xml | 12 +-- indra/newview/skins/default/xui/tr/strings.xml | 20 ++--- .../default/xui/zh/floater_day_cycle_options.xml | 95 ---------------------- 33 files changed, 92 insertions(+), 377 deletions(-) delete mode 100644 indra/newview/skins/default/xui/ru/floater_day_cycle_options.xml delete mode 100644 indra/newview/skins/default/xui/tr/floater_day_cycle_options.xml delete mode 100644 indra/newview/skins/default/xui/zh/floater_day_cycle_options.xml (limited to 'indra') diff --git a/indra/newview/skins/default/xui/ru/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/ru/floater_day_cycle_options.xml deleted file mode 100644 index 7c702f246d..0000000000 --- a/indra/newview/skins/default/xui/ru/floater_day_cycle_options.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - 00:00 - - - 03:00 - - - 06:00 - - - 09:00 - - - 12:00 - - - 15:00 - - - 18:00 - - - 21:00 - - - 00:00 - - - | - - - I - - - | - - - I - - - | - - - I - - - | - - - I - - - | - -