/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel IRC Team *
+ * Copyright (C) 2005-09 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
-#ifndef _CORECONNECTDLG_H_
-#define _CORECONNECTDLG_H_
+#ifndef CORECONNECTDLG_H
+#define CORECONNECTDLG_H
#include <QAbstractSocket>
+#include "types.h"
+
#include "ui_coreconnectdlg.h"
#include "ui_coreaccounteditdlg.h"
class ClientSyncer;
+class CoreConfigWizard;
class CoreConnectDlg : public QDialog {
Q_OBJECT
- public:
- CoreConnectDlg(QWidget *parent = 0, bool = false);
- ~CoreConnectDlg();
+public:
+ CoreConnectDlg(bool = false, QWidget *parent = 0);
+ ~CoreConnectDlg();
+
+// signals:
+// void newClientSyncer(ClientSyncer *);
+
+private slots:
+ /*** Phase Null: Accounts ***/
+ void restartPhaseNull();
- private slots:
+ void on_accountList_itemSelectionChanged();
+ void on_autoConnect_clicked(bool);
- /*** Phase Null: Accounts ***/
- void restartPhaseNull();
+ void on_addAccount_clicked();
+ void on_editAccount_clicked();
+ void on_deleteAccount_clicked();
+ void on_useInternalCore_clicked();
+ void on_viewSslCertButton_clicked();
+ void on_ignoreWarningsButton_clicked();
- void on_accountList_itemSelectionChanged();
- void on_autoConnect_clicked(bool);
+ void on_accountList_itemDoubleClicked(QListWidgetItem *item);
+ void on_accountButtonBox_accepted();
- void on_addAccount_clicked();
- void on_editAccount_clicked();
- void on_deleteAccount_clicked();
+ void setAccountWidgetStates();
- void on_accountList_itemDoubleClicked(QListWidgetItem *item);
- void on_accountButtonBox_accepted();
+ /*** Phase One: Connection ***/
+ void connectToCore();
- void setAccountWidgetStates();
+ void initPhaseError(const QString &error);
+ void initPhaseWarnings(const QStringList &warnings);
+ void initPhaseMsg(const QString &msg);
+ void initPhaseSocketState(QAbstractSocket::SocketState);
- /*** Phase One: Connection ***/
- void connectToCore();
+ /*** Phase Two: Login ***/
+ void startLogin();
+ void doLogin();
+ void doLogin(const QVariantMap &loginData);
+ void loginFailed(const QString &);
+ void startCoreConfig(const QVariantList &backends);
+ void configWizardAccepted();
+ void configWizardRejected();
+ void on_launchCoreConfigWizard_clicked();
- void initPhaseError(const QString &error);
- void initPhaseMsg(const QString &msg);
- void initPhaseSocketState(QAbstractSocket::SocketState);
+ void setLoginWidgetStates();
- /*** Phase Two: Login ***/
- void startLogin();
- void doLogin();
- void loginFailed(const QString &);
+ /*** Phase Three: Sync ***/
+ void startSync();
+ void syncFinished();
- void setLoginWidgetStates();
+ void coreSessionProgress(quint32, quint32);
+ void coreNetworksProgress(quint32, quint32);
- /*** Phase Three: Sync ***/
- void startSync();
+private:
+ AccountId findFreeAccountId();
- void coreSessionProgress(quint32, quint32);
- void coreNetworksProgress(quint32, quint32);
- void coreChannelsProgress(quint32, quint32);
- void coreIrcUsersProgress(quint32, quint32);
+ Ui::CoreConnectDlg ui;
- private:
- Ui::CoreConnectDlg ui;
+ AccountId autoConnectAccount;
+ QHash<AccountId, QVariantMap> accounts;
+ AccountId _internalAccountId;
+ QVariantMap accountData;
+ AccountId account;
- QString autoConnectAccount;
- QHash<QString, QVariantMap> accounts;
- QVariantMap account;
- QString accountName;
+ bool doingAutoConnect;
- bool doingAutoConnect;
+ QVariantList storageBackends;
- ClientSyncer *clientSyncer;
+ ClientSyncer *clientSyncer;
+ CoreConfigWizard *wizard;
};
+
+// ========================================
+// CoreAccountEditDlg
+// ========================================
class CoreAccountEditDlg : public QDialog {
Q_OBJECT
- public:
- CoreAccountEditDlg(const QString &name, const QVariantMap &data, const QStringList &existing = QStringList(), QWidget *parent = 0);
+public:
+ CoreAccountEditDlg(AccountId id, const QVariantMap &data, const QStringList &existing = QStringList(), QWidget *parent = 0);
+
+ QVariantMap accountData();
- QString accountName() const;
- QVariantMap accountData();
+private slots:
+ void on_host_textChanged(const QString &);
+ void on_accountName_textChanged(const QString &);
- private slots:
- void on_host_textChanged(const QString &);
- void on_accountName_textChanged(const QString &);
- void on_useRemote_toggled(bool);
+ void setWidgetStates();
- void setWidgetStates();
+private:
+ Ui::CoreAccountEditDlg ui;
- private:
- Ui::CoreAccountEditDlg ui;
+ QStringList existing;
+ QVariantMap account;
+};
+
+// ========================================
+// SslCertDisplayDialog
+// ========================================
+#ifdef HAVE_SSL
+class QSslCertificate;
+
+class SslCertDisplayDialog : public QDialog {
+ Q_OBJECT
- QStringList existing;
- QVariantMap account;
+public:
+ SslCertDisplayDialog(const QString &host, const QSslCertificate &cert, QWidget *parent = 0);
};
+#endif // HAVE_SSL
-#endif
+#endif // CORECONNECTDLG_H