PanteraPolnocy 2016-01-27 20:03:45 +01:00
commit 7dacff89a0
11 changed files with 181 additions and 45 deletions

View File

@ -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()

View File

@ -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;
};

View File

@ -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>

View File

@ -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())

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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>

View File

@ -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>

View File

@ -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"

View File

@ -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>