+#include "ui_coreaccounteditdlg.h"
+
+class ClientSyncer;
+class CoreConfigWizard;
+
+class CoreConnectDlg : public QDialog {
+ Q_OBJECT
+
+public:
+ CoreConnectDlg(bool = false, QWidget *parent = 0);
+ ~CoreConnectDlg();
+
+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);
+ void encrypted(bool);
+
+ /*** 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();