X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoreuserinputhandler.h;h=a45fcaec75b4fe8f440e353d3861020f1666f4b9;hp=3c0350829d7cb3b3403a50cea424d11e51fe9dcf;hb=c194ed5fb3d15e14b9364f9796d3521910dc72fe;hpb=067450ab81038dc8a539d42630871d5a28ae2ddc diff --git a/src/core/coreuserinputhandler.h b/src/core/coreuserinputhandler.h index 3c035082..a45fcaec 100644 --- a/src/core/coreuserinputhandler.h +++ b/src/core/coreuserinputhandler.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,6 +21,8 @@ #ifndef COREUSERINPUTHANDLER_H #define COREUSERINPUTHANDLER_H +#include + #include "corebasichandler.h" #include "corenetwork.h" @@ -32,14 +34,24 @@ class CoreUserInputHandler : public CoreBasicHandler Q_OBJECT public: - CoreUserInputHandler(CoreNetwork *parent = 0); + CoreUserInputHandler(CoreNetwork *parent = nullptr); inline CoreNetwork *coreNetwork() const { return qobject_cast(parent()); } void handleUserInput(const BufferInfo &bufferInfo, const QString &text); int lastParamOverrun(const QString &cmd, const QList ¶ms); public slots: - void handleAway(const BufferInfo &bufferInfo, const QString &text); + /** + * Handle the away command, marking as away or unaway + * + * Applies to the current network unless text begins with "-all". + * + * @param[in] bufferInfo Currently active buffer + * @param[in] text Away message, or blank to set unaway + * @param[in] skipFormatting If true, skip timestamp formatting codes (e.g. if already done) + */ + void handleAway(const BufferInfo &bufferInfo, const QString &text, + const bool skipFormatting = false); void handleBan(const BufferInfo &bufferInfo, const QString &text); void handleUnban(const BufferInfo &bufferInfo, const QString &text); void handleCtcp(const BufferInfo &bufferInfo, const QString &text); @@ -63,6 +75,7 @@ public slots: void handleHalfop(const BufferInfo& bufferInfo, const QString &nicks); void handlePart(const BufferInfo &bufferInfo, const QString &text); void handlePing(const BufferInfo &bufferInfo, const QString &text); + void handlePrint(const BufferInfo &bufferInfo, const QString &text); void handleQuery(const BufferInfo &bufferInfo, const QString &text); void handleQuit(const BufferInfo &bufferInfo, const QString &text); void handleQuote(const BufferInfo &bufferInfo, const QString &text); @@ -78,26 +91,40 @@ public slots: void defaultHandler(QString cmd, const BufferInfo &bufferInfo, const QString &text); - void issueQuit(const QString &reason); - void issueAway(const QString &msg, bool autoCheck = true); + /** + * Send a QUIT to the IRC server, optionally skipping the command queue. + * + * @param reason Reason for quitting, often displayed to other IRC clients + * @param forceImmediate Immediately quit, skipping queue of other commands + */ + void issueQuit(const QString &reason, bool forceImmediate = false); + + /** + * Issues the away command, marking as away or unaway on the current network + * + * @param[in] msg Away message, or blank to set unaway + * @param[in] autoCheck If true, always set away, defaulting to the identity away message + * @param[in] skipFormatting If true, skip timestamp formatting codes (e.g. if already done) + */ + void issueAway(const QString &msg, bool autoCheck = true, const bool skipFormatting = false); protected: - void timerEvent(QTimerEvent *event); + void timerEvent(QTimerEvent *event) override; private: void doMode(const BufferInfo& bufferInfo, const QChar &addOrRemove, const QChar &mode, const QString &nickList); void banOrUnban(const BufferInfo &bufferInfo, const QString &text, bool ban); - void putPrivmsg(const QByteArray &target, const QByteArray &message, Cipher *cipher = 0); + void putPrivmsg(const QString &target, const QString &message, std::function encodeFunc, Cipher *cipher = nullptr); #ifdef HAVE_QCA2 - QByteArray encrypt(const QString &target, const QByteArray &message, bool *didEncrypt = 0) const; + QByteArray encrypt(const QString &target, const QByteArray &message, bool *didEncrypt = nullptr) const; #endif struct Command { BufferInfo bufferInfo; QString command; - Command(const BufferInfo &info, const QString &command) : bufferInfo(info), command(command) {} - Command() {} + Command(BufferInfo info, QString command) : bufferInfo(std::move(info)), command(std::move(command)) {} + Command() = default; }; QHash _delayedCommands;