Remove libwww dependency from CGroupHTML::addLink() signature

--HG--
branch : libxml2-html-parser
This commit is contained in:
Nimetu 2015-04-13 20:51:39 +03:00
parent 9fd524f9c6
commit 5d4cbdce26
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); virtual void addText (const char * buf, int len);
// A link has been parsed // 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) // A new begin HTML element has been parsed (<IMG> for exemple)
virtual void beginElement (uint element_number, const BOOL *present, const char **value); virtual void beginElement (uint element_number, const BOOL *present, const char **value);
@ -699,6 +699,7 @@ namespace NLGUI
void checkImageDownload(); void checkImageDownload();
void addImageDownload(const std::string &url, CViewBase *img); void addImageDownload(const std::string &url, CViewBase *img);
std::string localImageName(const std::string &url); std::string localImageName(const std::string &url);
std::string getAbsoluteUrl(const std::string &url);
bool isTrustedDomain(const std::string &domain); bool isTrustedDomain(const std::string &domain);
void setImage(CViewBase *view, const std::string &file); 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) if (_Browsing)
{ {
@ -591,16 +591,8 @@ namespace NLGUI
} }
else else
{ {
HTAnchor * dest = HTAnchor_followMainLink((HTAnchor *) anchor); // convert href from "?key=val" into "http://domain.com/?key=val"
if (dest) _Link.push_back(getAbsoluteUrl(suri));
{
C3WSmartPtr uri = HTAnchor_address(dest);
_Link.push_back ((const char*)uri);
}
else
{
_Link.push_back("");
}
} }
for(uint8 i = MY_HTML_A_ACCESSKEY; i < MY_HTML_A_Z_ACTION_SHORTCUT; i++) 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]); beginElement(element_number, &present[0], &value[0]);
if (element_number == HTML_A) if (element_number == HTML_A)
addLink(element_number, 0, NULL, &present[0], &value[0]); addLink(element_number, &present[0], &value[0]);
return 0; return 0;
} }
@ -4650,6 +4642,15 @@ namespace NLGUI
return result; 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; // CGroupHTML::CStyleParams style;
// style.FontSize; // font-size: 10px; // style.FontSize; // font-size: 10px;

View file

@ -322,7 +322,10 @@ namespace NLGUI
const char ** value) const char ** value)
{ {
// Do the work in the class // 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);
}
} }
// *************************************************************************** // ***************************************************************************