src: Yearly copyright bump
[quassel.git] / src / qtui / ircconnectionwizard.h
1 /***************************************************************************
2  *   Copyright (C) 2005-2019 by the Quassel Project                        *
3  *   devel@quassel-irc.org                                                 *
4  *                                                                         *
5  *   This program is free software; you can redistribute it and/or modify  *
6  *   it under the terms of the GNU General Public License as published by  *
7  *   the Free Software Foundation; either version 2 of the License, or     *
8  *   (at your option) version 3.                                           *
9  *                                                                         *
10  *   This program is distributed in the hope that it will be useful,       *
11  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
12  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
13  *   GNU General Public License for more details.                          *
14  *                                                                         *
15  *   You should have received a copy of the GNU General Public License     *
16  *   along with this program; if not, write to the                         *
17  *   Free Software Foundation, Inc.,                                       *
18  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
19  ***************************************************************************/
20
21 #ifndef IRCCONNECTIONWIZARD_H
22 #define IRCCONNECTIONWIZARD_H
23
24 #include <QWizard>
25
26 #include "types.h"
27
28 class IrcConnectionWizard : public QWizard
29 {
30     Q_OBJECT
31
32 public:
33     IrcConnectionWizard(QWidget* parent = nullptr, Qt::WindowFlags flags = nullptr);
34
35     static QWizardPage* createIntroductionPage(QWidget* parent = nullptr);
36
37 private slots:
38     void finishClicked();
39     void identityReady(IdentityId id);
40     void networkReady(NetworkId id);
41
42 private:
43     QWizardPage* _introductionPage{nullptr};
44     QWizardPage* _identityPage{nullptr};
45     QWizardPage* _networkPage{nullptr};
46 };
47
48 // ==============================
49 //  Wizard Pages
50 // ==============================
51
52 // Identity Page
53 #include "clientidentity.h"
54
55 class IdentityEditWidget;
56
57 class IdentityPage : public QWizardPage
58 {
59     Q_OBJECT
60
61 public:
62     IdentityPage(QWidget* parent = nullptr);
63
64     CertIdentity* identity();
65
66 private:
67     IdentityEditWidget* _identityEditWidget;
68     CertIdentity* _identity{nullptr};
69 };
70
71 // Network Page
72 #include "network.h"
73
74 class SimpleNetworkEditor;
75
76 class NetworkPage : public QWizardPage
77 {
78     Q_OBJECT
79
80 public:
81     NetworkPage(QWidget* parent = nullptr);
82
83     NetworkInfo networkInfo();
84     QStringList channelList();
85
86 private:
87     SimpleNetworkEditor* _networkEditor;
88     NetworkInfo _networkInfo;
89     QStringList _channelList;
90 };
91
92 #endif  // IRCCONNECTIONWIZARD_H