- public:
- static Client *instance();
- 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 BufferTreeModel *bufferModel();
-
- static AbstractUiMsg *layoutMsg(const Message &);
-
- static bool isConnected();
-
- signals:
- void sendInput(BufferId, QString message);
- void showBuffer(Buffer *);
- void bufferSelected(Buffer *);
- void bufferUpdated(Buffer *);
- void bufferActivity(Buffer::ActivityLevel, 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();
-
- public slots:
- //void selectBuffer(Buffer *);
- //void connectToLocalCore();
- void connectToCore(const VarMap &);
- void disconnectFromCore();
-
- private slots:
- void updateCoreData(UserId, QString);
- void updateLocalData(QString, QVariant);
- void recvProxySignal(ClientSignal sig, QVariant arg1, QVariant arg2, QVariant arg3);
-
- void serverError(QAbstractSocket::SocketError);
- void serverHasData();
- void coreConnected();
- void coreDisconnected();
-
- void userInput(BufferId, QString);
- void networkConnected(QString);
- void networkDisconnected(QString);
- void recvNetworkState(QString, QVariant);
- void recvMessage(const Message &message);
- void recvStatusMsg(QString network, QString message);
- void setTopic(QString net, QString buf, QString);
- void addNick(QString net, QString nick, VarMap props);
- void removeNick(QString net, QString nick);
- void renameNick(QString net, QString oldnick, QString newnick);
- void updateNick(QString net, QString nick, VarMap props);
- void setOwnNick(QString net, QString nick);
- void recvBacklogData(BufferId, const QList<QVariant> &, bool);
- void updateBufferId(BufferId);
-
- void layoutMsg();
-
- private:
- Client();
- ~Client();
- void init();
- 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;
-
- AbstractUi *mainUi;
- ClientProxy *clientProxy;
- BufferTreeModel *_bufferModel;
-
- 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> netConnected;
- static QHash<QString, QString> ownNick;
- //static QList<BufferId> coreBuffers;
-
- QTimer *layoutTimer;
- QList<Buffer *> layoutQueue;