1
#include "mimapphostedserverlogic.h"
3
#include "windowedsurfacegroup.h"
4
#include "maliit/plugins/abstractsurface.h" // for AbstractSurface::Option
13
bool configureForAppHosting(QWidget *w)
19
w->setFocusPolicy(Qt::NoFocus);
24
MImAppHostedServerLogic::MImAppHostedServerLogic(QObject *parent)
25
: MImAbstractServerLogic(parent)
26
, mPluginsWidget(new QWidget(&mDefaultParent))
27
, mSurfaceGroupFactory(new Maliit::Server::WindowedSurfaceGroupFactory)
29
QGridLayout *layout = new QGridLayout(mPluginsWidget);
31
layout->setContentsMargins(0, 0, 0, 0);
32
layout->setColumnStretch(0, 1);
33
layout->setColumnStretch(2, 1);
35
mPluginsWidget->setAutoFillBackground(false);
36
mPluginsWidget->setBackgroundRole(QPalette::NoRole);
37
mPluginsWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
38
mPluginsWidget->setFocusPolicy(Qt::NoFocus);
40
connect(mSurfaceGroupFactory.data(), SIGNAL(surfaceWidgetCreated(QWidget*,int)),
41
this, SLOT(newSurfaceWidget(QWidget*,int)));
44
MImAppHostedServerLogic::~MImAppHostedServerLogic()
48
void MImAppHostedServerLogic::inputPassthrough(const QRegion ®ion)
50
if (region.isEmpty()) {
51
mPluginsWidget->hide();
53
mPluginsWidget->show();
57
QWidget *MImAppHostedServerLogic::pluginsProxyWidget() const
59
return mPluginsWidget;
62
void MImAppHostedServerLogic::newSurfaceWidget(QWidget *widget, int surfaceOptions)
64
visitWidgetHierarchy(configureForAppHosting, widget);
66
QGridLayout *layout = qobject_cast<QGridLayout*>(mPluginsWidget->layout());
68
if (surfaceOptions & Maliit::Plugins::AbstractSurface::PositionLeftBottom)
69
layout->addWidget(widget, 0, 0, Qt::AlignLeft);
70
else if (surfaceOptions & Maliit::Plugins::AbstractSurface::PositionCenterBottom)
71
layout->addWidget(widget, 0, 1, Qt::AlignCenter);
72
else if (surfaceOptions & Maliit::Plugins::AbstractSurface::PositionRightBottom)
73
layout->addWidget(widget, 0, 2, Qt::AlignRight);
76
QSharedPointer<Maliit::Server::AbstractSurfaceGroupFactory> MImAppHostedServerLogic::surfaceGroupFactory() const
78
return mSurfaceGroupFactory;
81
void MImAppHostedServerLogic::pluginLoaded()
83
visitWidgetHierarchy(configureForAppHosting, mPluginsWidget);
86
void MImAppHostedServerLogic::appOrientationAboutToChange(int toAngle)
91
void MImAppHostedServerLogic::appOrientationChangeFinished(int toAngle)
96
void MImAppHostedServerLogic::applicationFocusChanged(WId newRemoteWinId)
98
Q_UNUSED(newRemoteWinId);