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-engine
master
Vadim Savchuk 2010-04-30 19:55:00 +03:00
parent f247dc68df
commit ccd4215fd4
8 changed files with 81 additions and 87 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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