Merge remote-tracking branch 'Liru/master'
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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})
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 -->
|
||||
|
||||
Reference in New Issue
Block a user