/***************************************************************************
- * Copyright (C) 2005-09 by the Quassel Project *
+ * Copyright (C) 2009 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
***************************************************************************/
#ifndef CORECONNECTDLG_H
-#define CORECONNECTDLG_H
+#define CORECONNECTDLG_H_
-#include <QAbstractSocket>
+#include <QDialog>
-#include "types.h"
+#include "coreaccount.h"
-#include "ui_coreconnectdlg.h"
-#include "ui_coreaccounteditdlg.h"
+#include "ui_coreconnectauthdlg.h"
-class ClientSyncer;
-class CoreConfigWizard;
+class CoreAccountSettingsPage;
class CoreConnectDlg : public QDialog {
Q_OBJECT
public:
- CoreConnectDlg(bool = false, QWidget *parent = 0);
- ~CoreConnectDlg();
+ CoreConnectDlg(QWidget *parent = 0);
+ AccountId selectedAccount() const;
-// signals:
-// void newClientSyncer(ClientSyncer *);
-
-private slots:
- /*** Phase Null: Accounts ***/
- void restartPhaseNull();
-
- void on_accountList_itemSelectionChanged();
- void on_autoConnect_clicked(bool);
-
- void on_addAccount_clicked();
- void on_editAccount_clicked();
- void on_deleteAccount_clicked();
- void on_useInternalCore_clicked();
-
- void on_accountList_itemDoubleClicked(QListWidgetItem *item);
- void on_accountButtonBox_accepted();
-
- void setAccountWidgetStates();
-
- /*** Phase One: Connection ***/
- void connectToCore();
-
- void initPhaseError(const QString &error);
- void initPhaseMsg(const QString &msg);
- void initPhaseSocketState(QAbstractSocket::SocketState);
-
- /*** 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 setLoginWidgetStates();
-
- /*** Phase Three: Sync ***/
- void startSync();
- void syncFinished();
-
- void coreSessionProgress(quint32, quint32);
- void coreNetworksProgress(quint32, quint32);
+ void accept();
private:
- AccountId findFreeAccountId();
-
- Ui::CoreConnectDlg ui;
-
- AccountId autoConnectAccount;
- QHash<AccountId, QVariantMap> accounts;
- AccountId _internalAccountId;
- QVariantMap accountData;
- AccountId account;
-
- bool doingAutoConnect;
-
- QVariantList storageBackends;
-
- ClientSyncer *clientSyncer;
- CoreConfigWizard *wizard;
+ CoreAccountSettingsPage *_settingsPage;
};
-class CoreAccountEditDlg : public QDialog {
+class CoreConnectAuthDlg : public QDialog {
Q_OBJECT
public:
- CoreAccountEditDlg(AccountId id, const QVariantMap &data, const QStringList &existing = QStringList(), QWidget *parent = 0);
+ CoreConnectAuthDlg(CoreAccount *account, QWidget *parent = 0);
- QVariantMap accountData();
+ void accept();
private slots:
- void on_host_textChanged(const QString &);
- void on_accountName_textChanged(const QString &);
-
- void setWidgetStates();
+ void setButtonStates();
private:
- Ui::CoreAccountEditDlg ui;
-
- QStringList existing;
- QVariantMap account;
+ Ui::CoreConnectAuthDlg ui;
+ CoreAccount *_account;
};
#endif