X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoresession.h;h=33b09d77a63fbcd12082e6ac55adf31a87c1b3a3;hp=009a2ef20ced28e8dbb2f8bd8738b2d75e05ae8f;hb=f6f6f3e368543f0a4dce1dae772f161d7e357064;hpb=902c95728306e5ba115de84800fc8d5d239c9d62 diff --git a/src/core/coresession.h b/src/core/coresession.h index 009a2ef2..33b09d77 100644 --- a/src/core/coresession.h +++ b/src/core/coresession.h @@ -1,11 +1,11 @@ /*************************************************************************** - * Copyright (C) 2005-07 by The Quassel IRC Development Team * + * Copyright (C) 2005-07 by the Quassel IRC Team * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * + * (at your option) version 3. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -31,6 +31,8 @@ class Server; class SignalProxy; class Storage; +class QScriptEngine; + class CoreSession : public QObject { Q_OBJECT @@ -38,18 +40,22 @@ public: CoreSession(UserId, Storage *, QObject *parent = 0); virtual ~CoreSession(); - uint getNetworkId(const QString &network) const; + NetworkId getNetworkId(const QString &network) const; QList buffers() const; UserId userId() const; QVariant sessionState(); //! Retrieve a piece of session-wide data. QVariant retrieveSessionData(const QString &key, const QVariant &def = QVariant()); - + SignalProxy *signalProxy() const; - + void attachServer(Server *server); - + + //! Return necessary data for restoring the session after restarting the core + QVariant state() const; + void restoreState(const QVariant &previousState); + public slots: //! Store a piece session-wide data and distribute it to connected clients. void storeSessionData(const QString &key, const QVariant &data); @@ -57,18 +63,19 @@ public slots: void serverStateRequested(); void addClient(QIODevice *connection); - - void connectToNetwork(QString); - + + void connectToNetwork(QString, const QVariant &previousState = QVariant()); + //void connectToNetwork(NetworkId); + //void processSignal(ClientSignal, QVariant, QVariant, QVariant); void sendBacklog(BufferInfo, QVariant, QVariant); void msgFromGui(BufferInfo, QString message); - + signals: void msgFromGui(uint netid, QString buf, QString message); void displayMsg(Message message); void displayStatusMsg(QString, QString); - + void connectToIrc(QString net); void disconnectFromIrc(QString net); @@ -78,21 +85,29 @@ signals: void sessionDataChanged(const QString &key); void sessionDataChanged(const QString &key, const QVariant &data); + void scriptResult(QString result); + private slots: void recvStatusMsgFromServer(QString msg); void recvMessageFromServer(Message::Type, QString target, QString text, QString sender = "", quint8 flags = Message::None); void serverConnected(uint networkid); void serverDisconnected(uint networkid); + void scriptRequest(QString script); + private: + void initScriptEngine(); + UserId user; SignalProxy *_signalProxy; Storage *storage; - QHash servers; + QHash servers; QVariantMap sessionData; QMutex mutex; + + QScriptEngine *scriptEngine; }; #endif