summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authordolphin <dolphin@lindenlab.com>2014-03-13 15:10:51 -0700
committerdolphin <dolphin@lindenlab.com>2014-03-13 15:10:51 -0700
commite10ae3ba960cf030582378c454937dd326fcd436 (patch)
tree9e081186dd2ba82f8c151992eb75c930de6a3040 /indra
parenta0b8c3e029be9265152cb8919ebe9c2bc328b766 (diff)
Added a Report Abuse button to the experience profile
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llfloaterexperienceprofile.cpp18
-rw-r--r--indra/newview/llfloaterexperienceprofile.h3
-rwxr-xr-xindra/newview/llfloaterreporter.cpp37
-rwxr-xr-xindra/newview/llfloaterreporter.h3
-rw-r--r--indra/newview/skins/default/xui/en/floater_experienceprofile.xml35
5 files changed, 78 insertions, 18 deletions
diff --git a/indra/newview/llfloaterexperienceprofile.cpp b/indra/newview/llfloaterexperienceprofile.cpp
index 1c01a4bb9f..f8b4978a3d 100644
--- a/indra/newview/llfloaterexperienceprofile.cpp
+++ b/indra/newview/llfloaterexperienceprofile.cpp
@@ -50,6 +50,7 @@
#include "llevents.h"
#include "llfloatergroups.h"
#include "llnotifications.h"
+#include "llfloaterreporter.h"
#define XML_PANEL_EXPERIENCE_PROFILE "floater_experienceprofile.xml"
#define TF_NAME "experience_title"
@@ -73,17 +74,18 @@
#define PNL_GROUP "group_panel"
#define PNL_PERMS "perm panel"
-#define BTN_EDIT "edit_btn"
#define BTN_ALLOW "allow_btn"
-#define BTN_FORGET "forget_btn"
#define BTN_BLOCK "block_btn"
#define BTN_CANCEL "cancel_btn"
-#define BTN_SAVE "save_btn"
+#define BTN_CLEAR_LOCATION "clear_btn"
+#define BTN_EDIT "edit_btn"
#define BTN_ENABLE "enable_btn"
+#define BTN_FORGET "forget_btn"
#define BTN_PRIVATE "private_btn"
-#define BTN_SET_LOCATION "location_btn"
-#define BTN_CLEAR_LOCATION "clear_btn"
+#define BTN_REPORT "report_btn"
+#define BTN_SAVE "save_btn"
#define BTN_SET_GROUP "Group_btn"
+#define BTN_SET_LOCATION "location_btn"
class LLExperienceHandler : public LLCommandHandler
@@ -310,6 +312,7 @@ BOOL LLFloaterExperienceProfile::postBuild()
childSetAction(BTN_SET_LOCATION, boost::bind(&LLFloaterExperienceProfile::onClickLocation, this));
childSetAction(BTN_CLEAR_LOCATION, boost::bind(&LLFloaterExperienceProfile::onClickClear, this));
childSetAction(BTN_SET_GROUP, boost::bind(&LLFloaterExperienceProfile::onPickGroup, this));
+ childSetAction(BTN_REPORT, boost::bind(&LLFloaterExperienceProfile::onReportExperience, this));
getChild<LLTextEditor>(EDIT TF_DESC)->setKeystrokeCallback(boost::bind(&LLFloaterExperienceProfile::onFieldChanged, this));
getChild<LLUICtrl>(EDIT TF_MATURITY)->setCommitCallback(boost::bind(&LLFloaterExperienceProfile::onFieldChanged, this));
@@ -982,3 +985,8 @@ void LLFloaterExperienceProfile::setEditGroup( LLUUID group_id )
mPackage[LLExperienceCache::GROUP_ID] = group_id;
onFieldChanged();
}
+
+void LLFloaterExperienceProfile::onReportExperience()
+{
+ LLFloaterReporter::showFromExperience(mExperienceId);
+}
diff --git a/indra/newview/llfloaterexperienceprofile.h b/indra/newview/llfloaterexperienceprofile.h
index 5e9fd8f03a..b66df49a8a 100644
--- a/indra/newview/llfloaterexperienceprofile.h
+++ b/indra/newview/llfloaterexperienceprofile.h
@@ -70,7 +70,8 @@ protected:
void onClickLocation();
void onClickClear();
void onPickGroup();
- void onFieldChanged();
+ void onFieldChanged();
+ void onReportExperience();
void setEditGroup(LLUUID group_id);
diff --git a/indra/newview/llfloaterreporter.cpp b/indra/newview/llfloaterreporter.cpp
index 35b63c5480..1b9fc8c6d0 100755
--- a/indra/newview/llfloaterreporter.cpp
+++ b/indra/newview/llfloaterreporter.cpp
@@ -81,6 +81,7 @@
#include "llagentui.h"
#include "lltrans.h"
+#include "llexperiencecache.h"
const U32 INCLUDE_SCREENSHOT = 0x01 << 0;
@@ -227,6 +228,28 @@ void LLFloaterReporter::enableControls(BOOL enable)
getChildView("cancel_btn")->setEnabled(enable);
}
+void LLFloaterReporter::getExperienceInfo(const LLUUID& experience_id)
+{
+ mExperienceID = experience_id;
+
+ if (LLUUID::null != mExperienceID)
+ {
+ LLSD experience;
+ stringstream desc;
+ if(LLExperienceCache::get(mExperienceID, experience)){
+ setFromAvatarID(experience[LLExperienceCache::AGENT_ID]);
+ desc << "\nExperience id: " << mExperienceID;
+ }
+ else
+ {
+ desc << "Unable to retrieve details for id: "<< mExperienceID;
+ }
+
+ LLUICtrl* details = getChild<LLUICtrl>("details_edit");
+ details->setValue(desc.str());
+ }
+}
+
void LLFloaterReporter::getObjectInfo(const LLUUID& object_id)
{
// TODO --
@@ -493,6 +516,19 @@ void LLFloaterReporter::show(const LLUUID& object_id, const std::string& avatar_
}
+
+void LLFloaterReporter::showFromExperience( const LLUUID& experience_id )
+{
+ LLFloaterReporter* f = LLFloaterReg::showTypedInstance<LLFloaterReporter>("reporter");
+ f->getExperienceInfo(experience_id);
+
+ // Need to deselect on close
+ f->mDeselectOnClose = TRUE;
+
+ f->openFloater();
+}
+
+
// static
void LLFloaterReporter::showFromObject(const LLUUID& object_id)
{
@@ -854,6 +890,7 @@ void LLFloaterReporter::setPosBox(const LLVector3d &pos)
getChild<LLUICtrl>("pos_field")->setValue(pos_string);
}
+
// void LLFloaterReporter::setDescription(const std::string& description, LLMeanCollisionData *mcd)
// {
// LLFloaterReporter *self = LLFloaterReg::findTypedInstance<LLFloaterReporter>("reporter");
diff --git a/indra/newview/llfloaterreporter.h b/indra/newview/llfloaterreporter.h
index d54e7f6ab0..de3aa9ca5e 100755
--- a/indra/newview/llfloaterreporter.h
+++ b/indra/newview/llfloaterreporter.h
@@ -90,6 +90,7 @@ public:
static void showFromObject(const LLUUID& object_id);
static void showFromAvatar(const LLUUID& avatar_id, const std::string avatar_name);
+ static void showFromExperience(const LLUUID& experience_id);
static void onClickSend (void *userdata);
static void onClickCancel (void *userdata);
@@ -118,6 +119,7 @@ private:
void sendReportViaCaps(std::string url, std::string sshot_url, const LLSD & report);
void setPosBox(const LLVector3d &pos);
void enableControls(BOOL own_avatar);
+ void getExperienceInfo(const LLUUID& object_id);
void getObjectInfo(const LLUUID& object_id);
void callbackAvatarID(const uuid_vec_t& ids, const std::vector<LLAvatarName> names);
void setFromAvatarID(const LLUUID& avatar_id);
@@ -128,6 +130,7 @@ private:
LLUUID mObjectID;
LLUUID mScreenID;
LLUUID mAbuserID;
+ LLUUID mExperienceID;
// Store the real name, not the link, for upstream reporting
std::string mOwnerName;
BOOL mDeselectOnClose;
diff --git a/indra/newview/skins/default/xui/en/floater_experienceprofile.xml b/indra/newview/skins/default/xui/en/floater_experienceprofile.xml
index fa4e6c02db..67a7d5dad0 100644
--- a/indra/newview/skins/default/xui/en/floater_experienceprofile.xml
+++ b/indra/newview/skins/default/xui/en/floater_experienceprofile.xml
@@ -10,7 +10,7 @@
min_width="325"
min_height="325"
width="358"
- height="660">
+ height="650">
<floater.string
name="empty_slurl">
(none)
@@ -42,7 +42,7 @@
<tab_container
hide_tabs="true"
follows="all"
- height="620"
+ height="615"
layout="topleft"
left="5"
min_height="250"
@@ -52,7 +52,7 @@
<panel
background_visible="true"
follows="all"
- height="550"
+ height="540"
layout="topleft"
left="0"
min_height="250"
@@ -62,7 +62,7 @@
<scroll_container
color="DkGray2"
follows="all"
- height="532"
+ height="520"
layout="topleft"
left="9"
name="xp_scroll"
@@ -72,7 +72,7 @@
<panel
bg_alpha_color="DkGray2"
follows="top|left|right"
- height="510"
+ height="550"
layout="topleft"
left="0"
name="scrolling_panel"
@@ -81,9 +81,10 @@
min_width="315">
<layout_stack
follows="all"
- height="510"
+ height="550"
layout="topleft"
left="0"
+ animate="false"
top="0"
orientation="vertical"
width="315">
@@ -352,7 +353,7 @@
</layout_panel>
<layout_panel
follows="all"
- height="49"
+ height="75"
layout="topleft"
left="0"
top="5"
@@ -366,7 +367,7 @@
label="Allow"
layout="topleft"
name="allow_btn"
- width="80"
+ width="94"
top_pad="3"
left="10"
enabled="false"/>
@@ -376,7 +377,7 @@
label="Forget"
layout="topleft"
name="forget_btn"
- width="80"
+ width="94"
top_pad="-23"
left_pad="3"
enabled="false"/>
@@ -386,23 +387,33 @@
label="Block"
layout="topleft"
name="block_btn"
- width="80"
+ width="94"
top_pad="-23"
left_pad="3"
enabled="false"/>
<text
type="string"
+ halign="center"
length="1"
follows="left|top|right"
height="16"
layout="topleft"
left="10"
name="privileged"
- use_ellipses="true"
visible="false"
- right ="-10">
+ width="288">
This experience is enabled for all residents.
</text>
+ <button
+ follows="bottom|left"
+ height="23"
+ label="Report Abuse"
+ layout="topleft"
+ name="report_btn"
+ width="288"
+ top_pad="3"
+ left="10"
+ enabled="true"/>
</layout_panel>
</layout_stack>
</panel>