3
#include <QApplication>
11
#include <maliit/inputmethod.h>
12
#include <maliit/namespace.h>
14
#include "actionkeyfilter.h"
15
#include "mainwindow.h"
18
bool enableFullScreenMode()
20
static const bool fullscreen(qApp->arguments().contains("-fullscreen"));
25
MainWindow::MainWindow()
27
loginExtension(new MyExtension("Next")),
28
passwordExtension(new MyExtension("Login"))
30
setWindowTitle("Maliit key override test application");
32
QVBoxLayout *vbox = new QVBoxLayout();
34
// Clicking the button will steal focus from the text edit, thus hiding
35
// the virtual keyboard:
36
QPushButton *hideVkb = new QPushButton("Hide virtual keyboard");
37
vbox->addWidget(hideVkb);
39
QLabel* loginLabel(new QLabel("Login:"));
40
QLineEdit* loginEdit(new QLineEdit());
41
QCheckBox* loginCheckBox(new QCheckBox("Enter accepts login"));
42
QLabel* passwordLabel(new QLabel("Password:"));
43
QLineEdit* passwordEdit(new QLineEdit());
44
QCheckBox* passwordCheckBox(new QCheckBox("Enter accepts password"));
45
QLabel* commentLabel(new QLabel("Comment (not required):"));
46
QLineEdit* commentEdit(new QLineEdit());
47
ActionKeyFilter* filter(new ActionKeyFilter(loginEdit, passwordEdit, this));
49
loginEdit->installEventFilter(filter);
50
loginEdit->setProperty(Maliit::InputMethodQuery::attributeExtensionId,
51
QVariant(loginExtension->id()));
52
loginCheckBox->setFocusProxy(loginEdit);
53
connect(loginCheckBox, SIGNAL(toggled(bool)),
54
loginExtension.data(), SLOT(overrideLabel(bool)));
55
loginCheckBox->setChecked(filter->enterLoginAccepts());
56
connect(loginCheckBox, SIGNAL(toggled(bool)),
57
filter, SLOT(setEnterLoginAccepts(bool)));
59
passwordEdit->setEchoMode(QLineEdit::Password);
60
passwordEdit->installEventFilter(filter);
61
passwordEdit->setProperty(Maliit::InputMethodQuery::attributeExtensionId,
62
QVariant(passwordExtension->id()));
63
passwordCheckBox->setFocusProxy(passwordEdit);
64
connect(passwordCheckBox, SIGNAL(toggled(bool)),
65
passwordExtension.data(), SLOT(overrideLabel(bool)));
66
passwordCheckBox->setChecked(filter->enterPasswordAccepts());
67
connect(passwordCheckBox, SIGNAL(toggled(bool)),
68
filter, SLOT(setEnterPasswordAccepts(bool)));
70
vbox->addWidget(loginLabel);
71
vbox->addWidget(loginEdit);
72
vbox->addWidget(loginCheckBox);
73
vbox->addWidget(passwordLabel);
74
vbox->addWidget(passwordEdit);
75
vbox->addWidget(passwordCheckBox);
76
vbox->addWidget(commentLabel);
77
vbox->addWidget(commentEdit);
80
QPushButton *closeApp = new QPushButton("Close application");
81
vbox->addWidget(closeApp);
82
connect(closeApp, SIGNAL(clicked()),
85
setCentralWidget(new QWidget);
86
centralWidget()->setLayout(vbox);
88
if (enableFullScreenMode()) {