eliminated a bunch of silent warnings on startup about multiple widget registration

master
Richard Linden 2010-07-01 14:19:07 -07:00
parent 166a29e4eb
commit 551acaa2df
4 changed files with 18 additions and 10 deletions

View File

@ -41,7 +41,7 @@
#include "lluictrlfactory.h"
#include "lluiimage.h"
static LLDefaultChildRegistry::Register<LLLoadingIndicator> r("loading_indicator");
//static LLDefaultChildRegistry::Register<LLLoadingIndicator> r("loading_indicator");
///////////////////////////////////////////////////////////////////////////////
// LLLoadingIndicator::Data class

View File

@ -97,7 +97,6 @@ static LLDefaultChildRegistry::Register<LLFlyoutButton> register_flyout_button("
static LLDefaultChildRegistry::Register<LLSearchEditor> register_search_editor("search_editor");
// register other widgets which otherwise may not be linked in
static LLDefaultChildRegistry::Register<LLMenuButton> register_menu_button("menu_button");
static LLDefaultChildRegistry::Register<LLLoadingIndicator> register_loading_indicator("loading_indicator");

View File

@ -452,14 +452,22 @@ void LLUICtrlFactory::registerWidget(const std::type_info* widget_type, const st
{
// associate parameter block type with template .xml file
std::string* existing_tag = LLWidgetNameRegistry::instance().getValue(param_block_type);
if (existing_tag != NULL && *existing_tag != tag)
if (existing_tag != NULL)
{
std::cerr << "Duplicate entry for T::Params, try creating empty param block in derived classes that inherit T::Params" << std::endl;
// forcing crash here
char* foo = 0;
*foo = 1;
if(*existing_tag != tag)
{
std::cerr << "Duplicate entry for T::Params, try creating empty param block in derived classes that inherit T::Params" << std::endl;
// forcing crash here
char* foo = 0;
*foo = 1;
}
else
{
// widget already registered
return;
}
}
LLWidgetNameRegistry ::instance().defaultRegistrar().add(param_block_type, tag);
LLWidgetNameRegistry::instance().defaultRegistrar().add(param_block_type, tag);
// associate widget type with factory function
LLDefaultWidgetRegistry::instance().defaultRegistrar().add(widget_type, creator_func);
//FIXME: comment this in when working on schema generation

View File

@ -373,8 +373,9 @@ LLChildRegistry<DERIVED>::Register<T>::Register(const char* tag, LLWidgetCreator
LLUICtrlFactory::instance().registerWidget(&typeid(T), &typeid(typename T::Params), &LLUICtrlFactory::createDefaultWidget<T>, tag);
// since registry_t depends on T, do this in line here
typedef typename T::child_registry_t registry_t;
LLChildRegistryRegistry::instance().defaultRegistrar().add(&typeid(T), registry_t::instance());
// TODO: uncomment this for schema generation
//typedef typename T::child_registry_t registry_t;
//LLChildRegistryRegistry::instance().defaultRegistrar().add(&typeid(T), registry_t::instance());
}