Gridmanager showing added grid after adding (by nhede Core from angstrom viewer)

Tank_Master 2012-05-21 16:39:29 -07:00
parent 81439297d3
commit d6139a3eff
4 changed files with 19 additions and 4 deletions

View File

@ -2748,6 +2748,15 @@ void LLPanelPreferenceGrids::onClickDefault()
}
}
void LLPanelPreferenceGrids::onAddDoneCallback(std::string gridlabel)
{
loadCurGrid();
if(!gridlabel.empty()) {
m_GridCombo->setSelectedByValue(gridlabel,TRUE);
onSelectGrid();
}
}
void LLPanelPreferenceGrids::onClickAdd()
{
std::string loginuri = getChild<LLLineEditor>("loginuri",true)->getText();
@ -2760,7 +2769,7 @@ void LLPanelPreferenceGrids::onClickAdd()
grid_entry->grid = LLSD::emptyMap();
grid_entry->grid[GRID_VALUE] = loginuri;
grid_entry->set_current = false;
grid_entry->mOnDoneCallback = boost::bind(&LLPanelPreferenceGrids::loadCurGrid, this);
grid_entry->mOnDoneCallback = boost::bind(&LLPanelPreferenceGrids::onAddDoneCallback, this, _1);
LLGridManager::getInstance()->addGrid(grid_entry, LLGridManager::FETCH);
}
else {
@ -2836,6 +2845,7 @@ void LLPanelPreferenceGrids::loadCurGrid()
LLGridManager::getInstance()->getGridData(mCurGrid, grid_info);
if (mState != ADD_NEW) {
getChild<LLLineEditor>("gridname", true)->setText(grid_info[GRID_LABEL_VALUE].asString());
getChild<LLLineEditor>("loginuri",true)->setText(grid_info[GRID_LOGIN_URI_VALUE][0].asString());
getChild<LLLineEditor>("loginpage",true)->setText(grid_info[GRID_LOGIN_PAGE_VALUE].asString());
@ -2924,7 +2934,7 @@ void LLPanelPreferenceGrids::refresh()
getChild<LLButton>("btn_delete", true)->setEnabled((selectIndex >= 0));
//getChild<LLButton>("btn_copy", true)->setEnabled((mState == NORMAL) && (selectIndex >= 0));
getChild<LLButton>("btn_default", true)->setEnabled((mState == NORMAL) && (selectIndex > 0));
getChild<LLButton>("gridname", true)->setEnabled((mState == ADD_NEW) || (mState == ADD_COPY));
getChild<LLLineEditor>("gridname", true)->setEnabled((mState == ADD_NEW) || (mState == ADD_COPY));
/* old, todo
if (LLGridManager::getInstance()->isInSLMain() || LLGridManager::getInstance()->isInSLBeta()) {

View File

@ -346,6 +346,7 @@ protected:
void onClickAdvanced();
void onSelectGrid();
void onSelectPlatform();
void onAddDoneCallback(std::string gridlabel);
protected:
LLComboBox* m_GridCombo;

View File

@ -815,8 +815,12 @@ void LLGridManager::addGrid(GridEntry* grid_entry, AddState state)
if (grid_entry)
{
std::string gridlabel;
if(grid_entry->grid.has(GRID_LABEL_VALUE)) {
gridlabel = grid_entry->grid[GRID_LABEL_VALUE].asString();
}
if(!grid_entry->mOnDoneCallback.empty()) {
grid_entry->mOnDoneCallback();
grid_entry->mOnDoneCallback(gridlabel);
}
delete grid_entry;
grid_entry = NULL;

View File

@ -76,7 +76,7 @@ struct GridEntry
LLXMLNodePtr info_root;
bool set_current;
std::string last_http_error;
boost::function<void()> mOnDoneCallback;
boost::function<void(std::string)> mOnDoneCallback;
};
class LLInvalidGridName