diff -r a1f515018ac1 -r b39122337a00 browsercore/appfw/Api/Common/wrtBrowserUtils.cpp --- a/browsercore/appfw/Api/Common/wrtBrowserUtils.cpp Mon Jul 12 15:46:53 2010 -0400 +++ b/browsercore/appfw/Api/Common/wrtBrowserUtils.cpp Fri Aug 06 17:23:08 2010 -0400 @@ -19,85 +19,74 @@ * */ +#include #include "wrtBrowserUtils.h" - -wrtBrowserUtils::wrtBrowserUtils() -{ -} - -wrtBrowserUtils::~wrtBrowserUtils() -{ -} -wrtBrowserDefs::BrowserElementType wrtBrowserUtils::ElementType(QWebElement* node) -{ - if( !node || node->isNull()) - return wrtBrowserDefs::EElementNone; - - wrtBrowserDefs::BrowserElementType elType(wrtBrowserDefs::EElementNone); - - // get the right element type - if ( !node->tagName().compare(LINK_TAG,Qt::CaseInsensitive) ){ - elType = wrtBrowserDefs::EElementAnchor; - } - if ( !node->tagName().compare(INPUT_TAG,Qt::CaseInsensitive) ){ - elType = wrtBrowserDefs::EElementInputBox; - } - else if ( !node->tagName().compare(A_TAG,Qt::CaseInsensitive) ){ - elType = wrtBrowserDefs::EElementAnchor; - QString href = node->attribute( HREF_ATTR ); - if( !node->tagName().compare(AREA_TAG,Qt::CaseInsensitive) ){ - elType = wrtBrowserDefs::EElementAreaBox; - } - } - if (!node->tagName().compare(TEXT_AREA_TAG,Qt::CaseInsensitive)) - elType = wrtBrowserDefs::EElementTextAreaBox; - if (!node->tagName().compare(SELECT_TAG,Qt::CaseInsensitive)) - elType = wrtBrowserDefs::EElementSelectBox; - if (!node->tagName().compare(BUTTON_TAG,Qt::CaseInsensitive)) - elType = wrtBrowserDefs::EElementButton; - if (!node->tagName().compare(FORM_TAG,Qt::CaseInsensitive)) - elType = wrtBrowserDefs::EElementForm; - if (!node->tagName().compare(LI_TAG,Qt::CaseInsensitive)||!node->tagName().compare(OL_TAG,Qt::CaseInsensitive)||!node->tagName().compare(DL_TAG,Qt::CaseInsensitive)) - elType = wrtBrowserDefs::EElementListBox; - else if( !node->tagName().compare(OBJECT_TAG,Qt::CaseInsensitive) || !node->tagName().compare(EMBED_TAG,Qt::CaseInsensitive) ){ - elType = wrtBrowserDefs::EElementObjectBox; - } - return elType; -} +static const QString s_LinkTag = "link"; +static const QString s_InputTag = "input"; +static const QString s_ATag = "a"; +static const QString s_HrefTag = "href"; +static const QString s_AreaTag = "area"; +static const QString s_TextAreaTag = "textarea"; +static const QString s_ButtonTag = "button"; +static const QString s_ObjectTag = "object"; +static const QString s_EmbedTag = "embed"; +static const QString s_ImgTag = "img"; +static const QString s_SelectTag = "select"; +static const QString s_LiTag = "li"; +static const QString s_OlTag = "ol"; +static const QString s_DlTag = "dl"; +static const QString s_FormTag = "form"; +static const QString s_HtmlTag = "html"; wrtBrowserDefs::BrowserElementType wrtBrowserUtils::getTypeFromElement(QWebHitTestResult htRes) { - QWebElement* node = &htRes.element(); + QWebElement node = htRes.element(); wrtBrowserDefs::BrowserElementType elType = wrtBrowserDefs::EElementNone; - if(node){ - - if(node->localName() == HTML_TAG){ - elType = wrtBrowserDefs::EElementNone; - } - else if(node->tagName().isEmpty()){ - //check whether hit test returns a navigatable element - if(!htRes.linkElement().isNull()){ - elType = wrtBrowserDefs::EElementAnchor; - } - } - else if (!node->tagName().compare(AREA_TAG,Qt::CaseInsensitive)){ - if(!node->attribute(HREF_ATTR).isNull()){ - elType = wrtBrowserDefs::EElementAreaBox; - } - else{ - elType = wrtBrowserDefs::EElementAnchor; - } - } - else if (!node->tagName().compare(IMAGE_TAG,Qt::CaseInsensitive)){ - elType = wrtBrowserDefs::EElementImageBox; - if(!htRes.linkElement().isNull()){ - elType = wrtBrowserDefs::EElementAnchor; - } - } - else{ - elType = ElementType(node); - } - } + + if (node.isNull()) + return wrtBrowserDefs::EElementNone; + + if (node.localName().compare(s_HtmlTag, Qt::CaseInsensitive)) { + elType = wrtBrowserDefs::EElementNone; + } else if (node.tagName().isEmpty()) { + // check whether hit test returns a navigatable element + if(!htRes.linkElement().isNull()) { + elType = wrtBrowserDefs::EElementAnchor; + } + } else if (!node.tagName().compare(s_AreaTag, Qt::CaseInsensitive)) { + if(!node.attribute(s_HrefTag).isNull()) { + elType = wrtBrowserDefs::EElementAreaBox; + } else { + elType = wrtBrowserDefs::EElementAnchor; + } + } else if (!node.tagName().compare(s_ImgTag, Qt::CaseInsensitive)) { + elType = wrtBrowserDefs::EElementImageBox; + if(!htRes.linkElement().isNull()) { + elType = wrtBrowserDefs::EElementAnchor; + } + } else if (!node.tagName().compare(s_LinkTag, Qt::CaseInsensitive)) { + elType = wrtBrowserDefs::EElementAnchor; + } else if (!node.tagName().compare(s_InputTag, Qt::CaseInsensitive)) { + elType = wrtBrowserDefs::EElementInputBox; + } else if (!node.tagName().compare(s_ATag, Qt::CaseInsensitive)) { + elType = wrtBrowserDefs::EElementAnchor; + } else if (!node.tagName().compare(s_TextAreaTag, Qt::CaseInsensitive)) { + elType = wrtBrowserDefs::EElementTextAreaBox; + } else if (!node.tagName().compare(s_SelectTag, Qt::CaseInsensitive)) { + elType = wrtBrowserDefs::EElementSelectBox; + } else if (!node.tagName().compare(s_ButtonTag, Qt::CaseInsensitive)) { + elType = wrtBrowserDefs::EElementButton; + } else if (!node.tagName().compare(s_FormTag, Qt::CaseInsensitive)) { + elType = wrtBrowserDefs::EElementForm; + } else if (!node.tagName().compare(s_LiTag, Qt::CaseInsensitive) || + !node.tagName().compare(s_OlTag, Qt::CaseInsensitive) || + !node.tagName().compare(s_DlTag, Qt::CaseInsensitive)) { + elType = wrtBrowserDefs::EElementListBox; + } else if( !node.tagName().compare(s_ObjectTag, Qt::CaseInsensitive) || + !node.tagName().compare(s_EmbedTag, Qt::CaseInsensitive)) { + elType = wrtBrowserDefs::EElementObjectBox; + } + return elType; }