EXT-7613 FIXED Provided updating of base outfit name on outfit rename event.

1 Updated LLOutfitObserver to provide controlling of changing outfit name.
2 Added call of LLPanelOutfitEdit::updateCurrentOutfitName to LLPanelOutfitEdit::updateVerbs since both should be called on BOFChanged signal.
3 Corrected updating field LLOutfitObserver::mBaseOutfitLastVersion.

reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/553/

--HG--
branch : product-engine
master
Alexei Arabadji 2010-06-10 14:43:28 +03:00
parent 7629a39a6d
commit e22f4bb4e7
3 changed files with 21 additions and 3 deletions

View File

@ -74,6 +74,16 @@ S32 LLOutfitObserver::getCategoryVersion(const LLUUID& cat_id)
return cat->getVersion();
}
// static
const std::string& LLOutfitObserver::getCategoryName(const LLUUID& cat_id)
{
LLViewerInventoryCategory* cat = gInventory.getCategory(cat_id);
if (!cat)
return LLStringUtil::null;
return cat->getName();
}
bool LLOutfitObserver::checkCOF()
{
LLUUID cof = LLAppearanceMgr::getInstance()->getCOF();
@ -105,8 +115,11 @@ void LLOutfitObserver::checkBaseOutfit()
return;
const S32 baseoutfit_ver = getCategoryVersion(baseoutfit_id);
const std::string& baseoutfit_name = getCategoryName(baseoutfit_id);
if (baseoutfit_ver == mBaseOutfitLastVersion)
if (baseoutfit_ver == mBaseOutfitLastVersion
// renaming category doesn't change version, so it's need to check it
&& baseoutfit_name == mLastBaseOutfitName)
return;
}
else
@ -116,10 +129,11 @@ void LLOutfitObserver::checkBaseOutfit()
if (baseoutfit_id.isNull())
return;
mBaseOutfitLastVersion = getCategoryVersion(mBaseOutfitId);
}
mBaseOutfitLastVersion = getCategoryVersion(mBaseOutfitId);
mLastBaseOutfitName = getCategoryName(baseoutfit_id);
LLAppearanceMgr& app_mgr = LLAppearanceMgr::instance();
// dirtiness state should be updated before sending signal
app_mgr.updateIsDirty();

View File

@ -68,6 +68,8 @@ protected:
/** Get a version of an inventory category specified by its UUID */
static S32 getCategoryVersion(const LLUUID& cat_id);
static const std::string& getCategoryName(const LLUUID& cat_id);
bool checkCOF();
void checkBaseOutfit();
@ -78,6 +80,7 @@ protected:
LLUUID mBaseOutfitId;
S32 mBaseOutfitLastVersion;
std::string mLastBaseOutfitName;
bool mLastOutfitDirtiness;

View File

@ -707,6 +707,7 @@ void LLPanelOutfitEdit::updateVerbs()
mStatus->setText(outfit_is_dirty ? getString("unsaved_changes") : getString("now_editing"));
updateCurrentOutfitName();
}
bool LLPanelOutfitEdit::switchPanels(LLPanel* switch_from_panel, LLPanel* switch_to_panel)