Remove libwww dependency from CGroupHTML::addLink() signature

This commit is contained in:
Nimetu 2015-04-13 20:51:39 +03:00
parent a6373dd201
commit 388110a441
3 changed files with 19 additions and 14 deletions

View file

@ -228,7 +228,7 @@ namespace NLGUI
virtual void addText (const char * buf, int len);
// A link has been parsed
virtual void addLink (uint element_number, uint attribute_number, HTChildAnchor *anchor, const BOOL *present, const char **value);
virtual void addLink (uint element_number, const BOOL *present, const char **value);
// A new begin HTML element has been parsed (<IMG> for exemple)
virtual void beginElement (uint element_number, const BOOL *present, const char **value);
@ -699,6 +699,7 @@ namespace NLGUI
void checkImageDownload();
void addImageDownload(const std::string &url, CViewBase *img);
std::string localImageName(const std::string &url);
std::string getAbsoluteUrl(const std::string &url);
bool isTrustedDomain(const std::string &domain);
void setImage(CViewBase *view, const std::string &file);

View file

@ -570,7 +570,7 @@ namespace NLGUI
// ***************************************************************************
void CGroupHTML::addLink (uint element_number, uint /* attribute_number */, HTChildAnchor *anchor, const BOOL *present, const char **value)
void CGroupHTML::addLink (uint element_number, const BOOL *present, const char **value)
{
if (_Browsing)
{
@ -591,16 +591,8 @@ namespace NLGUI
}
else
{
HTAnchor * dest = HTAnchor_followMainLink((HTAnchor *) anchor);
if (dest)
{
C3WSmartPtr uri = HTAnchor_address(dest);
_Link.push_back ((const char*)uri);
}
else
{
_Link.push_back("");
}
// convert href from "?key=val" into "http://domain.com/?key=val"
_Link.push_back(getAbsoluteUrl(suri));
}
for(uint8 i = MY_HTML_A_ACCESSKEY; i < MY_HTML_A_Z_ACTION_SHORTCUT; i++)
@ -4516,7 +4508,7 @@ namespace NLGUI
beginElement(element_number, &present[0], &value[0]);
if (element_number == HTML_A)
addLink(element_number, 0, NULL, &present[0], &value[0]);
addLink(element_number, &present[0], &value[0]);
return 0;
}
@ -4650,6 +4642,15 @@ namespace NLGUI
return result;
}
// ***************************************************************************
std::string CGroupHTML::getAbsoluteUrl(const std::string &url)
{
if (HTURL_isAbsolute(url.c_str()))
return url;
return std::string(HTParse(url.c_str(), _URL.c_str(), PARSE_ALL));
}
// ***************************************************************************
// CGroupHTML::CStyleParams style;
// style.FontSize; // font-size: 10px;

View file

@ -322,7 +322,10 @@ namespace NLGUI
const char ** value)
{
// Do the work in the class
me->Parent->addLink (element_number, attribute_number, anchor, present, value);
if (element_number == HTML_A)
{
me->Parent->addLink (element_number, present, value);
}
}
// ***************************************************************************