#ifndef _CLIENT_H_
#define _CLIENT_H_
-#include <QtCore>
-#include <QtNetwork>
+#include <QAbstractSocket>
+#include <QTcpSocket>
+#include <QList>
-#include "quasselui.h"
#include "buffer.h"
#include "message.h"
#include "proxy_common.h"
+class AbstractUi;
class ClientProxy;
class BufferTreeModel;
+class QtGui;
+
+class QTimer;
class Client : public QObject {
Q_OBJECT
static void init(AbstractUi *);
static void destroy();
+ static QList<BufferId> allBufferIds();
static Buffer *buffer(BufferId);
static BufferId statusBufferId(QString net);
static BufferId bufferId(QString net, QString buf);
static AbstractUiMsg *layoutMsg(const Message &);
+ static bool isConnected();
+
+ static void storeSessionData(const QString &key, const QVariant &data);
+ static QVariant retrieveSessionData(const QString &key, const QVariant &def = QVariant());
+
signals:
void sendInput(BufferId, QString message);
void showBuffer(Buffer *);
void bufferDestroyed(Buffer *);
void backlogReceived(Buffer *, QList<Message>);
void requestBacklog(BufferId, QVariant, QVariant);
+ void requestNetworkStates();
void recvPartialItem(quint32 avail, quint32 size);
void coreConnectionError(QString errorMsg);
+ void connected();
+ void disconnected();
+
+ void sessionDataChanged(const QString &key);
+ void sessionDataChanged(const QString &key, const QVariant &data);
+ void sendSessionData(const QString &key, const QVariant &data);
+
public slots:
//void selectBuffer(Buffer *);
- void connectToCore(QString host, quint16 port);
+ //void connectToLocalCore();
+ void connectToCore(const VarMap &);
void disconnectFromCore();
private slots:
void updateCoreData(UserId, QString);
void updateLocalData(QString, QVariant);
+ void recvSessionData(const QString &key, const QVariant &data);
void recvProxySignal(ClientSignal sig, QVariant arg1, QVariant arg2, QVariant arg3);
void serverError(QAbstractSocket::SocketError);
static Client *instanceptr;
void syncToCore();
+ QVariant connectToLocalCore(QString user, QString passwd); // defined in main.cpp
+ void disconnectFromLocalCore(); // defined in main.cpp
enum ClientMode { LocalCore, RemoteCore };
static ClientMode clientMode;
QTcpSocket socket;
quint32 blockSize;
+ static bool connectedToCore;
static QHash<BufferId, Buffer *> buffers;
static QHash<uint, BufferId> bufferIds;
static QHash<QString, QHash<QString, VarMap> > nicks;
- static QHash<QString, bool> connected;
+ static QHash<QString, bool> netConnected;
static QHash<QString, QString> ownNick;
- static QList<BufferId> coreBuffers;
QTimer *layoutTimer;
QList<Buffer *> layoutQueue;
+
+ VarMap sessionData;
};
#endif