1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
/* * This file is part of Maliit framework *
*
* Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
*
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1 as published by the Free Software Foundation
* and appearing in the file LICENSE.LGPL included in the packaging
* of this file.
*/
#ifndef GUI_UTILS_H__
#define GUI_UTILS_H__
#include <QtGlobal>
#include <minputmethodhost.h>
#include <windowgroup.h>
#include <minputcontextconnection.h>
#include <unknownplatform.h>
#include <maliit/plugins/abstractpluginsetting.h>
namespace MaliitTestUtils {
class TestPluginSetting : public Maliit::Plugins::AbstractPluginSetting
{
public:
TestPluginSetting(const QString &key) : settingKey(key) {}
QString key() const { return settingKey; }
QVariant value() const { return QVariant(); }
QVariant value(const QVariant &def) const { return def; }
void set(const QVariant &val) { Q_UNUSED(val); }
void unset() {}
private:
QString settingKey;
};
class TestInputMethodHost
: public MInputMethodHost
{
public:
QString lastCommit;
int sendCommitCount;
QString lastPreedit;
int sendPreeditCount;
TestInputMethodHost(const QString &plugin, const QString &description)
: MInputMethodHost(QSharedPointer<MInputContextConnection>(new MInputContextConnection),
0,
QSharedPointer<Maliit::WindowGroup>(new Maliit::WindowGroup(QSharedPointer<Maliit::AbstractPlatform>(new Maliit::UnknownPlatform))),
plugin,
description)
, sendCommitCount(0)
, sendPreeditCount(0)
{}
void sendCommitString(const QString &string,
int start, int length, int cursorPos)
{
lastCommit = string;
++sendCommitCount;
MInputMethodHost::sendCommitString(string, start, length, cursorPos);
}
void sendPreeditString(const QString &string,
const QList<Maliit::PreeditTextFormat> &preeditFormats,
int start, int length, int cursorPos)
{
lastPreedit = string;
++sendPreeditCount;
MInputMethodHost::sendPreeditString(string, preeditFormats, start, length, cursorPos);
}
AbstractPluginSetting *registerPluginSetting(const QString &key,
const QString &description,
Maliit::SettingEntryType type,
const QVariantMap &attributes)
{
Q_UNUSED(description);
Q_UNUSED(type);
Q_UNUSED(attributes);
return new TestPluginSetting(key);
}
};
}
// For cases where we need to run code _before_ QGuiApplication is created
#define MALIIT_TESTUTILS_GUI_MAIN_WITH_SETUP(TestObject, setupFunc) \
int main(int argc, char *argv[]) \
{ \
setupFunc();\
QGuiApplication app(argc, argv);\
Q_UNUSED(app);\
TestObject tc;\
return QTest::qExec(&tc, argc, argv);\
}
#endif // UTILS_H__
|