X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fcoreconnectdlg.h;h=cac4721e4a8fcef9e1904c5f8ae448a2d349ecbc;hp=9a8ce543c30fbd2bf7660f78d2b0b0484a05286a;hb=236dda81632fa792e788d45b0f4f31b973823f7f;hpb=d6b056e936ec441258d291b7a8af7b83f9f53016 diff --git a/src/qtui/coreconnectdlg.h b/src/qtui/coreconnectdlg.h index 9a8ce543..cac4721e 100644 --- a/src/qtui/coreconnectdlg.h +++ b/src/qtui/coreconnectdlg.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-07 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 * @@ -18,52 +18,110 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef _CORECONNECTDLG_H -#define _CORECONNECTDLG_H +#ifndef CORECONNECTDLG_H +#define CORECONNECTDLG_H + +#include + +#include "types.h" #include "ui_coreconnectdlg.h" +#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); + + /*** 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(); -class CoreConnectDlg: public QDialog { + void setLoginWidgetStates(); + + /*** Phase Three: Sync ***/ + void startSync(); + void syncFinished(); + + void coreSessionProgress(quint32, quint32); + void coreNetworksProgress(quint32, quint32); + +private: + AccountId findFreeAccountId(); + + Ui::CoreConnectDlg ui; + + AccountId autoConnectAccount; + QHash accounts; + AccountId _internalAccountId; + QVariantMap accountData; + AccountId account; + + bool doingAutoConnect; + + QVariantList storageBackends; + + ClientSyncer *clientSyncer; + CoreConfigWizard *wizard; +}; + +class CoreAccountEditDlg : public QDialog { Q_OBJECT - public: - CoreConnectDlg(QWidget *parent, bool doAutoConnect = false); - ~CoreConnectDlg(); - QVariant getCoreState(); - - bool willDoInternalAutoConnect(); - - public slots: - void doAutoConnect(); - - private slots: - void createAccount(); - void removeAccount(); - void accountChanged(const QString & = ""); - void setAccountEditEnabled(bool); - void autoConnectToggled(bool); - bool checkInputValid(); - void hostEditChanged(QString); - void hostSelected(); - void doConnect(); - - void coreConnected(); - void coreConnectionError(QString); - //void coreConnectionMsg(const QString &); - //void coreConnectionProgress(uint partial, uint total); - void updateProgressBar(uint partial, uint total); - void recvCoreState(QVariant); - - void showConfigWizard(const QVariantMap &coredata); - - private: - Ui::CoreConnectDlg ui; - QVariant coreState; - - void cancelConnect(); - void setStartState(); - QVariantMap accountData; - QString curacc; +public: + CoreAccountEditDlg(AccountId id, const QVariantMap &data, const QStringList &existing = QStringList(), QWidget *parent = 0); + + QVariantMap accountData(); + +private slots: + void on_host_textChanged(const QString &); + void on_accountName_textChanged(const QString &); + + void setWidgetStates(); + +private: + Ui::CoreAccountEditDlg ui; + + QStringList existing; + QVariantMap account; }; #endif