Implemented task EXT-6559 (Appearance panel: Add edit button in place of the image display next to current look).
- Changed the topmost part of the Appearance panel: * Added new "Edit current outfit" button. * Implemented COF status display (unsaved/wearing) according to the spec. * Minor XUI changes (font / dimensions / bg color). - Removed the temporary "Edit current outfit" button from the bottom of the Appearance panel. - Removed the temporary "ShowDebugAppearanceEditor" setting. TODO: use icons from the spec (currently missing). Reviewed by Nyx at https://codereview.productengine.com/secondlife/r/339/ --HG-- branch : product-enginemaster
parent
f247dc68df
commit
ccd4215fd4
|
|
@ -7963,17 +7963,6 @@
|
|||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>ShowDebugAppearanceEditor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show debugging appearance editor</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>ShowEmptyFoldersWhenSearching</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -68,7 +68,6 @@ static const std::string OUTFITS_TAB_NAME = "outfitslist_tab";
|
|||
static const std::string COF_TAB_NAME = "cof_tab";
|
||||
|
||||
static LLRegisterPanelClassWrapper<LLPanelOutfitsInventory> t_inventory("panel_outfits_inventory");
|
||||
bool LLPanelOutfitsInventory::sShowDebugEditor = false;
|
||||
|
||||
|
||||
LLPanelOutfitsInventory::LLPanelOutfitsInventory() :
|
||||
|
|
@ -88,7 +87,6 @@ LLPanelOutfitsInventory::~LLPanelOutfitsInventory()
|
|||
// virtual
|
||||
BOOL LLPanelOutfitsInventory::postBuild()
|
||||
{
|
||||
sShowDebugEditor = gSavedSettings.getBOOL("ShowDebugAppearanceEditor");
|
||||
initTabPanels();
|
||||
initListCommandsHandlers();
|
||||
|
||||
|
|
@ -133,7 +131,6 @@ void LLPanelOutfitsInventory::updateVerbs()
|
|||
|
||||
if (mListCommands)
|
||||
{
|
||||
mListCommands->childSetVisible("edit_current_outfit_btn",sShowDebugEditor);
|
||||
updateListCommands();
|
||||
}
|
||||
}
|
||||
|
|
@ -307,14 +304,6 @@ void LLPanelOutfitsInventory::onSelectionChange(const std::deque<LLFolderViewIte
|
|||
}
|
||||
}
|
||||
|
||||
void LLPanelOutfitsInventory::showEditOutfitPanel()
|
||||
{
|
||||
LLSD key;
|
||||
key["type"] = "edit_outfit";
|
||||
|
||||
LLSideTray::getInstance()->showPanel("sidepanel_appearance", key);
|
||||
}
|
||||
|
||||
LLFolderViewEventListener *LLPanelOutfitsInventory::getCorrectListenerForAction()
|
||||
{
|
||||
// TODO: add handling "My Outfits" tab.
|
||||
|
|
@ -369,8 +358,6 @@ void LLPanelOutfitsInventory::initListCommandsHandlers()
|
|||
mListCommands->childSetAction("make_outfit_btn", boost::bind(&LLPanelOutfitsInventory::onAddButtonClick, this));
|
||||
mListCommands->childSetAction("wear_btn", boost::bind(&LLPanelOutfitsInventory::onWearButtonClick, this));
|
||||
|
||||
mListCommands->childSetAction("edit_current_outfit_btn", boost::bind(&LLPanelOutfitsInventory::showEditOutfitPanel, this));
|
||||
|
||||
LLDragAndDropButton* trash_btn = mListCommands->getChild<LLDragAndDropButton>("trash_btn");
|
||||
trash_btn->setDragAndDropHandler(boost::bind(&LLPanelOutfitsInventory::handleDragAndDropToTrash, this
|
||||
, _4 // BOOL drop
|
||||
|
|
|
|||
|
|
@ -65,7 +65,6 @@ public:
|
|||
bool onSaveCommit(const LLSD& notification, const LLSD& response);
|
||||
|
||||
void onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action);
|
||||
void showEditOutfitPanel();
|
||||
|
||||
// If a compatible listener type is selected, then return a pointer to that.
|
||||
// Otherwise, return NULL.
|
||||
|
|
@ -131,8 +130,6 @@ private:
|
|||
// List Commands //
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///
|
||||
public:
|
||||
static bool sShowDebugEditor;
|
||||
};
|
||||
|
||||
#endif //LL_LLPANELOUTFITSINVENTORY_H
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@
|
|||
#include "llfoldervieweventlistener.h"
|
||||
#include "llpaneleditwearable.h"
|
||||
#include "llpaneloutfitsinventory.h"
|
||||
#include "llsidetray.h"
|
||||
#include "lltextbox.h"
|
||||
#include "lluictrlfactory.h"
|
||||
#include "llviewerregion.h"
|
||||
|
|
@ -115,6 +116,8 @@ BOOL LLSidepanelAppearance::postBuild()
|
|||
mEditAppearanceBtn = getChild<LLButton>("editappearance_btn");
|
||||
mEditAppearanceBtn->setClickedCallback(boost::bind(&LLSidepanelAppearance::onEditAppearanceButtonClicked, this));
|
||||
|
||||
childSetAction("edit_outfit_btn", boost::bind(&LLSidepanelAppearance::onEditOutfitButtonClicked, this));
|
||||
|
||||
mEditBtn = getChild<LLButton>("edit_btn");
|
||||
mEditBtn->setClickedCallback(boost::bind(&LLSidepanelAppearance::onEditButtonClicked, this));
|
||||
|
||||
|
|
@ -154,7 +157,7 @@ BOOL LLSidepanelAppearance::postBuild()
|
|||
|
||||
mCurrentLookName = getChild<LLTextBox>("currentlook_name");
|
||||
|
||||
mOutfitDirtyTag = getChild<LLTextBox>("currentlook_title");
|
||||
mOutfitStatus = getChild<LLTextBox>("currentlook_status");
|
||||
|
||||
mCurrOutfitPanel = getChild<LLPanel>("panel_currentlook");
|
||||
|
||||
|
|
@ -238,6 +241,13 @@ void LLSidepanelAppearance::onEditAppearanceButtonClicked()
|
|||
}
|
||||
}
|
||||
|
||||
void LLSidepanelAppearance::onEditOutfitButtonClicked()
|
||||
{
|
||||
LLSD key;
|
||||
key["type"] = "edit_outfit";
|
||||
LLSideTray::getInstance()->showPanel("sidepanel_appearance", key);
|
||||
}
|
||||
|
||||
void LLSidepanelAppearance::onEditButtonClicked()
|
||||
{
|
||||
toggleOutfitEditPanel(FALSE);
|
||||
|
|
@ -339,7 +349,11 @@ void LLSidepanelAppearance::updateVerbs()
|
|||
|
||||
void LLSidepanelAppearance::refreshCurrentOutfitName(const std::string& name)
|
||||
{
|
||||
mOutfitDirtyTag->setVisible(LLAppearanceMgr::getInstance()->isOutfitDirty());
|
||||
// Set current outfit status (wearing/unsaved).
|
||||
bool dirty = LLAppearanceMgr::getInstance()->isOutfitDirty();
|
||||
std::string cof_status_str = getString(dirty ? "Unsaved Changes" : "Now Wearing");
|
||||
mOutfitStatus->setText(cof_status_str);
|
||||
|
||||
if (name == "")
|
||||
{
|
||||
std::string outfit_name;
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ private:
|
|||
|
||||
void onOpenOutfitButtonClicked();
|
||||
void onEditAppearanceButtonClicked();
|
||||
void onEditOutfitButtonClicked();
|
||||
void onEditButtonClicked();
|
||||
void onEditWearBackClicked();
|
||||
|
||||
|
|
@ -90,7 +91,7 @@ private:
|
|||
LLPanel* mCurrOutfitPanel;
|
||||
|
||||
LLTextBox* mCurrentLookName;
|
||||
LLTextBox* mOutfitDirtyTag;
|
||||
LLTextBox* mOutfitStatus;
|
||||
|
||||
// Used to make sure the user's inventory is in memory.
|
||||
LLCurrentlyWornFetchObserver* mFetchWorn;
|
||||
|
|
|
|||
|
|
@ -496,12 +496,6 @@ bool toggle_show_favorites_panel(const LLSD& newvalue)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool toggle_show_appearance_editor(const LLSD& newvalue)
|
||||
{
|
||||
LLPanelOutfitsInventory::sShowDebugEditor = newvalue.asBoolean();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool toggle_show_object_render_cost(const LLSD& newvalue)
|
||||
{
|
||||
LLFloaterTools::sShowObjectCost = newvalue.asBoolean();
|
||||
|
|
@ -650,7 +644,6 @@ void settings_setup_listeners()
|
|||
gSavedSettings.getControl("ShowSnapshotButton")->getSignal()->connect(boost::bind(&toggle_show_snapshot_button, _2));
|
||||
gSavedSettings.getControl("ShowNavbarNavigationPanel")->getSignal()->connect(boost::bind(&toggle_show_navigation_panel, _2));
|
||||
gSavedSettings.getControl("ShowNavbarFavoritesPanel")->getSignal()->connect(boost::bind(&toggle_show_favorites_panel, _2));
|
||||
gSavedSettings.getControl("ShowDebugAppearanceEditor")->getSignal()->connect(boost::bind(&toggle_show_appearance_editor, _2));
|
||||
gSavedSettings.getControl("ShowObjectRenderingCost")->getSignal()->connect(boost::bind(&toggle_show_object_render_cost, _2));
|
||||
gSavedSettings.getControl("ForceShowGrid")->getSignal()->connect(boost::bind(&handleForceShowGrid, _2));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
background_opaque="true"
|
||||
background_visible="true"
|
||||
follows="all"
|
||||
height="570"
|
||||
height="575"
|
||||
label="Things"
|
||||
layout="topleft"
|
||||
min_height="350"
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
border="false">
|
||||
<tab_container
|
||||
follows="all"
|
||||
height="501"
|
||||
height="509"
|
||||
layout="topleft"
|
||||
left="7"
|
||||
name="appearance_tabs"
|
||||
|
|
@ -22,6 +22,7 @@
|
|||
tab_height="30"
|
||||
tab_position="top"
|
||||
halign="center"
|
||||
top="8"
|
||||
width="312">
|
||||
<panel
|
||||
class="outfits_list"
|
||||
|
|
@ -50,8 +51,8 @@
|
|||
</tab_container>
|
||||
<panel
|
||||
background_visible="true"
|
||||
follows="bottom|left"
|
||||
height="73"
|
||||
follows="bottom|left|right"
|
||||
height="57"
|
||||
layout="topleft"
|
||||
left="9"
|
||||
top_pad="-1"
|
||||
|
|
@ -72,7 +73,7 @@
|
|||
top="1"
|
||||
width="31" />
|
||||
<icon
|
||||
follows="bottom|left"
|
||||
follows="bottom|left|right"
|
||||
height="25"
|
||||
image_name="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
|
|
@ -82,7 +83,7 @@
|
|||
/>
|
||||
|
||||
<dnd_button
|
||||
follows="bottom|left"
|
||||
follows="bottom|right"
|
||||
height="25"
|
||||
image_hover_unselected="Toolbar_Right_Over"
|
||||
image_overlay="TrashItem_Off"
|
||||
|
|
@ -104,7 +105,7 @@
|
|||
left="0"
|
||||
width="153" />
|
||||
<button
|
||||
follows="bottom|right"
|
||||
follows="bottom|left|right"
|
||||
height="23"
|
||||
label="Wear"
|
||||
layout="topleft"
|
||||
|
|
@ -112,16 +113,6 @@
|
|||
left_pad="3"
|
||||
tool_tip="Wear selected outfit"
|
||||
width="152" />
|
||||
<button
|
||||
follows="bottom|left"
|
||||
height="23"
|
||||
label="Edit Outfit"
|
||||
layout="topleft"
|
||||
right="-140"
|
||||
name="edit_current_outfit_btn"
|
||||
top="26"
|
||||
visible="false"
|
||||
width="50" />
|
||||
</panel>
|
||||
|
||||
</panel>
|
||||
|
|
@ -15,63 +15,85 @@ width="333">
|
|||
<string
|
||||
name="No Outfit"
|
||||
value="No Outfit" />
|
||||
<string
|
||||
name="Unsaved Changes"
|
||||
value="Unsaved changes" />
|
||||
<string
|
||||
name="Now Wearing"
|
||||
value="Now wearing..." />
|
||||
<panel
|
||||
left="0"
|
||||
top="0"
|
||||
follows="all"
|
||||
background_opaque="true"
|
||||
background_visible="true"
|
||||
bg_opaque_color="DkGray2"
|
||||
left="10"
|
||||
top="5"
|
||||
follows="left|top|right"
|
||||
layout="topleft"
|
||||
width="330"
|
||||
width="303"
|
||||
height="33"
|
||||
name="panel_currentlook"
|
||||
>
|
||||
<button
|
||||
follows="left|top"
|
||||
top="0" width="1" height="1"
|
||||
left="205" top="7" width="20" height="20"
|
||||
label="E"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="editappearance_btn" />
|
||||
name="editappearance_btn"
|
||||
visible="false" />
|
||||
<button
|
||||
follows="left|top"
|
||||
top="0" width="1" height="1"
|
||||
left="235" top="7" width="20" height="20"
|
||||
label="O"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="openoutfit_btn" />
|
||||
name="openoutfit_btn"
|
||||
visible="false" />
|
||||
<icon
|
||||
follows="top|left"
|
||||
height="24"
|
||||
height="32"
|
||||
image_name="TabIcon_Appearance_Off"
|
||||
name="outfit_icon"
|
||||
mouse_opaque="false"
|
||||
visible="true"
|
||||
left="9"
|
||||
left="0"
|
||||
top="0"
|
||||
width="24" />
|
||||
width="32" />
|
||||
<text
|
||||
font="SansSerifHugeBold"
|
||||
height="20"
|
||||
left_pad="5"
|
||||
text_color="LtGray"
|
||||
top="0"
|
||||
use_ellipses="true"
|
||||
width="305"
|
||||
font="SansSerifSmallBold"
|
||||
text_color="EmphasisColor"
|
||||
width="300"
|
||||
height="10"
|
||||
follows="top|left"
|
||||
word_wrap="true"
|
||||
layout="topleft"
|
||||
left="35"
|
||||
top="3"
|
||||
mouse_opaque="false"
|
||||
name="currentlook_status" >
|
||||
(Status)
|
||||
</text>
|
||||
<text
|
||||
font="SansSerifLargeBold"
|
||||
height="20"
|
||||
left="35"
|
||||
text_color="White"
|
||||
top="15"
|
||||
use_ellipses="true"
|
||||
width="230"
|
||||
follows="top|left"
|
||||
word_wrap="false"
|
||||
mouse_opaque="false"
|
||||
name="currentlook_name">
|
||||
MyOutfit With a really Long Name like MOOSE
|
||||
</text>
|
||||
<text
|
||||
font="SansSerifSmall"
|
||||
text_color="White_50"
|
||||
width="300"
|
||||
height="1"
|
||||
follows="top|left"
|
||||
<button
|
||||
follows="left|top"
|
||||
height="20"
|
||||
image_overlay="windows/Icon_Gear_Over.png"
|
||||
label=""
|
||||
layout="topleft"
|
||||
top_pad="5"
|
||||
mouse_opaque="false"
|
||||
name="currentlook_title" >
|
||||
(unsaved)
|
||||
</text>
|
||||
left="265"
|
||||
name="edit_outfit_btn"
|
||||
top="7"
|
||||
width="30" />
|
||||
</panel>
|
||||
<filter_editor
|
||||
height="23"
|
||||
|
|
@ -87,7 +109,7 @@ width="333">
|
|||
class="panel_outfits_inventory"
|
||||
filename="panel_outfits_inventory.xml"
|
||||
name="panel_outfits_inventory"
|
||||
height="505"
|
||||
height="493"
|
||||
min_height="410"
|
||||
width="320"
|
||||
left="0"
|
||||
|
|
|
|||
Loading…
Reference in New Issue