~michael-sheldon/ubuntu/utopic/maliit-framework/fix-orientation-updates

« back to all changes in this revision

Viewing changes to examples/apps/twofields/mainwindow.cpp

  • Committer: Package Import Robot
  • Author(s): Ricardo Salveti de Araujo, Sergio Schvezov, Ricardo Salveti de Araujo
  • Date: 2013-07-23 19:47:04 UTC
  • mfrom: (1.1.2) (1.2.1 experimental)
  • Revision ID: package-import@ubuntu.com-20130723194704-1lsy1kmlda069cea
Tags: 0.99.0+git20130615+97e8335-0ubuntu1
[ Sergio Schvezov ]
* New build from HEAD 97e8335.
* Packaging import from lp:phablet-extras/maliit-framework.

[ Ricardo Salveti de Araujo ]
* debian/control: adding vcs and fixing dependencies
* General package cleanup

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#include <cstdlib>
2
 
 
3
 
#include <QApplication>
4
 
#include <QCheckBox>
5
 
#include <QLabel>
6
 
#include <QLineEdit>
7
 
#include <QPushButton>
8
 
#include <QVariant>
9
 
#include <QVBoxLayout>
10
 
 
11
 
#include <maliit/inputmethod.h>
12
 
#include <maliit/namespace.h>
13
 
 
14
 
#include "actionkeyfilter.h"
15
 
#include "mainwindow.h"
16
 
 
17
 
namespace {
18
 
    bool enableFullScreenMode()
19
 
    {
20
 
        static const bool fullscreen(qApp->arguments().contains("-fullscreen"));
21
 
        return fullscreen;
22
 
    }
23
 
}
24
 
 
25
 
MainWindow::MainWindow()
26
 
    : QMainWindow(),
27
 
      loginExtension(new MyExtension("Next")),
28
 
      passwordExtension(new MyExtension("Login"))
29
 
{
30
 
    setWindowTitle("Maliit key override test application");
31
 
 
32
 
    QVBoxLayout *vbox = new QVBoxLayout();
33
 
 
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);
38
 
 
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));
48
 
 
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)));
58
 
 
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)));
69
 
 
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);
78
 
    vbox->addStretch();
79
 
 
80
 
    QPushButton *closeApp = new QPushButton("Close application");
81
 
    vbox->addWidget(closeApp);
82
 
    connect(closeApp, SIGNAL(clicked()),
83
 
            this,     SLOT(close()));
84
 
 
85
 
    setCentralWidget(new QWidget);
86
 
    centralWidget()->setLayout(vbox);
87
 
 
88
 
    if (enableFullScreenMode()) {
89
 
        showFullScreen();
90
 
    } else {
91
 
        show();
92
 
    }
93
 
}