Skip to content
Snippets Groups Projects
Commit 4cf79224 authored by Rick Pasetto's avatar Rick Pasetto
Browse files
parents c6605322 5a83247f
No related branches found
No related tags found
No related merge requests found
...@@ -76,11 +76,16 @@ public: ...@@ -76,11 +76,16 @@ public:
return dictionary_iter->first; return dictionary_iter->first;
} }
} }
llwarns << "Lookup on " << name << " failed" << llendl; return notFound();
return Index(-1);
} }
protected: protected:
virtual Index notFound() const
{
// default is to assert
llassert(false);
return Index(-1);
}
void addEntry(Index index, Entry *entry) void addEntry(Index index, Entry *entry)
{ {
if (lookup(index)) if (lookup(index))
......
...@@ -59,6 +59,11 @@ class LLFolderDictionary : public LLSingleton<LLFolderDictionary>, ...@@ -59,6 +59,11 @@ class LLFolderDictionary : public LLSingleton<LLFolderDictionary>,
{ {
public: public:
LLFolderDictionary(); LLFolderDictionary();
protected:
virtual LLFolderType::EType notFound() const
{
return LLFolderType::FT_NONE;
}
}; };
LLFolderDictionary::LLFolderDictionary() LLFolderDictionary::LLFolderDictionary()
......
...@@ -869,38 +869,6 @@ void LLMediaCtrl::convertInputCoords(S32& x, S32& y) ...@@ -869,38 +869,6 @@ void LLMediaCtrl::convertInputCoords(S32& x, S32& y)
}; };
} }
////////////////////////////////////////////////////////////////////////////////
// static
bool LLMediaCtrl::onClickLinkExternalTarget(const LLSD& notification, const LLSD& response )
{
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
if ( 0 == option )
{
LLSD payload = notification["payload"];
std::string url = payload["url"].asString();
S32 target_type = payload["target_type"].asInteger();
switch (target_type)
{
case LLPluginClassMedia::TARGET_EXTERNAL:
// load target in an external browser
LLWeb::loadURLExternal(url);
break;
case LLPluginClassMedia::TARGET_BLANK:
// load target in the user's preferred browser
LLWeb::loadURL(url);
break;
default:
// unsupported link target - shouldn't happen
LL_WARNS("LinkTarget") << "Unsupported link target type" << LL_ENDL;
break;
}
}
return false;
}
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// inherited from LLViewerMediaObserver // inherited from LLViewerMediaObserver
//virtual //virtual
...@@ -1014,43 +982,82 @@ void LLMediaCtrl::onClickLinkHref( LLPluginClassMedia* self ) ...@@ -1014,43 +982,82 @@ void LLMediaCtrl::onClickLinkHref( LLPluginClassMedia* self )
U32 target_type = self->getClickTargetType(); U32 target_type = self->getClickTargetType();
// is there is a target specified for the link? // is there is a target specified for the link?
if (target_type == LLPluginClassMedia::TARGET_EXTERNAL || if (gSavedSettings.getBOOL("UseExternalBrowser") || target_type == LLPluginClassMedia::TARGET_EXTERNAL)
target_type == LLPluginClassMedia::TARGET_BLANK)
{ {
LLSD payload; LLSD payload;
payload["url"] = url; payload["url"] = url;
payload["target_type"] = LLSD::Integer(target_type); payload["target_type"] = LLSD::Integer(target_type);
LLNotificationsUtil::add( "WebLaunchExternalTarget", LLSD(), payload, onClickLinkExternalTarget); LLNotificationsUtil::add( "WebLaunchExternalTarget", LLSD(), payload, onClickLinkExternalTarget);
return;
} }
else if (target_type == LLPluginClassMedia::TARGET_BLANK)
const std::string protocol1( "http://" );
const std::string protocol2( "https://" );
if( mOpenLinksInExternalBrowser )
{ {
if ( !url.empty() ) clickLinkWithTarget(url, target_type);
}
else {
const std::string protocol1( "http://" );
const std::string protocol2( "https://" );
if( mOpenLinksInExternalBrowser )
{ {
if ( LLStringUtil::compareInsensitive( url.substr( 0, protocol1.length() ), protocol1 ) == 0 || if ( !url.empty() )
LLStringUtil::compareInsensitive( url.substr( 0, protocol2.length() ), protocol2 ) == 0 )
{ {
LLWeb::loadURLExternal( url ); if ( LLStringUtil::compareInsensitive( url.substr( 0, protocol1.length() ), protocol1 ) == 0 ||
LLStringUtil::compareInsensitive( url.substr( 0, protocol2.length() ), protocol2 ) == 0 )
{
LLWeb::loadURLExternal( url );
}
} }
} }
} else
else if( mOpenLinksInInternalBrowser )
if( mOpenLinksInInternalBrowser )
{
if ( !url.empty() )
{ {
if ( LLStringUtil::compareInsensitive( url.substr( 0, protocol1.length() ), protocol1 ) == 0 || if ( !url.empty() )
LLStringUtil::compareInsensitive( url.substr( 0, protocol2.length() ), protocol2 ) == 0 )
{ {
llwarns << "Dead, unimplemented path that we used to send to the built-in browser long ago." << llendl; if ( LLStringUtil::compareInsensitive( url.substr( 0, protocol1.length() ), protocol1 ) == 0 ||
LLStringUtil::compareInsensitive( url.substr( 0, protocol2.length() ), protocol2 ) == 0 )
{
llwarns << "Dead, unimplemented path that we used to send to the built-in browser long ago." << llendl;
}
} }
} }
} }
} }
////////////////////////////////////////////////////////////////////////////////
// static
bool LLMediaCtrl::onClickLinkExternalTarget(const LLSD& notification, const LLSD& response )
{
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
if ( 0 == option )
{
LLSD payload = notification["payload"];
std::string url = payload["url"].asString();
S32 target_type = payload["target_type"].asInteger();
clickLinkWithTarget(url, target_type);
}
return false;
}
////////////////////////////////////////////////////////////////////////////////
// static
void LLMediaCtrl::clickLinkWithTarget(const std::string& url, const S32& target_type )
{
if (gSavedSettings.getBOOL("UseExternalBrowser") || target_type == LLPluginClassMedia::TARGET_EXTERNAL)
{
// load target in an external browser
LLWeb::loadURLExternal(url);
}
else if (target_type == LLPluginClassMedia::TARGET_BLANK)
{
// load target in the user's preferred browser
LLWeb::loadURL(url);
}
else {
// unsupported link target - shouldn't happen
LL_WARNS("LinkTarget") << "Unsupported link target type" << LL_ENDL;
}
}
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// //
void LLMediaCtrl::onClickLinkNoFollow( LLPluginClassMedia* self ) void LLMediaCtrl::onClickLinkNoFollow( LLPluginClassMedia* self )
......
...@@ -172,6 +172,7 @@ public: ...@@ -172,6 +172,7 @@ public:
private: private:
void onVisibilityChange ( const LLSD& new_visibility ); void onVisibilityChange ( const LLSD& new_visibility );
static bool onClickLinkExternalTarget( const LLSD&, const LLSD& ); static bool onClickLinkExternalTarget( const LLSD&, const LLSD& );
static void clickLinkWithTarget(const std::string& url, const S32& target_type );
const S32 mTextureDepthBytes; const S32 mTextureDepthBytes;
LLUUID mMediaTextureID; LLUUID mMediaTextureID;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment