1 /*
2 Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 Boston, MA 02110-1301, USA.
18 */
19
20 #include <QApplication>
21 #include <QUrl>
22 #include <qwebview.h>
23 #include <qwebframe.h>
24 #include <qwebelement.h>
25
26 static QWebFrame *frame;
27
traverse()28 static void traverse()
29 {
30 //! [Traversing with QWebElement]
31 frame->setHtml("<html><body><p>First Paragraph</p><p>Second Paragraph</p></body></html>");
32 QWebElement doc = frame->documentElement();
33 QWebElement body = doc.firstChild();
34 QWebElement firstParagraph = body.firstChild();
35 QWebElement secondParagraph = firstParagraph.nextSibling();
36 //! [Traversing with QWebElement]
37 }
38
findButtonAndClick()39 static void findButtonAndClick()
40 {
41
42 frame->setHtml("<form name=\"myform\" action=\"submit_form.asp\" method=\"get\">"
43 "<input type=\"text\" name=\"myfield\">"
44 "<input type=\"submit\" value=\"Submit\">"
45 "</form>");
46
47 //! [Calling a DOM element method]
48
49 QWebElement document = frame->documentElement();
50 /* Assume that the document has the following structure:
51
52 <form name="myform" action="submit_form.asp" method="get">
53 <input type="text" name="myfield">
54 <input type="submit" value="Submit">
55 </form>
56
57 */
58
59 QWebElement button = document.findFirst("input[type=submit]");
60 button.evaluateJavaScript("click()");
61
62 //! [Calling a DOM element method]
63
64 }
65
autocomplete1()66 static void autocomplete1()
67 {
68 QWebElement document = frame->documentElement();
69
70 //! [autocomplete1]
71 QWebElement firstTextInput = document.findFirst("input[type=text]");
72 QString storedText = firstTextInput.attribute("value");
73 //! [autocomplete1]
74
75 }
76
77
autocomplete2()78 static void autocomplete2()
79 {
80
81 QWebElement document = frame->documentElement();
82 QString storedText = "text";
83
84 //! [autocomplete2]
85 QWebElement firstTextInput = document.findFirst("input[type=text]");
86 textInput.setAttribute("value", storedText);
87 //! [autocomplete2]
88
89 }
90
91
findAll()92 static void findAll()
93 {
94 //! [FindAll]
95 QWebElement document = frame->documentElement();
96 /* Assume the document has the following structure:
97
98 <p class=intro>
99 <span>Intro</span>
100 <span>Snippets</span>
101 </p>
102 <p>
103 <span>Content</span>
104 <span>Here</span>
105 </p>
106 */
107
108 //! [FindAll intro]
109 QWebElementCollection allSpans = document.findAll("span");
110 QWebElementCollection introSpans = document.findAll("p.intro span");
111 //! [FindAll intro] //! [FindAll]
112 }
113
main(int argc,char * argv[])114 int main(int argc, char *argv[])
115 {
116 QApplication app(argc, argv);
117 QWebView *view = new QWebView(0);
118 frame = view->page()->mainFrame();
119 traverse();
120 findAll();
121 findButtonAndClick();
122 autocomplete1();
123 autocomplete2();
124 return 0;
125 }
126