-void UserInputHandler::handleTopic(QString bufname, QString msg) {
- if(bufname.isEmpty()) return;
- QStringList params;
- params << bufname << msg;
- emit putCmd("TOPIC", params);
+void UserInputHandler::handleSay(const BufferInfo &bufferInfo, const QString &msg) {
+ if(bufferInfo.bufferName().isEmpty()) return; // server buffer
+ QList<QByteArray> params;
+ params << serverEncode(bufferInfo.bufferName()) << channelEncode(bufferInfo.bufferName(), msg);
+ emit putCmd("PRIVMSG", params);
+ emit displayMsg(Message::Plain, bufferInfo.type(), bufferInfo.bufferName(), msg, network()->myNick(), Message::Self);
+}
+
+void UserInputHandler::handleTopic(const BufferInfo &bufferInfo, const QString &msg) {
+ if(bufferInfo.bufferName().isEmpty()) return;
+ if(!msg.isEmpty()) {
+ QList<QByteArray> params;
+ params << serverEncode(bufferInfo.bufferName()) << channelEncode(bufferInfo.bufferName(), msg);
+ emit putCmd("TOPIC", params);
+ } else {
+ emit networkConnection()->putRawLine("TOPIC " + serverEncode(bufferInfo.bufferName()) + " :");
+ }