Merge remote-tracking branch 'Liru/master'

This commit is contained in:
Damian Zhaoying
2014-08-11 18:25:32 -03:00
22 changed files with 197 additions and 136 deletions

View File

@@ -178,7 +178,7 @@ BOOL LLInventoryObject::importLegacyStream(std::istream& input_stream)
while(input_stream.good())
{
input_stream.getline(buffer, MAX_STRING);
sscanf(buffer, " %254s %254s", keyword, valuestr); /* Flawfinder: ignore */
if (sscanf(buffer, " %254s %254s", keyword, valuestr) < 1) continue;
if(0 == strcmp("{",keyword))
{
continue;
@@ -610,7 +610,7 @@ BOOL LLInventoryItem::importFile(LLFILE* fp)
buffer[0] = '\0';
}
sscanf(buffer, " %254s %254s", keyword, valuestr); /* Flawfinder: ignore */
if (sscanf(buffer, " %254s %254s", keyword, valuestr) < 1) continue;
if(0 == strcmp("{",keyword))
{
continue;
@@ -813,10 +813,10 @@ BOOL LLInventoryItem::importLegacyStream(std::istream& input_stream)
while(success && input_stream.good())
{
input_stream.getline(buffer, MAX_STRING);
sscanf( /* Flawfinder: ignore */
if (sscanf(
buffer,
" %254s %254s",
keyword, valuestr);
keyword, valuestr) < 1) continue;
if(0 == strcmp("{",keyword))
{
continue;
@@ -1489,10 +1489,10 @@ BOOL LLInventoryCategory::importFile(LLFILE* fp)
buffer[0] = '\0';
}
sscanf( /* Flawfinder: ignore */
if (sscanf(
buffer,
" %254s %254s",
keyword, valuestr);
keyword, valuestr) < 1) continue;
if(0 == strcmp("{",keyword))
{
continue;
@@ -1568,10 +1568,10 @@ BOOL LLInventoryCategory::importLegacyStream(std::istream& input_stream)
while(input_stream.good())
{
input_stream.getline(buffer, MAX_STRING);
sscanf( /* Flawfinder: ignore */
if (sscanf(
buffer,
" %254s %254s",
keyword, valuestr);
keyword, valuestr) < 1) continue;
if(0 == strcmp("{",keyword))
{
continue;

View File

@@ -74,6 +74,11 @@ set(llrender_HEADER_FILES
set_source_files_properties(${llrender_HEADER_FILES}
PROPERTIES HEADER_FILE_ONLY TRUE)
# Workaround hack for clang bugs
if (DARWIN)
set_property(SOURCE llgl.cpp PROPERTY COMPILE_FLAGS -O1)
endif (DARWIN)
list(APPEND llrender_SOURCE_FILES ${llrender_HEADER_FILES})
add_library (llrender ${llrender_SOURCE_FILES})

View File

@@ -571,6 +571,9 @@ void LLFloater::open() /* Flawfinder: ignore */
setVisibleAndFrontmost(mAutoFocus);
}
if (!getControlName().empty())
setControlValue(true);
onOpen();
}
@@ -633,6 +636,9 @@ void LLFloater::close(bool app_quitting)
}
}
if (!app_quitting && !getControlName().empty())
setControlValue(false);
// Let floater do cleanup.
onClose(app_quitting);
}

View File

@@ -253,10 +253,10 @@
<string>Rect</string>
<key>Value</key>
<array>
<integer>0</integer>
<integer>0</integer>
<integer>0</integer>
<integer>0</integer>
<integer>30</integer>
<integer>505</integer>
<integer>580</integer>
<integer>275</integer>
</array>
</map>
<key>FloaterAvatarTextRect</key>
@@ -6106,10 +6106,10 @@ This should be as low as possible, but too low may break functionality</string>
<string>Rect</string>
<key>Value</key>
<array>
<integer>0</integer>
<integer>0</integer>
<integer>0</integer>
<integer>0</integer>
<integer>30</integer>
<integer>505</integer>
<integer>580</integer>
<integer>275</integer>
</array>
</map>
<key>DestinationGuideShown</key>

View File

@@ -257,6 +257,8 @@ LLFloaterLand::~LLFloaterLand()
// public
void LLFloaterLand::refresh()
{
if (LLViewerParcelMgr::getInstance()->selectionEmpty())
LLViewerParcelMgr::getInstance()->selectParcelAt(gAgent.getPositionGlobal());
mPanelGeneral->refresh();
mPanelObjects->refresh();
mPanelOptions->refresh();

View File

@@ -74,7 +74,7 @@ void LLFloaterMediaFilter::updateLists(LLMediaFilter::EMediaList list_type)
{
bool white(list_type == LLMediaFilter::WHITELIST);
const LLMediaFilter& inst(LLMediaFilter::instance());
LLMediaFilter::string_list_t list = white ? inst.getWhiteList() : inst.getBlackList();
const LLMediaFilter::string_list_t& list = white ? inst.getWhiteList() : inst.getBlackList();
LLScrollListCtrl* scroll(white ? mWhitelist : mBlacklist);
scroll->clearRows();
for (LLMediaFilter::string_list_t::const_iterator itr = list.begin(); itr != list.end(); ++itr)

View File

@@ -341,9 +341,15 @@ void LLPreferenceCore::setPersonalInfo(const std::string& visibility, bool im_vi
//////////////////////////////////////////////
// LLFloaterPreference
void reset_to_default(const std::string& control)
{
LLUI::getControlControlGroup(control).getControl(control)->resetToDefault(true);
}
LLFloaterPreference::LLFloaterPreference()
{
mExitWithoutSaving = false;
mCommitCallbackRegistrar.add("Prefs.Reset", boost::bind(reset_to_default, _2));
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_preferences.xml");
}

View File

@@ -1358,8 +1358,10 @@ BOOL LLGestureMgr::matchPrefix(const std::string& in_str, std::string* out_str)
{
S32 in_len = in_str.length();
#ifdef MATCH_COMMON_CHARS
std::string rest_of_match = "";
std::string buf = "";
#endif
item_map_t::iterator it;
for (it = mActive.begin(); it != mActive.end(); ++it)
{
@@ -1367,18 +1369,26 @@ BOOL LLGestureMgr::matchPrefix(const std::string& in_str, std::string* out_str)
if (gesture)
{
const std::string& trigger = gesture->getTrigger();
#ifdef MATCH_COMMON_CHARS
//return whole trigger, if received text equals to it
if (!LLStringUtil::compareInsensitive(in_str, trigger))
{
*out_str = trigger;
return TRUE;
}
#else
if (in_len > (S32)trigger.length()) continue; // too short, bail out
#endif
//return common chars, if more than one trigger matches the prefix
std::string trigger_trunc = trigger;
LLStringUtil::truncate(trigger_trunc, in_len);
if (!LLStringUtil::compareInsensitive(in_str, trigger_trunc))
{
#ifndef MATCH_COMMON_CHARS
*out_str = trigger;
return TRUE;
#else
if (rest_of_match.compare("") == 0)
{
rest_of_match = trigger.substr(in_str.size());
@@ -1411,16 +1421,18 @@ BOOL LLGestureMgr::matchPrefix(const std::string& in_str, std::string* out_str)
{
rest_of_match = buf;
}
#endif
}
}
}
#ifdef MATCH_COMMON_CHARS
if (!rest_of_match.empty())
{
*out_str = in_str + rest_of_match;
return TRUE;
}
#endif
return FALSE;
}

View File

@@ -41,6 +41,10 @@ bool handle_media_filter_callback(const LLSD& notification, const LLSD& response
std::string extractDomain(const std::string& in_url);
LLMediaFilter::LLMediaFilter()
: mMediaCommandQueue(0)
, mCurrentParcel(NULL)
, mMediaQueue(NULL)
, mAlertActive(false)
{
loadMediaFilterFromDisk();
}
@@ -56,7 +60,7 @@ void LLMediaFilter::filterMediaUrl(LLParcel* parcel)
const std::string domain = extractDomain(url);
mCurrentParcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
U32 enabled = gSavedSettings.getU32("MediaFilterEnable");
U32 enabled = gSavedSettings.getU32("MediaFilterEnable");
if (enabled > 1 && (filter(domain, WHITELIST) || filter(url, WHITELIST)))
{
@@ -104,7 +108,7 @@ void LLMediaFilter::filterAudioUrl(const std::string& url)
const std::string domain = extractDomain(url);
mCurrentParcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
U32 enabled = gSavedSettings.getU32("MediaFilterEnable");
U32 enabled = gSavedSettings.getU32("MediaFilterEnable");
if (enabled > 1 && (filter(domain, WHITELIST) || filter(url, WHITELIST)))
{
@@ -141,7 +145,7 @@ void LLMediaFilter::filterAudioUrl(const std::string& url)
bool LLMediaFilter::filter(const std::string& url, EMediaList list)
{
const string_list_t p_list = (list == WHITELIST) ? mWhiteList : mBlackList;
const string_list_t& p_list = (list == WHITELIST) ? mWhiteList : mBlackList;
string_list_t::const_iterator find_itr = std::find(p_list.begin(), p_list.end(), url);
return (find_itr != p_list.end());
}
@@ -149,60 +153,34 @@ bool LLMediaFilter::filter(const std::string& url, EMediaList list)
// List bizznizz
void LLMediaFilter::addToMediaList(const std::string& in_url, EMediaList list, bool extract)
{
std::string url = extract ? extractDomain(in_url) : in_url;
const std::string url = extract ? extractDomain(in_url) : in_url;
if (url.empty())
{
LL_INFOS("MediaFilter") << "No url found. Can't add to list." << LL_ENDL;
return;
}
switch (list)
string_list_t& p_list(list == WHITELIST ? mWhiteList : mBlackList);
// Check for duplicates
for (string_list_t::const_iterator itr = p_list.begin(); itr != p_list.end(); ++itr)
{
case WHITELIST:
// Check for duplicates
for (string_list_t::const_iterator itr = mWhiteList.begin(); itr != mWhiteList.end(); ++itr)
{
if (url == *itr)
{
LL_INFOS("MediaFilter") << "URL " << url << " already in list!" << LL_ENDL;
return;
}
}
mWhiteList.push_back(url);
mMediaListUpdate(WHITELIST);
break;
case BLACKLIST:
for (string_list_t::const_iterator itr = mBlackList.begin(); itr != mBlackList.end(); ++itr)
{
if (url == *itr)
{
LL_INFOS("MediaFilter") << "URL " << url << "already in list!" << LL_ENDL;
return;
}
}
mBlackList.push_back(url);
mMediaListUpdate(BLACKLIST);
break;
if (url == *itr)
{
LL_INFOS("MediaFilter") << "URL " << url << " already in list!" << LL_ENDL;
return;
}
}
p_list.push_back(url);
mMediaListUpdate(list);
saveMediaFilterToDisk();
}
void LLMediaFilter::removeFromMediaList(string_vec_t domains, EMediaList list)
{
if (domains.empty()) return;
switch (list)
{
case WHITELIST:
for (string_vec_t::const_iterator itr = domains.begin(); itr != domains.end(); ++itr)
mWhiteList.remove(*itr);
mMediaListUpdate(WHITELIST);
break;
case BLACKLIST:
for (string_vec_t::const_iterator itr = domains.begin(); itr != domains.end(); ++itr)
mBlackList.remove(*itr);
mMediaListUpdate(BLACKLIST);
break;
}
for (string_vec_t::const_iterator itr = domains.begin(); itr != domains.end(); ++itr)
(list == WHITELIST ? mWhiteList : mBlackList).remove(*itr);
mMediaListUpdate(list);
saveMediaFilterToDisk();
}
@@ -242,25 +220,24 @@ void LLMediaFilter::loadMediaFilterFromDisk()
}
}
void medialist_to_llsd(const LLMediaFilter::string_list_t& list, LLSD& list_llsd, const LLSD& action)
{
for (LLMediaFilter::string_list_t::const_iterator itr = list.begin(); itr != list.end(); ++itr)
{
LLSD item;
item["domain"] = *itr;
item["action"] = action;
list_llsd.append(item);
}
}
void LLMediaFilter::saveMediaFilterToDisk() const
{
const std::string medialist_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, MEDIALIST_XML);
LLSD medialist_llsd;
for (string_list_t::const_iterator itr = mWhiteList.begin(); itr != mWhiteList.end(); ++itr)
{
LLSD item;
item["domain"] = *itr;
item["action"] = "allow"; // <- $*#@()&%@
medialist_llsd.append(item);
}
for (string_list_t::const_iterator itr = mBlackList.begin(); itr != mBlackList.end(); ++itr)
{
LLSD item;
item["domain"] = *itr;
item["action"] = "deny"; // sigh.
medialist_llsd.append(item);
}
medialist_to_llsd(mWhiteList, medialist_llsd, "allow"); // <- $*#@()&%@
medialist_to_llsd(mBlackList, medialist_llsd, "deny"); // sigh.
llofstream medialist;
medialist.open(medialist_filename);
@@ -268,6 +245,30 @@ void LLMediaFilter::saveMediaFilterToDisk() const
medialist.close();
}
void perform_queued_command(LLMediaFilter& inst)
{
if (U32 command = inst.getQueuedMediaCommand())
{
if (command == PARCEL_MEDIA_COMMAND_STOP)
{
LLViewerParcelMedia::stop();
}
else if (command == PARCEL_MEDIA_COMMAND_PAUSE)
{
LLViewerParcelMedia::pause();
}
else if (command == PARCEL_MEDIA_COMMAND_UNLOAD)
{
LLViewerParcelMedia::stop();
}
else if (command == PARCEL_MEDIA_COMMAND_TIME)
{
LLViewerParcelMedia::seek(LLViewerParcelMedia::sMediaCommandTime);
}
inst.setQueuedMediaCommand(0);
}
}
bool handle_audio_filter_callback(const LLSD& notification, const LLSD& response, const std::string& url)
{
LLMediaFilter& inst(LLMediaFilter::instance());
@@ -335,26 +336,9 @@ bool handle_audio_filter_callback(const LLSD& notification, const LLSD& response
if (queued_media)
inst.filterMediaUrl(queued_media);
}
else if (inst.getQueuedMediaCommand())
else
{
U32 command = inst.getQueuedMediaCommand();
if (command == PARCEL_MEDIA_COMMAND_STOP)
{
LLViewerParcelMedia::stop();
}
else if (command == PARCEL_MEDIA_COMMAND_PAUSE)
{
LLViewerParcelMedia::pause();
}
else if (command == PARCEL_MEDIA_COMMAND_UNLOAD)
{
LLViewerParcelMedia::stop();
}
else if (command == PARCEL_MEDIA_COMMAND_TIME)
{
LLViewerParcelMedia::seek(LLViewerParcelMedia::sMediaCommandTime);
}
inst.setQueuedMediaCommand(0);
perform_queued_command(inst);
}
return false;
@@ -365,7 +349,7 @@ bool handle_media_filter_callback(const LLSD& notification, const LLSD& response
LLMediaFilter& inst(LLMediaFilter::instance());
inst.setAlertStatus(false);
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
const std::string url = notification["payload"].asString();
const std::string& url = notification["payload"].asString();
LLParcel* queue = inst.getQueuedMedia();
switch(option)
{
@@ -403,26 +387,9 @@ bool handle_media_filter_callback(const LLSD& notification, const LLSD& response
inst.clearQueuedAudio();
inst.filterAudioUrl(audio_queue);
}
else if (inst.getQueuedMediaCommand())
else
{
U32 command = inst.getQueuedMediaCommand();
if (command == PARCEL_MEDIA_COMMAND_STOP)
{
LLViewerParcelMedia::stop();
}
else if (command == PARCEL_MEDIA_COMMAND_PAUSE)
{
LLViewerParcelMedia::pause();
}
else if (command == PARCEL_MEDIA_COMMAND_UNLOAD)
{
LLViewerParcelMedia::stop();
}
else if (command == PARCEL_MEDIA_COMMAND_TIME)
{
LLViewerParcelMedia::seek(LLViewerParcelMedia::sMediaCommandTime);
}
inst.setQueuedMediaCommand(0);
perform_queued_command(inst);
}
return false;
@@ -437,7 +404,7 @@ std::string extractDomain(const std::string& in_url)
if (pos != std::string::npos)
{
S32 count = url.size()-pos+2;
size_t count = url.size()-pos+2;
url = url.substr(pos+2, count);
}
@@ -455,7 +422,7 @@ std::string extractDomain(const std::string& in_url)
if (pos != std::string::npos)
{
S32 count = url.size()-pos+1;
size_t count = url.size()-pos+1;
url = url.substr(pos+1, count);
}
@@ -471,6 +438,6 @@ std::string extractDomain(const std::string& in_url)
// Now map the whole thing to lowercase, since domain names aren't
// case sensitive.
std::transform(url.begin(), url.end(),url.begin(), ::tolower);
std::transform(url.begin(), url.end(), url.begin(), ::tolower);
return url;
}

View File

@@ -97,8 +97,22 @@ const F32 MIN_USER_FAR_CLIP = 64.f;
const S32 ASPECT_RATIO_STR_LEN = 100;
void reset_to_default(const std::string& control);
void reset_all_to_default(const LLView* panel)
{
LLView::child_list_const_iter_t end(panel->endChild());
for (LLView::child_list_const_iter_t i = panel->beginChild(); i != end; ++i)
{
const std::string& control_name((*i)->getControlName());
if (control_name.empty()) continue;
if (control_name == "RenderDepthOfField") continue; // Don't touch render settings *sigh* hack
reset_to_default(control_name);
}
}
LLPanelDisplay::LLPanelDisplay()
{
mCommitCallbackRegistrar.add("Graphics.ResetTab", boost::bind(reset_all_to_default, boost::bind(&LLView::getChildView, this, _2, true, false)));
LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_graphics1.xml");
}

View File

@@ -53,6 +53,7 @@
#include "llscrolllistctrl.h"
#include "llscrolllistitem.h"
#include "lltextbox.h"
#include "lltrans.h"
#include "roles_constants.h"
#include "llviewerwindow.h"
@@ -511,6 +512,7 @@ void LLPanelGroupNotices::onSelectNotice()
lldebugs << "Item " << item->getUUID() << " selected." << llendl;
}
bool is_openable(LLAssetType::EType type);
void LLPanelGroupNotices::showNotice(const std::string& subject,
const std::string& message,
const bool& has_inventory,
@@ -549,6 +551,7 @@ void LLPanelGroupNotices::showNotice(const std::string& subject,
mViewInventoryName->setText(ss.str());
mBtnOpenAttachment->setEnabled(TRUE);
mBtnOpenAttachment->setLabel(LLTrans::getString(is_openable(inventory_offer->mType) ? "GroupNotifyOpenAttachment" : "GroupNotifySaveAttachment"));
}
else
{

View File

@@ -3048,7 +3048,7 @@ void LLPanelGroupBanListSubTab::populateBanList()
ban_entry.columns.add().column("name").font/*.name*/("SANSSERIF_SMALL").font_style("NORMAL");
// Singu Note: We have special date columns, so our code is unique here
ban_entry.columns.add().column("ban_date").value(bd.mBanDate).format("%Y/%m%d").font/*.name*/("SANSSERIF_SMALL").font_style("NORMAL");
ban_entry.columns.add().column("ban_date").value(bd.mBanDate).type("date").format("%Y/%m%d").font/*.name*/("SANSSERIF_SMALL").font_style("NORMAL");
mBanList->addNameItemRow(ban_entry);
}

View File

@@ -1604,7 +1604,7 @@ EAcceptance LLToolDragAndDrop::willObjectAcceptInventory(LLViewerObject* obj, LL
transfer = TRUE;
}
BOOL volume = (LL_PCODE_VOLUME == obj->getPCode());
BOOL attached = obj->isAttachment();
BOOL attached = false; // <singu/> No longer necessary.
BOOL unrestricted = ((perm.getMaskBase() & PERM_ITEM_UNRESTRICTED) == PERM_ITEM_UNRESTRICTED) ? TRUE : FALSE;
// [RLVa:KB] - Checked: 2010-03-31 (RLVa-1.2.0c) | Modified: RLVa-1.0.0c

View File

@@ -2903,7 +2903,7 @@ BOOL LLViewerObject::loadTaskInvFile(const std::string& filename)
while(ifs.good())
{
ifs.getline(buffer, MAX_STRING);
sscanf(buffer, " %254s", keyword); /* Flawfinder: ignore */
if (sscanf(buffer, " %254s", keyword) < 1) continue;
if(0 == strcmp("inv_item", keyword))
{
LLPointer<LLInventoryObject> inv = new LLViewerInventoryItem;

View File

@@ -95,7 +95,6 @@
<menu_item_check label="Aktive Sprecher" name="Active Speakers"/>
<menu_item_check label="Stummschalten-Liste" name="Mute List"/>
<menu_item_check label="Teleport-Liste" name="Teleport History"/>
<menu_item_check label="Medienfilter" name="Media Filter"/>
<menu_item_separator label="-----------" name="separator2"/>
<menu_item_check label="Kamerasteuerung" name="Camera Controls"/>
<menu_item_check label="Bewegungssteuerung" name="Movement Controls"/>
@@ -259,7 +258,7 @@
</menu>
<menu_item_call label="Über [APP_NAME]..." name="About Second Life..."/>
</menu>
<menu label="[SHORT_APP_NAME]" name="Singularity">
<menu name="Singularity">
<menu_item_call label="Alle Dialoge schließen" name="Close All Dialogs"/>
<menu_item_call label="Täusche Abwesend-Status vor" name="Fake Away Status"/>
@@ -271,6 +270,7 @@
<menu_item_check label="Areal-Objektsuche" name="Object Area Search"/>
<menu_item_check label="Sound Explorer" name="Sound Explorer"/>
<menu_item_check label="Asset-Blacklist" name="Asset Blacklist"/>
<menu_item_check label="Medienfilter" name="Media Filter"/>
<menu_item_check label="Streaming-Audio Anzeige" name="Streaming Audio Display"/>
<menu_item_check label="Pose-Stand" name="Pose Stand"/>
<menu_item_check label="Region Debug Konsole" name="Region Debug Console"/>

View File

@@ -13,6 +13,32 @@
<menu bottom="97" create_jump_keys="true" drop_shadow="true" enabled="true"
height="439" label="Edit" left="38" mouse_opaque="false" name="Edit"
opaque="true" tear_off="false" width="153">
<menu_item_call label="Undo" name="Undo" shortcut="control|Z">
<on_click function="Edit.Undo"/>
<on_enable function="Edit.EnableUndo"/>
</menu_item_call>
<menu_item_call label="Redo" name="Redo" shortcut="control|Y">
<on_click function="Edit.Redo"/>
<on_enable function="Edit.EnableRedo"/>
</menu_item_call>
<menu_item_separator/>
<menu_item_call label="Cut" name="Cut" shortcut="control|X">
<on_click function="Edit.Cut"/>
<on_enable function="Edit.EnableCut"/>
</menu_item_call>
<menu_item_call label="Copy" name="Copy" shortcut="control|C">
<on_click function="Edit.Copy"/>
<on_enable function="Edit.EnableCopy"/>
</menu_item_call>
<menu_item_call label="Paste" name="Paste" shortcut="control|V">
<on_click function="Edit.Paste"/>
<on_enable function="Edit.EnablePaste"/>
</menu_item_call>
<menu_item_call label="Delete" name="Delete" shortcut="Del">
<on_click function="Edit.Delete"/>
<on_enable function="Edit.EnableDelete"/>
</menu_item_call>
<menu_item_separator/>
<menu_item_call bottom="-29" enabled="true" height="19" label="Preferences..." left="0"
mouse_opaque="true" name="Preferences..." shortcut="control|P" width="153">
<on_click function="ShowFloater" userdata="preferences" />

View File

@@ -357,11 +357,6 @@
<on_click function="ShowFloater" userdata="teleport history" />
<on_check function="FloaterVisible" userdata="teleport history" />
</menu_item_check>
<menu_item_check bottom="-192" enabled="true" height="19" label="Media Filter" left="0"
mouse_opaque="true" name="Media Filter" width="211">
<on_click function="ShowFloater" userdata="media filter" />
<on_check function="FloaterVisible" userdata="media filter" />
</menu_item_check>
<menu_item_separator bottom="-197" enabled="true" height="8" label="-----------" left="0"
mouse_opaque="true" name="separator2" width="211" />
<menu_item_check bottom="-216" enabled="true" height="19" label="Camera Controls" left="0"
@@ -1040,6 +1035,10 @@
<on_click function="ShowFloater" userdata="asset_blacklist"/>
<on_check function="FloaterVisible" userdata="asset_blacklist"/>
</menu_item_check>
<menu_item_check label="Media Filter" name="Media Filter">
<on_click function="ShowFloater" userdata="media filter" />
<on_check function="FloaterVisible" userdata="media filter" />
</menu_item_check>
<menu_item_check label="Streaming Audio Display" mouse_opaque="true" name="Streaming Audio Display">
<on_click function="ShowFloater" userdata="media ticker"/>
<on_check function="FloaterVisible" userdata="media ticker"/>

View File

@@ -151,7 +151,7 @@
icon="alert.tga"
name="MediaAlert"
type="alert">
The owner of this parcel has requested the following [TYPE] URL to be loaded by your viewer:
The owner of this parcel has requested the following [MEDIA_TYPE] URL to be loaded by your viewer:
[URL]

View File

@@ -141,10 +141,28 @@ when the Atmospheric Shaders are enabled.
<panel border="true" bottom="-400" height="244" left="50" name="DoF" label="Depth of Field" width="500">
<check_box bottom="-22" left="5" follows="top|left" control_name="RenderDepthOfField" label="Enable Depth of Field" tool_tip="Toggles a camera like Depth of Field effect on or off, often used to blur out distance or things that shouldnt be in focus" name="RenderDepthOfField"/>
<slider bottom_delta="-18" left_delta="6" follows="top|left" height="16" width="298" control_name="CameraFNumber" can_edit_text="true" decimal_digits="1" increment="0.1" label_width="110" max_val="128" min_val="0.50" name="CameraFNum" label="F-Number:" tool_tip="Camera f-number value for Depth of Field effect"/>
<slider bottom_delta="-18" follows="top|left" height="16" width="298" control_name="CameraFocalLength" can_edit_text="true" decimal_digits="1" increment="0.1" label_width="110" max_val="300" min_val="0" name="CameraFocal" label="Focal Length(mm):" tool_tip="Camera focal length for Depth of Field effect (in millimeters)"/>
<slider bottom_delta="-18" follows="top|left" height="16" width="298" control_name="CameraMaxCoF" can_edit_text="true" decimal_digits="1" increment="0.1" label_width="110" max_val="100" min_val="0" name="CameraCoF" label="Circle of Confusion:" tool_tip="Set the Camera circle of confusion"/>
<slider bottom_delta="-18" follows="top|left" height="16" width="298" control_name="CameraFocusTransitionTime" can_edit_text="true" decimal_digits="2" increment="0.01" label_width="110" max_val="20" min_val="0.01" name="CameraFocusTrans" label="Transition Time(secs):" tool_tip="Time taken to alter focus from one place to the next"/>
<slider bottom_delta="-18" follows="top|left" height="16" width="298" control_name="CameraDoFResScale" can_edit_text="true" decimal_digits="2" increment="0.01" label_width="110" val_width="35" max_val="1" min_val="0.25" name="CameraDoFRes" label="Resolution:" tool_tip="Set the Resolution (Quality) of each DoF pixel"/>
<button bottom_delta="-1" left_delta="300" follows="top|left" height="18" width="60" name="reset_f_num" label="Reset">
<button.commit_callback function="Prefs.Reset" parameter="CameraFNumber"/>
</button>
<slider bottom_delta="-17" left_delta="-300" follows="top|left" height="16" width="298" control_name="CameraFocalLength" can_edit_text="true" decimal_digits="1" increment="0.1" label_width="110" max_val="300" min_val="0" name="CameraFocal" label="Focal Length(mm):" tool_tip="Camera focal length for Depth of Field effect (in millimeters)"/>
<button bottom_delta="-1" left_delta="300" follows="top|left" height="18" width="60" name="reset_focal_length" label="Reset">
<button.commit_callback function="Prefs.Reset" parameter="CameraFocalLength"/>
</button>
<slider bottom_delta="-17" left_delta="-300" follows="top|left" height="16" width="298" control_name="CameraMaxCoF" can_edit_text="true" decimal_digits="1" increment="0.1" label_width="110" max_val="100" min_val="0" name="CameraCoF" label="Circle of Confusion:" tool_tip="Set the Camera circle of confusion"/>
<button bottom_delta="-1" left_delta="300" follows="top|left" height="18" width="60" name="reset_max_cof" label="Reset">
<button.commit_callback function="Prefs.Reset" parameter="CameraMaxCoF"/>
</button>
<slider bottom_delta="-17" left_delta="-300" follows="top|left" height="16" width="298" control_name="CameraFocusTransitionTime" can_edit_text="true" decimal_digits="2" increment="0.01" label_width="110" max_val="20" min_val="0.01" name="CameraFocusTrans" label="Transition Time(secs):" tool_tip="Time taken to alter focus from one place to the next"/>
<button bottom_delta="-1" left_delta="300" follows="top|left" height="18" width="60" name="reset_trans_time" label="Reset">
<button.commit_callback function="Prefs.Reset" parameter="CameraFocusTransitionTime"/>
</button>
<slider bottom_delta="-17" left_delta="-300" follows="top|left" height="16" width="298" control_name="CameraDoFResScale" can_edit_text="true" decimal_digits="2" increment="0.01" label_width="110" val_width="35" max_val="1" min_val="0.25" name="CameraDoFRes" label="Resolution:" tool_tip="Set the Resolution (Quality) of each DoF pixel"/>
<button bottom_delta="-1" left_delta="300" follows="top|left" height="18" width="60" name="reset_res_scale" label="Reset">
<button.commit_callback function="Prefs.Reset" parameter="CameraDoFResScale"/>
</button>
<button bottom_delta="-23" left_delta="-300" follows="top|left" height="20" width="298" name="reset_dof" label="Reset All Depth of Field Settings">
<button.commit_callback function="Graphics.ResetTab" parameter="DoF"/>
</button>
</panel>
</tab_container>
<string name="resolution_format">[RES_X] x [RES_Y]</string>

View File

@@ -74,7 +74,6 @@
<menu_item_check label="Participantes Activos" name="Active Speakers"/>
<menu_item_check label="Lista de Ignorados" name="Mute List"/>
<menu_item_check label="Historial de Teleporte" name="Teleport History"/>
<menu_item_check label="Filtro de Media" name="Media Filter"/>
<menu_item_check label="Controles de Cámara" name="Camera Controls"/>
<menu_item_check label="Controles de Movimiento" name="Movement Controls"/>
<menu_item_check label="Mapa del Mundo" name="World Map"/>
@@ -216,7 +215,7 @@
<menu_item_call label="Acerca de [APP_NAME]..." name="About Second Life..."/>
</menu>
<!-- ============================= -->
<menu label="[SHORT_APP_NAME]" name="Singularity">
<menu name="Singularity">
<menu_item_call label="Cerrar todos los diálogos" name="Close All Dialogs"/>
<menu_item_call label="Falso Estado Ausente" name="Fake Away Status"/>
<menu_item_call label="Forzar Sentarse en el Piso" name="Force Ground Sit"/>
@@ -225,9 +224,10 @@
<menu_item_check label="Búsqueda en Área" name="Object Area Search"/>
<menu_item_check label="Explorador de Sonidos" name="Sound Explorer"/>
<menu_item_check label="Lista Negra de Assets" name="Asset Blacklist"/>
<menu_item_check label="Filtro de Media" name="Media Filter"/>
<menu_item_check label="Mostrar Información de Audio" name="Streaming Audio Display"/>
<menu_item_check label="Pose Stand" name="Pose Stand"/>
<menu_item_check label="Consola de Depuración de Región" name="Region Debug Console"/>
<menu_item_call label="Redibujar" name="Rebake"/>
</menu>
</menu>
</menu_bar>

View File

@@ -83,7 +83,6 @@
<menu_item_check label="Intervenants actifs" name="Active Speakers"/>
<menu_item_check label="Liste des ignorés - Mute" name="Mute List"/>
<menu_item_check label="Historique des TP" name="Teleport History"/>
<menu_item_check label="Filtre Médias" name="Media Filter"/>
<menu_item_separator label="-----------" name="separator2"/>
<menu_item_check label="Contrôles de la caméra" name="Camera Controls"/>
<menu_item_check label="Contrôle des déplacements" name="Movement Controls"/>
@@ -243,4 +242,7 @@
</menu>
<menu_item_call label="A propos de [APP_NAME]" name="About Second Life..."/>
</menu>
<menu name="Singularity">
<menu_item_check label="Filtre Médias" name="Media Filter"/>
</menu>
</menu_bar>

View File

@@ -14,6 +14,7 @@
<check_box label="Garder les menus flottants opaques en arrière plan (Cliquer une fois en 1er plan pour activer)" tool_tip="peux poser des conflits avec certains thèmes (skin viewers)." name="unfocused_floaters_opaque"/>
<check_box label="Montrer les noms complets : display + ancient names dans les profils" tool_tip="Ne fonctionnera pas si les display sont désactivés dans le menu général." name="complete_name_profiles"/>
<check_box label="Garder les scripts en premier plan quand ils ne peuvent pas être compilés suite a une erreur" name="script_errors_steal_focus"/>
<check_box label="Se connecter aux régions voisines" name="connect_to_neighbors"/>
</panel>
<panel label="Tags/Couleurs" name="TagsColors">
<!-- Client tag options -->