Skip to content

Commit f4a3329

Browse files
committed
support QT5
1 parent f3658f7 commit f4a3329

File tree

12 files changed

+137
-28
lines changed

12 files changed

+137
-28
lines changed

inc/viewfactory.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@
22
#define VIEWFACTORY_H
33

44
#include <map>
5+
6+
#include <QtCore/QGlobalStatic>
7+
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
8+
#include <QtWidgets/QWidget>
9+
#else
510
#include <QtGui/QWidget>
11+
#endif
612

713
class AbstractViewCreator
814
{

src/Test/main.cc

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,27 @@
1-
#include <QtGui/QApplication>
2-
#include <QtWebKit/QtWebKit>
3-
#include <QtCore/QTextCodec>
4-
#include <WebDriver.h>
51
#include <QtCore/QFuture>
6-
#include <QtCore/QObject>
72
#include <QtCore/QFutureWatcher>
3+
#include <QtCore/QObject>
4+
#include <QtCore/QTextCodec>
5+
6+
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
7+
#include <QtConcurrent/QtConcurrentRun>
8+
#include <QtWebKitWidgets/QWebView>
9+
#include <QtWidgets/QApplication>
10+
#else
811
#include <QtCore/QtConcurrentRun>
12+
#include <QtGui/QApplication>
13+
#include <QtWebKit/QtWebKit>
14+
#endif
15+
16+
#include <WebDriver.h>
917

1018
int main(int argc, char *argv[])
1119
{
1220
QApplication app(argc, argv);
1321
app.setQuitOnLastWindowClosed(false);
22+
#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))
1423
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
24+
#endif
1525
QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
1626
QWebSettings::globalSettings()->setAttribute(QWebSettings::JavascriptEnabled, true);
1727
QWebSettings::globalSettings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);

src/chrome/test/automation/automation_json_requests.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
#include "chrome/test/automation/automation_json_requests.h"
66
#include "qwebviewext.h"
7+
#include <QtCore/QTime>
78
#include <QtCore/QVariant>
89

910
/*#include "base/basictypes.h"

src/chrome/test/automation/automation_json_requests.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@
77

88
#include <string>
99
#include <vector>
10+
11+
#include <QtCore/QGlobalStatic>
12+
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
13+
#include <QtWebKitWidgets/QWebView>
14+
#else
1015
#include <QtWebKit/QtWebKit>
16+
#endif
1117

1218
#include "base/compiler_specific.h"
1319
//#include "base/file_path.h"

src/chrome/test/webdriver/webdriver_automation.cc

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,26 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
#include <QtGui/QApplication>
6-
#include <QtGui/QDesktopWidget>
75
#include <QtCore/QEvent>
86
#include <QtCore/QThread>
97
#include <QtGui/QKeyEvent>
108
#include <QtGui/QPixmap>
119
#include <QtWebKit/QtWebKit>
1210
#include <QtCore/QDebug>
1311
#include <QtNetwork/QtNetwork>
12+
13+
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
14+
#include <QtWebKitWidgets/QWebFrame>
15+
#include <QtWidgets/QApplication>
16+
#include <QtWidgets/QDesktopWidget>
17+
#include <QtWidgets/QMessageBox>
18+
#include <QtWidgets/QInputDialog>
19+
#else
20+
#include <QtGui/QApplication>
21+
#include <QtGui/QDesktopWidget>
1422
#include <QtGui/QMessageBox>
1523
#include <QtGui/QInputDialog>
24+
#endif
1625

1726
#include "webdriver_automation.h"
1827

@@ -94,11 +103,21 @@ void Automation::Init(const BrowserOptions& options, int* build_no, Error** erro
94103
if (!options.browser_start_window.empty())
95104
{
96105
qDebug()<<"[WD]:"<<"Browser Start Window: "<<options.browser_start_window.c_str();
106+
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
107+
foreach(QWindow* pWidget, qApp->allWindows())
108+
#else
97109
foreach(QWidget* pWidget, qApp->allWidgets())
110+
#endif
98111
{
99-
qDebug()<<"[WD]:"<<"looking for start window"<<pWidget<<pWidget->windowTitle();
112+
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
113+
QString title = pWidget->title();
114+
#else
115+
QString title = pWidget->windowTitle();
116+
#endif
117+
118+
qDebug() << "[WD]:" << "looking for start window" << pWidget << title;
100119

101-
if ((options.browser_start_window == pWidget->windowTitle().toStdString()) || (options.browser_start_window == "*"))
120+
if ((options.browser_start_window == title.toStdString()) || (options.browser_start_window == "*"))
102121
{
103122
QWebView* pView = qobject_cast<QWebView*>(pWidget);
104123
//check found widget if it is QWebView or ancestor; and if it don't belong to any session
@@ -222,10 +241,14 @@ void Automation::Terminate()
222241
qDebug()<<"[WD]:"<<"*************TERMINATE SESSION******************";
223242
logger_.Log(kInfoLogLevel, "QtWebKit WebDriver shutdown");
224243

244+
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
245+
foreach(QWindow* pView, qApp->topLevelWindows())
246+
#else
225247
foreach(QWidget* pView, qApp->topLevelWidgets())
248+
#endif
226249
{
227250
QVariant sessionIdVar = pView->property("sessionId");
228-
if (sessionIdVar.isValid() && (sessionId == sessionIdVar.toInt()) && !pView->isHidden())
251+
if (sessionIdVar.isValid() && (sessionId == sessionIdVar.toInt()) && pView->isVisible())
229252
{
230253
// destroy children correctly
231254
QList<QWidget*> childs = pView->findChildren<QWidget*>();
@@ -235,7 +258,9 @@ void Automation::Terminate()
235258
child->close();
236259
}
237260

261+
#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))
238262
pView->setAttribute(Qt::WA_DeleteOnClose, true);
263+
#endif
239264
pView->close();
240265
}
241266
}
@@ -826,13 +851,17 @@ void Automation::GetViews(std::vector<WebViewInfo>* views,
826851
Error** error)
827852
{
828853
std::string extension_id;
854+
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
855+
foreach(QWindow* pWidget, qApp->topLevelWindows())
856+
#else
829857
foreach(QWidget* pWidget, qApp->topLevelWidgets())
858+
#endif
830859
{
831860
QVariant sessionIdVar = pWidget->property("sessionId");
832861
if (sessionIdVar.isValid() && (sessionId == sessionIdVar.toInt()))
833862
{
834863
QWebView* pView = qobject_cast<QWebView*>(pWidget);
835-
if ((pView != NULL) && !pView->isHidden())
864+
if ((pView != NULL) && pView->isVisible())
836865
{
837866
WebViewId pWebView = WebViewId::ForQtView(pView);
838867
views->push_back(WebViewInfo(pWebView, extension_id));
@@ -846,7 +875,11 @@ void Automation::DoesViewExist(WebViewId *view_id, bool *does_exist, Error **err
846875
error = NULL;
847876
*does_exist = false;
848877

878+
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
879+
foreach(QWindow* pWidget, qApp->allWindows())
880+
#else
849881
foreach(QWidget* pWidget, qApp->allWidgets())
882+
#endif
850883
{
851884
QVariant sessionIdVar = pWidget->property("sessionId");
852885
if (sessionIdVar.isValid() && (sessionId == sessionIdVar.toInt()))
@@ -1493,7 +1526,11 @@ void Automation::BuildKeyMap()
14931526
bool Automation::checkView(const WebViewId &view_id)
14941527
{
14951528
//Rework to check only pointer
1529+
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
1530+
foreach(QWindow* pView, qApp->allWindows())
1531+
#else
14961532
foreach(QWidget* pView, qApp->allWidgets())
1533+
#endif
14971534
{
14981535
QVariant sessionIdVar = pView->property("sessionId");
14991536
if (sessionIdVar.isValid() && (sessionId == sessionIdVar.toInt()))

src/chrome/test/webdriver/webdriver_server.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,11 @@
7676
#include <sys/wait.h>
7777
#endif
7878

79+
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
80+
#include <QtWidgets/QApplication>
81+
#else
7982
#include <QtGui/QApplication>
83+
#endif
8084

8185
namespace webdriver {
8286

src/chrome/test/webdriver/webdriver_session.cc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,12 @@
4141
#include "chrome/test/webdriver/webdriver_util.h"
4242
#include "third_party/webdriver/atoms.h"
4343

44-
45-
#include <QtGui/QApplication>
4644
#include <QtCore/QDebug>
47-
45+
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
46+
#include <QtWidgets/QApplication>
47+
#else
48+
#include <QtGui/QApplication>
49+
#endif
4850

4951
using automation::kLeftButton;
5052
using automation::kMouseDown;

src/qwebviewext.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33
#include <QtCore/QTime>
44
#include <QtCore/QDebug>
55
#include <QtNetwork/QNetworkProxy>
6+
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
7+
#include <QtWidgets/QWidget>
8+
#else
69
#include <QtGui/QWidget>
10+
#endif
711

812
QWebViewExt::QWebViewExt(QWidget *parent) :
913
QWebView(parent)

src/qwebviewext.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
#ifndef QWEBVIEWEXT_H
22
#define QWEBVIEWEXT_H
33

4-
#include <QtWebKit/QWebView>
4+
#include <QtCore/QGlobalStatic>
5+
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
6+
#include <QtWebKitWidgets/QWebView>
7+
#else
8+
#include <QtWebKit/QtWebKit>
9+
#endif
510

611
class QWebViewExt : public QWebView
712
{

wd.gyp

Lines changed: 45 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
{
2-
"includes": [
3-
"wd.gypi",
2+
'includes': [
3+
'wd.gypi',
44
],
55

6+
'variables': {
7+
'QT5%': '0',
8+
},
9+
610
'conditions': [
711
[ 'platform == "desktop"', {
812
'variables': {
@@ -25,21 +29,48 @@
2529
'WebDriver',
2630
],
2731

28-
'libraries': [
29-
'-L<(QT_LIB_PATH)',
30-
'-lQtWebKit',
31-
'-lQtNetwork',
32-
'-lQtGui',
33-
'-lQtCore',
34-
'-lpthread',
35-
'-lrt',
36-
'-ldl',
37-
],
38-
3932
'sources': [
4033
'src/Test/main.cc',
4134
'src/third_party/mongoose/mongoose.c',
4235
],
36+
37+
'conditions': [
38+
[ '<(QT5) == 1', {
39+
'libraries': [
40+
'-L<(QT_LIB_PATH)',
41+
'-lQt5WebKitWidgets',
42+
'-lQt5OpenGL',
43+
'-lQt5PrintSupport',
44+
'-lQt5WebKit',
45+
'-lQt5Script',
46+
'-lQt5Network',
47+
'-lQt5V8',
48+
'-lQt5Widgets',
49+
'-lQt5Quick',
50+
'-lQt5Qml',
51+
'-lQt5Sql',
52+
'-lQt5Declarative',
53+
'-lQt5XmlPatterns',
54+
'-lQt5Xml',
55+
'-lQt5Gui',
56+
'-lQt5Core',
57+
'-lpthread',
58+
'-lrt',
59+
'-ldl',
60+
],
61+
}, {
62+
'libraries': [
63+
'-L<(QT_LIB_PATH)',
64+
'-lQtWebKit',
65+
'-lQtNetwork',
66+
'-lQtGui',
67+
'-lQtCore',
68+
'-lpthread',
69+
'-lrt',
70+
'-ldl',
71+
],
72+
} ],
73+
],
4374
},
4475
],
4576
} ],
@@ -62,6 +93,7 @@
6293
],
6394

6495
'defines': [
96+
'__STDC_FORMAT_MACROS',
6597
'OS_POSIX',
6698
'QT_NO_DEBUG',
6799
'QT_GUI_LIB',

0 commit comments

Comments
 (0)