Merge remote-tracking branch 'singu/master'

This commit is contained in:
Aleric Inglewood
2013-04-30 20:43:40 +02:00
39 changed files with 502 additions and 296 deletions

View File

@@ -203,7 +203,6 @@ inline T* get_ptr_in_map(const std::map<K,T*>& inmap, const K& key)
template <typename K, typename T> template <typename K, typename T>
inline bool is_in_map(const std::map<K,T>& inmap, const K& key) inline bool is_in_map(const std::map<K,T>& inmap, const K& key)
{ {
typedef typename std::map<K,T>::const_iterator map_iter;
if(inmap.find(key) == inmap.end()) if(inmap.find(key) == inmap.end())
{ {
return false; return false;

View File

@@ -15151,6 +15151,17 @@ This should be as low as possible, but too low may break functionality</string>
<key>Value</key> <key>Value</key>
<integer>0</integer> <integer>0</integer>
</map> </map>
<key>UseTypingBubbles</key>
<map>
<key>Comment</key>
<string>Show typing indicator in avatar nametags</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>UseDebugMenus</key> <key>UseDebugMenus</key>
<map> <map>
<key>Comment</key> <key>Comment</key>

View File

@@ -329,6 +329,7 @@ void LLPrefsAscentChat::refreshValues()
mHideTypingNotification = gSavedSettings.getBOOL("AscentHideTypingNotification"); mHideTypingNotification = gSavedSettings.getBOOL("AscentHideTypingNotification");
mShowGroupNameInChatIM = gSavedSettings.getBOOL("OptionShowGroupNameInChatIM"); mShowGroupNameInChatIM = gSavedSettings.getBOOL("OptionShowGroupNameInChatIM");
mShowDisplayNameChanges = gSavedSettings.getBOOL("ShowDisplayNameChanges"); mShowDisplayNameChanges = gSavedSettings.getBOOL("ShowDisplayNameChanges");
mUseTypingBubbles = gSavedSettings.getBOOL("UseTypingBubbles");
mPlayTypingSound = gSavedSettings.getBOOL("PlayTypingSound"); mPlayTypingSound = gSavedSettings.getBOOL("PlayTypingSound");
mHideNotificationsInChat = gSavedSettings.getBOOL("HideNotificationsInChat"); mHideNotificationsInChat = gSavedSettings.getBOOL("HideNotificationsInChat");
mEnableMUPose = gSavedSettings.getBOOL("AscentAllowMUpose"); mEnableMUPose = gSavedSettings.getBOOL("AscentAllowMUpose");
@@ -545,6 +546,7 @@ void LLPrefsAscentChat::cancel()
gSavedSettings.setBOOL("AscentHideTypingNotification", mHideTypingNotification); gSavedSettings.setBOOL("AscentHideTypingNotification", mHideTypingNotification);
gSavedSettings.setBOOL("OptionShowGroupNameInChatIM", mShowGroupNameInChatIM); gSavedSettings.setBOOL("OptionShowGroupNameInChatIM", mShowGroupNameInChatIM);
gSavedSettings.setBOOL("ShowDisplayNameChanges", mShowDisplayNameChanges); gSavedSettings.setBOOL("ShowDisplayNameChanges", mShowDisplayNameChanges);
gSavedSettings.setBOOL("UseTypingBubbles", mUseTypingBubbles);
gSavedSettings.setBOOL("PlayTypingSound", mPlayTypingSound); gSavedSettings.setBOOL("PlayTypingSound", mPlayTypingSound);
gSavedSettings.setBOOL("HideNotificationsInChat", mHideNotificationsInChat); gSavedSettings.setBOOL("HideNotificationsInChat", mHideNotificationsInChat);
gSavedSettings.setBOOL("AscentAllowMUpose", mEnableMUPose); gSavedSettings.setBOOL("AscentAllowMUpose", mEnableMUPose);

View File

@@ -66,6 +66,7 @@ protected:
BOOL mHideTypingNotification; BOOL mHideTypingNotification;
BOOL mShowGroupNameInChatIM; BOOL mShowGroupNameInChatIM;
bool mShowDisplayNameChanges; bool mShowDisplayNameChanges;
bool mUseTypingBubbles;
BOOL mPlayTypingSound; BOOL mPlayTypingSound;
BOOL mHideNotificationsInChat; BOOL mHideNotificationsInChat;
BOOL mEnableMUPose; BOOL mEnableMUPose;

View File

@@ -58,6 +58,7 @@ HippoGridInfo::HippoGridInfo(const std::string& gridName) :
mAutoUpdate(false), mAutoUpdate(false),
mMaxAgentGroups(-1), mMaxAgentGroups(-1),
mCurrencySymbol("OS$"), mCurrencySymbol("OS$"),
mCurrencyText("OS Dollars"),
mRealCurrencySymbol("US$"), mRealCurrencySymbol("US$"),
mDirectoryFee(30), mDirectoryFee(30),
mUPCSupported(false) mUPCSupported(false)
@@ -90,6 +91,7 @@ void HippoGridInfo::setPlatform(Platform platform)
if (mPlatform == PLATFORM_SECONDLIFE) if (mPlatform == PLATFORM_SECONDLIFE)
{ {
mCurrencySymbol = "L$"; mCurrencySymbol = "L$";
mCurrencyText = "Linden Dollars";
} }
} }
@@ -221,6 +223,11 @@ void HippoGridInfo::setCurrencySymbol(const std::string& sym)
mCurrencySymbol = sym.substr(0, 3); mCurrencySymbol = sym.substr(0, 3);
} }
void HippoGridInfo::setCurrencyText(const std::string& text)
{
mCurrencyText = text;
}
void HippoGridInfo::setRealCurrencySymbol(const std::string& sym) void HippoGridInfo::setRealCurrencySymbol(const std::string& sym)
{ {
mRealCurrencySymbol = sym.substr(0, 3); mRealCurrencySymbol = sym.substr(0, 3);

View File

@@ -61,6 +61,7 @@ public:
int getMaxAgentGroups() const { return mMaxAgentGroups; } int getMaxAgentGroups() const { return mMaxAgentGroups; }
const std::string& getCurrencySymbol() const { return mCurrencySymbol; } const std::string& getCurrencySymbol() const { return mCurrencySymbol; }
const std::string& getCurrencyText() const { return mCurrencyText; }
const std::string& getRealCurrencySymbol() const { return mRealCurrencySymbol; } const std::string& getRealCurrencySymbol() const { return mRealCurrencySymbol; }
std::string getUploadFee() const; std::string getUploadFee() const;
std::string getGroupCreationFee() const; std::string getGroupCreationFee() const;
@@ -87,6 +88,7 @@ public:
bool getUPCSupported(); bool getUPCSupported();
void setCurrencySymbol(const std::string& sym); void setCurrencySymbol(const std::string& sym);
void setCurrencyText(const std::string& text);
void setRealCurrencySymbol(const std::string& sym); void setRealCurrencySymbol(const std::string& sym);
void setDirectoryFee(int fee); void setDirectoryFee(int fee);
bool supportsInvLinks(); bool supportsInvLinks();
@@ -124,6 +126,7 @@ private:
int mMaxAgentGroups; int mMaxAgentGroups;
std::string mCurrencySymbol; std::string mCurrencySymbol;
std::string mCurrencyText;
std::string mRealCurrencySymbol; std::string mRealCurrencySymbol;
int mDirectoryFee; int mDirectoryFee;
std::string mGridMessage; std::string mGridMessage;

View File

@@ -4,14 +4,20 @@ Second Life - Linux Voice Support README
WHAT IS IT? WHAT IS IT?
-=-=-=-=-=- -=-=-=-=-=-
Linux Voice Support is a new feature in testing which allows users Linux Voice Support is a feature in testing which allows users of the Linux
of the Linux Second Life client to participate in voice-chat with other Second Life client to participate in voice-chat with other residents and
residents and groups inside Second Life, with an appropriate groups inside Second Life, with an appropriate headset/microphone.
headset/microphone.
Linux Voice Support is currently EXPERIMENTAL and is known to still Linux Voice Support is currently EXPERIMENTAL and is known to still
have some compatibility issues. have some compatibility issues.
SINGULARITY MULTI-VOICE
-=-=-=-=-=-=-=-=-=-=-=-
Singularity multi-voice is an experimental feature that allows you to run multiple
SLVoice daemons at the same time, in order to do this, the debug setting VoiceMultiInstance
must be TRUE, this allows multiple instances of the viewer to run concurrently and
each connect to voice.
REQUIREMENTS REQUIREMENTS
-=-=-=-=-=-= -=-=-=-=-=-=
@@ -29,6 +35,13 @@ systems:
* Fedora Core 6 with (unknown) audio chipset * Fedora Core 6 with (unknown) audio chipset
* Ubuntu 8.04 (Hardy) with (unknown) audio chipset * Ubuntu 8.04 (Hardy) with (unknown) audio chipset
TESTING YOUR SETTINGS
-=-=-=-=-=-=-=-=-=-=-
* The Second Life region 'Voice Echo Canyon' is a great place for testing
your hardware settings and quality - it will 'echo' your voice back to you
when you speak.
KNOWN PROBLEMS KNOWN PROBLEMS
-=-=-=-=-=-=-= -=-=-=-=-=-=-=
@@ -41,12 +54,12 @@ TROUBLESHOOTING
PROBLEM 1: I don't see a white dot over the head of my avatar or other PROBLEM 1: I don't see a white dot over the head of my avatar or other
Voice-using avatars. Voice-using avatars.
SOLUTION: SOLUTION:
a. Ensure that 'Enable voice chat' is enabled in the Voice Chat a. Ensure that 'Enable voice chat' is enabled in the 'Voice Chat' section of the
preferences window and that you are in a voice-enabled area (you Preferences window, and that you are in a voice-enabled area
will see a blue headphone icon in the SL menu-bar). (you will see a blue headphone icon in the SL menu-bar).
b. If the above does not help, exit Second Life and ensure that any b. If the above does not help, exit Second Life and ensure that any
remaining 'SLVoice' processes (as reported by 'ps', 'top' or similar) remaining 'SLVoice' processes (as reported by 'ps', 'top' or similar)
are killed. are killed before restarting.
PROBLEM 2: I have a white dot over my head but I never see (or hear!) anyone PROBLEM 2: I have a white dot over my head but I never see (or hear!) anyone
except myself listed in the Active Speakers dialog when I'm sure that other except myself listed in the Active Speakers dialog when I'm sure that other
@@ -65,12 +78,13 @@ c. Update to the latest version of ALSA manually. For a guide, see the
PROBLEM 3: I can hear other people, but they cannot hear me. PROBLEM 3: I can hear other people, but they cannot hear me.
SOLUTION: SOLUTION:
a. Ensure that you have the 'Talk' button activated while you are trying to a. Ensure that you have the 'Talk' button (at the bottom of the Second Life
speak. window)activated while you are trying to speak.
b. Ensure that your microphone jack is inserted into the correct socket of your b. Ensure that your microphone jack is inserted into the correct socket of your
sound card, where appropriate. sound card, where appropriate.
c. Use your system mixer-setting program or the 'alsamixer' program to ensure c. Use your system mixer-setting program (such as the PulseAudio 'volume
that microphone input is set as the active input source and is not muted. control' applet or the ALSA 'alsamixer' program) to ensure that microphone
input is set as the active input source and is not muted.
d. Verify that audio input works in other applications, i.e. Audacity d. Verify that audio input works in other applications, i.e. Audacity
PROBLEM 4: Other people just hear bursts of loud noise when I speak. PROBLEM 4: Other people just hear bursts of loud noise when I speak.

View File

@@ -15,7 +15,7 @@ Life itself - please see <http://www.secondlife.com/whatis/>.
5.3. Blank window after minimizing it 5.3. Blank window after minimizing it
5.4. Audio 5.4. Audio
5.5. 'Alt' key for camera controls doesn't work 5.5. 'Alt' key for camera controls doesn't work
5.6. In-world streaming movie/music playback 5.6. In-world streaming movie, music and Flash playback
6. Advanced Troubleshooting 6. Advanced Troubleshooting
6.1. Audio 6.1. Audio
6.2. OpenGL 6.2. OpenGL
@@ -75,10 +75,11 @@ Life Linux client is very similar to that for Windows, as detailed at:
3. INSTALLING & RUNNING 3. INSTALLING & RUNNING
-=-=-=-=-=-=-=-=-=-=-=- -=-=-=-=-=-=-=-=-=-=-=-
The Second Life Linux client entirely runs out of the directory you have The Singularity Linux client can entirely run from the directory you have
unpacked it into - no installation step is required. unpacked it into - no installation step is required. If you wish to
perform a separate installation step anyway, you may run './install.sh'
Run ./secondlife from the installation directory to start Second Life. Run ./singularity from the installation directory to start Singularity.
For in-world MOVIE and MUSIC PLAYBACK, you will need (32-bit) GStreamer 0.10 For in-world MOVIE and MUSIC PLAYBACK, you will need (32-bit) GStreamer 0.10
installed on your system. This is optional - it is not required for general installed on your system. This is optional - it is not required for general
@@ -168,12 +169,15 @@ SOLUTION:- Some window managers eat the Alt key for their own purposes; you
example, the 'Windows' key!) which will allow the Alt key to function example, the 'Windows' key!) which will allow the Alt key to function
properly with mouse actions in Second Life and other applications. properly with mouse actions in Second Life and other applications.
PROBLEM 6:- In-world movie and/or music playback doesn't work for me. PROBLEM 6:- In-world movie, music, or Flash playback doesn't work for me.
SOLUTION:- You need to have a working installation of GStreamer 0.10; this SOLUTION:- You need to have a working installation of GStreamer 0.10; this
is usually an optional package for most versions of Linux. If you have is usually an optional package for most versions of Linux. If you have
installed GStreamer 0.10 and you can play some music/movies but not others installed GStreamer 0.10 and you can play some music/movies but not others
then you need to install a wider selection of GStreamer plugins, either then you need to install a wider selection of GStreamer plugins, either
from your vendor or an appropriate third party. from your vendor (i.e. the 'Ugly' plugins) or an appropriate third party.
For Flash playback, you need to have Flash 10 installed for your normal
web browser (for example, Firefox). PulseAudio is required for Flash
volume control / muting to fully function inside Second Life.
6. ADVANCED TROUBLESHOOTING 6. ADVANCED TROUBLESHOOTING

View File

@@ -0,0 +1,106 @@
#!/bin/bash
# Install Singularity Viewer. This script can install the viewer both
# system-wide and for an individual user.
VT102_STYLE_NORMAL='\E[0m'
VT102_COLOR_RED='\E[31m'
SCRIPTSRC=`readlink -f "$0" || echo "$0"`
RUN_PATH=`dirname "${SCRIPTSRC}" || echo .`
tarball_path=${RUN_PATH}
function prompt()
{
local prompt=$1
local input
echo -n "$prompt"
while read input; do
case $input in
[Yy]* )
return 1
;;
[Nn]* )
return 0
;;
* )
echo "Please enter yes or no."
echo -n "$prompt"
esac
done
}
function die()
{
warn $1
exit 1
}
function warn()
{
echo -n -e $VT102_COLOR_RED
echo $1
echo -n -e $VT102_STYLE_NORMAL
}
function homedir_install()
{
warn "You are not running as a privileged user, so you will only be able"
warn "to install Singularity Viewer in your home directory. If you"
warn "would like to install Singularity Viewer system-wide, please run"
warn "this script as the root user, or with the 'sudo' command."
echo
prompt "Proceed with the installation? [Y/N]: "
if [[ $? == 0 ]]; then
exit 0
fi
install_to_prefix "$HOME/.singularity-install"
$HOME/.singularity-install/refresh_desktop_app_entry.sh
}
function root_install()
{
local default_prefix="/opt/singularity-install"
echo -n "Enter the desired installation directory [${default_prefix}]: ";
read
if [[ "$REPLY" = "" ]] ; then
local install_prefix=$default_prefix
else
local install_prefix=$REPLY
fi
install_to_prefix "$install_prefix"
mkdir -p /usr/local/share/applications
${install_prefix}/refresh_desktop_app_entry.sh
}
function install_to_prefix()
{
test -e "$1" && backup_previous_installation "$1"
mkdir -p "$1" || die "Failed to create installation directory!"
echo " - Installing to $1"
cp -a "${tarball_path}"/* "$1/" || die "Failed to complete the installation!"
}
function backup_previous_installation()
{
local backup_dir="$1".backup-$(date -I)
echo " - Backing up previous installation to $backup_dir"
mv "$1" "$backup_dir" || die "Failed to create backup of existing installation!"
}
if [ "$UID" == "0" ]; then
root_install
else
homedir_install
fi

View File

@@ -0,0 +1,36 @@
#!/bin/bash
SCRIPTSRC=`readlink -f "$0" || echo "$0"`
RUN_PATH=`dirname "${SCRIPTSRC}" || echo .`
install_prefix=${RUN_PATH}
function install_desktop_entry()
{
local installation_prefix="$1"
local desktop_entries_dir="$2"
local desktop_entry="\
[Desktop Entry]\n\
Name=Singularity\n\
Comment=Client for Online Virtual Worlds, such as Second Life\n\
Exec=${installation_prefix}/singularity\n\
Icon=${installation_prefix}/singularity_icon.png\n\
Terminal=false\n\
Type=Application\n\
Categories=Application;Network;\n\
StartupNotify=true\n\
X-Desktop-File-Install-Version=3.0"
echo " - Installing menu entries in ${desktop_entries_dir}"
mkdir -vp "${desktop_entries_dir}"
echo -e $desktop_entry > "${desktop_entries_dir}/singularity-viewer.desktop" || "Failed to install application menu!"
}
if [ "$UID" == "0" ]; then
# system-wide
install_desktop_entry "$install_prefix" /usr/local/share/applications
else
# user-specific
install_desktop_entry "$install_prefix" "$HOME/.local/share/applications"
fi

View File

@@ -4,10 +4,10 @@
## These options are for self-assisted troubleshooting during this beta ## These options are for self-assisted troubleshooting during this beta
## testing phase; you should not usually need to touch them. ## testing phase; you should not usually need to touch them.
## - Avoids using any OpenAL audio driver.
#export LL_BAD_OPENAL_DRIVER=x
## - Avoids using any FMOD Ex audio driver. ## - Avoids using any FMOD Ex audio driver.
#export LL_BAD_FMODEX_DRIVER=x #export LL_BAD_FMODEX_DRIVER=x
## - Avoids using any OpenAL audio driver.
#export LL_BAD_OPENAL_DRIVER=x
## - Avoids using any FMOD audio driver. ## - Avoids using any FMOD audio driver.
#export LL_BAD_FMOD_DRIVER=x #export LL_BAD_FMOD_DRIVER=x
@@ -20,7 +20,6 @@
## - Avoids using the FMOD or FMOD Ex ESD audio driver. ## - Avoids using the FMOD or FMOD Ex ESD audio driver.
#export LL_BAD_FMOD_ESD=x #export LL_BAD_FMOD_ESD=x
## - Avoids the optional OpenGL extensions which have proven most problematic ## - Avoids the optional OpenGL extensions which have proven most problematic
## on some hardware. Disabling this option may cause BETTER PERFORMANCE but ## on some hardware. Disabling this option may cause BETTER PERFORMANCE but
## may also cause CRASHES and hangs on some unstable combinations of drivers ## may also cause CRASHES and hangs on some unstable combinations of drivers
@@ -109,6 +108,10 @@ cd "${RUN_PATH}"
# Re-register the secondlife:// protocol handler every launch, for now. # Re-register the secondlife:// protocol handler every launch, for now.
./register_secondlifeprotocol.sh ./register_secondlifeprotocol.sh
# Re-register the application with the desktop system every launch, for now.
./refresh_desktop_app_entry.sh
## Before we mess with LD_LIBRARY_PATH, save the old one to restore for ## Before we mess with LD_LIBRARY_PATH, save the old one to restore for
## subprocesses that care. ## subprocesses that care.
export SAVED_LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" export SAVED_LD_LIBRARY_PATH="${LD_LIBRARY_PATH}"
@@ -147,16 +150,11 @@ fi
export SL_CMD='$LL_WRAPPER bin/$VIEWER_BINARY' export SL_CMD='$LL_WRAPPER bin/$VIEWER_BINARY'
export SL_OPT="`cat gridargs.dat` $@" export SL_OPT="`cat gridargs.dat` $@"
# Run the program # Run the program.
eval ${SL_ENV} ${SL_CMD} ${SL_OPT} || LL_RUN_ERR=runerr eval ${SL_ENV} ${SL_CMD} ${SL_OPT} || LL_RUN_ERR=runerr
# Handle any resulting errors # Handle any resulting errors
if [ -n "$LL_RUN_ERR" ]; then if [ -n "$LL_RUN_ERR" = "runerr" ]; then
LL_RUN_ERR_MSG="" # generic error running the binary
if [ "$LL_RUN_ERR" = "runerr" ]; then echo '*** Bad shutdown. ***'
# generic error running the binary
echo '*** Bad shutdown. ***'
fi
fi fi

View File

@@ -3,10 +3,9 @@
* @brief Processes responses received for asset upload requests. * @brief Processes responses received for asset upload requests.
* *
* $LicenseInfo:firstyear=2007&license=viewergpl$ * $LicenseInfo:firstyear=2007&license=viewergpl$
* * Second Life Viewer Source Code
* Copyright (c) 2007-2009, Linden Research, Inc. * Copyright (c) 2007-2009, Linden Research, Inc.
* *
* Second Life Viewer Source Code
* The source code in this file ("Source Code") is provided by Linden Lab * The source code in this file ("Source Code") is provided by Linden Lab
* to you under the terms of the GNU General Public License, version 2.0 * to you under the terms of the GNU General Public License, version 2.0
* ("GPL"), unless you have obtained a separate licensing agreement * ("GPL"), unless you have obtained a separate licensing agreement
@@ -53,7 +52,6 @@
#include "llviewerobject.h" #include "llviewerobject.h"
#include "llviewercontrol.h" #include "llviewercontrol.h"
#include "llviewerobjectlist.h" #include "llviewerobjectlist.h"
#include "llviewermenufile.h"
#include "llviewertexlayer.h" #include "llviewertexlayer.h"
#include "llviewerwindow.h" #include "llviewerwindow.h"
#include "lltrans.h" #include "lltrans.h"
@@ -255,6 +253,7 @@ void LLAssetUploadResponder::result(const LLSD& content)
lldebugs << "LLAssetUploadResponder::result from capabilities" << llendl; lldebugs << "LLAssetUploadResponder::result from capabilities" << llendl;
std::string state = content["state"]; std::string state = content["state"];
if (state == "upload") if (state == "upload")
{ {
uploadUpload(content); uploadUpload(content);
@@ -343,6 +342,7 @@ void LLNewAgentInventoryResponder::error(U32 statusNum, const std::string& reaso
//LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, LLUUID(), FALSE); //LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, LLUUID(), FALSE);
} }
//virtual //virtual
void LLNewAgentInventoryResponder::uploadFailure(const LLSD& content) void LLNewAgentInventoryResponder::uploadFailure(const LLSD& content)
{ {
@@ -351,6 +351,7 @@ void LLNewAgentInventoryResponder::uploadFailure(const LLSD& content)
(*mCallBack)(false, mUserData); (*mCallBack)(false, mUserData);
} }
LLAssetUploadResponder::uploadFailure(content); LLAssetUploadResponder::uploadFailure(content);
//LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, content["new_asset"], FALSE); //LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, content["new_asset"], FALSE);
} }
@@ -397,10 +398,14 @@ void LLNewAgentInventoryResponder::uploadComplete(const LLSD& content)
// continue uploading for bulk uploads // continue uploading for bulk uploads
if (!gUploadQueue.empty()) /* Singu Note: sUploadQueue was never getting populated, anywhere! Therefore, this entire block never was reached.
** I have condensed it to here in the hopes it may one day see use. Apparently, it came in with Siana's prep work
** for mesh upload (697dd7e9298282590f8cf858a58335f70302532b), but we never needed it.
static std::deque<std::string> sUploadQueue;
if (!sUploadQueue.empty())
{ {
std::string next_file = gUploadQueue.front(); std::string next_file = sUploadQueue.front();
gUploadQueue.pop_front(); sUploadQueue.pop_front();
if (next_file.empty()) return; if (next_file.empty()) return;
std::string name = gDirUtilp->getBaseFileName(next_file, true); std::string name = gDirUtilp->getBaseFileName(next_file, true);
@@ -448,6 +453,7 @@ void LLNewAgentInventoryResponder::uploadComplete(const LLSD& content)
expected_upload_cost, expected_upload_cost,
userdata); userdata);
} }
*/
} }
LLSendTexLayerResponder::LLSendTexLayerResponder(const LLSD& post_data, LLSendTexLayerResponder::LLSendTexLayerResponder(const LLSD& post_data,
@@ -698,6 +704,7 @@ void LLUpdateTaskInventoryResponder::uploadComplete(const LLSD& content)
} }
} }
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
// LLNewAgentInventoryVariablePriceResponder::Impl // // LLNewAgentInventoryVariablePriceResponder::Impl //
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
@@ -1165,3 +1172,4 @@ void LLNewAgentInventoryVariablePriceResponder::showConfirmationDialog(
boost::intrusive_ptr<LLNewAgentInventoryVariablePriceResponder>(this))); boost::intrusive_ptr<LLNewAgentInventoryVariablePriceResponder>(this)));
} }
} }

View File

@@ -772,7 +772,7 @@ void LLPanelPermissions::refresh()
{ {
childSetEnabled("checkbox allow export", false); childSetEnabled("checkbox allow export", false);
if (!gHippoGridManager->getCurrentGrid()->isSecondLife()) if (!gHippoGridManager->getCurrentGrid()->isSecondLife())
childSetVisible("checkbox allow export", false); childSetVisible("checkbox allow export", true);
} }
if (has_change_sale_ability && (owner_mask_on & PERM_TRANSFER)) if (has_change_sale_ability && (owner_mask_on & PERM_TRANSFER))

View File

@@ -1002,6 +1002,7 @@ bool idle_startup()
if(!gHippoGridManager->getConnectedGrid()->isSecondLife()) if(!gHippoGridManager->getConnectedGrid()->isSecondLife())
{ {
LLTrans::setDefaultArg("[CURRENCY]",gHippoGridManager->getConnectedGrid()->getCurrencySymbol()); //replace [CURRENCY] with OS$, not L$ for instance. LLTrans::setDefaultArg("[CURRENCY]",gHippoGridManager->getConnectedGrid()->getCurrencySymbol()); //replace [CURRENCY] with OS$, not L$ for instance.
LLTrans::setDefaultArg("[CURRENCY_TEXT]",gHippoGridManager->getConnectedGrid()->getCurrencyText()); //replace [CURRENCYTEXT] with OS DOllars, not Linden Dollars for instance.
LLTrans::setDefaultArg("[SECOND_LIFE]", gHippoGridManager->getConnectedGrid()->getGridName()); LLTrans::setDefaultArg("[SECOND_LIFE]", gHippoGridManager->getConnectedGrid()->getGridName());
LLTrans::setDefaultArg("[SECOND_LIFE_GRID]", gHippoGridManager->getConnectedGrid()->getGridName() + " Grid"); LLTrans::setDefaultArg("[SECOND_LIFE_GRID]", gHippoGridManager->getConnectedGrid()->getGridName() + " Grid");
LLTrans::setDefaultArg("[GRID_OWNER]", gHippoGridManager->getConnectedGrid()->getGridOwner()); LLTrans::setDefaultArg("[GRID_OWNER]", gHippoGridManager->getConnectedGrid()->getGridOwner());
@@ -4378,6 +4379,8 @@ bool process_login_success_response(std::string& password)
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setSearchUrl(tmp); if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setSearchUrl(tmp);
tmp = response["currency"].asString(); tmp = response["currency"].asString();
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setCurrencySymbol(tmp); if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setCurrencySymbol(tmp);
tmp = response["currency_text"].asString();
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setCurrencyText(tmp);
tmp = response["real_currency"].asString(); tmp = response["real_currency"].asString();
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setRealCurrencySymbol(tmp); if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setRealCurrencySymbol(tmp);
tmp = response["directory_fee"].asString(); tmp = response["directory_fee"].asString();

View File

@@ -3,10 +3,9 @@
* @brief "File" menu in the main menu bar. * @brief "File" menu in the main menu bar.
* *
* $LicenseInfo:firstyear=2002&license=viewergpl$ * $LicenseInfo:firstyear=2002&license=viewergpl$
* * Second Life Viewer Source Code
* Copyright (c) 2002-2009, Linden Research, Inc. * Copyright (c) 2002-2009, Linden Research, Inc.
* *
* Second Life Viewer Source Code
* The source code in this file ("Source Code") is provided by Linden Lab * The source code in this file ("Source Code") is provided by Linden Lab
* to you under the terms of the GNU General Public License, version 2.0 * to you under the terms of the GNU General Public License, version 2.0
* ("GPL"), unless you have obtained a separate licensing agreement * ("GPL"), unless you have obtained a separate licensing agreement
@@ -64,11 +63,9 @@
#include "lltrans.h" #include "lltrans.h"
#include "llfloaterbuycurrency.h" #include "llfloaterbuycurrency.h"
// <edit> // <edit>
#include "llselectmgr.h" #include "floaterlocalassetbrowse.h"
#include "llassettype.h" #include "llassettype.h"
#include "llinventorytype.h" #include "llinventorytype.h"
#include "llbvhloader.h"
#include "lllocalinventory.h"
// </edit> // </edit>
// linden libraries // linden libraries
@@ -90,12 +87,9 @@
#include <boost/tokenizer.hpp> #include <boost/tokenizer.hpp>
#include "hippogridmanager.h" #include "hippogridmanager.h"
#include "importtracker.h"
using namespace LLOldEvents; using namespace LLOldEvents;
std::deque<std::string> gUploadQueue;
typedef LLMemberListener<LLView> view_listener_t; typedef LLMemberListener<LLView> view_listener_t;
@@ -512,6 +506,15 @@ class LLFileMinimizeAllWindows : public view_listener_t
return true; return true;
} }
}; };
class LLFileLocalAssetBrowser : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent>, const LLSD&)
{
FloaterLocalAssetBrowser::show(0);
return true;
}
};
// </edit> // </edit>
class LLFileSavePreview : public view_listener_t class LLFileSavePreview : public view_listener_t
@@ -610,20 +613,6 @@ class LLFileTakeSnapshotToDisk : public view_listener_t
} }
}; };
class LLFileLogOut : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
std::string command(gDirUtilp->getExecutableDir() + gDirUtilp->getDirDelimiter() + gDirUtilp->getExecutableFilename());
gSavedSettings.setBOOL("ShowConsoleWindow", FALSE);
gViewerWindow->getWindow()->ShellEx(command);
gSavedSettings.setBOOL("ShowConsoleWindow", FALSE);
LLAppViewer::instance()->userQuit();
gSavedSettings.setBOOL("ShowConsoleWindow", FALSE);
return true;
}
};
class LLFileQuit : public view_listener_t class LLFileQuit : public view_listener_t
{ {
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
@@ -706,7 +695,7 @@ void upload_new_resource(const std::string& src_filename, std::string name,
"No file extension for the file: '%s'\nPlease make sure the file has a correct file extension", "No file extension for the file: '%s'\nPlease make sure the file has a correct file extension",
short_name.c_str()); short_name.c_str());
args["FILE"] = short_name; args["FILE"] = short_name;
upload_error(error_message, "NofileExtension", filename, args); upload_error(error_message, "NoFileExtension", filename, args);
return; return;
} }
else if (codec == IMG_CODEC_J2C) else if (codec == IMG_CODEC_J2C)
@@ -1002,16 +991,10 @@ void temp_upload_callback(const LLUUID& uuid, void* user_data, S32 result, LLExt
perms->setMaskEveryone(PERM_ALL); perms->setMaskEveryone(PERM_ALL);
perms->setMaskGroup(PERM_ALL); perms->setMaskGroup(PERM_ALL);
perms->setMaskNext(PERM_ALL); perms->setMaskNext(PERM_ALL);
LLUUID destination = gInventory.findCategoryUUIDForType(LLFolderType::FT_TEXTURE);
BOOL bUseSystemInventory = (gSavedSettings.getBOOL("AscentUseSystemFolder") && gSavedSettings.getBOOL("AscentSystemTemporary"));
if (bUseSystemInventory)
{
destination = gSystemFolderAssets;
}
LLViewerInventoryItem* item = new LLViewerInventoryItem( LLViewerInventoryItem* item = new LLViewerInventoryItem(
item_id, item_id,
destination, gInventory.findCategoryUUIDForType(LLFolderType::FT_TEXTURE),
*perms, *perms,
uuid, uuid,
(LLAssetType::EType)data->mAssetInfo.mType, (LLAssetType::EType)data->mAssetInfo.mType,
@@ -1021,16 +1004,10 @@ void temp_upload_callback(const LLUUID& uuid, void* user_data, S32 result, LLExt
LLSaleInfo::DEFAULT, LLSaleInfo::DEFAULT,
0, 0,
time_corrected()); time_corrected());
if (bUseSystemInventory)
{ item->updateServer(TRUE);
LLLocalInventory::addItem(item); gInventory.updateItem(item);
} gInventory.notifyObservers();
else
{
item->updateServer(TRUE);
gInventory.updateItem(item);
gInventory.notifyObservers();
}
} }
else else
{ {
@@ -1139,40 +1116,44 @@ void upload_done_callback(const LLUUID& uuid, void* user_data, S32 result, LLExt
data = NULL; data = NULL;
} }
static LLAssetID upload_new_resource_prep(const LLTransactionID& tid, static LLAssetID upload_new_resource_prep(
LLAssetType::EType asset_type, const LLTransactionID& tid,
LLInventoryType::EType& inventory_type, LLAssetType::EType asset_type,
std::string& name, LLInventoryType::EType& inventory_type,
const std::string& display_name, std::string& name,
std::string& description) const std::string& display_name,
std::string& description)
{ {
LLAssetID uuid = generate_asset_id_for_new_upload(tid); LLAssetID uuid = generate_asset_id_for_new_upload(tid);
increase_new_upload_stats(asset_type); increase_new_upload_stats(asset_type);
assign_defaults_and_show_upload_message(asset_type, assign_defaults_and_show_upload_message(
inventory_type, asset_type,
name, inventory_type,
display_name, name,
description); display_name,
description);
return uuid; return uuid;
} }
LLSD generate_new_resource_upload_capability_body(LLAssetType::EType asset_type, LLSD generate_new_resource_upload_capability_body(
const std::string& name, LLAssetType::EType asset_type,
const std::string& desc, const std::string& name,
LLFolderType::EType destination_folder_type, const std::string& desc,
LLInventoryType::EType inv_type, LLFolderType::EType destination_folder_type,
U32 next_owner_perms, LLInventoryType::EType inv_type,
U32 group_perms, U32 next_owner_perms,
U32 everyone_perms) U32 group_perms,
U32 everyone_perms)
{ {
LLSD body; LLSD body;
body["folder_id"] = gInventory.findCategoryUUIDForType(destination_folder_type == LLFolderType::FT_NONE ? body["folder_id"] = gInventory.findCategoryUUIDForType(
LLFolderType::assetTypeToFolderType(asset_type) : destination_folder_type == LLFolderType::FT_NONE ?
destination_folder_type); LLFolderType::assetTypeToFolderType(asset_type) :
destination_folder_type);
body["asset_type"] = LLAssetType::lookup(asset_type); body["asset_type"] = LLAssetType::lookup(asset_type);
body["inventory_type"] = LLInventoryType::lookup(inv_type); body["inventory_type"] = LLInventoryType::lookup(inv_type);
@@ -1185,28 +1166,36 @@ LLSD generate_new_resource_upload_capability_body(LLAssetType::EType asset_type,
return body; return body;
} }
bool upload_new_resource(const LLTransactionID &tid, LLAssetType::EType asset_type, bool upload_new_resource(
std::string name, const LLTransactionID &tid,
std::string desc, S32 compression_info, LLAssetType::EType asset_type,
LLFolderType::EType destination_folder_type, std::string name,
LLInventoryType::EType inv_type, std::string desc,
U32 next_owner_perms, S32 compression_info,
U32 group_perms, LLFolderType::EType destination_folder_type,
U32 everyone_perms, LLInventoryType::EType inv_type,
const std::string& display_name, U32 next_owner_perms,
LLAssetStorage::LLStoreAssetCallback callback, U32 group_perms,
S32 expected_upload_cost, U32 everyone_perms,
void *userdata, const std::string& display_name,
void (*callback2)(bool, void*)) LLAssetStorage::LLStoreAssetCallback callback,
S32 expected_upload_cost,
void *userdata,
void (*callback2)(bool, void*))
{ {
if(gDisconnected) if(gDisconnected)
{ {
return false; return false;
} }
LLAssetID uuid =
LLAssetID uuid = upload_new_resource_prep(tid, asset_type, inv_type, upload_new_resource_prep(
name, display_name, desc); tid,
asset_type,
inv_type,
name,
display_name,
desc);
llinfos << "*** Uploading: " llinfos << "*** Uploading: "
<< "\nType: " << LLAssetType::lookup(asset_type) << "\nType: " << LLAssetType::lookup(asset_type)
<< "\nUUID: " << uuid << "\nUUID: " << uuid
@@ -1226,6 +1215,7 @@ bool upload_new_resource(const LLTransactionID &tid, LLAssetType::EType asset_ty
// </edit> // </edit>
{ {
llinfos << "New Agent Inventory via capability" << llendl; llinfos << "New Agent Inventory via capability" << llendl;
LLSD body; LLSD body;
body["folder_id"] = gInventory.findCategoryUUIDForType((destination_folder_type == LLFolderType::FT_NONE) ? LLFolderType::assetTypeToFolderType(asset_type) : destination_folder_type); body["folder_id"] = gInventory.findCategoryUUIDForType((destination_folder_type == LLFolderType::FT_NONE) ? LLFolderType::assetTypeToFolderType(asset_type) : destination_folder_type);
body["asset_type"] = LLAssetType::lookup(asset_type); body["asset_type"] = LLAssetType::lookup(asset_type);
@@ -1237,8 +1227,15 @@ bool upload_new_resource(const LLTransactionID &tid, LLAssetType::EType asset_ty
body["everyone_mask"] = LLSD::Integer(everyone_perms); body["everyone_mask"] = LLSD::Integer(everyone_perms);
body["expected_upload_cost"] = LLSD::Integer(expected_upload_cost); body["expected_upload_cost"] = LLSD::Integer(expected_upload_cost);
LLHTTPClient::post(url, body, LLHTTPClient::post(
new LLNewAgentInventoryResponder(body, uuid, asset_type, callback2, userdata)); url,
body,
new LLNewAgentInventoryResponder(
body,
uuid,
asset_type,
callback2,
userdata));
} }
else else
{ {
@@ -1284,12 +1281,14 @@ bool upload_new_resource(const LLTransactionID &tid, LLAssetType::EType asset_ty
{ {
asset_callback = callback; asset_callback = callback;
} }
gAssetStorage->storeAssetData(data->mAssetInfo.mTransactionID, data->mAssetInfo.mType, gAssetStorage->storeAssetData(
asset_callback, data->mAssetInfo.mTransactionID,
(void*)data, data->mAssetInfo.mType,
temporary, asset_callback,
TRUE, (void*)data,
temporary); temporary,
TRUE,
temporary);
} }
// Return true when a call to a callback function will follow. // Return true when a call to a callback function will follow.
@@ -1340,6 +1339,7 @@ void assign_defaults_and_show_upload_message(LLAssetType::EType asset_type,
} }
LLStringUtil::stripNonprintable(name); LLStringUtil::stripNonprintable(name);
LLStringUtil::stripNonprintable(description); LLStringUtil::stripNonprintable(description);
if (name.empty()) if (name.empty())
{ {
name = "(No Name)"; name = "(No Name)";
@@ -1355,6 +1355,7 @@ void assign_defaults_and_show_upload_message(LLAssetType::EType asset_type,
LLUploadDialog::modalUploadDialog(upload_message); LLUploadDialog::modalUploadDialog(upload_message);
} }
void init_menu_file() void init_menu_file()
{ {
(new LLFileUploadImage())->registerListener(gMenuHolder, "File.UploadImage"); (new LLFileUploadImage())->registerListener(gMenuHolder, "File.UploadImage");
@@ -1368,13 +1369,13 @@ void init_menu_file()
(new LLFileEnableCloseAllWindows())->registerListener(gMenuHolder, "File.EnableCloseAllWindows"); (new LLFileEnableCloseAllWindows())->registerListener(gMenuHolder, "File.EnableCloseAllWindows");
// <edit> // <edit>
(new LLFileMinimizeAllWindows())->registerListener(gMenuHolder, "File.MinimizeAllWindows"); (new LLFileMinimizeAllWindows())->registerListener(gMenuHolder, "File.MinimizeAllWindows");
(new LLFileLocalAssetBrowser())->registerListener(gMenuHolder, "File.LocalAssetBrowser");
// </edit> // </edit>
(new LLFileSavePreview())->registerListener(gMenuHolder, "File.SavePreview"); (new LLFileSavePreview())->registerListener(gMenuHolder, "File.SavePreview");
(new LLFileSavePreviewPNG())->registerListener(gMenuHolder, "File.SavePreviewPNG"); (new LLFileSavePreviewPNG())->registerListener(gMenuHolder, "File.SavePreviewPNG");
(new LLFileTakeSnapshot())->registerListener(gMenuHolder, "File.TakeSnapshot"); (new LLFileTakeSnapshot())->registerListener(gMenuHolder, "File.TakeSnapshot");
(new LLFileTakeSnapshotToDisk())->registerListener(gMenuHolder, "File.TakeSnapshotToDisk"); (new LLFileTakeSnapshotToDisk())->registerListener(gMenuHolder, "File.TakeSnapshotToDisk");
(new LLFileQuit())->registerListener(gMenuHolder, "File.Quit"); (new LLFileQuit())->registerListener(gMenuHolder, "File.Quit");
(new LLFileLogOut())->registerListener(gMenuHolder, "File.LogOut");
(new LLFileEnableUpload())->registerListener(gMenuHolder, "File.EnableUpload"); (new LLFileEnableUpload())->registerListener(gMenuHolder, "File.EnableUpload");
(new LLFileEnableUploadModel())->registerListener(gMenuHolder, "File.EnableUploadModel"); (new LLFileEnableUploadModel())->registerListener(gMenuHolder, "File.EnableUploadModel");

View File

@@ -48,8 +48,6 @@ class NewResourceItemCallback : public LLInventoryCallback
class LLTransactionID; class LLTransactionID;
extern std::deque<std::string> gUploadQueue;
void init_menu_file(); void init_menu_file();
void upload_new_resource(const std::string& src_filename, void upload_new_resource(const std::string& src_filename,

View File

@@ -1238,6 +1238,7 @@ void open_inventory_offer(const uuid_vec_t& objects, const std::string& from_nam
} }
if (gSavedSettings.getBOOL("ShowInInventory") && if (gSavedSettings.getBOOL("ShowInInventory") &&
objects.size() == 1 && item != NULL &&
asset_type != LLAssetType::AT_CALLINGCARD && asset_type != LLAssetType::AT_CALLINGCARD &&
item->getInventoryType() != LLInventoryType::IT_ATTACHMENT && item->getInventoryType() != LLInventoryType::IT_ATTACHMENT &&
!from_name.empty()) !from_name.empty())

View File

@@ -2830,14 +2830,17 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
static const LLCachedControl<F32> NAME_SHOW_TIME("RenderNameShowTime",10); // seconds static const LLCachedControl<F32> NAME_SHOW_TIME("RenderNameShowTime",10); // seconds
static const LLCachedControl<F32> FADE_DURATION("RenderNameFadeDuration",1); // seconds static const LLCachedControl<F32> FADE_DURATION("RenderNameFadeDuration",1); // seconds
static const LLCachedControl<bool> use_chat_bubbles("UseChatBubbles",false); static const LLCachedControl<bool> use_chat_bubbles("UseChatBubbles",false);
static const LLCachedControl<bool> use_typing_bubbles("UseTypingBubbles");
static const LLCachedControl<bool> render_name_hide_self("RenderNameHideSelf",false); static const LLCachedControl<bool> render_name_hide_self("RenderNameHideSelf",false);
static const LLCachedControl<bool> allow_nameplate_override ("CCSAllowNameplateOverride", true); static const LLCachedControl<bool> allow_nameplate_override ("CCSAllowNameplateOverride", true);
// [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e) | Added: RLVa-0.2.0b // [RLVa:KB] - Checked: 2010-04-04 (RLVa-1.2.2a) | Added: RLVa-0.2.0b
bool fRlvShowNames = gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES); bool fRlvShowNames = gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES);
// [/RLVa:KB] // [/RLVa:KB]
BOOL visible_avatar = isVisible() || mNeedsAnimUpdate; BOOL visible_avatar = isVisible() || mNeedsAnimUpdate;
BOOL visible_chat = use_chat_bubbles && (mChats.size() || mTyping); BOOL visible_chat = use_chat_bubbles && (mChats.size() || mTyping);
bool visible_typing = use_typing_bubbles && mTyping;
BOOL render_name = visible_chat || BOOL render_name = visible_chat ||
visible_typing ||
(visible_avatar && (visible_avatar &&
// [RLVa:KB] - Checked: 2010-04-04 (RLVa-1.2.2a) | Added: RLVa-1.0.0h // [RLVa:KB] - Checked: 2010-04-04 (RLVa-1.2.2a) | Added: RLVa-1.0.0h
( (!fRlvShowNames) || (RlvSettings::getShowNameTags()) ) && ( (!fRlvShowNames) || (RlvSettings::getShowNameTags()) ) &&
@@ -2871,6 +2874,11 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
mVisibleChat = visible_chat; mVisibleChat = visible_chat;
new_name = TRUE; new_name = TRUE;
} }
if (visible_typing != mVisibleTyping)
{
mVisibleTyping = visible_typing;
new_name = true;
}
// [RLVa:KB] - Checked: 2010-04-04 (RLVa-1.2.2a) | Added: RLVa-0.2.0b // [RLVa:KB] - Checked: 2010-04-04 (RLVa-1.2.2a) | Added: RLVa-0.2.0b
if (fRlvShowNames) if (fRlvShowNames)
@@ -2895,7 +2903,7 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
if (mAppAngle > 5.f) if (mAppAngle > 5.f)
{ {
const F32 START_FADE_TIME = NAME_SHOW_TIME - FADE_DURATION; const F32 START_FADE_TIME = NAME_SHOW_TIME - FADE_DURATION;
if (!visible_chat && sRenderName == RENDER_NAME_FADE && time_visible > START_FADE_TIME) if (!visible_chat && !visible_typing && sRenderName == RENDER_NAME_FADE && time_visible > START_FADE_TIME)
{ {
alpha = 1.f - (time_visible - START_FADE_TIME) / FADE_DURATION; alpha = 1.f - (time_visible - START_FADE_TIME) / FADE_DURATION;
} }
@@ -3271,7 +3279,7 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)
new_name = TRUE; new_name = TRUE;
} }
if (mVisibleChat) if (mVisibleChat || mVisibleTyping)
{ {
mNameText->setFont(LLFontGL::getFontSansSerif()); mNameText->setFont(LLFontGL::getFontSansSerif());
mNameText->setTextAlignment(LLHUDNameTag::ALIGN_TEXT_LEFT); mNameText->setTextAlignment(LLHUDNameTag::ALIGN_TEXT_LEFT);
@@ -3281,6 +3289,8 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)
mNameText->clearString(); mNameText->clearString();
LLColor4 new_chat = gColors.getColor( "AvatarNameColor" ); LLColor4 new_chat = gColors.getColor( "AvatarNameColor" );
if (mVisibleChat)
{
LLColor4 normal_chat = lerp(new_chat, LLColor4(0.8f, 0.8f, 0.8f, 1.f), 0.7f); LLColor4 normal_chat = lerp(new_chat, LLColor4(0.8f, 0.8f, 0.8f, 1.f), 0.7f);
LLColor4 old_chat = lerp(normal_chat, LLColor4(0.6f, 0.6f, 0.6f, 1.f), 0.7f); LLColor4 old_chat = lerp(normal_chat, LLColor4(0.6f, 0.6f, 0.6f, 1.f), 0.7f);
if (mTyping && mChats.size() >= MAX_BUBBLE_CHAT_UTTERANCES) if (mTyping && mChats.size() >= MAX_BUBBLE_CHAT_UTTERANCES)
@@ -3320,6 +3330,7 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)
mNameText->addLine(chat_iter->mText, old_chat, style); mNameText->addLine(chat_iter->mText, old_chat, style);
} }
} }
}
mNameText->setVisibleOffScreen(TRUE); mNameText->setVisibleOffScreen(TRUE);
if (mTyping) if (mTyping)
@@ -3351,7 +3362,7 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)
void LLVOAvatar::addNameTagLine(const std::string& line, const LLColor4& color, S32 style, const LLFontGL* font) void LLVOAvatar::addNameTagLine(const std::string& line, const LLColor4& color, S32 style, const LLFontGL* font)
{ {
llassert(mNameText); llassert(mNameText);
if (mVisibleChat) if (mVisibleChat || mVisibleTyping)
{ {
mNameText->addLabel(line); mNameText->addLabel(line);
} }

View File

@@ -814,6 +814,7 @@ public:
void stopTyping() { mTyping = FALSE; mIdleTimer.reset();} void stopTyping() { mTyping = FALSE; mIdleTimer.reset();}
private: private:
BOOL mVisibleChat; BOOL mVisibleChat;
bool mVisibleTyping;
//-------------------------------------------------------------------- //--------------------------------------------------------------------
// Lip synch morphs // Lip synch morphs

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater bottom="27" can_close="true" can_drag_on_left="false" can_minimize="false" can_resize="true" can_tear_off="true" enabled="true" height="275" left="15" <floater bottom="27" can_close="true" can_drag_on_left="false" can_minimize="false" can_resize="true" can_tear_off="true" enabled="true" height="175" left="15"
min_height="150" min_width="425" name="chat floater" rect_control="FloaterChatRect" title="Local Chat" width="435"> min_height="100" min_width="425" name="chat floater" rect_control="FloaterChatRect" title="Local Chat" width="435">
<string name="ringing">Connecting to in-world Voice Chat...</string> <string name="ringing">Connecting to in-world Voice Chat...</string>
<string name="connected">Connected</string> <string name="connected">Connected</string>
<string name="unavailable">Voice not available at your current location</string> <string name="unavailable">Voice not available at your current location</string>
@@ -23,10 +23,10 @@
<string name="TeleportYourAgent">Teleport you</string> <string name="TeleportYourAgent">Teleport you</string>
<string name="ControlYourCamera">Control your camera</string> <string name="ControlYourCamera">Control your camera</string>
<string name="OverrideAnimations">Override your default animations</string> <string name="OverrideAnimations">Override your default animations</string>
<layout_stack border="false" bottom="0" follows="left|top|right|bottom" height="260" left="0" orientation="horizontal" width="430" name="panels"> <layout_stack border="false" bottom="0" follows="left|top|right|bottom" height="160" left="0" orientation="horizontal" width="430" name="panels">
<layout_panel border="false" bottom="0" height="260" left="0" min_width="275" name="im_contents_panel" width="305"> <layout_panel border="false" bottom="0" height="160" left="0" min_width="275" name="im_contents_panel" width="305">
<layout_stack border="false" bottom="0" default_tab_group="1" follows="all" height="260" left="0" orientation="vertical" name="im_contents_stack" width="305"> <layout_stack border="false" bottom="0" default_tab_group="1" follows="all" height="160" left="0" orientation="vertical" name="im_contents_stack" width="305">
<layout_panel border="false" bottom="10" follows="all" height="235" left="0" name="history_panel" width="305"> <layout_panel border="false" bottom="10" follows="all" height="135" left="0" name="history_panel" width="305">
<combo_box follows="left|top" height="18" label="Gestures" left="6" name="Gesture" width="120"> <combo_box follows="left|top" height="18" label="Gestures" left="6" name="Gesture" width="120">
<combo_item name="Gestures">Gestures</combo_item> <combo_item name="Gestures">Gestures</combo_item>
</combo_box> </combo_box>
@@ -34,8 +34,8 @@
<!--check_box bottom_delta="-15" enabled="true" follows="left|top" font="SansSerifSmall" height="20" initial_value="false" label="Translate Chat (powered by Google)" name="translate chat" width="100"/--> <!--check_box bottom_delta="-15" enabled="true" follows="left|top" font="SansSerifSmall" height="20" initial_value="false" label="Translate Chat (powered by Google)" name="translate chat" width="100"/-->
<button bottom_delta="2" left_delta="120" follows="left|top" font="SansSerifSmall" height="20" width="100" label="Open History" name="chat_history_open" tool_tip="Click here to open chat history in external editor."/> <button bottom_delta="2" left_delta="120" follows="left|top" font="SansSerifSmall" height="20" width="100" label="Open History" name="chat_history_open" tool_tip="Click here to open chat history in external editor."/>
<button bottom_delta="0" follows="right|top" height="20" label="&lt; &lt;" label_selected="&gt; &gt;" left="272" name="toggle_active_speakers_btn" right="305" tool_tip="Click here to show a list of active participants in this IM session." width="80"/> <button bottom_delta="0" follows="right|top" height="20" label="&lt; &lt;" label_selected="&gt; &gt;" left="272" name="toggle_active_speakers_btn" right="305" tool_tip="Click here to show a list of active participants in this IM session." width="80"/>
<text_editor type="string" length="1" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" bottom="0" enabled="false" follows="left|top|right|bottom" font="SansSerif" height="207" left="5" max_length="2147483647" name="Chat History Editor" text_color="ChatHistoryTextColor" track_bottom="true" text_readonly_color="ChatHistoryTextColor" width="300" word_wrap="true"/> <text_editor type="string" length="1" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" bottom="0" enabled="false" follows="left|top|right|bottom" font="SansSerif" height="107" left="5" max_length="2147483647" name="Chat History Editor" text_color="ChatHistoryTextColor" track_bottom="true" text_readonly_color="ChatHistoryTextColor" width="300" word_wrap="true"/>
<text_editor type="string" length="1" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" bottom="0" enabled="false" follows="left|top|right|bottom" font="SansSerif" height="207" max_length="2147483647" name="Chat History Editor with mute" text_color="ChatHistoryTextColor" track_bottom="true" text_readonly_color="ChatHistoryTextColor" width="300" word_wrap="true"/> <text_editor type="string" length="1" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" bottom="0" enabled="false" follows="left|top|right|bottom" font="SansSerif" height="107" max_length="2147483647" name="Chat History Editor with mute" text_color="ChatHistoryTextColor" track_bottom="true" text_readonly_color="ChatHistoryTextColor" width="300" word_wrap="true"/>
</layout_panel> </layout_panel>
<layout_panel user_resize="false" auto_resize="false" bottom_delta="-25" follows="left|right|bottom" left="5" name="chat_layout_panel" right="-5" tab_group="1" height="25"> <layout_panel user_resize="false" auto_resize="false" bottom_delta="-25" follows="left|right|bottom" left="5" name="chat_layout_panel" right="-5" tab_group="1" height="25">
<panel bottom="5" follows="left|right|bottom" left="5" name="chat_panel" right="-5" top="25"> <panel bottom="5" follows="left|right|bottom" left="5" name="chat_panel" right="-5" top="25">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater border="true" bottom="-298" can_close="true" can_resize="true" default_tab_group="1" follows="left|top|right|bottom" height="297" label="(unknown)" left="1" min_height="155" min_width="425" name="im_floater" rect_control="" title="(unknown)" width="501"> <floater border="true" bottom="-298" can_close="true" can_resize="true" default_tab_group="1" follows="left|top|right|bottom" height="197" label="(unknown)" left="1" min_height="100" min_width="425" name="im_floater" rect_control="" title="(unknown)" width="501">
<string name="answering">Connecting...</string> <string name="answering">Connecting...</string>
<string name="ringing">Calling...</string> <string name="ringing">Calling...</string>
<string name="connected">Connected, click End Call to hang up</string> <string name="connected">Connected, click End Call to hang up</string>
@@ -21,7 +21,7 @@
<volume_slider bottom="0" follows="bottom" height="15" increment="0.05" initial_val="0.5" max_val="1.0" min_val="0.0" name="speaker_volume" width="56"/> <volume_slider bottom="0" follows="bottom" height="15" increment="0.05" initial_val="0.5" max_val="1.0" min_val="0.0" name="speaker_volume" width="56"/>
<button bottom="0" height="20" image_selected="icn_speaker-muted_dark.tga" image_unselected="icn_speaker_dark.tga" scale_image="false" label="" left_delta="56" name="mute_btn" tool_tip="Mute voice" width="25"/> <button bottom="0" height="20" image_selected="icn_speaker-muted_dark.tga" image_unselected="icn_speaker_dark.tga" scale_image="false" label="" left_delta="56" name="mute_btn" tool_tip="Mute voice" width="25"/>
</panel> </panel>
<text_editor bottom="28" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" enabled="false" follows="left|top|right|bottom" height="228" left="5" max_length="2147483647" name="im_history" text_color="ChatHistoryTextColor" track_bottom="true" text_readonly_color="ChatHistoryTextColor" width="488" word_wrap="true"/> <text_editor bottom="28" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" enabled="false" follows="left|top|right|bottom" height="128" left="5" max_length="2147483647" name="im_history" text_color="ChatHistoryTextColor" track_bottom="true" text_readonly_color="ChatHistoryTextColor" width="488" word_wrap="true"/>
<line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="5" follows="left|right" font="SansSerif" height="20" label="Click here to instant message" max_length="2147483647" name="chat_editor" select_all_on_focus_received="false" select_on_focus="false" tab_group="1" width="423" spell_check="true"/> <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="5" follows="left|right" font="SansSerif" height="20" label="Click here to instant message" max_length="2147483647" name="chat_editor" select_all_on_focus_received="false" select_on_focus="false" tab_group="1" width="423" spell_check="true"/>
<button bottom="5" follows="right|bottom" height="20" label="Send" left="433" name="send_btn" scale_image="true" width="60"/> <button bottom="5" follows="right|bottom" height="20" label="Send" left="433" name="send_btn" scale_image="true" width="60"/>
<string name="live_help_dialog">*** Welcome to Help Request *** <string name="live_help_dialog">*** Welcome to Help Request ***

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater border="true" bottom="-298" can_close="true" can_minimize="false" can_resize="true" default_tab_group="1" enabled="true" follows="left|top|right|bottom" height="297" label="(unknown)" left="1" min_height="225" min_width="265" name="im_floater" rect_control="" title="(unknown)" width="501"> <floater border="true" bottom="-298" can_close="true" can_minimize="false" can_resize="true" default_tab_group="1" enabled="true" follows="left|top|right|bottom" height="197" label="(unknown)" left="1" min_height="100" min_width="265" name="im_floater" rect_control="" title="(unknown)" width="501">
<string name="ringing">Joining Voice Chat...</string> <string name="ringing">Joining Voice Chat...</string>
<string name="connected">Connected, click End Call to hang up</string> <string name="connected">Connected, click End Call to hang up</string>
<string name="hang_up">Left Voice Chat</string> <string name="hang_up">Left Voice Chat</string>
@@ -8,13 +8,13 @@
<string name="typing_start_string">[NAME] is typing...</string> <string name="typing_start_string">[NAME] is typing...</string>
<string name="session_start_string">Starting session with [NAME], please wait.</string> <string name="session_start_string">Starting session with [NAME], please wait.</string>
<string name="default_text_label">Click here to instant message.</string> <string name="default_text_label">Click here to instant message.</string>
<layout_stack border="false" bottom="0" follows="left|top|right|bottom" height="280" left="0" orientation="horizontal" tab_group="1" width="496" name="panels"> <layout_stack border="false" bottom="0" follows="left|top|right|bottom" height="180" left="0" orientation="horizontal" tab_group="1" width="496" name="panels">
<layout_panel border="false" bottom="0" default_tab_group="1" follows="left|top|bottom|right" height="295" left="0" min_width="115" name="im_contents_panel" width="495"> <layout_panel border="false" bottom="0" default_tab_group="1" follows="left|top|bottom|right" height="195" left="0" min_width="115" name="im_contents_panel" width="495">
<button bottom="-20" follows="left|top" height="20" label="History" left="5" name="history_btn" width="80"/> <button bottom="-20" follows="left|top" height="20" label="History" left="5" name="history_btn" width="80"/>
<button bottom_delta="0" enabled="false" follows="left|top" height="20" image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left" label="Call" left_delta="80" name="start_call_btn" width="80"/> <button bottom_delta="0" enabled="false" follows="left|top" height="20" image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left" label="Call" left_delta="80" name="start_call_btn" width="80"/>
<button bottom_delta="0" follows="left|top" height="20" image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" label="End Call" left_delta="0" name="end_call_btn" visible="false" width="80"/> <button bottom_delta="0" follows="left|top" height="20" image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" label="End Call" left_delta="0" name="end_call_btn" visible="false" width="80"/>
<button bottom_delta="0" follows="right|top" height="20" label="&lt; &lt;" label_selected="&gt; &gt;" left="462" name="toggle_active_speakers_btn" right="495" tool_tip="Click here to toggle a list of active participants in this IM session." visible="true" width="80"/> <button bottom_delta="0" follows="right|top" height="20" label="&lt; &lt;" label_selected="&gt; &gt;" left="462" name="toggle_active_speakers_btn" right="495" tool_tip="Click here to toggle a list of active participants in this IM session." visible="true" width="80"/>
<text_editor bottom="28" type="string" length="1" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" enabled="false" follows="left|top|right|bottom" font="SansSerif" height="243" left="5" max_length="2147483647" name="im_history" track_bottom="true" text_color="ChatHistoryTextColor" text_readonly_color="ChatHistoryTextColor" width="490" word_wrap="true"/> <text_editor bottom="28" type="string" length="1" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" enabled="false" follows="left|top|right|bottom" font="SansSerif" height="143" left="5" max_length="2147483647" name="im_history" track_bottom="true" text_color="ChatHistoryTextColor" text_readonly_color="ChatHistoryTextColor" width="490" word_wrap="true"/>
<line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="5" follows="left|right|bottom" font="SansSerif" handle_edit_keys_directly="false" height="20" label="Click here to instant message" left="5" max_length="1022" name="chat_editor" select_all_on_focus_received="false" select_on_focus="false" tab_group="1" width="425" spell_check="true"/> <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="5" follows="left|right|bottom" font="SansSerif" handle_edit_keys_directly="false" height="20" label="Click here to instant message" left="5" max_length="1022" name="chat_editor" select_all_on_focus_received="false" select_on_focus="false" tab_group="1" width="425" spell_check="true"/>
<button bottom_delta="0" enabled="true" follows="right|bottom" height="20" label="Send" left="435" name="send_btn" scale_image="true" width="60"/> <button bottom_delta="0" enabled="true" follows="right|bottom" height="20" label="Send" left="435" name="send_btn" scale_image="true" width="60"/>
</layout_panel> </layout_panel>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater border="true" bottom="-298" can_close="true" can_minimize="false" can_resize="true" default_tab_group="1" enabled="true" follows="left|top|right|bottom" height="297" label="(unknown)" left="1" min_height="100" min_width="300" name="im_floater" rect_control="" title="(unknown)" width="501"> <floater border="true" bottom="-298" can_close="true" can_minimize="false" can_resize="true" default_tab_group="1" enabled="true" follows="left|top|right|bottom" height="197" label="(unknown)" left="1" min_height="100" min_width="300" name="im_floater" rect_control="" title="(unknown)" width="501">
<string name="ringing">Joining Voice Chat...</string> <string name="ringing">Joining Voice Chat...</string>
<string name="connected">Connected, click End Call to hang up</string> <string name="connected">Connected, click End Call to hang up</string>
<string name="hang_up">Left Voice Chat</string> <string name="hang_up">Left Voice Chat</string>
@@ -12,9 +12,9 @@
<button bottom_delta="0" enabled="false" follows="right|top" height="20" image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left" label="Call" left_delta="80" name="start_call_btn" width="80"/> <button bottom_delta="0" enabled="false" follows="right|top" height="20" image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left" label="Call" left_delta="80" name="start_call_btn" width="80"/>
<button bottom_delta="0" follows="right|top" height="20" image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" label="End Call" left_delta="0" name="end_call_btn" visible="false" width="80"/> <button bottom_delta="0" follows="right|top" height="20" image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" label="End Call" left_delta="0" name="end_call_btn" visible="false" width="80"/>
<button bottom_delta="0" follows="right|top" height="20" label="&lt; &lt;" label_selected="&gt; &gt;" left="420" name="toggle_active_speakers_btn" right="450" tool_tip="Click here to toggle a list of active participants in this IM session." visible="true" width="80"/> <button bottom_delta="0" follows="right|top" height="20" label="&lt; &lt;" label_selected="&gt; &gt;" left="420" name="toggle_active_speakers_btn" right="450" tool_tip="Click here to toggle a list of active participants in this IM session." visible="true" width="80"/>
<layout_stack border="false" bottom="0" follows="left|top|right|bottom" height="280" left="0" orientation="horizontal" tab_group="1" width="496" name="panels"> <layout_stack border="false" bottom="0" follows="left|top|right|bottom" height="180" left="0" orientation="horizontal" tab_group="1" width="496" name="panels">
<layout_panel border="false" bottom="0" default_tab_group="1" follows="left|top|bottom|right" height="295" left="0" min_width="115" name="im_contents_panel" width="495"> <layout_panel border="false" bottom="0" default_tab_group="1" follows="left|top|bottom|right" height="195" left="0" min_width="115" name="im_contents_panel" width="495">
<text_editor bottom="28" type="string" length="1" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" enabled="false" follows="left|top|right|bottom" font="SansSerif" height="260" left="5" max_length="2147483647" name="im_history" track_bottom="true" text_color="ChatHistoryTextColor" text_readonly_color="ChatHistoryTextColor" width="490" word_wrap="true"/> <text_editor bottom="28" type="string" length="1" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" enabled="false" follows="left|top|right|bottom" font="SansSerif" height="160" left="5" max_length="2147483647" name="im_history" track_bottom="true" text_color="ChatHistoryTextColor" text_readonly_color="ChatHistoryTextColor" width="490" word_wrap="true"/>
<line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="5" follows="left|right|bottom" font="SansSerif" handle_edit_keys_directly="false" height="20" label="Click here to instant message" left="5" max_length="1022" name="chat_editor" select_all_on_focus_received="false" select_on_focus="false" tab_group="1" width="425" spell_check="true"/> <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="5" follows="left|right|bottom" font="SansSerif" handle_edit_keys_directly="false" height="20" label="Click here to instant message" left="5" max_length="1022" name="chat_editor" select_all_on_focus_received="false" select_on_focus="false" tab_group="1" width="425" spell_check="true"/>
<button bottom_delta="0" enabled="true" follows="right|bottom" height="20" label="Send" left="435" name="send_btn" scale_image="true" width="60"/> <button bottom_delta="0" enabled="true" follows="right|bottom" height="20" label="Send" left="435" name="send_btn" scale_image="true" width="60"/>
</layout_panel> </layout_panel>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater border="true" bottom="-298" can_close="true" can_resize="true" default_tab_group="1" follows="left|top|right|bottom" height="297" label="(unknown)" left="1" min_height="105" min_width="425" name="im_floater" rect_control="" title="(unknown)" width="501"> <floater border="true" bottom="-298" can_close="true" can_resize="true" default_tab_group="1" follows="left|top|right|bottom" height="197" label="(unknown)" left="1" min_height="100" min_width="425" name="im_floater" rect_control="" title="(unknown)" width="501">
<string name="answering">Connecting...</string> <string name="answering">Connecting...</string>
<string name="ringing">Calling...</string> <string name="ringing">Calling...</string>
<string name="connected">Connected, click End Call to hang up</string> <string name="connected">Connected, click End Call to hang up</string>
@@ -21,7 +21,7 @@
<volume_slider bottom="0" follows="bottom" height="20" increment="0.05" initial_val="0.5" max_val="1.0" min_val="0.0" name="speaker_volume" width="48"/> <volume_slider bottom="0" follows="bottom" height="20" increment="0.05" initial_val="0.5" max_val="1.0" min_val="0.0" name="speaker_volume" width="48"/>
<button bottom="0" height="16" image_selected="icn_speaker-muted_dark.tga" image_unselected="icn_speaker_dark.tga" scale_image="true" label="" left_delta="42" name="mute_btn" tool_tip="Mute voice" width="25"/> <button bottom="0" height="16" image_selected="icn_speaker-muted_dark.tga" image_unselected="icn_speaker_dark.tga" scale_image="true" label="" left_delta="42" name="mute_btn" tool_tip="Mute voice" width="25"/>
</panel> </panel>
<text_editor bottom="28" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" enabled="false" follows="left|top|right|bottom" height="245" left="5" max_length="2147483647" name="im_history" text_color="ChatHistoryTextColor" track_bottom="true" text_readonly_color="ChatHistoryTextColor" width="488" word_wrap="true"/> <text_editor bottom="28" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" enabled="false" follows="left|top|right|bottom" height="145" left="5" max_length="2147483647" name="im_history" text_color="ChatHistoryTextColor" track_bottom="true" text_readonly_color="ChatHistoryTextColor" width="488" word_wrap="true"/>
<line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="5" follows="left|right" font="SansSerif" height="20" label="Click here to instant message" max_length="2147483647" name="chat_editor" select_all_on_focus_received="false" select_on_focus="false" tab_group="1" width="423" spell_check="true"/> <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="5" follows="left|right" font="SansSerif" height="20" label="Click here to instant message" max_length="2147483647" name="chat_editor" select_all_on_focus_received="false" select_on_focus="false" tab_group="1" width="423" spell_check="true"/>
<button bottom="5" follows="right|bottom" height="20" label="Send" left="433" name="send_btn" scale_image="true" width="60"/> <button bottom="5" follows="right|bottom" height="20" label="Send" left="433" name="send_btn" scale_image="true" width="60"/>
<string name="live_help_dialog">*** Welcome to Help Request *** <string name="live_help_dialog">*** Welcome to Help Request ***

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater border="true" bottom="-298" can_close="true" can_minimize="true" can_resize="true" default_tab_group="1" enabled="true" follows="left|top|right|bottom" height="297" label="(unknown)" left="1" min_height="200" min_width="360" name="im_floater" rect_control="" title="(unknown)" width="501"> <floater border="true" bottom="-298" can_close="true" can_minimize="true" can_resize="true" default_tab_group="1" enabled="true" follows="left|top|right|bottom" height="197" label="(unknown)" left="1" min_height="100" min_width="360" name="im_floater" rect_control="" title="(unknown)" width="501">
<string name="ringing">Joining Voice Chat...</string> <string name="ringing">Joining Voice Chat...</string>
<string name="connected">Connected, click End Call to hang up</string> <string name="connected">Connected, click End Call to hang up</string>
<string name="hang_up">Left Voice Chat</string> <string name="hang_up">Left Voice Chat</string>
@@ -10,14 +10,14 @@
<string name="default_text_label">Click here to instant message.</string> <string name="default_text_label">Click here to instant message.</string>
<string name="moderated_chat_label">(Moderated: Voices off by default)</string> <string name="moderated_chat_label">(Moderated: Voices off by default)</string>
<string name="muted_text_label">Your text chat has been disabled by a Group Moderator.</string> <string name="muted_text_label">Your text chat has been disabled by a Group Moderator.</string>
<layout_stack border="false" bottom="0" follows="left|top|right|bottom" height="280" left="0" orientation="horizontal" tab_group="1" width="496" name="panels"> <layout_stack border="false" bottom="0" follows="left|top|right|bottom" height="180" left="0" orientation="horizontal" tab_group="1" width="496" name="panels">
<layout_panel border="false" bottom="0" default_tab_group="1" follows="left|top|bottom|right" height="295" left="0" min_width="210" name="im_contents_panel" width="495"> <layout_panel border="false" bottom="0" default_tab_group="1" follows="left|top|bottom|right" height="195" left="0" min_width="210" name="im_contents_panel" width="495">
<button bottom="-20" follows="left|top" height="20" label="Group Info" left="5" name="group_info_btn" tab_group="0" width="80"/> <button bottom="-20" follows="left|top" height="20" label="Group Info" left="5" name="group_info_btn" tab_group="0" width="80"/>
<button bottom_delta="0" follows="left|top" height="20" label="History" left_delta="80" name="history_btn" width="80"/> <button bottom_delta="0" follows="left|top" height="20" label="History" left_delta="80" name="history_btn" width="80"/>
<button bottom_delta="0" enabled="false" follows="left|top" halign="right" height="20" image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left" label="Join Call" left_delta="80" name="start_call_btn" width="80"/> <button bottom_delta="0" enabled="false" follows="left|top" halign="right" height="20" image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left" label="Join Call" left_delta="80" name="start_call_btn" width="80"/>
<button bottom_delta="0" follows="left|top" halign="right" height="20" image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" label="End Call" left_delta="0" name="end_call_btn" pad_right="12" visible="false" width="80"/> <button bottom_delta="0" follows="left|top" halign="right" height="20" image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" label="End Call" left_delta="0" name="end_call_btn" pad_right="12" visible="false" width="80"/>
<button bottom_delta="0" follows="right|top" height="20" label="&lt; &lt;" label_selected="&gt; &gt;" left="462" name="toggle_active_speakers_btn" right="495" tool_tip="Click here to toggle a list of active participants in this IM session." visible="true" width="80"/> <button bottom_delta="0" follows="right|top" height="20" label="&lt; &lt;" label_selected="&gt; &gt;" left="462" name="toggle_active_speakers_btn" right="495" tool_tip="Click here to toggle a list of active participants in this IM session." visible="true" width="80"/>
<text_editor bottom="28" type="string" length="1" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" enabled="false" follows="left|top|right|bottom" font="SansSerif" height="243" left="5" max_length="2147483647" name="im_history" track_bottom="true" text_color="ChatHistoryTextColor" text_readonly_color="ChatHistoryTextColor" width="490" word_wrap="true"/> <text_editor bottom="28" type="string" length="1" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" enabled="false" follows="left|top|right|bottom" font="SansSerif" height="143" left="5" max_length="2147483647" name="im_history" track_bottom="true" text_color="ChatHistoryTextColor" text_readonly_color="ChatHistoryTextColor" width="490" word_wrap="true"/>
<line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="5" follows="left|right|bottom" font="SansSerif" height="20" left="5" max_length="1022" name="chat_editor" select_all_on_focus_received="false" select_on_focus="false" tab_group="1" width="425" spell_check="true"/> <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="5" follows="left|right|bottom" font="SansSerif" height="20" left="5" max_length="1022" name="chat_editor" select_all_on_focus_received="false" select_on_focus="false" tab_group="1" width="425" spell_check="true"/>
<button bottom="5" enabled="true" follows="right|bottom" height="20" label="Send" left="435" name="send_btn" scale_image="true" width="60"/> <button bottom="5" enabled="true" follows="right|bottom" height="20" label="Send" left="435" name="send_btn" scale_image="true" width="60"/>
</layout_panel> </layout_panel>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater border="true" bottom="-298" can_close="true" can_minimize="true" can_resize="true" default_tab_group="1" enabled="true" follows="left|top|right|bottom" height="297" label="(unknown)" left="1" min_height="100" min_width="330" name="im_floater" rect_control="" title="(unknown)" width="501"> <floater border="true" bottom="-298" can_close="true" can_minimize="true" can_resize="true" default_tab_group="1" enabled="true" follows="left|top|right|bottom" height="197" label="(unknown)" left="1" min_height="100" min_width="330" name="im_floater" rect_control="" title="(unknown)" width="501">
<string name="ringing">Joining Voice Chat...</string> <string name="ringing">Joining Voice Chat...</string>
<string name="connected">Connected, click End Call to hang up</string> <string name="connected">Connected, click End Call to hang up</string>
<string name="hang_up">Left Voice Chat</string> <string name="hang_up">Left Voice Chat</string>
@@ -15,9 +15,9 @@
<button bottom_delta="0" enabled="false" follows="right|top" halign="right" height="20" image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left" label="Join Call" left_delta="80" name="start_call_btn" width="80"/> <button bottom_delta="0" enabled="false" follows="right|top" halign="right" height="20" image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left" label="Join Call" left_delta="80" name="start_call_btn" width="80"/>
<button bottom_delta="0" follows="right|top" halign="right" height="20" image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" label="End Call" left_delta="0" name="end_call_btn" pad_right="12" visible="false" width="80"/> <button bottom_delta="0" follows="right|top" halign="right" height="20" image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" label="End Call" left_delta="0" name="end_call_btn" pad_right="12" visible="false" width="80"/>
<button bottom_delta="0" follows="right|top" height="20" label="&lt; &lt;" label_selected="&gt; &gt;" left="420" name="toggle_active_speakers_btn" right="450" tool_tip="Click here to toggle a list of active participants in this IM session." visible="true" width="80"/> <button bottom_delta="0" follows="right|top" height="20" label="&lt; &lt;" label_selected="&gt; &gt;" left="420" name="toggle_active_speakers_btn" right="450" tool_tip="Click here to toggle a list of active participants in this IM session." visible="true" width="80"/>
<layout_stack border="false" bottom="0" follows="left|top|right|bottom" height="280" left="0" orientation="horizontal" tab_group="1" width="496" name="panels"> <layout_stack border="false" bottom="0" follows="left|top|right|bottom" height="180" left="0" orientation="horizontal" tab_group="1" width="496" name="panels">
<layout_panel border="false" bottom="0" default_tab_group="1" follows="left|top|bottom|right" height="295" left="0" min_width="115" name="im_contents_panel" width="495"> <layout_panel border="false" bottom="0" default_tab_group="1" follows="left|top|bottom|right" height="195" left="0" min_width="115" name="im_contents_panel" width="495">
<text_editor bottom="28" type="string" length="1" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" enabled="false" follows="left|top|right|bottom" font="SansSerif" height="260" left="5" max_length="2147483647" name="im_history" track_bottom="true" text_color="ChatHistoryTextColor" text_readonly_color="ChatHistoryTextColor" width="490" word_wrap="true"/> <text_editor bottom="28" type="string" length="1" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" enabled="false" follows="left|top|right|bottom" font="SansSerif" height="160" left="5" max_length="2147483647" name="im_history" track_bottom="true" text_color="ChatHistoryTextColor" text_readonly_color="ChatHistoryTextColor" width="490" word_wrap="true"/>
<line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="5" follows="left|right|bottom" font="SansSerif" height="20" left="5" max_length="1022" name="chat_editor" select_all_on_focus_received="false" select_on_focus="false" tab_group="1" width="425" spell_check="true"/> <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="5" follows="left|right|bottom" font="SansSerif" height="20" left="5" max_length="1022" name="chat_editor" select_all_on_focus_received="false" select_on_focus="false" tab_group="1" width="425" spell_check="true"/>
<button bottom="5" enabled="true" follows="right|bottom" height="20" label="Send" left="435" name="send_btn" scale_image="true" width="60"/> <button bottom="5" enabled="true" follows="right|bottom" height="20" label="Send" left="435" name="send_btn" scale_image="true" width="60"/>
</layout_panel> </layout_panel>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater can_close="false" can_drag_on_left="false" can_minimize="true" <floater can_close="false" can_drag_on_left="false" can_minimize="true"
can_resize="true" can_tear_off="true" height="390" min_height="240" can_resize="true" can_tear_off="true" height="390" min_height="100"
min_width="365" name="floater_my_friends" min_width="365" name="floater_my_friends"
rect_control="FloaterContactsRect" title="Contacts" width="395"> rect_control="FloaterContactsRect" title="Contacts" width="395">
<tab_container bottom="6" follows="left|right|top|bottom" height="364" left="4" <tab_container bottom="6" follows="left|right|top|bottom" height="364" left="4"

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater can_close="false" can_drag_on_left="false" can_minimize="true" <floater can_close="false" can_drag_on_left="false" can_minimize="true"
can_resize="true" can_tear_off="true" height="390" min_height="205" can_resize="true" can_tear_off="true" height="390" min_height="100"
min_width="275" name="floater_my_friends" min_width="275" name="floater_my_friends"
rect_control="FloaterContactsHorizRect" title="Contacts" width="395"> rect_control="FloaterContactsHorizRect" title="Contacts" width="395">
<tab_container bottom="6" follows="left|right|top|bottom" height="364" left="4" <tab_container bottom="6" follows="left|right|top|bottom" height="364" left="4"

View File

@@ -37,6 +37,9 @@
<on_click function="Object.ImportUpload" /> <on_click function="Object.ImportUpload" />
<on_enable function="Object.EnableImport" /> <on_enable function="Object.EnableImport" />
</menu_item_call> </menu_item_call>
<menu_item_call label="Change Local Textures" mouse_opaque="true" name="Change Local Textures">
<on_click function="File.LocalAssetBrowser"/>
</menu_item_call>
<menu_item_separator enabled="true" label="-----------" mouse_opaque="true" name="separator" /> <menu_item_separator enabled="true" label="-----------" mouse_opaque="true" name="separator" />
<menu_item_call enabled="true" label="Set Default Permissions..." <menu_item_call enabled="true" label="Set Default Permissions..."
mouse_opaque="true" name="perm prefs" > mouse_opaque="true" name="perm prefs" >
@@ -44,6 +47,9 @@
</menu_item_call> </menu_item_call>
<menu_item_separator bottom="-94" enabled="true" height="8" label="-----------" left="0" <menu_item_separator bottom="-94" enabled="true" height="8" label="-----------" left="0"
mouse_opaque="true" name="separator" width="243" /> mouse_opaque="true" name="separator" width="243" />
<menu_item_call label="Minimize All Windows" mouse_opaque="true" name="Minimize All Windows">
<on_click function="File.MinimizeAllWindows"/>
</menu_item_call>
<menu_item_call bottom="-113" enabled="true" height="19" label="Close Window" left="0" <menu_item_call bottom="-113" enabled="true" height="19" label="Close Window" left="0"
mouse_opaque="true" name="Close Window" shortcut="control|W" width="243"> mouse_opaque="true" name="Close Window" shortcut="control|W" width="243">
<on_click function="File.CloseWindow" userdata="" /> <on_click function="File.CloseWindow" userdata="" />

View File

@@ -24,6 +24,7 @@
<check_box bottom_delta="-20" follows="left|top" control_name="OptionShowGroupNameInChatIM" initial_value="false" <check_box bottom_delta="-20" follows="left|top" control_name="OptionShowGroupNameInChatIM" initial_value="false"
label="Show group name in chat" tool_tip="The name of the group will also be displayed if the IM is from group chat." name="append_group_name_check"/> label="Show group name in chat" tool_tip="The name of the group will also be displayed if the IM is from group chat." name="append_group_name_check"/>
<check_box bottom_delta="-20" follows="left|top" control_name="ShowDisplayNameChanges" label="Show display name changes" tool_tip="When checked, a notification will come up in chat whenever someone's display name changes." name="display_name_change"/> <check_box bottom_delta="-20" follows="left|top" control_name="ShowDisplayNameChanges" label="Show display name changes" tool_tip="When checked, a notification will come up in chat whenever someone's display name changes." name="display_name_change"/>
<check_box bottom_delta="-20" follows="left|top" control_name="UseTypingBubbles" label="Use overhead typing indicator bubbles" name="use_typing_bubbles"/>
<text bottom="-150" left="10" follows="left|top" name="objects_link_text_box3">Show links on chatting object names in chat history for:</text> <text bottom="-150" left="10" follows="left|top" name="objects_link_text_box3">Show links on chatting object names in chat history for:</text>
<radio_group bottom_delta="-26" control_name="LinksForChattingObjects" tool_tip="Enables a link to show you the owner of the speaking object." <radio_group bottom_delta="-26" control_name="LinksForChattingObjects" tool_tip="Enables a link to show you the owner of the speaking object."
follows="top" height="20" left="20" name="objects_link" width="350"> follows="top" height="20" left="20" name="objects_link" width="350">

View File

@@ -1,16 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="toolbox floater" title="" short_title="Construire"> <floater name="toolbox floater" title="" short_title="Construire">
<button label="" label_selected="" name="button focus" tool_tip="Mise au point"/>
<button label="" label_selected="" name="button move" tool_tip="Déplacer"/> <!-- Main floater tabs -->
<button label="" label_selected="" name="button edit" tool_tip="Modifier"/>
<button label="" label_selected="" name="button create" tool_tip="Créer"/> <button name="button focus" tool_tip="Mise au point"/>
<button label="" label_selected="" name="button land" tool_tip="Terrain"/> <button name="button move" tool_tip="Déplacer"/>
<button name="button edit" tool_tip="Modifier"/>
<button name="button create" tool_tip="Créer"/>
<button name="button land" tool_tip="Terrain"/>
<!-- Focus panel -->
<check_box label="Zoom" name="radio zoom"/> <check_box label="Zoom" name="radio zoom"/>
<check_box label="Orbite (Ctrl)" name="radio orbit"/> <check_box label="Orbite (Ctrl)" name="radio orbit"/>
<check_box label="Panoramique (Ctrl-Maj)" name="radio pan"/> <check_box label="Panoramique (Ctrl-Maj)" name="radio pan"/>
<!-- Move panel -->
<check_box label="Déplacer" name="radio move"/> <check_box label="Déplacer" name="radio move"/>
<check_box label="Orbite (Ctrl)" name="radio lift"/> <check_box label="Orbite (Ctrl)" name="radio lift"/>
<check_box label="Faire tourner (Ctrl-Maj)" name="radio spin"/> <check_box label="Faire tourner (Ctrl-Maj)" name="radio spin"/>
<!-- Edit panel -->
<check_box label="Positionner" name="radio position"/> <check_box label="Positionner" name="radio position"/>
<check_box label="Pivoter (Ctrl)" name="radio rotate"/> <check_box label="Pivoter (Ctrl)" name="radio rotate"/>
<check_box label="Étirer (Ctrl-Maj)" name="radio stretch"/> <check_box label="Étirer (Ctrl-Maj)" name="radio stretch"/>
@@ -32,11 +43,20 @@
</combo_box> </combo_box>
<check_box label="Étirer les deux côtés" name="checkbox uniform"/> <check_box label="Étirer les deux côtés" name="checkbox uniform"/>
<check_box label="Étirer les textures" name="checkbox stretch textures"/> <check_box label="Étirer les textures" name="checkbox stretch textures"/>
<check_box label="Utiliser la grille" name="checkbox snap to grid"/> <check_box label="Limiter le 'drag distance'" name="checkbox limit drag distance"/>
<check_box label="Editer l'axe sur le 'Root'" name="checkbox actual root"/>
<check_box label="Montrer les ojb. invisibles" name="checkbox show highlight"/>
<check_box label="Grille" name="checkbox snap to grid"/>
<button label="Options" label_selected="Options" name="Options"/> <button label="Options" label_selected="Options" name="Options"/>
<!-- Help text -->
<text name="text status"> <text name="text status">
Glissez pour déplacer, Maj-glissez pour copier. Glissez pour déplacer, Maj-glissez pour copier.
</text> </text>
<!-- Create panel -->
<button name="ToolCube" tool_tip="Cube"/> <button name="ToolCube" tool_tip="Cube"/>
<button name="ToolPrism" tool_tip="Prisme droit"/> <button name="ToolPrism" tool_tip="Prisme droit"/>
<button name="ToolPyramid" tool_tip="Pyramide"/> <button name="ToolPyramid" tool_tip="Pyramide"/>
@@ -56,6 +76,9 @@
<check_box label="Copier la sélection" name="checkbox copy selection"/> <check_box label="Copier la sélection" name="checkbox copy selection"/>
<check_box label="Centrer" name="checkbox copy centers"/> <check_box label="Centrer" name="checkbox copy centers"/>
<check_box label="Pivoter" name="checkbox copy rotates"/> <check_box label="Pivoter" name="checkbox copy rotates"/>
<!-- Land panel -->
<check_box label="Sélectionner le terrain" name="radio select land"/> <check_box label="Sélectionner le terrain" name="radio select land"/>
<check_box label="Aplatir" name="radio flatten"/> <check_box label="Aplatir" name="radio flatten"/>
<check_box label="Élever" name="radio raise"/> <check_box label="Élever" name="radio raise"/>
@@ -73,12 +96,12 @@
<text name="Strength:"> <text name="Strength:">
Force Force
</text> </text>
<text name="obj_count">
Objets sélectionnés : [COUNT]
</text>
<text name="prim_count"> <text name="prim_count">
Prims : [COUNT] Prims : [COUNT]
</text> </text>
<!-- Sub-tabs -->
<tab_container name="Object Info Tabs"> <tab_container name="Object Info Tabs">
<panel label="Général" name="General"> <panel label="Général" name="General">
<text name="Name:"> <text name="Name:">
@@ -97,15 +120,10 @@
<text name="Owner:"> <text name="Owner:">
Propriétaire : Propriétaire :
</text> </text>
<button label="Profil" label_selected="Profil" name="button last owner profile"/> <button label="Profil" label_selected="Profil" name="button last owner profile"/>
<text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" <text name="Last Owner:">
bottom_delta="-20" drop_shadow_visible="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10"
mouse_opaque="true" name="Last Owner:" v_pad="0" width="78">
Dernier Proprio : Dernier Proprio :
</text> </text>
<text name="Owner Name"> <text name="Owner Name">
Thrax Linden Thrax Linden
</text> </text>
@@ -124,7 +142,7 @@
<text name="perm_modify"> <text name="perm_modify">
Vous pouvez modifier cet objet. Vous pouvez modifier cet objet.
</text> </text>
<check_box label="Partager avec le groupe" name="checkbox share with group" tool_tip="Autorise tous les membres du groupe choisi à utiliser et à partager vos droits pour cet objet. Pour activer les restrictions de rôles, vous devez d&apos;abord cliquer sur Transférer."/> <check_box label="Partager avec le groupe" name="checkbox share with group" tool_tip="Autorise tous les membres du groupe choisi à utiliser et à partager vos droits pour cet objet. Pour activer les restrictions de rôles, vous devez d'abord cliquer sur Transférer."/>
<string name="text deed continued"> <string name="text deed continued">
Transférer Transférer
</string> </string>
@@ -132,12 +150,14 @@
Transférer Transférer
</string> </string>
<button label="Céder" label_selected="Céder" name="button deed" tool_tip="Les objets partagés par un groupe peuvent être cédés par un officier."/> <button label="Céder" label_selected="Céder" name="button deed" tool_tip="Les objets partagés par un groupe peuvent être cédés par un officier."/>
<check_box label="Autoriser tout le monde à déplacer" name="checkbox allow everyone move"/> <text name="text anyone can">Tout le monde peux:</text>
<check_box label="Autoriser tout le monde à copier" name="checkbox allow everyone copy"/> <check_box label="Déplacer" name="checkbox allow everyone move"/>
<check_box label="Afficher dans la recherche" name="search_check" tool_tip="Affiche l&apos;objet dans les résultats de recherche"/> <check_box label="Copier" name="checkbox allow everyone copy"/>
<check_box name="checkbox allow export" label="Exporter"/>
<check_box label="Afficher dans la recherche" name="search_check" tool_tip="Affiche l'objet dans les résultats de recherche"/>
<check_box label="À vendre" name="checkbox for sale"/> <check_box label="À vendre" name="checkbox for sale"/>
<text name="Cost"> <text name="Cost">
Prix : [CURRENCY] Prix : [CURRENCY]
</text> </text>
<radio_group name="sale type"> <radio_group name="sale type">
<radio_item name="Original"> <radio_item name="Original">
@@ -151,26 +171,26 @@
</radio_item> </radio_item>
</radio_group> </radio_group>
<text name="Next owner can:"> <text name="Next owner can:">
Le prochain propriétaire pourra : Le prochain propriétaire pourra :
</text> </text>
<check_box label="Modifier" name="checkbox next owner can modify"/> <check_box label="Modifier" name="checkbox next owner can modify"/>
<check_box label="Copier" left_delta="66" name="checkbox next owner can copy"/> <check_box label="Copier" left_delta="66" name="checkbox next owner can copy"/>
<check_box label="Revendre/Donner" name="checkbox next owner can transfer"/> <check_box label="Revendre/Donner" name="checkbox next owner can transfer"/>
<text name="label click action"> <text name="label click action">
Action du clic-gauche : Action du clic-gauche :
</text> </text>
<combo_box name="clickaction" width="178"> <combo_box name="clickaction" width="178">
<combo_item name="Touch/grab(default)"> <combo_item name="Touch/grab(default)">
Toucher/attraper (défaut) Toucher/attraper (défaut)
</combo_item> </combo_item>
<combo_item name="Sitonobject"> <combo_item name="Sitonobject">
S&apos;asseoir sur l&apos;objet S'asseoir sur l'objet
</combo_item> </combo_item>
<combo_item name="Buyobject"> <combo_item name="Buyobject">
Acheter l&apos;objet Acheter l'objet
</combo_item> </combo_item>
<combo_item name="Payobject"> <combo_item name="Payobject">
Payer l&apos;objet Payer l'objet
</combo_item> </combo_item>
<combo_item name="Open"> <combo_item name="Open">
Ouvrir Ouvrir
@@ -183,24 +203,14 @@
</combo_item> </combo_item>
</combo_box> </combo_box>
<button bottom="-338" label="Copier la Clef" tool_tip="Copie la clef dans le presse-papier." width="80"/> <button bottom="-338" label="Copier la Clef" tool_tip="Copie la clef dans le presse-papier." width="80"/>
<text name="B:"> <panel name="pathfinding_attrs_panel">
B : <text name="pathfinding_attributes_label">
</text> Pathfinding :
<text name="O:"> </text>
O : <text name="pathfinding_attributes_value">
</text> Tester
<text name="G:"> </text>
G : </panel>
</text>
<text name="E:">
E :
</text>
<text name="N:">
N :
</text>
<text name="F:">
F :
</text>
<string name="text modify info 1"> <string name="text modify info 1">
Vous pouvez modifier cet objet. Vous pouvez modifier cet objet.
</string> </string>
@@ -217,13 +227,13 @@
Sélectionnez l'objet en entier. Sélectionnez l'objet en entier.
</string> </string>
<string name="Cost Default"> <string name="Cost Default">
Prix : [CURRENCY] Prix : [CURRENCY]
</string> </string>
<string name="Cost Total"> <string name="Cost Total">
Prix total : [CURRENCY] Prix total : [CURRENCY]
</string> </string>
<string name="Cost Per Unit"> <string name="Cost Per Unit">
Prix par : [CURRENCY] Prix par : [CURRENCY]
</string> </string>
<string name="Cost Mixed"> <string name="Cost Mixed">
Prix mixte Prix mixte
@@ -232,19 +242,12 @@
Vente mixte Vente mixte
</string> </string>
</panel> </panel>
<!-- Object sub-tab -->
<panel label="Objet" name="Object"> <panel label="Objet" name="Object">
<text name="select_single"> <button label="Lier" name="link_obj"/>
<button label="Delier" name="unlink_obj"/>
</text>
<text name="edit_object">
</text>
<button bottom="-26" follows="top|right" font="SansSerifSmall" halign="center"
height="18" label="Lier" left="10" mouse_opaque="true" name="link_obj" enabled="true"
tool_tip="" width="50" />
<button bottom_delta="0" follows="top|right" font="SansSerifSmall" halign="center"
height="18" label="Delier" left_delta="50" mouse_opaque="true" name="unlink_obj" enabled="true"
tool_tip="Unlinks linkset." width="50" />
<check_box label="Verrouillé" name="checkbox locked" tool_tip="Empêche l'objet d'être déplacé ou supprimé. Utile pendant la construction pour éviter les modifications involontaires."/> <check_box label="Verrouillé" name="checkbox locked" tool_tip="Empêche l'objet d'être déplacé ou supprimé. Utile pendant la construction pour éviter les modifications involontaires."/>
<check_box label="Physique" name="Physical Checkbox Ctrl" tool_tip="Permet à l'objet d'être poussé et affecté par la gravité"/> <check_box label="Physique" name="Physical Checkbox Ctrl" tool_tip="Permet à l'objet d'être poussé et affecté par la gravité"/>
<check_box label="Temporaire" name="Temporary Checkbox Ctrl" tool_tip="L'objet est supprimé 2 mn après sa création."/> <check_box label="Temporaire" name="Temporary Checkbox Ctrl" tool_tip="L'objet est supprimé 2 mn après sa création."/>
@@ -252,21 +255,12 @@
<text name="label position"> <text name="label position">
Position (mètres) Position (mètres)
</text> </text>
<spinner label="X" name="Pos X"/>
<spinner label="Y" name="Pos Y"/>
<spinner label="Z" name="Pos Z"/>
<text name="label size"> <text name="label size">
Taille (mètres) Taille (mètres)
</text> </text>
<spinner label="X" name="Scale X"/>
<spinner label="Y" name="Scale Y"/>
<spinner label="Z" name="Scale Z"/>
<text name="label rotation"> <text name="label rotation">
Rotation (degrés) Rotation (degrés)
</text> </text>
<spinner label="X" name="Rot X"/>
<spinner label="Y" name="Rot Y"/>
<spinner label="Z" name="Rot Z"/>
<text name="label material"> <text name="label material">
Matériau Matériau
</text> </text>
@@ -414,12 +408,15 @@
</combo_item> </combo_item>
</combo_box> </combo_box>
</panel> </panel>
<!-- Features sub-tab -->
<panel label="Attributs" name="Features"> <panel label="Attributs" name="Features">
<text name="select_single"> <text name="select_single">
Sélectionnez un prim pour modifier les attributs. Sélectionnez un prim pour modifier les attributs.
</text> </text>
<text name="edit_object"> <text name="edit_object">
Modifiez les attributs de l'objet : Modifiez les attributs de l'objet :
</text> </text>
<check_box label="Flexibilité" name="Flexible1D Checkbox Ctrl" tool_tip="Donne à l'objet de la souplesse sur l'axe des Z (côté client uniquement)."/> <check_box label="Flexibilité" name="Flexible1D Checkbox Ctrl" tool_tip="Donne à l'objet de la souplesse sur l'axe des Z (côté client uniquement)."/>
<spinner label="Souplesse" name="FlexNumSections"/> <spinner label="Souplesse" name="FlexNumSections"/>
@@ -539,9 +536,7 @@
<text name="tex scale"> <text name="tex scale">
Répétitions par face Répétitions par face
</text> </text>
<spinner label="Horizontal (U)" name="TexScaleU"/>
<check_box label="Inverser" name="checkbox flip s"/> <check_box label="Inverser" name="checkbox flip s"/>
<spinner label="Vertical (V)" name="TexScaleV"/>
<check_box label="Inverser" name="checkbox flip t"/> <check_box label="Inverser" name="checkbox flip t"/>
<text name="tex rotate"> <text name="tex rotate">
Rotation (degrés) Rotation (degrés)
@@ -561,21 +556,17 @@
<text name="tex offset"> <text name="tex offset">
Décalage Décalage
</text> </text>
<spinner label="Horizontal (U)" name="TexOffsetU"/>
<spinner label="Vertical (V)" name="TexOffsetV"/>
<text name="textbox autofix"> <text name="textbox autofix">
Ajuster la texture du média Ajuster la texture du média
(chargement préalable) (chargement préalable)
</text> </text>
<button label="Ajuster" label_selected="Ajuster" left="140" name="button align" width="45"/> <button label="Ajuster" label_selected="Ajuster" left="140" name="button align" width="45"/>
<text name="textbox params">Paramètres</text> <text name="textbox params">Paramètres</text>
<button label="Copier" name="copytextures" tool_tip="Copie les paramètres de la texture dans le presse papier" width="55"/> <button label="Copier" name="copytextures" tool_tip="Copie les paramètres de la texture dans le presse papier" width="55"/>
<button label="Coller" name="pastetextures" tool_tip="Colle les paramètres de la texture du presse papier" width="55"/> <button label="Coller" name="pastetextures" tool_tip="Colle les paramètres de la texture du presse papier" width="55"/>
</panel> </panel>
<panel label="Contenu" name="Contents"> <panel label="Contenu" name="Contents">
<button label="Nouveau script" label_selected="Nouveau script" name="button new script"/> <button label="Nouveau script" label_selected="Nouveau script" name="button new script"/>
<button label="Permissions" name="button permissions"/>
</panel> </panel>
</tab_container> </tab_container>
<panel name="land info panel"> <panel name="land info panel">

View File

@@ -8,6 +8,7 @@
<menu_item_call label="Import multiples ([UPLOADFEE] par fichier)" name="Bulk Upload"/> <menu_item_call label="Import multiples ([UPLOADFEE] par fichier)" name="Bulk Upload"/>
<menu_item_call label="Import XML" name="Import"/> <menu_item_call label="Import XML" name="Import"/>
<menu_item_call label="Import avec textures" name="Import2"/> <menu_item_call label="Import avec textures" name="Import2"/>
<menu_item_call label="Changer les textures locales" name="Change Local Textures"/>
<menu_item_separator/> <menu_item_separator/>
<menu_item_call label="Définir les droits par défaut " name="perm prefs"/> <menu_item_call label="Définir les droits par défaut " name="perm prefs"/>
<menu_item_separator/> <menu_item_separator/>
@@ -15,6 +16,7 @@
<menu_item_call label="Enregistrer la texture sur le disque dur en PNG" name="Save Preview AsPNG..."/> <menu_item_call label="Enregistrer la texture sur le disque dur en PNG" name="Save Preview AsPNG..."/>
<menu_item_separator/> <menu_item_separator/>
<menu_item_call label="Minimiser toutes les fenêtres" name="Minimize All Windows"/>
<menu_item_call label="Fermer la fenêtre" name="Close Window"/> <menu_item_call label="Fermer la fenêtre" name="Close Window"/>
<menu_item_call label="Fermer toutes les fenêtres" name="Close All Windows"/> <menu_item_call label="Fermer toutes les fenêtres" name="Close All Windows"/>
<menu_item_separator label="-----------" name="separator3"/> <menu_item_separator label="-----------" name="separator3"/>
@@ -240,4 +242,4 @@
</menu> </menu>
<menu_item_call label="A propos de Singularity" name="About Second Life..."/> <menu_item_call label="A propos de Singularity" name="About Second Life..."/>
</menu> </menu>
</menu_bar> </menu_bar>

View File

@@ -11,6 +11,7 @@
<check_box label="Permet d'utiliser &#x22;/me&#x22; aussi bien que &#x22;:&#x22;" name="allow_mu_pose_check"/> <check_box label="Permet d'utiliser &#x22;/me&#x22; aussi bien que &#x22;:&#x22;" name="allow_mu_pose_check"/>
<check_box label="Ajoute les fins des commentaires (RP mode)" tool_tip="Ajoute automatiquement &#x22;))&#x22; &#xE0; chaque message commen&#xE7;ant par &#x22;((&#x22;, et vice-versa." name="close_ooc_check"/> <check_box label="Ajoute les fins des commentaires (RP mode)" tool_tip="Ajoute automatiquement &#x22;))&#x22; &#xE0; chaque message commen&#xE7;ant par &#x22;((&#x22;, et vice-versa." name="close_ooc_check"/>
<check_box label="Montre les changements de display name" tool_tip="" name="display_name_change"/> <check_box label="Montre les changements de display name" tool_tip="" name="display_name_change"/>
<check_box label="Le texte ecris d&#xE9;file au dessus de l'avi" name="use_typing_bubbles"/>
<text name="objects_link_text_box3">Active un lien qui montre le nom du propri&#xE9;taire dans l'historique du chat pour :</text> <text name="objects_link_text_box3">Active un lien qui montre le nom du propri&#xE9;taire dans l'historique du chat pour :</text>
<radio_group tool_tip="Enables a link to show you the owner of the speaking object." name="objects_link"> <radio_group tool_tip="Enables a link to show you the owner of the speaking object." name="objects_link">
<radio_item name="no_object">Aucun objet</radio_item> <radio_item name="no_object">Aucun objet</radio_item>

View File

@@ -71,6 +71,7 @@
<check_box label="Prendre discr&#xE8;tement un photo, sur votre disque dur" tool_tip="Permet de prendre une photo en mode &#x22;espionnage&#x22;, sans bruit d&#x27;appareil, ni mouvement de cam&#xE9;ra, ni gesture. (Uniquement vers le disque dur)." name="quiet_snapshots_check"/> <check_box label="Prendre discr&#xE8;tement un photo, sur votre disque dur" tool_tip="Permet de prendre une photo en mode &#x22;espionnage&#x22;, sans bruit d&#x27;appareil, ni mouvement de cam&#xE9;ra, ni gesture. (Uniquement vers le disque dur)." name="quiet_snapshots_check"/>
<check_box label="En vous levant, annule les permissions que l&#x27;objet a sur votre avatar" tool_tip="Evite que l&#x27;objet garde le contr&#xF4;le de votre avatar, comme par exemple les animations." name="revoke_perms_on_stand_up_check"/> <check_box label="En vous levant, annule les permissions que l&#x27;objet a sur votre avatar" tool_tip="Evite que l&#x27;objet garde le contr&#xF4;le de votre avatar, comme par exemple les animations." name="revoke_perms_on_stand_up_check"/>
<check_box label="D&#xE9;sactive le &#x22;Click to sit&#x22; automatique" tool_tip="D&#xE9;sactive llSitTarget. Vous devrez s&#xE9;lectionner vous m&#xEA;me la fonction &#x22;sit&#x22; sur l&#x27;objet." name="disable_click_sit_check"/> <check_box label="D&#xE9;sactive le &#x22;Click to sit&#x22; automatique" tool_tip="D&#xE9;sactive llSitTarget. Vous devrez s&#xE9;lectionner vous m&#xEA;me la fonction &#x22;sit&#x22; sur l&#x27;objet." name="disable_click_sit_check"/>
<check_box left_delta="210" label="Sur les objets qui ne sont pas a vous" tool_tip="" name="disable_click_sit_own_check"/>
<check_box label="Affiche les changements de d&#xE9;comptes de scripts de la r&#xE9;gion." name="totalscriptjumps" tool_tip="D&#xE9;pendant du seuil que vous choisissez dans la fen&#xEA;tre &#xE0; droite."/> <check_box label="Affiche les changements de d&#xE9;comptes de scripts de la r&#xE9;gion." name="totalscriptjumps" tool_tip="D&#xE9;pendant du seuil que vous choisissez dans la fen&#xEA;tre &#xE0; droite."/>
<spinner left_delta="350" name="ScriptJumpCount" tool_tip="Threshold for the script jump message [Default: 100]"/> <spinner left_delta="350" name="ScriptJumpCount" tool_tip="Threshold for the script jump message [Default: 100]"/>
</panel> </panel>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel label="Vanity" name="ascvan"> <panel name="ascvan">
<tab_container label="Singularity Vanity" name="Ascent Vanity"> <tab_container name="Ascent Vanity">
<panel label="Principal" name="General"> <panel label="Principal" name="General">
<check_box label="Lorsque c'est possible, sauver le setting personnalisé par compte." tool_tip="Sauve le settings customis&#xE9; pour chaque alt." name="use_account_settings_check"/> <check_box label="Lorsque c'est possible, sauver le setting personnalisé par compte." tool_tip="Sauve le settings customis&#xE9; pour chaque alt." name="use_account_settings_check"/>
<check_box label="Masquer la barre de 'TP in progress'" tool_tip="Ceci permet de continuer des lire vos IMs durant le TP." name="disable_tp_screen_check"/> <check_box label="Masquer la barre de 'TP in progress'" tool_tip="Ceci permet de continuer des lire vos IMs durant le TP." name="disable_tp_screen_check"/>
@@ -46,13 +46,7 @@
<check_box name="color_linden_check" tool_tip="Color Linden Chat"/> <check_box name="color_linden_check" tool_tip="Color Linden Chat"/>
<check_box name="color_muted_check" tool_tip="Color Muted Chat"/> <check_box name="color_muted_check" tool_tip="Color Muted Chat"/>
</panel> </panel>
<panel label="Body Dyn. (Bouger les n&#xE9;n&#xE9;s)" name="Body Dynamics"> <panel label="Body Dyn.(Offset de l'avatar)" name="Body Dynamics">
<check_box label="Activer les &#x22;physics&#x22; des n&#xE9;n&#xE9;s voire du popotin des avatars ^^" name="EmBreastsToggle"/>
<slider name="EmeraldBoobMass" label="Masse :" />
<slider name="EmeraldBoobHardness" label="Rebond :"/>
<slider name="EmeraldBoobVelMax" label="V&#xE9;locit&#xE9; max :"/>
<slider name="EmeraldBoobFriction" label="Friction :"/>
<slider name="EmeraldBoobVelMin" label="V&#xE9;locit&#xE9; min :"/>
<text name="av_mod_textbox" follows="top">Modifier l'offset de l'avatar</text> <text name="av_mod_textbox" follows="top">Modifier l'offset de l'avatar</text>
<spinner label="X Modif." name="X Modifier"/> <spinner label="X Modif." name="X Modifier"/>
<spinner label="Y Modif." name="Y Modifier"/> <spinner label="Y Modif." name="Y Modifier"/>

View File

@@ -3,36 +3,31 @@
<text name="text_box">Bande passante max:</text> <text name="text_box">Bande passante max:</text>
<text name="text_box2">kbps (kilobits par seconde)</text> <text name="text_box2">kbps (kilobits par seconde)</text>
<text name="text_box3">Bande passante de la texture:</text> <text name="text_box3">Bande passante de la texture:</text>
<slider left_delta="150" name="tex_bandwidth" width="140"/> <slider left_delta="145" name="tex_bandwidth" width="145"/>
<text left_delta="146" name="text_box2">kbps (kilobits par seconde)</text> <text left_delta="150" name="text_box4">kbps (kilobits par seconde)</text>
<text name="use_http_for">Utiliser HTTP pour:</text> <text name="use_http_for">Utiliser HTTP pour:</text>
<check_box left_delta="100" label="Textures" name="http_textures"/>
<check_box label="Inventaire" name="http_inventory"/> <check_box label="Inventaire" name="http_inventory"/>
<text name="cache_size_label_l">Taille du cache:</text> <text name="cache_size_label_l">Taille du cache:</text>
<text name="text_box5">Mo</text> <text name="text_box5">Mo</text>
<button label="Vider la mémoire cache" label_selected="Vider le cache" name="clear_cache" width="150"/> <button label="Vider le cache" name="clear_cache" width="130"/>
<text name="cache_location_label">Emplacement du cache:</text> <text name="cache_location_label">Emplacement du cache:</text>
<button label="Modifier" label_selected="Modifier" name="set_cache"/> <button label="Modifier" label_selected="Modifier" name="set_cache"/>
<button label="Réinitialiser" label_selected="Réinitialiser" name="reset_cache"/> <button label="Réinitialiser" label_selected="Réinitialiser" name="reset_cache"/>
<check_box label="Port de connexion personnalisé" name="connection_port_enabled"/> <check_box label="Port de Connexion personnalisé" name="connection_port_enabled"/>
<spinner label="Numéro de port:" label_width="95" name="connection_port" width="170"/> <spinner label="Num. du Port:" name="connection_port"/>
<text name="socks5_auth_label">Proxy Http:</text>
<radio_group name="socks5_http_proxy_type"> <radio_group name="socks5_http_proxy_type">
<radio_item name="None">aucun</radio_item> <radio_item name="None">Aucun</radio_item>
<radio_item name="Socks">Socks</radio_item> <radio_item name="Socks">Socks</radio_item>
<radio_item name="Web">Web</radio_item> <radio_item name="Web">Web</radio_item>
</radio_group> </radio_group>
<check_box label="Activer SOCKS 5 Proxy" name="socks5_proxy_enabled"/> <check_box label="Activer SOCKS 5 Proxy" name="socks5_proxy_enabled"/>
<text name="socks5_host_label">H&#xF4;te Socks 5:</text> <text name="socks5_host_label">H&#xF4;te Socks 5 :</text>
<line_editor name="socks5_proxy_host" tool_tip=""/> <spinner label="Num. du Port:" name="socks5_proxy_port"/>
<spinner label="Numéro de port:" label_width="80" name="socks5_proxy_port"/>
<text name="socks5_auth_label2">Authentification:</text> <text name="socks5_auth_label2">Authentification:</text>
<radio_group name="socks5_auth"> <radio_group name="socks5_auth">
<radio_item name="None" tool_tip="">aucune</radio_item> <radio_item name="None">Aucune</radio_item>
<radio_item name="UserPass" tool_tip="">Nom/Mot de passe</radio_item> <radio_item name="UserPass">Nom/Mot de passe</radio_item>
</radio_group> </radio_group>
<text name="socks5_username_label">Nom:</text> <text name="socks5_username_label">Nom:</text>
<line_editor name="socks5_proxy_username"/>
<text name="socks5_password_label">Mot de Passe:</text> <text name="socks5_password_label">Mot de Passe:</text>
<line_editor name="socks5_proxy_password"/>
</panel> </panel>

View File

@@ -7,6 +7,9 @@
<text name="text_box2"> <text name="text_box2">
kbps (kilobits por segundo) kbps (kilobits por segundo)
</text> </text>
<text name="text_box4">
kbps (kilobits por segundo)
</text>
<text name="cache_size_label_l"> <text name="cache_size_label_l">
Tamanho do Cachê de Disco: Tamanho do Cachê de Disco:
</text> </text>

View File

@@ -1,35 +1,36 @@
#!/usr/bin/python #!/usr/bin/env python
# @file viewer_manifest.py """\
# @author Ryan Williams @file viewer_manifest.py
# @brief Description of all installer viewer files, and methods for packaging @author Ryan Williams
# them into installers for all supported platforms. @brief Description of all installer viewer files, and methods for packaging
# them into installers for all supported platforms.
# $LicenseInfo:firstyear=2006&license=viewergpl$
# $LicenseInfo:firstyear=2006&license=viewergpl$
# Copyright (c) 2006-2009, Linden Research, Inc. Second Life Viewer Source Code
# Copyright (c) 2006-2009, Linden Research, Inc.
# Second Life Viewer Source Code
# The source code in this file ("Source Code") is provided by Linden Lab The source code in this file ("Source Code") is provided by Linden Lab
# to you under the terms of the GNU General Public License, version 2.0 to you under the terms of the GNU General Public License, version 2.0
# ("GPL"), unless you have obtained a separate licensing agreement ("GPL"), unless you have obtained a separate licensing agreement
# ("Other License"), formally executed by you and Linden Lab. Terms of ("Other License"), formally executed by you and Linden Lab. Terms of
# the GPL can be found in doc/GPL-license.txt in this distribution, or the GPL can be found in doc/GPL-license.txt in this distribution, or
# online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
#
# There are special exceptions to the terms and conditions of the GPL as There are special exceptions to the terms and conditions of the GPL as
# it is applied to this Source Code. View the full text of the exception it is applied to this Source Code. View the full text of the exception
# in the file doc/FLOSS-exception.txt in this software distribution, or in the file doc/FLOSS-exception.txt in this software distribution, or
# online at online at
# http://secondlifegrid.net/programs/open_source/licensing/flossexception http://secondlifegrid.net/programs/open_source/licensing/flossexception
#
# By copying, modifying or distributing this software, you acknowledge By copying, modifying or distributing this software, you acknowledge
# that you have read and understood your obligations described above, that you have read and understood your obligations described above,
# and agree to abide by those obligations. and agree to abide by those obligations.
#
# ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
# WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
# COMPLETENESS OR PERFORMANCE. COMPLETENESS OR PERFORMANCE.
# $/LicenseInfo$ $/LicenseInfo$
"""
import sys import sys
import os.path import os.path
import re import re
@@ -56,10 +57,13 @@ class ViewerManifest(LLManifest):
# include the entire shaders directory recursively # include the entire shaders directory recursively
self.path("shaders") self.path("shaders")
# ... and the entire windlight directory # ... and the entire windlight directory
self.path("windlight") self.path("windlight")
# ... and the hunspell dictionaries # ... and the hunspell dictionaries
self.path("dictionaries") self.path("dictionaries")
self.end_prefix("app_settings") self.end_prefix("app_settings")
if self.prefix(src="character"): if self.prefix(src="character"):
@@ -104,6 +108,7 @@ class ViewerManifest(LLManifest):
self.path("*/*/*.html") self.path("*/*/*.html")
self.path("*/*/*.gif") self.path("*/*/*.gif")
self.end_prefix("*/html") self.end_prefix("*/html")
self.end_prefix("skins") self.end_prefix("skins")
# Files in the newview/ directory # Files in the newview/ directory
@@ -359,6 +364,7 @@ class WindowsManifest(ViewerManifest):
result += 'File ' + pkg_file + '\n' result += 'File ' + pkg_file + '\n'
else: else:
result += 'Delete ' + wpath(os.path.join('$INSTDIR', rel_file)) + '\n' result += 'Delete ' + wpath(os.path.join('$INSTDIR', rel_file)) + '\n'
# at the end of a delete, just rmdir all the directories # at the end of a delete, just rmdir all the directories
if not install: if not install:
deleted_file_dirs = [os.path.dirname(pair[1].replace(self.get_dst_prefix()+os.path.sep,'')) for pair in self.file_list] deleted_file_dirs = [os.path.dirname(pair[1].replace(self.get_dst_prefix()+os.path.sep,'')) for pair in self.file_list]
@@ -695,6 +701,9 @@ class LinuxManifest(ViewerManifest):
self.path("wrapper.sh",self.wrapper_name()) self.path("wrapper.sh",self.wrapper_name())
self.path("handle_secondlifeprotocol.sh") self.path("handle_secondlifeprotocol.sh")
self.path("register_secondlifeprotocol.sh") self.path("register_secondlifeprotocol.sh")
self.path("refresh_desktop_app_entry.sh")
self.path("launch_url.sh")
self.path("install.sh")
self.end_prefix("linux_tools") self.end_prefix("linux_tools")
# Create an appropriate gridargs.dat for this package, denoting required grid. # Create an appropriate gridargs.dat for this package, denoting required grid.
@@ -707,7 +716,6 @@ class LinuxManifest(ViewerManifest):
self.path("secondlife-bin","bin/"+self.binary_name()) self.path("secondlife-bin","bin/"+self.binary_name())
self.path("../linux_crash_logger/linux-crash-logger","linux-crash-logger.bin") self.path("../linux_crash_logger/linux-crash-logger","linux-crash-logger.bin")
self.path("linux_tools/launch_url.sh","launch_url.sh")
self.path("../llplugin/slplugin/SLPlugin", "bin/SLPlugin") self.path("../llplugin/slplugin/SLPlugin", "bin/SLPlugin")
if self.prefix("res-sdl"): if self.prefix("res-sdl"):
self.path("*") self.path("*")

View File

@@ -5,7 +5,7 @@ usage() {
echo "Usage: repackage PLATFORM FILEIN.tar.bz2 [FILEOUT.tar.bz2] echo "Usage: repackage PLATFORM FILEIN.tar.bz2 [FILEOUT.tar.bz2]
Repackage an archive from llautobuild format into singularity format Repackage an archive from llautobuild format into singularity format
PLATTFORM can be one of windows, linux, linux64, mac. PLATFORM can be one of windows, linux, linux64, mac.
" "
exit 0 exit 0
} }