Skip to content

Commit 8c59da3

Browse files
committed
extract rect/point operations to util class
1 parent 2401acf commit 8c59da3

13 files changed

+127
-119
lines changed

inc/extension_qt/q_view_executor.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,6 @@ class QViewCmdExecutor : public ViewCmdExecutor {
4848

4949
protected:
5050
QWidget* getView(const ViewId& viewId, Error** error);
51-
Rect ConvertQRectToRect(const QRect &rect);
52-
QRect ConvertRectToQRect(const Rect &rect);
53-
QPoint ConvertPointToQPoint(const Point &p);
54-
Qt::MouseButton ConvertMouseButtonToQtMouseButton(MouseButton button);
5551

5652
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
5753
QTouchDevice touchDevice;

inc/extension_qt/qml_web_view_executor.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,6 @@ class QmlWebViewCmdExecutor : public ViewCmdExecutor {
124124

125125
protected:
126126
QDeclarativeWebView* getView(const ViewId& viewId, Error** error);
127-
Rect ConvertQRectToRect(const QRect &rect);
128-
QRect ConvertRectToQRect(const Rect &rect);
129-
QPoint ConvertPointToQPoint(const Point &p);
130-
Qt::MouseButton ConvertMouseButtonToQtMouseButton(MouseButton button);
131127

132128
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
133129
QTouchDevice touchDevice;

inc/webdriver_basic_types.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ class Value;
1313

1414
namespace webdriver {
1515

16+
/// @enum MouseButton button codes
17+
enum MouseButton {
18+
kLeftButton = 0,
19+
kMiddleButton = 1,
20+
kRightButton = 2
21+
};
22+
1623
class Point {
1724
public:
1825
Point();

inc/webdriver_view_executor.h

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ webdriver::ViewCmdExecutorFactory::GetInstance()->AddViewCmdExecutorCreator(new
4545
#include "base/string16.h"
4646
#include "webdriver_view_id.h"
4747
#include "webdriver_element_id.h"
48+
#include "webdriver_basic_types.h"
4849

4950
namespace base {
5051
class Value;
@@ -58,13 +59,6 @@ class Rect;
5859
class Point;
5960
class Size;
6061

61-
/// @enum MouseButton button codes
62-
enum MouseButton {
63-
kLeftButton = 0,
64-
kMiddleButton = 1,
65-
kRightButton = 2
66-
};
67-
6862
/// @enum StorageType storage types
6963
enum StorageType {
7064
kLocalStorageType = 0,
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#include "common_util.h"
2+
3+
namespace webdriver {
4+
5+
Rect QCommonUtil::ConvertQRectToRect(const QRect &rect) {
6+
return Rect(rect.x(), rect.y(), rect.width(), rect.height());
7+
}
8+
9+
QRect QCommonUtil::ConvertRectToQRect(const Rect &rect) {
10+
QRect resultRect;
11+
resultRect.setX(rect.x());
12+
resultRect.setY(rect.y());
13+
resultRect.setWidth(rect.width());
14+
resultRect.setHeight(rect.height());
15+
16+
return resultRect;
17+
}
18+
19+
QPoint QCommonUtil::ConvertPointToQPoint(const Point &p) {
20+
QPoint resultPoint;
21+
resultPoint.setX(p.x());
22+
resultPoint.setY(p.y());
23+
24+
return resultPoint;
25+
}
26+
27+
Qt::MouseButton QCommonUtil::ConvertMouseButtonToQtMouseButton(MouseButton button) {
28+
Qt::MouseButton result = Qt::NoButton;
29+
30+
switch(button)
31+
{
32+
case kLeftButton: result = Qt::LeftButton; break;
33+
case kMiddleButton: result = Qt::MidButton; break;
34+
case kRightButton: result = Qt::RightButton; break;
35+
default: result = Qt::NoButton;
36+
}
37+
38+
return result;
39+
}
40+
41+
42+
} // namespace webdriver
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#ifndef WEBDRIVER_QT_WD_COMMON_UTIL_H_
2+
#define WEBDRIVER_QT_WD_COMMON_UTIL_H_
3+
4+
#include <string>
5+
6+
#include <QtCore/QtGlobal>
7+
#include <QtCore/QRect>
8+
#include <QtCore/QPoint>
9+
//#include <QtGui/QMouseEvent>
10+
11+
#include "webdriver_basic_types.h"
12+
13+
14+
namespace webdriver {
15+
16+
class Session;
17+
class ViewId;
18+
19+
class QCommonUtil {
20+
public:
21+
static Rect ConvertQRectToRect(const QRect &rect);
22+
static QRect ConvertRectToQRect(const Rect &rect);
23+
static QPoint ConvertPointToQPoint(const Point &p);
24+
static Qt::MouseButton ConvertMouseButtonToQtMouseButton(MouseButton button);
25+
26+
private:
27+
QCommonUtil() {};
28+
~QCommonUtil(){}
29+
};
30+
31+
32+
} // namespace webdriver
33+
34+
#endif // WEBDRIVER_QT_WD_COMMON_UTIL_H_

src/webdriver/extension_qt/q_view_executor.cc

Lines changed: 3 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include "q_key_converter.h"
66
#include "extension_qt/widget_view_handle.h"
77
#include "widget_view_util.h"
8+
#include "common_util.h"
89
#include "extension_qt/event_dispatcher.h"
910
#include "extension_qt/wd_event_dispatcher.h"
1011

@@ -73,7 +74,7 @@ void QViewCmdExecutor::GetBounds(Rect *bounds, Error **error) {
7374
if (NULL == view)
7475
return;
7576

76-
*bounds = ConvertQRectToRect(view->geometry());
77+
*bounds = QCommonUtil::ConvertQRectToRect(view->geometry());
7778
}
7879

7980
void QViewCmdExecutor::SetBounds(const Rect& bounds, Error** error) {
@@ -86,7 +87,7 @@ void QViewCmdExecutor::SetBounds(const Rect& bounds, Error** error) {
8687
return;
8788
}
8889

89-
view->setGeometry(ConvertRectToQRect(bounds));
90+
view->setGeometry(QCommonUtil::ConvertRectToQRect(bounds));
9091
}
9192

9293
void QViewCmdExecutor::Maximize(Error** error) {
@@ -371,40 +372,4 @@ void QViewCmdExecutor::GetOrientation(std::string *orientation, Error **error)
371372
#endif
372373
}
373374

374-
Rect QViewCmdExecutor::ConvertQRectToRect(const QRect &rect) {
375-
return Rect(rect.x(), rect.y(), rect.width(), rect.height());
376-
}
377-
378-
QRect QViewCmdExecutor::ConvertRectToQRect(const Rect &rect) {
379-
QRect resultRect;
380-
resultRect.setX(rect.x());
381-
resultRect.setY(rect.y());
382-
resultRect.setWidth(rect.width());
383-
resultRect.setHeight(rect.height());
384-
385-
return resultRect;
386-
}
387-
388-
QPoint QViewCmdExecutor::ConvertPointToQPoint(const Point &p) {
389-
QPoint resultPoint;
390-
resultPoint.setX(p.x());
391-
resultPoint.setY(p.y());
392-
393-
return resultPoint;
394-
}
395-
396-
Qt::MouseButton QViewCmdExecutor::ConvertMouseButtonToQtMouseButton(MouseButton button) {
397-
Qt::MouseButton result = Qt::NoButton;
398-
399-
switch(button)
400-
{
401-
case kLeftButton: result = Qt::LeftButton; break;
402-
case kMiddleButton: result = Qt::MidButton; break;
403-
case kRightButton: result = Qt::RightButton; break;
404-
default: result = Qt::NoButton;
405-
}
406-
407-
return result;
408-
}
409-
410375
} // namespace webdriver

src/webdriver/extension_qt/qml_view_executor.cc

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "webdriver_session.h"
99
#include "webdriver_view_factory.h"
1010
#include "webdriver_util.h"
11+
#include "common_util.h"
1112
#include "q_key_converter.h"
1213
#include "extension_qt/widget_element_handle.h"
1314
#include "extension_qt/widget_view_handle.h"
@@ -191,7 +192,7 @@ void QQmlViewCmdExecutor::MouseDoubleClick(Error** error) {
191192
if (NULL == view)
192193
return;
193194

194-
QPoint point = ConvertPointToQPoint(session_->get_mouse_position());
195+
QPoint point = QCommonUtil::ConvertPointToQPoint(session_->get_mouse_position());
195196
QPointF scenePoint(point.x(), point.y());
196197

197198
QGraphicsSceneMouseEvent *dbClckEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseDoubleClick);
@@ -213,7 +214,7 @@ void QQmlViewCmdExecutor::MouseButtonUp(Error** error) {
213214
if (NULL == view)
214215
return;
215216

216-
QPoint point = ConvertPointToQPoint(session_->get_mouse_position());
217+
QPoint point = QCommonUtil::ConvertPointToQPoint(session_->get_mouse_position());
217218
QPointF scenePoint(point.x(), point.y());
218219

219220
QGraphicsSceneMouseEvent *releaseEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMouseRelease);
@@ -229,7 +230,7 @@ void QQmlViewCmdExecutor::MouseButtonDown(Error** error) {
229230
if (NULL == view)
230231
return;
231232

232-
QPoint point = ConvertPointToQPoint(session_->get_mouse_position());
233+
QPoint point = QCommonUtil::ConvertPointToQPoint(session_->get_mouse_position());
233234
QPointF scenePoint(point.x(), point.y());
234235

235236
QGraphicsSceneMouseEvent *pressEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMousePress);
@@ -245,10 +246,10 @@ void QQmlViewCmdExecutor::MouseClick(MouseButton button, Error** error) {
245246
if (NULL == view)
246247
return;
247248

248-
QPoint point = ConvertPointToQPoint(session_->get_mouse_position());
249+
QPoint point = QCommonUtil::ConvertPointToQPoint(session_->get_mouse_position());
249250
QPointF scenePoint(point.x(), point.y());
250251

251-
Qt::MouseButton mouseButton = ConvertMouseButtonToQtMouseButton(button);
252+
Qt::MouseButton mouseButton = QCommonUtil::ConvertMouseButtonToQtMouseButton(button);
252253

253254
QGraphicsSceneMouseEvent *pressEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMousePress);
254255
pressEvent->setScenePos(scenePoint);
@@ -276,7 +277,7 @@ void QQmlViewCmdExecutor::MouseMove(const int x_offset, const int y_offset, Erro
276277
Point prev_pos = session_->get_mouse_position();
277278
prev_pos.Offset(x_offset, y_offset);
278279

279-
QPoint point = ConvertPointToQPoint(prev_pos);
280+
QPoint point = QCommonUtil::ConvertPointToQPoint(prev_pos);
280281
QPointF scenePoint(point.x(), point.y());
281282

282283
if (!view->sceneRect().contains(scenePoint)) {

src/webdriver/extension_qt/qml_web_view_executor.cc

Lines changed: 6 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "extension_qt/declarative_item_view_handle.h"
77
#include "extension_qt/event_dispatcher.h"
88
#include "extension_qt/wd_event_dispatcher.h"
9+
#include "web_view_util.h"
910

1011
#include <QtCore/QDebug>
1112

@@ -73,7 +74,11 @@ QDeclarativeWebView* QmlWebViewCmdExecutor::getView(const ViewId& viewId, Error*
7374
}
7475

7576
void QmlWebViewCmdExecutor::CanHandleUrl(const std::string& url, bool* can, Error **error) {
76-
// TODO:
77+
QDeclarativeWebView* pWebView = getView(view_id_, error);
78+
if (NULL == pWebView)
79+
return;
80+
81+
*can = QWebViewUtil::isUrlSupported(pWebView->page(), url, error);
7782
}
7883

7984
void QmlWebViewCmdExecutor::GetTitle(std::string* title, Error **error) {
@@ -384,40 +389,4 @@ void QmlWebViewCmdExecutor::GetOrientation(std::string *orientation, Error **err
384389
// TODO:
385390
}
386391

387-
Rect QmlWebViewCmdExecutor::ConvertQRectToRect(const QRect &rect) {
388-
return Rect(rect.x(), rect.y(), rect.width(), rect.height());
389-
}
390-
391-
QRect QmlWebViewCmdExecutor::ConvertRectToQRect(const Rect &rect) {
392-
QRect resultRect;
393-
resultRect.setX(rect.x());
394-
resultRect.setY(rect.y());
395-
resultRect.setWidth(rect.width());
396-
resultRect.setHeight(rect.height());
397-
398-
return resultRect;
399-
}
400-
401-
QPoint QmlWebViewCmdExecutor::ConvertPointToQPoint(const Point &p) {
402-
QPoint resultPoint;
403-
resultPoint.setX(p.x());
404-
resultPoint.setY(p.y());
405-
406-
return resultPoint;
407-
}
408-
409-
Qt::MouseButton QmlWebViewCmdExecutor::ConvertMouseButtonToQtMouseButton(MouseButton button) {
410-
Qt::MouseButton result = Qt::NoButton;
411-
412-
switch(button)
413-
{
414-
case kLeftButton: result = Qt::LeftButton; break;
415-
case kMiddleButton: result = Qt::MidButton; break;
416-
case kRightButton: result = Qt::RightButton; break;
417-
default: result = Qt::NoButton;
418-
}
419-
420-
return result;
421-
}
422-
423392
} // namespace webdriver

0 commit comments

Comments
 (0)