on dcb2e88 help sign in
unity8/tests/mocks/Unity/InputInfo/mockcontroller.cpp
57 lines 1.9 kB history raw
1/*
2 * Copyright 2015 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; version 3.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
17#include "mockcontroller.h"
19#include "qinputdeviceinfo_mock_p.h"
21#include <QQuickView>
22#include <QQmlComponent>
23#include <QQuickItem>
24#include <paths.h>
26MockController::MockController(QQmlEngine *engine)
28 QQmlComponent component(engine);
29 component.setData("import QtQuick 2.4; import Unity.InputInfo 0.1; InputWindow { }", ::qmlDirectory());
30 QObject *myObject = component.create();
31 QQuickItem *item = qobject_cast<QQuickItem*>(myObject);
32 if (item) {
33 auto window = new QQuickView();
34 window->setTitle("Input");
35 item->setParentItem(window->contentItem());
36 window->setResizeMode(QQuickView::SizeRootObjectToView);
37 window->setWidth(200);
38 window->setHeight(100);
39 window->show();
40 }
43MockController *MockController::instance(QQmlEngine *engine)
45 static MockController* controller = new MockController(engine);
46 return controller;
49QInputDevice *MockController::addMockDevice(const QString &devicePath, QInputDevice::InputType type)
51 return QInputDeviceManagerPrivate::instance()->addMockDevice(devicePath, type);
54void MockController::removeDevice(const QString &devicePath)
56 QInputDeviceManagerPrivate::instance()->removeDevice(devicePath);