support for edit classified slapp

master
Brad Payne (Vir Linden) 2010-10-21 14:41:42 -04:00
parent dd1b70f712
commit 53eeee7b70
3 changed files with 50 additions and 0 deletions

View File

@ -190,6 +190,13 @@ public:
else if (mRequestVerb == "edit")
{
llwarns << "edit in progress" << llendl;
// open the new classified panel on the Me > Picks sidetray
LLSD params;
params["id"] = gAgent.getID();
params["open_tab_name"] = "panel_picks";
params["show_tab_panel"] = "edit_classified";
params["classified_id"] = c_info->classified_id;
LLSideTray::getInstance()->showPanel("panel_me", params);
}
}
@ -822,6 +829,13 @@ void LLPanelPicks::openClassifiedInfo(const LLSD &params)
getProfilePanel()->openPanel(mPanelClassifiedInfo, params);
}
void LLPanelPicks::openClassifiedEdit(const LLSD& params)
{
LLUUID classified_id = params["classified_id"].asUUID();;
llinfos << "opening classified " << classified_id << " for edit" << llendl;
editClassified(classified_id);
}
void LLPanelPicks::showAccordion(const std::string& name, bool show)
{
LLAccordionCtrlTab* tab = getChild<LLAccordionCtrlTab>(name);
@ -1024,6 +1038,29 @@ void LLPanelPicks::onPanelClassifiedEdit()
{
return;
}
editClassified(c_item->getClassifiedId());
}
void LLPanelPicks::editClassified(const LLUUID& classified_id)
{
// HACK - find item by classified id. Should be a better way.
std::vector<LLPanel*> items;
mClassifiedsList->getItems(items);
LLClassifiedItem* c_item = NULL;
for(std::vector<LLPanel*>::iterator it = items.begin(); it != items.end(); ++it)
{
LLClassifiedItem *test_item = dynamic_cast<LLClassifiedItem*>(*it);
if (test_item && test_item->getClassifiedId() == classified_id)
{
c_item = test_item;
break;
}
}
if (!c_item)
{
llwarns << "item not found for classified_id " << classified_id << llendl;
return;
}
LLSD params;
params["classified_id"] = c_item->getClassifiedId();

2
indra/newview/llpanelpicks.h Normal file → Executable file
View File

@ -108,6 +108,7 @@ private:
void onPanelClassifiedClose(LLPanelClassifiedInfo* panel);
void onPanelPickEdit();
void onPanelClassifiedEdit();
void editClassified(const LLUUID& classified_id);
void onClickMenuEdit();
bool onEnableMenuItem(const LLSD& user_data);
@ -118,6 +119,7 @@ private:
void openPickInfo();
void openClassifiedInfo();
void openClassifiedInfo(const LLSD& params);
void openClassifiedEdit(const LLSD& params);
friend class LLPanelProfile;
void showAccordion(const std::string& name, bool show);

View File

@ -205,6 +205,17 @@ void LLPanelProfile::onOpen(const LLSD& key)
picks->openClassifiedInfo(params);
}
}
else if (panel == "edit_classified")
{
LLPanelPicks* picks = dynamic_cast<LLPanelPicks *>(getTabContainer()[PANEL_PICKS]);
if (picks)
{
LLSD params = key;
params.erase("show_tab_panel");
params.erase("open_tab_name");
picks->openClassifiedEdit(params);
}
}
}
}