]> vaikene.ee Git - evaf/blob - src/apps/PswGen/GUI/gui.h
Added support for the iStorage interface.
[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 class iStorage;
36 namespace GUI {
37
38 /**
39 * Graphical User Interface for the PswGen application.
40 *
41 * This module adds a GUI window to the pswGen application using the SdiWindow module.
42 */
43 class Module : public Plugins::iPlugin
44 {
45 Q_OBJECT
46
47 public:
48
49 Module();
50
51 virtual ~Module();
52
53 virtual bool init(const QString & args);
54
55 virtual void done();
56
57 virtual bool isReady() const { return mReady; }
58
59
60 private slots:
61
62 /// Master password or name changed
63 void textChanged(QString const &);
64
65 /// 'Generate' button clicked
66 void generateClicked();
67
68 /// 'Copy' button clicked
69 void copyClicked();
70
71
72 private: // Members
73
74 static int const DefaultPasswordLength;
75
76 /// Flag indicating that the module is ready
77 bool mReady;
78
79 /// The iGenerator interface
80 eVaf::PswGen::iGenerator * mGenerator;
81
82 /// The iStorage interface (can be null)
83 eVaf::PswGen::iStorage * mStorage;
84
85 /// Widgets on the screen
86 QLineEdit * wName;
87 QLineEdit * wMasterPassword;
88 QSpinBox * wLength;
89 QLineEdit * wPassword;
90 QPushButton * wGenerate;
91 QPushButton * wCopy;
92
93 };
94
95 } // namespace eVaf::PswGen::GUI
96 } // namespace eVaf::PswGen
97 } // namespace eVaf
98
99 #endif // gui.h