#ifndef CLIENTUSERINPUTHANDLER_H_
#define CLIENTUSERINPUTHANDLER_H_
-#include <QPair>
+#include "basichandler.h"
-#include "aliasmanager.h"
-#include "bufferinfo.h"
+class BufferInfo;
+class NetworkId;
-class ClientUserInputHandler : public QObject {
- Q_OBJECT
+class ClientUserInputHandler : public BasicHandler
+{
+ Q_OBJECT
public:
- ClientUserInputHandler(QObject *parent = 0);
+ ClientUserInputHandler(QObject *parent = 0);
public slots:
- void handleUserInput(const BufferInfo &bufferInfo, const QString &msg);
+ void handleUserInput(const BufferInfo &bufferInfo, const QString &msg);
signals:
- void sendInput(const BufferInfo &, const QString &);
+ void sendInput(const BufferInfo &, const QString &);
private slots:
- void clientConnected();
- void clientDisconnected();
- void initDone();
- void completionSuffixChanged(const QVariant &);
+ void completionSuffixChanged(const QVariant &);
+
+ void handleExec(const BufferInfo &bufferInfo, const QString &execString);
+ void handleJoin(const BufferInfo &bufferInfo, const QString &text);
+ void handleQuery(const BufferInfo &bufferInfo, const QString &text);
+ void defaultHandler(const QString &cmd, const BufferInfo &bufferInfo, const QString &text);
private:
- void expand(const QString &alias, const BufferInfo &bufferInfo, const QString &msg);
+ QRegExp _nickRx;
- bool _initialized;
- QRegExp _nickRx;
- AliasManager _aliasManager;
- QList<QPair<BufferInfo, QString> > _inputBuffer;
+ //! Helper method for switching to new/existing buffers
+ /** Immediately switches to the given buffer or schedules a switch for whenever
+ * the buffer is created
+ */
+ void switchBuffer(const NetworkId &networkId, const QString &bufferName);
};
+
#endif