EXT-3929: Also look in accordion tabs for help topic.

When the user clicks on the help "?" button, we try to find the
currently active tab and see if there is a help topic for that tab.
In addition, we now also look for a currently-visible accordion tab.
master
Lynx Linden 2010-01-11 10:41:01 +00:00
parent a4baeed12f
commit d24cd96ef8
1 changed files with 18 additions and 5 deletions

View File

@ -43,6 +43,7 @@
#include "llerror.h"
#include "lltimer.h"
#include "llaccordionctrltab.h"
#include "llbutton.h"
#include "llmenugl.h"
//#include "llstatusbar.h"
@ -851,14 +852,26 @@ static LLPanel *childGetVisibleTabWithHelp(LLView *parent)
// look through immediate children first for an active tab with help
for (child = parent->getFirstChild(); child; child = parent->findNextSibling(child))
{
LLPanel *curTabPanel = NULL;
// do we have a tab container?
LLTabContainer *tab = dynamic_cast<LLTabContainer *>(child);
if (tab && tab->getVisible())
{
LLPanel *curTabPanel = tab->getCurrentPanel();
if (curTabPanel && !curTabPanel->getHelpTopic().empty())
{
return curTabPanel;
}
curTabPanel = tab->getCurrentPanel();
}
// do we have an accordion tab?
LLAccordionCtrlTab* accordion = dynamic_cast<LLAccordionCtrlTab *>(child);
if (accordion && accordion->getDisplayChildren())
{
curTabPanel = dynamic_cast<LLPanel *>(accordion->getAccordionView());
}
// if we found a valid tab, does it have a help topic?
if (curTabPanel && !curTabPanel->getHelpTopic().empty())
{
return curTabPanel;
}
}