Add group editing for experiences
parent
c1f730ed46
commit
49f08d775d
|
|
@ -245,12 +245,16 @@ void LLFloaterExperiencePicker::onBtnSelect()
|
|||
|
||||
getSelectedExperienceIds(results, experience_ids);
|
||||
mSelectionCallback(experience_ids);
|
||||
getChild<LLScrollListCtrl>(LIST_RESULTS)->deselectAllItems(TRUE);
|
||||
if(mCloseOnSelect)
|
||||
{
|
||||
mCloseOnSelect = FALSE;
|
||||
closeFloater();
|
||||
}
|
||||
}
|
||||
getChild<LLScrollListCtrl>(LIST_RESULTS)->deselectAllItems(TRUE);
|
||||
if(mCloseOnSelect)
|
||||
else
|
||||
{
|
||||
mCloseOnSelect = FALSE;
|
||||
closeFloater();
|
||||
onBtnProfile();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@
|
|||
#include "lltrans.h"
|
||||
#include "llviewerregion.h"
|
||||
#include "llevents.h"
|
||||
#include "llfloatergroups.h"
|
||||
|
||||
#define XML_PANEL_EXPERIENCE_PROFILE "floater_experienceprofile.xml"
|
||||
#define TF_NAME "experience_title"
|
||||
|
|
@ -81,6 +82,7 @@
|
|||
#define BTN_PRIVATE "private_btn"
|
||||
#define BTN_SET_LOCATION "location_btn"
|
||||
#define BTN_CLEAR_LOCATION "clear_btn"
|
||||
#define BTN_SET_GROUP "Group_btn"
|
||||
|
||||
|
||||
|
||||
|
|
@ -304,10 +306,10 @@ BOOL LLFloaterExperienceProfile::postBuild()
|
|||
childSetAction(BTN_FORGET, boost::bind(&LLFloaterExperienceProfile::onClickForget, this));
|
||||
childSetAction(BTN_BLOCK, boost::bind(&LLFloaterExperienceProfile::onClickPermission, this, "Block"));
|
||||
childSetAction(BTN_CANCEL, boost::bind(&LLFloaterExperienceProfile::onClickCancel, this));
|
||||
childSetAction(BTN_SAVE, boost::bind(&LLFloaterExperienceProfile::onClickSave, this));
|
||||
childSetAction(BTN_SET_LOCATION, boost::bind(&LLFloaterExperienceProfile::onClickLocation, this));
|
||||
childSetAction(BTN_CLEAR_LOCATION, boost::bind(&LLFloaterExperienceProfile::onClickClear, this));
|
||||
|
||||
childSetAction(BTN_SAVE, boost::bind(&LLFloaterExperienceProfile::onClickSave, this));
|
||||
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));
|
||||
|
||||
getChild<LLTextEditor>(EDIT TF_DESC)->setKeystrokeCallback(boost::bind(&LLFloaterExperienceProfile::onFieldChanged, this));
|
||||
getChild<LLUICtrl>(EDIT TF_MATURITY)->setCommitCallback(boost::bind(&LLFloaterExperienceProfile::onFieldChanged, this));
|
||||
|
|
@ -498,10 +500,15 @@ void LLFloaterExperienceProfile::refreshExperience( const LLSD& experience )
|
|||
|
||||
|
||||
id = experience[LLExperienceCache::GROUP_ID].asUUID();
|
||||
bool id_null = id.isNull();
|
||||
child = getChild<LLTextBox>(TF_GROUP);
|
||||
value = LLSLURL("group", id, "inspect").getSLURLString();
|
||||
child->setText(value);
|
||||
getChild<LLLayoutPanel>(PNL_GROUP)->setVisible(id.notNull());
|
||||
getChild<LLLayoutPanel>(PNL_GROUP)->setVisible(!id_null);
|
||||
|
||||
setEditGroup(id);
|
||||
|
||||
getChild<LLButton>(BTN_SET_GROUP)->setEnabled(experience[LLExperienceCache::AGENT_ID].asUUID() == gAgent->getID());
|
||||
|
||||
LLCheckBoxCtrl* enable = getChild<LLCheckBoxCtrl>(EDIT BTN_ENABLE);
|
||||
S32 properties = mExperienceDetails[LLExperienceCache::PROPERTIES].asInteger();
|
||||
|
|
@ -916,3 +923,28 @@ void LLFloaterExperienceProfile::updatePackage()
|
|||
|
||||
mPackage[LLExperienceCache::PROPERTIES] = properties;
|
||||
}
|
||||
|
||||
void LLFloaterExperienceProfile::onPickGroup()
|
||||
{
|
||||
LLFloater* parent_floater = gFloaterView->getParentFloater(this);
|
||||
|
||||
LLFloaterGroupPicker* widget = LLFloaterReg::showTypedInstance<LLFloaterGroupPicker>("group_picker", LLSD(gAgent.getID()));
|
||||
if (widget)
|
||||
{
|
||||
widget->setSelectGroupCallback(boost::bind(&LLFloaterExperienceProfile::setEditGroup, this, _1));
|
||||
if (parent_floater)
|
||||
{
|
||||
LLRect new_rect = gFloaterView->findNeighboringPosition(parent_floater, widget);
|
||||
widget->setOrigin(new_rect.mLeft, new_rect.mBottom);
|
||||
parent_floater->addDependentFloater(widget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterExperienceProfile::setEditGroup( LLUUID group_id )
|
||||
{
|
||||
LLTextBox* child = getChild<LLTextBox>(EDIT TF_GROUP);
|
||||
std::string value = LLSLURL("group", group_id, "inspect").getSLURLString();
|
||||
child->setText(value);
|
||||
mPackage[LLExperienceCache::GROUP_ID] = group_id;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,9 +68,12 @@ protected:
|
|||
void onClickCancel();
|
||||
void onClickSave();
|
||||
void onClickLocation();
|
||||
void onClickClear();
|
||||
void onClickClear();
|
||||
void onPickGroup();
|
||||
void onFieldChanged();
|
||||
|
||||
void setEditGroup(LLUUID group_id);
|
||||
|
||||
void changeToView();
|
||||
|
||||
void experienceForgotten();
|
||||
|
|
|
|||
|
|
@ -37,6 +37,9 @@
|
|||
#include "llnotificationsutil.h"
|
||||
|
||||
|
||||
|
||||
#define SHOW_RECENT_TAB (0)
|
||||
|
||||
class LLExperienceListResponder : public LLHTTPClient::Responder
|
||||
{
|
||||
public:
|
||||
|
|
@ -106,9 +109,11 @@ BOOL LLFloaterExperiences::postBuild()
|
|||
addTab("Blocked_Experiences_Tab", false);
|
||||
addTab("Admin_Experiences_Tab", false);
|
||||
addTab("Contrib_Experiences_Tab", false);
|
||||
addTab("Recent_Experiences_Tab", false);
|
||||
LLPanelExperiences* owned = addTab("Owned_Experiences_Tab", false);
|
||||
owned->setButtonAction("acquire", boost::bind(&LLFloaterExperiences::sendPurchaseRequest, this));
|
||||
#if SHOW_RECENT_TAB
|
||||
addTab("Recent_Experiences_Tab", false);
|
||||
#endif //SHOW_RECENT_TAB
|
||||
resizeToTabs();
|
||||
|
||||
|
||||
|
|
@ -118,8 +123,10 @@ BOOL LLFloaterExperiences::postBuild()
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
void LLFloaterExperiences::clearFromRecent(const LLSD& ids)
|
||||
{
|
||||
#if SHOW_RECENT_TAB
|
||||
LLTabContainer* tabs = getChild<LLTabContainer>("xp_tabs");
|
||||
|
||||
LLPanelExperiences* tab = (LLPanelExperiences*)tabs->getPanelByName("Recent_Experiences_Tab");
|
||||
|
|
@ -127,10 +134,12 @@ void LLFloaterExperiences::clearFromRecent(const LLSD& ids)
|
|||
return;
|
||||
|
||||
tab->removeExperiences(ids);
|
||||
#endif // SHOW_RECENT_TAB
|
||||
}
|
||||
|
||||
void LLFloaterExperiences::setupRecentTabs()
|
||||
{
|
||||
#if SHOW_RECENT_TAB
|
||||
LLTabContainer* tabs = getChild<LLTabContainer>("xp_tabs");
|
||||
|
||||
LLPanelExperiences* tab = (LLPanelExperiences*)tabs->getPanelByName("Recent_Experiences_Tab");
|
||||
|
|
@ -152,8 +161,10 @@ void LLFloaterExperiences::setupRecentTabs()
|
|||
}
|
||||
|
||||
tab->setExperienceList(recent);
|
||||
#endif // SHOW_RECENT_TAB
|
||||
}
|
||||
|
||||
|
||||
void LLFloaterExperiences::resizeToTabs()
|
||||
{
|
||||
const S32 TAB_WIDTH_PADDING = 16;
|
||||
|
|
|
|||
|
|
@ -72,17 +72,16 @@
|
|||
<panel
|
||||
bg_alpha_color="DkGray2"
|
||||
follows="top|left|right"
|
||||
height="480"
|
||||
height="510"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
min_height="480"
|
||||
name="scrolling_panel"
|
||||
top="0"
|
||||
width="315"
|
||||
min_width="315">
|
||||
<layout_stack
|
||||
follows="all"
|
||||
height="480"
|
||||
height="510"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
top="0"
|
||||
|
|
@ -421,7 +420,7 @@
|
|||
<scroll_container
|
||||
color="DkGray2"
|
||||
follows="all"
|
||||
height="525"
|
||||
height="520"
|
||||
layout="topleft"
|
||||
left="9"
|
||||
name="edit_xp_scroll"
|
||||
|
|
@ -431,7 +430,7 @@
|
|||
<panel
|
||||
bg_alpha_color="DkGray2"
|
||||
follows="top|left|right"
|
||||
height="525"
|
||||
height="590"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="edit_scrolling_panel"
|
||||
|
|
@ -485,6 +484,25 @@
|
|||
text_color="black"
|
||||
right="-11"
|
||||
word_wrap="true"/>
|
||||
<button
|
||||
top_pad="10"
|
||||
left="10"
|
||||
width="125"
|
||||
height="23"
|
||||
name="Group_btn"
|
||||
label="Group"
|
||||
/>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="left|top|right"
|
||||
height="14"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
top_pad="-18"
|
||||
use_ellipses="true"
|
||||
name="edit_GroupText"
|
||||
right="-10" />
|
||||
<text
|
||||
top_pad="10"
|
||||
type="string"
|
||||
|
|
@ -565,10 +583,10 @@
|
|||
top_pad="-14"
|
||||
use_ellipses="true"
|
||||
name="edit_LocationTextText"
|
||||
right="-10"></text>
|
||||
right="-10" />
|
||||
<button
|
||||
left="10"
|
||||
width="150"
|
||||
width="125"
|
||||
height="23"
|
||||
name="location_btn"
|
||||
label="Set to Current"
|
||||
|
|
@ -577,9 +595,9 @@
|
|||
top_pad="-23"
|
||||
follows="top|right"
|
||||
right="-10"
|
||||
width="80"
|
||||
width="125"
|
||||
name="clear_btn"
|
||||
label="Clear"/>
|
||||
label="Clear Location"/>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
|
|
@ -610,10 +628,11 @@
|
|||
tool_tip=""
|
||||
label="Enable Experience"
|
||||
name="edit_enable_btn"/>
|
||||
<check_box width="130"
|
||||
<check_box width="125"
|
||||
height="21"
|
||||
top_pad="-21"
|
||||
right="-10"
|
||||
visible="false"
|
||||
layout="topleft"
|
||||
follows="top|left|right"
|
||||
label="Hide In Search"
|
||||
|
|
@ -624,7 +643,7 @@
|
|||
label="Back"
|
||||
layout="topleft"
|
||||
name="cancel_btn"
|
||||
width="120"
|
||||
width="125"
|
||||
top_pad="15"
|
||||
left="10"
|
||||
visible="true"/>
|
||||
|
|
@ -635,12 +654,12 @@
|
|||
layout="topleft"
|
||||
name="save_btn"
|
||||
top_pad="-23"
|
||||
width="120"
|
||||
width="125"
|
||||
right="-10"
|
||||
visible="true"/>
|
||||
<text
|
||||
follows="left|top|right"
|
||||
height="50"
|
||||
height="25"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
top_pad="10"
|
||||
|
|
|
|||
|
|
@ -6997,20 +6997,33 @@ Unable to acquire a new experience:
|
|||
name="okbutton"
|
||||
yestext="OK"/>
|
||||
</notification>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<notification
|
||||
icon="notify.tga"
|
||||
name="TeleportedHomeExperienceRemoved"
|
||||
persist="true"
|
||||
type="notify">
|
||||
You have been teleported from the [region_name] for removing the experience secondlife:///app/experience/[public_id]/profile and are no longer permitted in the region.
|
||||
You have been teleported from the region [region_name] for removing the experience secondlife:///app/experience/[public_id]/profile and are no longer permitted in the region.
|
||||
<form name="form">
|
||||
<ignore name="ignore"
|
||||
text="Kicked from region for removing an experience"/>
|
||||
</form>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="notify.tga"
|
||||
name="TrustedExperienceEntry"
|
||||
persist="true"
|
||||
type="notify">
|
||||
You have been allowed into the region [region_name] by participating in the trusted experience secondlife:///app/experience/[public_id]/profile removing this experience may kick you from the region.
|
||||
<form name="form">
|
||||
<ignore name="ignore"
|
||||
text="Allowed into a region by an experience"/>
|
||||
</form>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="notify.tga"
|
||||
name="ScriptQuestionExperience"
|
||||
|
|
|
|||
Loading…
Reference in New Issue