// serverState state();
bool isConnected() { return socket.state() == QAbstractSocket::ConnectedState; }
QString getNetwork() { return network; }
+ QStringList providesUserHandlers();
+
+ enum CtcpType {CtcpQuery, CtcpReply};
public slots:
// void setServerOptions();
void serverState(QString net, VarMap data);
void recvRawServerMsg(QString);
void displayStatusMsg(QString);
- void displayMsg(Message msg);
+ //void displayMsg(Message msg);
+ void displayMsg(Message::Type, QString target, QString text, QString sender = "", quint8 flags = Message::None);
void connected(QString network);
void disconnected(QString network);
void nickUpdated(QString network, QString nick, VarMap props);
void modeSet(QString network, QString target, QString mode);
void topicSet(QString network, QString buffer, QString topic);
- void setNicks(QString network, QString buffer, QStringList nicks);
void ownNickSet(QString network, QString newNick);
+ void queryRequested(QString network, QString nick);
private slots:
void handleUserNick(QString, QString);
void handleUserOp(QString, QString);
void handleUserPart(QString, QString);
+ void handleUserQuery(QString, QString);
void handleUserQuit(QString, QString);
void handleUserQuote(QString, QString);
void handleUserSay(QString, QString);
void handleServer332(QString, QStringList); // RPL_TOPIC
void handleServer333(QString, QStringList); // Topic set by...
void handleServer353(QString, QStringList); // RPL_NAMREPLY
+ void handleServer432(QString, QStringList); // ERR_ERRONEUSNICKNAME
+ void handleServer433(QString, QStringList); // ERR_NICKNAMEINUSE
+
+ void handleCtcpAction(CtcpType, QString, QString, QString);
void defaultServerHandler(QString cmd, QString prefix, QStringList params);
void defaultUserHandler(QString buf, QString cmd, QString msg);
+ void defaultCtcpHandler(CtcpType ctcptype, QString prefix, QString cmd, QString target, QString param);
private:
QString network;
void handleServerMsg(QString rawMsg);
void handleUserInput(QString buffer, QString usrMsg);
+ QHash<QString, QString> ctcpMDequoteHash;
+ QString ctcpDequote(QString);
+ QString ctcpXdelimDequote(QString);
+ QStringList parseCtcp(CtcpType, QString, QString, QString);
+
QString updateNickFromMask(QString mask);
class ParseError : public Exception {