blob: 9c92e1efc06a249b7f75bdcf3624ba349addcd3b [file] [log] [blame]
Edric Milaret67007d12015-05-07 09:40:09 -04001/***************************************************************************
Edric Milaretbab169d2016-01-07 15:13:33 -05002 * Copyright (C) 2015-2016 by Savoir-faire Linux *
Edric Milaret67007d12015-05-07 09:40:09 -04003 * Author: Edric Ladent Milaret <edric.ladent-milaret@savoirfairelinux.com>*
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 3 of the License, or *
8 * (at your option) any later version. *
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, see <http://www.gnu.org/licenses/>. *
17 **************************************************************************/
18
Edric Milaret5f316da2015-09-28 11:57:42 -040019#pragma once
Edric Milaret559bda52015-04-29 17:02:31 -040020
21#include <QDialog>
Edric Milaret67007d12015-05-07 09:40:09 -040022#include <QtConcurrent/QtConcurrent>
Edric Milaret559bda52015-04-29 17:02:31 -040023
Edric Milaret74e4b8b2015-05-15 10:25:00 -040024#include "account.h"
Edric Milaret25236d92016-03-28 09:40:58 -040025#include "person.h"
Edric Milaret74e4b8b2015-05-15 10:25:00 -040026
Edric Milaret559bda52015-04-29 17:02:31 -040027namespace Ui {
28class WizardDialog;
29}
30
31class WizardDialog : public QDialog
32{
33 Q_OBJECT
34
35public:
Edric Milaret57467842016-08-30 13:06:11 -040036 enum WizardMode {
37 WIZARD,
38 NEW_ACCOUNT,
39 MIGRATION
40 };
41
42public:
43 explicit WizardDialog(WizardMode wizardMode = WIZARD, Account* toBeMigrated = nullptr, QWidget* parent = 0);
Edric Milaret559bda52015-04-29 17:02:31 -040044 ~WizardDialog();
45
Edric Milaret25236d92016-03-28 09:40:58 -040046// Overrided function
Edric Milareted0b2802015-10-01 15:10:02 -040047protected slots:
Edric Milaret67007d12015-05-07 09:40:09 -040048 void accept();
Edric Milaret25236d92016-03-28 09:40:58 -040049 void closeEvent(QCloseEvent* event);
Edric Milaret67007d12015-05-07 09:40:09 -040050
Edric Milaret25236d92016-03-28 09:40:58 -040051//UI Slots
52private slots:
53 void on_avatarButton_clicked();
Edric Milaret57467842016-08-30 13:06:11 -040054 void on_existingPushButton_clicked();
55 void on_newAccountButton_clicked();
56 void on_previousButton_clicked();
57 void on_passwordEdit_textChanged(const QString& arg1);
Edric Milaret74e4b8b2015-05-15 10:25:00 -040058
59private slots:
Edric Milaret57467842016-08-30 13:06:11 -040060 void endSetup(Account::RegistrationState state);
Edric Milaret25236d92016-03-28 09:40:58 -040061
62private:
63 Ui::WizardDialog* ui;
Edric Milaret57467842016-08-30 13:06:11 -040064 Account* account_;
65 WizardMode wizardMode_;
66 QMovie* movie_;
Edric Milaret25236d92016-03-28 09:40:58 -040067
68 void setup();
Edric Milaret57467842016-08-30 13:06:11 -040069 void changePage(bool existingAccount);
Edric Milaret559bda52015-04-29 17:02:31 -040070};
71