From 8a6d4b06f2291c363f3dea17837ed20893852453 Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Wed, 9 Sep 2015 19:00:56 +0200 Subject: Cleanup repo with some directories --- .../examples/client/ircmessageformatter.cpp | 113 +++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 src/libcommuni/examples/client/ircmessageformatter.cpp (limited to 'src/libcommuni/examples/client/ircmessageformatter.cpp') diff --git a/src/libcommuni/examples/client/ircmessageformatter.cpp b/src/libcommuni/examples/client/ircmessageformatter.cpp new file mode 100644 index 0000000..6537664 --- /dev/null +++ b/src/libcommuni/examples/client/ircmessageformatter.cpp @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2008-2014 The Communi Project + * + * This example is free, and not covered by the BSD license. There is no + * restriction applied to their modification, redistribution, using and so on. + * You can study them, modify them, use them in your own program - either + * completely or partially. + */ + +#include "ircmessageformatter.h" + +#include +#include +#include +#include + +QString IrcMessageFormatter::formatMessage(IrcMessage* message) +{ + QString formatted; + switch (message->type()) { + case IrcMessage::Join: + formatted = formatJoinMessage(static_cast(message)); + break; + case IrcMessage::Mode: + formatted = formatModeMessage(static_cast(message)); + break; + case IrcMessage::Names: + formatted = formatNamesMessage(static_cast(message)); + break; + case IrcMessage::Nick: + formatted = formatNickMessage(static_cast(message)); + break; + case IrcMessage::Part: + formatted = formatPartMessage(static_cast(message)); + break; + case IrcMessage::Private: + formatted = formatPrivateMessage(static_cast(message)); + break; + case IrcMessage::Quit: + formatted = formatQuitMessage(static_cast(message)); + break; + default: + break; + } + return formatMessage(formatted); +} + +QString IrcMessageFormatter::formatMessage(const QString& message) +{ + if (!message.isEmpty()) { + QString formatted = QObject::tr("[%1] %2").arg(QTime::currentTime().toString(), message); + if (message.startsWith("!")) + formatted = QObject::tr("%1").arg(formatted); + else if (message.startsWith("*")) + formatted = QObject::tr("%1").arg(formatted); + else if (message.startsWith("[")) + formatted = QObject::tr("%1").arg(formatted); + return formatted; + } + return QString(); +} + +QString IrcMessageFormatter::formatJoinMessage(IrcJoinMessage* message) +{ + if (message->flags() & IrcMessage::Own) + return QObject::tr("! You have joined %1 as %2").arg(message->channel(), message->nick()); + else + return QObject::tr("! %1 has joined %2").arg(message->nick(), message->channel()); +} + +QString IrcMessageFormatter::formatModeMessage(IrcModeMessage* message) +{ + QString args = message->arguments().join(" "); + if (message->isReply()) + return QObject::tr("! %1 mode is %2 %3").arg(message->target(), message->mode(), args); + else + return QObject::tr("! %1 sets mode %2 %3 %4").arg(message->nick(), message->target(), message->mode(), args); +} + +QString IrcMessageFormatter::formatNamesMessage(IrcNamesMessage* message) +{ + return QObject::tr("! %1 has %2 users").arg(message->channel()).arg(message->names().count()); +} + +QString IrcMessageFormatter::formatNickMessage(IrcNickMessage* message) +{ + return QObject::tr("! %1 has changed nick to %2").arg(message->oldNick(), message->newNick()); +} + +QString IrcMessageFormatter::formatPartMessage(IrcPartMessage* message) +{ + if (message->reason().isEmpty()) + return QObject::tr("! %1 has left %2").arg(message->nick(), message->channel()); + else + return QObject::tr("! %1 has left %2 (%3)").arg(message->nick(), message->channel(), message->reason()); +} + +QString IrcMessageFormatter::formatPrivateMessage(IrcPrivateMessage* message) +{ + const QString content = IrcTextFormat().toHtml(message->content()); + if (message->isAction()) + return QObject::tr("* %1 %2").arg(message->nick(), content); + else + return QObject::tr("<%1> %2").arg(message->nick(),content); +} + +QString IrcMessageFormatter::formatQuitMessage(IrcQuitMessage* message) +{ + if (message->reason().isEmpty()) + return QObject::tr("! %1 has quit").arg(message->nick()); + else + return QObject::tr("! %1 has quit (%2)").arg(message->nick(), message->reason()); +} -- cgit v1.2.3-54-g00ecf