summaryrefslogtreecommitdiff
path: root/noncore/securityplugins/dummy/dummyplugin.cpp
blob: 594825e5c31bdc384567b268c5581f92441e8653 (plain)
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
#include "dummyplugin.h"

#include <opie2/oapplication.h>

#include <qdialog.h>
#include <qlayout.h>
#include <qlabel.h>
#include <qpushbutton.h>

using Opie::Security::MultiauthConfigWidget;
using Opie::Security::MultiauthPluginObject;

/// Simply return its name (Dummy plugin)
QString DummyPlugin::pluginName() const {
    return "Dummy plugin";
}

/// no configuration widget for the moment
MultiauthConfigWidget * DummyPlugin::configWidget(QWidget * parent) {
    return 0l;
}
QString DummyPlugin::pixmapNameWidget() const {
    return "security/dummyplugin";
}
QString DummyPlugin::pixmapNameConfig() const {
    return 0l;
}

/// Emit the MultiauthPluginObject::Success emitCode
void DummyPlugin::success() {
    emit emitCode(MultiauthPluginObject::Success);
}

/// Emit the MultiauthPluginObject::Failure emitCode
void DummyPlugin::failure() {
    emit emitCode(MultiauthPluginObject::Failure);
}

/// Emit the MultiauthPluginObject::Skip emitCode
void DummyPlugin::skip() {
    emit emitCode(MultiauthPluginObject::Skip);
}

/// Make one authentication attempt with this plugin
/**
 * (very simple "success" / "failure" buttons in a dialog)
 * \return The outcome code of this  authentication
 */
int DummyPlugin::authenticate() {

    /* Standard, inescapable authentication dialog
     */
    QDialog dummyDialog(0,
                        "Dummy dialog",
                        TRUE,
                        Qt::WStyle_NoBorder | Qt::WStyle_Customize | Qt::WStyle_StaysOnTop);

    QRect desk = oApp->desktop()->geometry();
    dummyDialog.setGeometry( 0, 0, desk.width(), desk.height() );

    /* Creation of the particular widgets of our Dummy user interface
     * Note: we have to resize the VBox to the QDialog size, since it's not
     * done automatically.
     */
    QVBoxLayout layout(&dummyDialog);
    layout.setSpacing(11);
    layout.setMargin(11);
    layout.setAlignment( Qt::AlignTop );

    QLabel title("<center><h1>" + tr("\"Dummy\" <br />demonstration plugin") + "</h1></center>", &dummyDialog);
    QLabel subTitle("<center><h2>" +tr("You can simulate the following outcomes:") + "</h2></center>", &dummyDialog);
    layout.addWidget(&title);
    layout.addWidget(&subTitle);

    QHBoxLayout hl(&layout);
    QPushButton pbSuccess("Success", &dummyDialog);
    QPushButton pbSkip("Skip", &dummyDialog);
    QPushButton pbFailure("Failure", &dummyDialog);
    hl.addWidget(&pbSuccess, 0, Qt::AlignHCenter);
    hl.addWidget(&pbSkip, 0, Qt::AlignHCenter);
    hl.addWidget(&pbFailure, 0, Qt::AlignHCenter);

    /* Linking our pushbuttons to exit functions
     * (each result button here has a corresponding slot)
     */
    QObject::connect(&pbSuccess, SIGNAL(clicked()), this, SLOT(success()));
    QObject::connect(&pbFailure, SIGNAL(clicked()), this, SLOT(failure()));
    QObject::connect(&pbSkip, SIGNAL(clicked()), this, SLOT(skip()));

    /* The value of the signal these three slots will emit corresponds to
     * the different values we want to return
     */
    QObject::connect(this, SIGNAL(emitCode(int)), &dummyDialog, SLOT(done(int)));
    return dummyDialog.exec();
}