browsercore/appfw/Api/Common/wrtBrowserUtils.cpp
author hgs
Fri, 06 Aug 2010 17:23:08 -0400
changeset 9 b39122337a00
parent 3 0954f5dd2cd0
permissions -rw-r--r--
201031
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
*
3
hgs
parents: 0
diff changeset
     5
* This program is free software: you can redistribute it and/or modify
hgs
parents: 0
diff changeset
     6
* it under the terms of the GNU Lesser General Public License as published by
hgs
parents: 0
diff changeset
     7
* the Free Software Foundation, version 2.1 of the License.
hgs
parents: 0
diff changeset
     8
* 
hgs
parents: 0
diff changeset
     9
* This program is distributed in the hope that it will be useful,
hgs
parents: 0
diff changeset
    10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
hgs
parents: 0
diff changeset
    11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
hgs
parents: 0
diff changeset
    12
* GNU Lesser General Public License for more details.
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
3
hgs
parents: 0
diff changeset
    14
* You should have received a copy of the GNU Lesser General Public License
hgs
parents: 0
diff changeset
    15
* along with this program.  If not, 
hgs
parents: 0
diff changeset
    16
* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
*
3
hgs
parents: 0
diff changeset
    18
* Description:
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
*
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
*/
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
9
hgs
parents: 3
diff changeset
    22
#include <QWebHitTestResult>
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include "wrtBrowserUtils.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
9
hgs
parents: 3
diff changeset
    25
static const QString s_LinkTag = "link";
hgs
parents: 3
diff changeset
    26
static const QString s_InputTag = "input";
hgs
parents: 3
diff changeset
    27
static const QString s_ATag = "a";
hgs
parents: 3
diff changeset
    28
static const QString s_HrefTag = "href";
hgs
parents: 3
diff changeset
    29
static const QString s_AreaTag = "area";
hgs
parents: 3
diff changeset
    30
static const QString s_TextAreaTag = "textarea";
hgs
parents: 3
diff changeset
    31
static const QString s_ButtonTag = "button";
hgs
parents: 3
diff changeset
    32
static const QString s_ObjectTag = "object";
hgs
parents: 3
diff changeset
    33
static const QString s_EmbedTag = "embed";
hgs
parents: 3
diff changeset
    34
static const QString s_ImgTag = "img";
hgs
parents: 3
diff changeset
    35
static const QString s_SelectTag = "select";
hgs
parents: 3
diff changeset
    36
static const QString s_LiTag = "li";
hgs
parents: 3
diff changeset
    37
static const QString s_OlTag = "ol";
hgs
parents: 3
diff changeset
    38
static const QString s_DlTag = "dl";
hgs
parents: 3
diff changeset
    39
static const QString s_FormTag = "form";
hgs
parents: 3
diff changeset
    40
static const QString s_HtmlTag = "html";
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
wrtBrowserDefs::BrowserElementType wrtBrowserUtils::getTypeFromElement(QWebHitTestResult htRes) 
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
{
9
hgs
parents: 3
diff changeset
    44
	QWebElement node = htRes.element();
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
	wrtBrowserDefs::BrowserElementType elType = wrtBrowserDefs::EElementNone;
9
hgs
parents: 3
diff changeset
    46
hgs
parents: 3
diff changeset
    47
    if (node.isNull())
hgs
parents: 3
diff changeset
    48
        return wrtBrowserDefs::EElementNone;
hgs
parents: 3
diff changeset
    49
hgs
parents: 3
diff changeset
    50
    if (node.localName().compare(s_HtmlTag, Qt::CaseInsensitive)) {
hgs
parents: 3
diff changeset
    51
        elType = wrtBrowserDefs::EElementNone;
hgs
parents: 3
diff changeset
    52
    } else if (node.tagName().isEmpty()) {
hgs
parents: 3
diff changeset
    53
        // check whether hit test returns a navigatable element				
hgs
parents: 3
diff changeset
    54
        if(!htRes.linkElement().isNull()) {
hgs
parents: 3
diff changeset
    55
            elType = wrtBrowserDefs::EElementAnchor;
hgs
parents: 3
diff changeset
    56
        }
hgs
parents: 3
diff changeset
    57
    } else if (!node.tagName().compare(s_AreaTag, Qt::CaseInsensitive)) {
hgs
parents: 3
diff changeset
    58
        if(!node.attribute(s_HrefTag).isNull()) {
hgs
parents: 3
diff changeset
    59
            elType = wrtBrowserDefs::EElementAreaBox;
hgs
parents: 3
diff changeset
    60
        } else {
hgs
parents: 3
diff changeset
    61
            elType = wrtBrowserDefs::EElementAnchor;
hgs
parents: 3
diff changeset
    62
        }
hgs
parents: 3
diff changeset
    63
    } else if (!node.tagName().compare(s_ImgTag, Qt::CaseInsensitive)) {
hgs
parents: 3
diff changeset
    64
        elType = wrtBrowserDefs::EElementImageBox;
hgs
parents: 3
diff changeset
    65
        if(!htRes.linkElement().isNull()) {
hgs
parents: 3
diff changeset
    66
            elType = wrtBrowserDefs::EElementAnchor;
hgs
parents: 3
diff changeset
    67
        }
hgs
parents: 3
diff changeset
    68
    } else if (!node.tagName().compare(s_LinkTag, Qt::CaseInsensitive)) {
hgs
parents: 3
diff changeset
    69
        elType = wrtBrowserDefs::EElementAnchor;
hgs
parents: 3
diff changeset
    70
	} else if (!node.tagName().compare(s_InputTag, Qt::CaseInsensitive)) {
hgs
parents: 3
diff changeset
    71
        elType = wrtBrowserDefs::EElementInputBox;
hgs
parents: 3
diff changeset
    72
    } else if (!node.tagName().compare(s_ATag, Qt::CaseInsensitive)) {
hgs
parents: 3
diff changeset
    73
		elType = wrtBrowserDefs::EElementAnchor;        
hgs
parents: 3
diff changeset
    74
    } else if (!node.tagName().compare(s_TextAreaTag, Qt::CaseInsensitive)) {
hgs
parents: 3
diff changeset
    75
        elType = wrtBrowserDefs::EElementTextAreaBox;  
hgs
parents: 3
diff changeset
    76
	} else if (!node.tagName().compare(s_SelectTag, Qt::CaseInsensitive)) {
hgs
parents: 3
diff changeset
    77
        elType = wrtBrowserDefs::EElementSelectBox;  
hgs
parents: 3
diff changeset
    78
	} else if (!node.tagName().compare(s_ButtonTag, Qt::CaseInsensitive)) {
hgs
parents: 3
diff changeset
    79
        elType = wrtBrowserDefs::EElementButton; 
hgs
parents: 3
diff changeset
    80
	} else if (!node.tagName().compare(s_FormTag, Qt::CaseInsensitive)) {
hgs
parents: 3
diff changeset
    81
        elType = wrtBrowserDefs::EElementForm;  
hgs
parents: 3
diff changeset
    82
	} else if (!node.tagName().compare(s_LiTag, Qt::CaseInsensitive) ||
hgs
parents: 3
diff changeset
    83
	           !node.tagName().compare(s_OlTag, Qt::CaseInsensitive) ||
hgs
parents: 3
diff changeset
    84
	           !node.tagName().compare(s_DlTag, Qt::CaseInsensitive)) {
hgs
parents: 3
diff changeset
    85
        elType = wrtBrowserDefs::EElementListBox;
hgs
parents: 3
diff changeset
    86
	} else if( !node.tagName().compare(s_ObjectTag, Qt::CaseInsensitive) ||
hgs
parents: 3
diff changeset
    87
	           !node.tagName().compare(s_EmbedTag, Qt::CaseInsensitive)) {
hgs
parents: 3
diff changeset
    88
		elType = wrtBrowserDefs::EElementObjectBox;        
hgs
parents: 3
diff changeset
    89
    }
hgs
parents: 3
diff changeset
    90
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
	return elType;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
}