X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclient.h;h=1b3a4e8dc1375dc4187c7150df11f9d8c6258daa;hp=82e3e8445f3ef2ef2db13706e69fc4f1927b7423;hb=42ff71aaa8d3cee9e348a45758c56c380a4f1b45;hpb=e7e564dcf469faa4c47383368a58cedbe3a204e6 diff --git a/src/client/client.h b/src/client/client.h index 82e3e844..1b3a4e8d 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -18,36 +18,46 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef _GUI_H_ -#define _GUI_H_ +#ifndef _CLIENT_H_ +#define _CLIENT_H_ -#include -#include -#include +#include +#include +#include -#include "global.h" #include "buffer.h" #include "message.h" -#include "clientproxy.h" -#include "buffertreemodel.h" -//#include "bufferviewwidget.h" +#include "proxy_common.h" -class MainWin; +class AbstractUi; class ClientProxy; +class BufferTreeModel; +class QtGui; + +class QTimer; class Client : public QObject { Q_OBJECT public: static Client *instance(); + static void init(AbstractUi *); static void destroy(); + static QList 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(); + + 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 *); @@ -57,18 +67,28 @@ class Client : public QObject { void bufferDestroyed(Buffer *); void backlogReceived(Buffer *, QList); 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); @@ -80,7 +100,7 @@ class Client : public QObject { void networkConnected(QString); void networkDisconnected(QString); void recvNetworkState(QString, QVariant); - void recvMessage(Message message); + 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); @@ -88,7 +108,7 @@ class Client : public QObject { 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, QList, bool); + void recvBacklogData(BufferId, const QList &, bool); void updateBufferId(BufferId); void layoutMsg(); @@ -100,26 +120,30 @@ class Client : public QObject { 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; - MainWin *mainWin; + AbstractUi *mainUi; ClientProxy *clientProxy; BufferTreeModel *_bufferModel; QTcpSocket socket; quint32 blockSize; + static bool connectedToCore; static QHash buffers; static QHash bufferIds; static QHash > nicks; - static QHash connected; + static QHash netConnected; static QHash ownNick; - static QList coreBuffers; QTimer *layoutTimer; - QList layoutQueue; + QList layoutQueue; + + VarMap sessionData; }; #endif