#include "quassel.h"
#include "signalproxy.h"
+//#ifdef BUILD_MONO
+#include "core.h"
+//#endif
+
ClientSyncer::ClientSyncer(QObject *parent)
: QObject(parent)
{
blockSize = 0;
connect(Client::signalProxy(), SIGNAL(disconnected()), this, SLOT(coreSocketDisconnected()));
+
+ //#ifdef BUILD_MONO
+ connect(this, SIGNAL(connectToInternalCore(SignalProxy *)), Core::instance(), SLOT(setupInternalClientSession(SignalProxy *)));
+ connect(Core::instance(), SIGNAL(sessionState(const QVariant &)), this, SLOT(internalSessionStateReceived(const QVariant &)));
+ //#endif
}
ClientSyncer::~ClientSyncer() {
SignalProxy::writeDataToDevice(socket, clientInit);
}
+void ClientSyncer::useInternalCore() {
+ emit connectToInternalCore(Client::instance()->signalProxy());
+}
+
void ClientSyncer::coreSocketDisconnected() {
emit socketDisconnected();
Client::instance()->disconnectFromCore();
SignalProxy::writeDataToDevice(socket, clientLogin);
}
+void ClientSyncer::internalSessionStateReceived(const QVariant &packedState) {
+ QVariantMap state = packedState.toMap();
+ emit sessionProgress(1, 1);
+ // Client::instance()->setConnectedToCore(socket, AccountId());
+ syncToCore(state);
+}
+
void ClientSyncer::sessionStateReceived(const QVariantMap &state) {
emit sessionProgress(1, 1);
disconnect(this, SIGNAL(recvPartialItem(quint32, quint32)), this, SIGNAL(sessionProgress(quint32, quint32)));
class CoreConnectDlg : public QDialog {
Q_OBJECT
- public:
- CoreConnectDlg(bool = false, QWidget *parent = 0);
- ~CoreConnectDlg();
+public:
+ CoreConnectDlg(bool = false, QWidget *parent = 0);
+ ~CoreConnectDlg();
- private slots:
+private slots:
- /*** Phase Null: Accounts ***/
- void restartPhaseNull();
+ /*** Phase Null: Accounts ***/
+ void restartPhaseNull();
- void on_accountList_itemSelectionChanged();
- void on_autoConnect_clicked(bool);
+ void on_accountList_itemSelectionChanged();
+ void on_autoConnect_clicked(bool);
- void on_addAccount_clicked();
- void on_editAccount_clicked();
- void on_deleteAccount_clicked();
+ 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 on_accountList_itemDoubleClicked(QListWidgetItem *item);
+ void on_accountButtonBox_accepted();
- void setAccountWidgetStates();
+ void setAccountWidgetStates();
- /*** Phase One: Connection ***/
- void connectToCore();
+ /*** Phase One: Connection ***/
+ void connectToCore();
- void initPhaseError(const QString &error);
- void initPhaseMsg(const QString &msg);
- void initPhaseSocketState(QAbstractSocket::SocketState);
- void encrypted(bool);
+ 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();
+ /*** 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();
+ void setLoginWidgetStates();
- /*** Phase Three: Sync ***/
- void startSync();
- void syncFinished();
+ /*** Phase Three: Sync ***/
+ void startSync();
+ void syncFinished();
- void coreSessionProgress(quint32, quint32);
- void coreNetworksProgress(quint32, quint32);
+ void coreSessionProgress(quint32, quint32);
+ void coreNetworksProgress(quint32, quint32);
- private:
- Ui::CoreConnectDlg ui;
+private:
+ Ui::CoreConnectDlg ui;
- AccountId autoConnectAccount;
- QHash<AccountId, QVariantMap> accounts;
- QVariantMap accountData;
- AccountId account;
+ AccountId autoConnectAccount;
+ QHash<AccountId, QVariantMap> accounts;
+ QVariantMap accountData;
+ AccountId account;
- bool doingAutoConnect;
+ bool doingAutoConnect;
- QVariantList storageBackends;
+ QVariantList storageBackends;
- ClientSyncer *clientSyncer;
- CoreConfigWizard *wizard;
+ ClientSyncer *clientSyncer;
+ CoreConfigWizard *wizard;
};
class CoreAccountEditDlg : public QDialog {
Q_OBJECT
- public:
- CoreAccountEditDlg(AccountId id, 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();
+ QVariantMap accountData();
- private slots:
- void on_host_textChanged(const QString &);
- void on_accountName_textChanged(const QString &);
- void on_useRemote_toggled(bool);
+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;
+ QStringList existing;
+ QVariantMap account;
};
#endif
<string>Connect to Quassel Core</string>
</property>
<property name="windowIcon" >
- <iconset resource="../../icons/icons.qrc" >
+ <iconset>
<normaloff>:/16x16/actions/network-disconnect</normaloff>:/16x16/actions/network-disconnect</iconset>
</property>
<layout class="QHBoxLayout" >
</sizepolicy>
</property>
<property name="currentIndex" >
- <number>2</number>
+ <number>0</number>
</property>
<widget class="QWidget" name="accountPage" >
<property name="geometry" >
<x>0</x>
<y>0</y>
<width>539</width>
- <height>331</height>
+ <height>332</height>
</rect>
</property>
<layout class="QVBoxLayout" >
<string>Edit...</string>
</property>
<property name="icon" >
- <iconset resource="../../icons/icons.qrc" >
+ <iconset>
<normaloff>:/16x16/actions/oxygen/16x16/actions/document-properties.png</normaloff>:/16x16/actions/oxygen/16x16/actions/document-properties.png</iconset>
</property>
</widget>
<string>Add...</string>
</property>
<property name="icon" >
- <iconset resource="../../icons/icons.qrc" >
+ <iconset>
<normaloff>:/16x16/actions/oxygen/16x16/actions/list-add.png</normaloff>:/16x16/actions/oxygen/16x16/actions/list-add.png</iconset>
</property>
</widget>
<string>Delete</string>
</property>
<property name="icon" >
- <iconset resource="../../icons/icons.qrc" >
+ <iconset>
<normaloff>:/16x16/actions/oxygen/16x16/actions/list-remove.png</normaloff>:/16x16/actions/oxygen/16x16/actions/list-remove.png</iconset>
</property>
</widget>
</property>
</spacer>
</item>
+ <item>
+ <widget class="QPushButton" name="useInternalCore" >
+ <property name="text" >
+ <string>use internal core</string>
+ </property>
+ </widget>
+ </item>
</layout>
</item>
</layout>
<string/>
</property>
<property name="pixmap" >
- <pixmap resource="../../icons/icons.qrc" >:/22x22/actions/network-disconnect</pixmap>
+ <pixmap>:/22x22/actions/network-disconnect</pixmap>
</property>
</widget>
</item>
<string/>
</property>
<property name="pixmap" >
- <pixmap resource="../../icons/icons.qrc" >:/22x22/actions/oxygen/22x22/actions/document-encrypt.png</pixmap>
+ <pixmap>:/22x22/actions/oxygen/22x22/actions/document-encrypt.png</pixmap>
</property>
</widget>
</item>
<x>0</x>
<y>0</y>
<width>501</width>
- <height>145</height>
+ <height>146</height>
</rect>
</property>
<layout class="QVBoxLayout" >