1
/* * This file is part of Maliit framework *
3
* Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
6
* Contact: maliit-discuss@lists.maliit.org
8
* This library is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU Lesser General Public
10
* License version 2.1 as published by the Free Software Foundation
11
* and appearing in the file LICENSE.LGPL included in the packaging
15
#include "mdirectinputcontextplugin.h"
17
#include "mimserver.h"
18
#include "mimapphostedserverlogic.h"
20
#include "connectionfactory.h"
21
#include "mimdirectserverconnection.h"
22
#include "miminputcontextdirectconnection.h"
24
#include <maliit/inputmethod.h>
26
#include <minputcontext.h>
28
#include <QStringList>
31
const QString MaliitDirectInputContextName(MALIIT_INPUTCONTEXT_NAME"Direct");
34
MDirectInputContextPlugin::MDirectInputContextPlugin(QObject *parent)
35
: QInputContextPlugin(parent)
41
MDirectInputContextPlugin::~MDirectInputContextPlugin()
47
QInputContext *MDirectInputContextPlugin::create(const QString &key)
49
QInputContext *ctx = NULL;
51
if (key == MaliitDirectInputContextName) {
52
QSharedPointer<MImDirectServerConnection> serverConnection =
53
qSharedPointerObjectCast<MImDirectServerConnection>(Maliit::createServerConnection(MaliitDirectInputContextName));
54
MImInputContextDirectConnection *icConnection = new MImInputContextDirectConnection;
55
serverConnection->connectTo(icConnection);
57
QSharedPointer<MInputContextConnection> icConn(icConnection);
58
QSharedPointer<MImAppHostedServerLogic> serverLogic(new MImAppHostedServerLogic);
59
MImServer::configureSettings(MImServer::TemporarySettings);
60
MImServer *imServer = new MImServer(serverLogic, icConn);
62
Maliit::InputMethod::instance()->setWidget(serverLogic->pluginsProxyWidget());
64
ctx = new MInputContext(serverConnection, MaliitDirectInputContextName, this);
65
imServer->setParent(ctx);
67
qCritical() << "Unknown plugin name";
74
QString MDirectInputContextPlugin::description(const QString &s)
78
return "Maliit input context plugin (direct)";
82
QString MDirectInputContextPlugin::displayName(const QString &s)
86
// TODO: want this translated?
87
return "Input context for Maliit input methods (direct)";
91
QStringList MDirectInputContextPlugin::keys() const
93
return QStringList(MaliitDirectInputContextName);
97
QStringList MDirectInputContextPlugin::languages(const QString &)
99
return QStringList("EN"); // FIXME
103
Q_EXPORT_PLUGIN2(mdirectinputcontext, MDirectInputContextPlugin)