]> vaikene.ee Git - evaf/blob - src/apps/PswGen/GUI/gui.h
Added PswGen application.
[evaf] / src / apps / PswGen / GUI / gui.h
1 /**
2 * @file PswGen/GUI/gui.h
3 * @brief GUI for the PswGen application
4 * @author Enar Vaikene
5 *
6 * Copyright (c) 2011 Enar Vaikene
7 *
8 * This file is part of the eVaf C++ cross-platform application development framework.
9 *
10 * This file can be used under the terms of the GNU General Public License
11 * version 3.0 as published by the Free Software Foundation and appearing in
12 * the file LICENSE included in the packaging of this file. Please review the
13 * the following information to ensure the GNU General Public License version
14 * 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html.
15 *
16 * Alternatively, this file may be used in accordance with the Commercial License
17 * Agreement provided with the Software.
18 */
19
20 #ifndef __PSWGEN_GUI_GUI_H
21 #define __PSWGEN_GUI_GUI_H
22
23 #include <Plugins/iPlugin>
24
25 #include <QObject>
26 #include <QString>
27
28 class QLineEdit;
29 class QSpinBox;
30 class QPushButton;
31
32 namespace eVaf {
33 namespace PswGen {
34 class iGenerator;
35 namespace GUI {
36
37 /**
38 * Graphical User Interface for the PswGen application.
39 *
40 * This module adds a GUI window to the pswGen application using the SdiWindow module.
41 */
42 class Module : public Plugins::iPlugin
43 {
44 Q_OBJECT
45
46 public:
47
48 Module();
49
50 virtual ~Module();
51
52 virtual bool init(const QString & args);
53
54 virtual void done();
55
56 virtual bool isReady() const { return mReady; }
57
58
59 private slots:
60
61 /// Master password or name changed
62 void textChanged(QString const &);
63
64 /// 'Generate' button clicked
65 void generateClicked();
66
67 /// 'Copy' button clicked
68 void copyClicked();
69
70
71 private: // Members
72
73 /// Flag indicating that the module is ready
74 bool mReady;
75
76 /// The iGenerator interface
77 eVaf::PswGen::iGenerator * mGenerator;
78
79 /// Widgets on the screen
80 QLineEdit * wName;
81 QLineEdit * wMasterPassword;
82 QSpinBox * wLength;
83 QLineEdit * wPassword;
84 QPushButton * wGenerate;
85 QPushButton * wCopy;
86
87 };
88
89 } // namespace eVaf::PswGen::GUI
90 } // namespace eVaf::PswGen
91 } // namespace eVaf
92
93 #endif // gui.h