Merge
commit
7dacff89a0
|
|
@ -112,6 +112,10 @@ FSAreaSearch::FSAreaSearch(const LLSD& key) :
|
|||
mFilterDistance(false),
|
||||
mFilterDistanceMin(0),
|
||||
mFilterDistanceMax(999999),
|
||||
mFilterPermCopy(false),
|
||||
mFilterPermModify(false),
|
||||
mFilterPermTransfer(false),
|
||||
mFilterAgentParcelOnly(false),
|
||||
mBeaconColor(),
|
||||
mBeaconTextColor(),
|
||||
mBeacons(false),
|
||||
|
|
@ -836,6 +840,26 @@ void FSAreaSearch::matchObject(FSObjectProperties& details, LLViewerObject* obje
|
|||
}
|
||||
}
|
||||
|
||||
if (mFilterAgentParcelOnly && !LLViewerParcelMgr::instance().inAgentParcel(objectp->getPositionGlobal()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (mFilterPermCopy && !(details.owner_mask & PERM_COPY))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (mFilterPermModify && !(details.owner_mask & PERM_MODIFY))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (mFilterPermTransfer && !(details.owner_mask & PERM_TRANSFER))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
// Find text
|
||||
//-----------------------------------------------------------------------
|
||||
|
|
@ -2064,6 +2088,18 @@ BOOL FSPanelAreaSearchFilter::postBuild()
|
|||
mCheckboxMoaP = getChild<LLCheckBoxCtrl>("filter_moap");
|
||||
mCheckboxMoaP->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
|
||||
|
||||
mCheckboxPermCopy = getChild<LLCheckBoxCtrl>("filter_perm_copy");
|
||||
mCheckboxPermCopy->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
|
||||
|
||||
mCheckboxPermModify = getChild<LLCheckBoxCtrl>("filter_perm_modify");
|
||||
mCheckboxPermModify->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
|
||||
|
||||
mCheckboxPermTransfer = getChild<LLCheckBoxCtrl>("filter_perm_transfer");
|
||||
mCheckboxPermTransfer->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
|
||||
|
||||
mCheckboxAgentParcelOnly = getChild<LLCheckBoxCtrl>("filter_agent_parcel_only");
|
||||
mCheckboxAgentParcelOnly->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
|
||||
|
||||
return LLPanel::postBuild();
|
||||
}
|
||||
|
||||
|
|
@ -2124,6 +2160,12 @@ void FSPanelAreaSearchFilter::onCommitCheckbox()
|
|||
mFSAreaSearch->setExcludeChildPrims(mCheckboxExcludeChildPrim->get());
|
||||
|
||||
mFSAreaSearch->setExcludeNeighborRegions(mCheckboxExcludeNeighborRegions->get());
|
||||
|
||||
mFSAreaSearch->setFilterPermCopy(mCheckboxPermCopy->get());
|
||||
mFSAreaSearch->setFilterPermModify(mCheckboxPermModify->get());
|
||||
mFSAreaSearch->setFilterPermTransfer(mCheckboxPermTransfer->get());
|
||||
|
||||
mFSAreaSearch->setFilterAgentParcelOnly(mCheckboxAgentParcelOnly->get());
|
||||
}
|
||||
|
||||
void FSPanelAreaSearchFilter::onCommitSpin()
|
||||
|
|
|
|||
|
|
@ -158,6 +158,12 @@ public:
|
|||
void setFilterDistanceMin(S32 s) { mFilterDistanceMin = s; }
|
||||
void setFilterDistanceMax(S32 s) { mFilterDistanceMax = s; }
|
||||
|
||||
void setFilterPermCopy(bool b) { mFilterPermCopy = b; }
|
||||
void setFilterPermModify(bool b) { mFilterPermModify = b; }
|
||||
void setFilterPermTransfer(bool b) { mFilterPermTransfer = b; }
|
||||
|
||||
void setFilterAgentParcelOnly(bool b) { mFilterAgentParcelOnly = b; }
|
||||
|
||||
bool isActive() { return mActive; }
|
||||
|
||||
private:
|
||||
|
|
@ -243,6 +249,12 @@ private:
|
|||
bool mFilterClickAction;
|
||||
U8 mFilterClickActionType;
|
||||
|
||||
bool mFilterPermCopy;
|
||||
bool mFilterPermModify;
|
||||
bool mFilterPermTransfer;
|
||||
|
||||
bool mFilterAgentParcelOnly;
|
||||
|
||||
protected:
|
||||
static void* createPanelList(void* data);
|
||||
static void* createPanelFind(void* data);
|
||||
|
|
@ -380,6 +392,10 @@ private:
|
|||
LLCheckBoxCtrl* mCheckboxExcludetemporary;
|
||||
LLCheckBoxCtrl* mCheckboxExcludeChildPrim;
|
||||
LLCheckBoxCtrl* mCheckboxExcludeNeighborRegions;
|
||||
LLCheckBoxCtrl* mCheckboxPermCopy;
|
||||
LLCheckBoxCtrl* mCheckboxPermModify;
|
||||
LLCheckBoxCtrl* mCheckboxPermTransfer;
|
||||
LLCheckBoxCtrl* mCheckboxAgentParcelOnly;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -4413,10 +4413,14 @@ void LLFolderBridge::buildContextMenuFolderOptions(U32 flags, menuentry_vec_t&
|
|||
// Only enable add/replace outfit for non-system folders.
|
||||
if (!is_system_folder)
|
||||
{
|
||||
// <FS:Ansariel> FIRE-3302: "Add to Current Outfit" missing for inventory outfit folder
|
||||
items.push_back(std::string("Add To Outfit"));
|
||||
|
||||
// Adding an outfit onto another (versus replacing) doesn't make sense.
|
||||
if (type != LLFolderType::FT_OUTFIT)
|
||||
{
|
||||
items.push_back(std::string("Add To Outfit"));
|
||||
// <FS:Ansariel> FIRE-3302: "Add to Current Outfit" missing for inventory outfit folder
|
||||
//items.push_back(std::string("Add To Outfit"));
|
||||
// <FS:TT> Patch: ReplaceWornItemsOnly
|
||||
items.push_back(std::string("Wear Items"));
|
||||
// </FS:TT>
|
||||
|
|
|
|||
|
|
@ -3755,8 +3755,8 @@ void LLInventoryModel::wearWearablesOnAvatar(const LLUUID& category_id)
|
|||
mItemArray,
|
||||
LLInventoryModel::EXCLUDE_TRASH,
|
||||
is_wearable);
|
||||
S32 i;
|
||||
S32 wearable_count = mItemArray.size();
|
||||
size_t i;
|
||||
size_t wearable_count = mItemArray.size();
|
||||
|
||||
if (wearable_count > 0) //Loop through wearables.
|
||||
{
|
||||
|
|
@ -3786,13 +3786,13 @@ void LLInventoryModel::wearWearablesOnAvatar(const LLUUID& category_id)
|
|||
//take the first one from the list, since the list is diminishing.
|
||||
LLViewerWearable* wearable = gAgentWearables.getViewerWearable((LLWearableType::EType)iType,0);
|
||||
//if the item is from our folder - don't remove it
|
||||
//for (LLViewerInventoryItem *item = item_array.get(i);
|
||||
if ( mItemArray.end() == std::find( mItemArray.begin(), mItemArray.end(), (LLViewerInventoryItem*)wearable ) )
|
||||
{
|
||||
LLAppearanceMgr::instance().removeItemFromAvatar(wearable->getItemID());
|
||||
}
|
||||
//LL_INFOS() << "Removing wearable name: " << wearable->getName() << LL_ENDL;
|
||||
}
|
||||
|
||||
//now add the first item (replace just in case)
|
||||
LLAppearanceMgr::instance().wearItemOnAvatar(item->getUUID(), true, true);
|
||||
//LL_INFOS() << " Wearing item: " << item->getName() << " with replace=true" << LL_ENDL;
|
||||
|
|
@ -3827,8 +3827,8 @@ void LLInventoryModel::wearAttachmentsOnAvatar(const LLUUID& category_id)
|
|||
mObjArray,
|
||||
LLInventoryModel::EXCLUDE_TRASH,
|
||||
is_object);
|
||||
S32 i;
|
||||
S32 obj_count = mObjArray.size();
|
||||
size_t i;
|
||||
size_t obj_count = mObjArray.size();
|
||||
|
||||
if (obj_count > 0)
|
||||
{
|
||||
|
|
@ -3857,8 +3857,8 @@ void LLInventoryModel::wearGesturesOnAvatar(const LLUUID& category_id)
|
|||
gest_item_array,
|
||||
LLInventoryModel::EXCLUDE_TRASH,
|
||||
is_gesture);
|
||||
S32 i;
|
||||
S32 gest_count = gest_item_array.size();
|
||||
size_t i;
|
||||
size_t gest_count = gest_item_array.size();
|
||||
|
||||
if (gest_count > 0)
|
||||
{
|
||||
|
|
@ -3881,7 +3881,7 @@ void LLInventoryModel::wearAttachmentsOnAvatarCheckRemove(LLViewerObject *object
|
|||
LLUUID objID = object->getAttachmentItemID();
|
||||
bool isObjectInList = false;
|
||||
|
||||
for (S32 i = 0; i < mObjArray.size(); ++i)
|
||||
for (size_t i = 0; i < mObjArray.size(); ++i)
|
||||
{
|
||||
if (objID == (mObjArray.at(i))->getUUID())
|
||||
{
|
||||
|
|
@ -3891,7 +3891,7 @@ void LLInventoryModel::wearAttachmentsOnAvatarCheckRemove(LLViewerObject *object
|
|||
}
|
||||
|
||||
//all attachment points
|
||||
S32 obj_count = mObjArray.size();
|
||||
size_t obj_count = mObjArray.size();
|
||||
|
||||
if (isObjectInList && attachment != NULL)
|
||||
{
|
||||
|
|
@ -3915,7 +3915,7 @@ void LLInventoryModel::wearAttachmentsOnAvatarCheckRemove(LLViewerObject *object
|
|||
|
||||
//if any of those things aren't in our list - remove them
|
||||
bool isFound = false;
|
||||
for (S32 j = 0; j < obj_count; ++j)
|
||||
for (size_t j = 0; j < obj_count; ++j)
|
||||
{
|
||||
LLViewerInventoryItem *fold_item = mObjArray.at(j);
|
||||
if (att_id == fold_item->getUUID())
|
||||
|
|
|
|||
|
|
@ -114,29 +114,41 @@ std::string LLNotificationListItem::buildNotificationDate(const LLDate& time_sta
|
|||
std::string timeStr;
|
||||
switch(time_type)
|
||||
{
|
||||
// <FS:Ansariel> FIRE-17649: Localizable date formats for group notices
|
||||
//case Local:
|
||||
// timeStr = "[" + LLTrans::getString("LTimeMthNum") + "]/["
|
||||
// +LLTrans::getString("LTimeDay")+"]/["
|
||||
// +LLTrans::getString("LTimeYear")+"] ["
|
||||
// +LLTrans::getString("LTimeHour")+"]:["
|
||||
// +LLTrans::getString("LTimeMin")+ "]";
|
||||
// break;
|
||||
//case UTC:
|
||||
// timeStr = "[" + LLTrans::getString("UTCTimeMth") + "]/["
|
||||
// +LLTrans::getString("UTCTimeDay")+"]/["
|
||||
// +LLTrans::getString("UTCTimeYr")+"] ["
|
||||
// +LLTrans::getString("UTCTimeHr")+"]:["
|
||||
// +LLTrans::getString("UTCTimeMin")+"] ["
|
||||
// +LLTrans::getString("UTCTimeTimezone")+"]";
|
||||
// break;
|
||||
//case SLT:
|
||||
//default:
|
||||
// timeStr = "[" + LLTrans::getString("TimeMonth") + "]/["
|
||||
// +LLTrans::getString("TimeDay")+"]/["
|
||||
// +LLTrans::getString("TimeYear")+"] ["
|
||||
// +LLTrans::getString("TimeHour")+"]:["
|
||||
// +LLTrans::getString("TimeMin")+"]";
|
||||
// break;
|
||||
case Local:
|
||||
timeStr = "[" + LLTrans::getString("LTimeMthNum") + "]/["
|
||||
+LLTrans::getString("LTimeDay")+"]/["
|
||||
+LLTrans::getString("LTimeYear")+"] ["
|
||||
+LLTrans::getString("LTimeHour")+"]:["
|
||||
+LLTrans::getString("LTimeMin")+ "]";
|
||||
timeStr = LLTrans::getString("NotificationItemDateStringLocal");
|
||||
break;
|
||||
case UTC:
|
||||
timeStr = "[" + LLTrans::getString("UTCTimeMth") + "]/["
|
||||
+LLTrans::getString("UTCTimeDay")+"]/["
|
||||
+LLTrans::getString("UTCTimeYr")+"] ["
|
||||
+LLTrans::getString("UTCTimeHr")+"]:["
|
||||
+LLTrans::getString("UTCTimeMin")+"] ["
|
||||
+LLTrans::getString("UTCTimeTimezone")+"]";
|
||||
timeStr = LLTrans::getString("NotificationItemDateStringUTC");
|
||||
break;
|
||||
case SLT:
|
||||
default:
|
||||
timeStr = "[" + LLTrans::getString("TimeMonth") + "]/["
|
||||
+LLTrans::getString("TimeDay")+"]/["
|
||||
+LLTrans::getString("TimeYear")+"] ["
|
||||
+LLTrans::getString("TimeHour")+"]:["
|
||||
+LLTrans::getString("TimeMin")+"]";
|
||||
timeStr = LLTrans::getString("NotificationItemDateStringSLT");
|
||||
break;
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
LLSD substitution;
|
||||
substitution["datetime"] = time_stamp;
|
||||
|
|
|
|||
|
|
@ -203,12 +203,16 @@ std::string build_notice_date(const U32& the_time)
|
|||
time(&t);
|
||||
}
|
||||
|
||||
std::string dateStr = "["+LLTrans::getString("LTimeYear")+"]/["
|
||||
+LLTrans::getString("LTimeMthNum")+"]/["
|
||||
+LLTrans::getString("LTimeDay")+"] ["
|
||||
+LLTrans::getString("LTimeHour")+"]:["
|
||||
+LLTrans::getString("LTimeMin")+"]:["
|
||||
+LLTrans::getString("LTimeSec")+"]";
|
||||
// <FS:Ansariel> FIRE-17649: Localizable date formats for group notices
|
||||
//std::string dateStr = "["+LLTrans::getString("LTimeYear")+"]/["
|
||||
// +LLTrans::getString("LTimeMthNum")+"]/["
|
||||
// +LLTrans::getString("LTimeDay")+"] ["
|
||||
// +LLTrans::getString("LTimeHour")+"]:["
|
||||
// +LLTrans::getString("LTimeMin")+"]:["
|
||||
// +LLTrans::getString("LTimeSec")+"]";
|
||||
std::string dateStr = LLTrans::getString("GroupNoticesPanelDateString");
|
||||
// </FS:Ansariel>
|
||||
|
||||
LLSD substitution;
|
||||
substitution["datetime"] = (S32) t;
|
||||
LLStringUtil::format (dateStr, substitution);
|
||||
|
|
|
|||
|
|
@ -95,15 +95,18 @@ LLToastGroupNotifyPanel::LLToastGroupNotifyPanel(const LLNotificationPtr& notifi
|
|||
//message body
|
||||
const std::string& message = payload["message"].asString();
|
||||
|
||||
std::string timeStr = "["+LLTrans::getString("TimeWeek")+"], ["
|
||||
+LLTrans::getString("TimeMth")+"] ["
|
||||
+LLTrans::getString("TimeDay")+"] ["
|
||||
+LLTrans::getString("TimeYear")+"] ["
|
||||
+LLTrans::getString("TimeHour12")+"]:["
|
||||
+LLTrans::getString("TimeMin")+"]:["
|
||||
+LLTrans::getString("TimeSec")+"] ["
|
||||
+LLTrans::getString("TimeAMPM")+"] ["
|
||||
+LLTrans::getString("TimeTimezone")+"]";
|
||||
// <FS:Ansariel> FIRE-17649: Localizable date formats for group notices
|
||||
//std::string timeStr = "["+LLTrans::getString("TimeWeek")+"], ["
|
||||
// +LLTrans::getString("TimeMth")+"] ["
|
||||
// +LLTrans::getString("TimeDay")+"] ["
|
||||
// +LLTrans::getString("TimeYear")+"] ["
|
||||
// +LLTrans::getString("TimeHour12")+"]:["
|
||||
// +LLTrans::getString("TimeMin")+"]:["
|
||||
// +LLTrans::getString("TimeSec")+"] ["
|
||||
// +LLTrans::getString("TimeAMPM")+"] ["
|
||||
// +LLTrans::getString("TimeTimezone")+"]";
|
||||
std::string timeStr = LLTrans::getString("GroupNoticesToastDateString");
|
||||
// </FS:Ansariel>
|
||||
const LLDate timeStamp = notification->getDate();
|
||||
LLDate notice_date = timeStamp.notNull() ? timeStamp : payload["received_time"].asDate();
|
||||
LLSD substitution;
|
||||
|
|
|
|||
|
|
@ -59,6 +59,9 @@
|
|||
<check_box name="filter_temporary" label="Temporär"/>
|
||||
<check_box name="filter_attachment" label="Anhang"/>
|
||||
<check_box name="filter_moap" label="Shared Media"/>
|
||||
<check_box name="filter_perm_copy" label="Kopieren"/>
|
||||
<check_box name="filter_perm_modify" label="Bearbeiten"/>
|
||||
<check_box name="filter_perm_transfer" label="Transferieren"/>
|
||||
<check_box name="filter_for_sale" label="Zum Verkauf zwischen" width="150"/>
|
||||
<text name="and">
|
||||
und
|
||||
|
|
@ -82,6 +85,7 @@
|
|||
<text name="and2">
|
||||
und
|
||||
</text>
|
||||
<check_box name="filter_agent_parcel_only" label="Nur aktuelle Parzelle" width="140"/>
|
||||
<text name="only_list">
|
||||
Objekte mit diesen Eigenschaften ausschließen:
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -6566,4 +6566,19 @@ Setzen Sie den Editorpfad in Anführungszeichen
|
|||
<string name="CallingCardOnlineLabelSuffix">
|
||||
(online)
|
||||
</string>
|
||||
<string name="GroupNoticesPanelDateString">
|
||||
[day,datetime,local].[mthnum,datetime,local].[year,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
|
||||
</string>
|
||||
<string name="GroupNoticesToastDateString">
|
||||
[wkday,datetime,slt]., [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [timezone,datetime,slt]
|
||||
</string>
|
||||
<string name="NotificationItemDateStringLocal">
|
||||
[day,datetime,local].[mthnum,datetime,local].[year,datetime,local] [hour,datetime,local]:[min,datetime,local]
|
||||
</string>
|
||||
<string name="NotificationItemDateStringUTC">
|
||||
[day,datetime,utc].[mth,datetime,utc].[year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc]
|
||||
</string>
|
||||
<string name="NotificationItemDateStringSLT">
|
||||
[day,datetime,slt].[mthnum,datetime,slt].[year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]
|
||||
</string>
|
||||
</strings>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
help_topic="fs_area_search"
|
||||
title="Area Search for Objects"
|
||||
min_width="430"
|
||||
min_height="355"
|
||||
min_height="395"
|
||||
width="610"
|
||||
height="435"
|
||||
save_rect="true"
|
||||
|
|
@ -353,6 +353,28 @@
|
|||
label="Shared Media"
|
||||
left_pad="0"
|
||||
width="100"/>
|
||||
<check_box
|
||||
follows="top|left"
|
||||
top_pad="10"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="filter_perm_copy"
|
||||
label="Copy"
|
||||
width="100"/>
|
||||
<check_box
|
||||
follows="top|left"
|
||||
layout="topleft"
|
||||
left_pad="0"
|
||||
name="filter_perm_modify"
|
||||
label="Modify"
|
||||
width="100"/>
|
||||
<check_box
|
||||
follows="top|left"
|
||||
layout="topleft"
|
||||
left_pad="0"
|
||||
name="filter_perm_transfer"
|
||||
label="Transfer"
|
||||
width="100"/>
|
||||
<check_box
|
||||
follows="top|left"
|
||||
height="20"
|
||||
|
|
@ -504,10 +526,18 @@
|
|||
name="max_distance"
|
||||
top_delta="-4"
|
||||
width="80"/>
|
||||
<check_box
|
||||
follows="top|left"
|
||||
top_pad="22"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="filter_agent_parcel_only"
|
||||
label="Current Parcel only"
|
||||
width="80"/>
|
||||
<text
|
||||
name="only_list"
|
||||
height="15"
|
||||
top_pad="20"
|
||||
top_pad="5"
|
||||
follows="top|left"
|
||||
left="5">
|
||||
Exclude objects that are:
|
||||
|
|
@ -552,7 +582,7 @@
|
|||
name="exclude_neighbor_region"
|
||||
label="Neighboring Regions"
|
||||
width="80"/>
|
||||
<button
|
||||
<button
|
||||
name="apply"
|
||||
label="Apply"
|
||||
mouse_opaque="true"
|
||||
|
|
|
|||
|
|
@ -2939,4 +2939,10 @@ Try enclosing path to the editor with double quotes.
|
|||
|
||||
<string name="InvOfferGroupNoticeName">A group member named [NAME]</string>
|
||||
<string name="CallingCardOnlineLabelSuffix">(online)</string>
|
||||
|
||||
<string name="GroupNoticesPanelDateString">[year,datetime,local]/[mthnum,datetime,local]/[day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]</string>
|
||||
<string name="GroupNoticesToastDateString">[wkday,datetime,slt], [mth,datetime,slt] [day,datetime,slt] [year,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt] [timezone,datetime,slt]</string>
|
||||
<string name="NotificationItemDateStringLocal">[mthnum,datetime,local]/[day,datetime,local]/[year,datetime,local] [hour,datetime,local]:[min,datetime,local]</string>
|
||||
<string name="NotificationItemDateStringUTC">[mth,datetime,utc]/[day,datetime,utc]/[year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc]</string>
|
||||
<string name="NotificationItemDateStringSLT">[mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]</string>
|
||||
</strings>
|
||||
|
|
|
|||
Loading…
Reference in New Issue