QString IrcMessageFormatter::formatMessage(IrcMessage* message) { QString formatted; switch (message->type()) { case IrcMessage::Join: formatted = formatJoinMessage(static_cast<IrcJoinMessage*>(message)); break; case IrcMessage::Mode: formatted = formatModeMessage(static_cast<IrcModeMessage*>(message)); break; case IrcMessage::Names: formatted = formatNamesMessage(static_cast<IrcNamesMessage*>(message)); break; case IrcMessage::Nick: formatted = formatNickMessage(static_cast<IrcNickMessage*>(message)); break; case IrcMessage::Part: formatted = formatPartMessage(static_cast<IrcPartMessage*>(message)); break; case IrcMessage::Private: formatted = formatPrivateMessage(static_cast<IrcPrivateMessage*>(message)); break; case IrcMessage::Quit: formatted = formatQuitMessage(static_cast<IrcQuitMessage*>(message)); break; default: break; } return formatMessage(formatted); }
QString MessageFormatter::formatMessage(IrcMessage* message, UserModel* userModel) const { QString formatted; d.highlight = false; d.userModel = userModel; switch (message->type()) { case IrcMessage::Invite: formatted = formatInviteMessage(static_cast<IrcInviteMessage*>(message)); break; case IrcMessage::Join: if (message->isOwn()) d.receivedCodes.clear(); formatted = formatJoinMessage(static_cast<IrcJoinMessage*>(message)); break; case IrcMessage::Kick: formatted = formatKickMessage(static_cast<IrcKickMessage*>(message)); break; case IrcMessage::Mode: formatted = formatModeMessage(static_cast<IrcModeMessage*>(message)); break; case IrcMessage::Nick: formatted = formatNickMessage(static_cast<IrcNickMessage*>(message)); break; case IrcMessage::Notice: formatted = formatNoticeMessage(static_cast<IrcNoticeMessage*>(message)); break; case IrcMessage::Numeric: formatted = formatNumericMessage(static_cast<IrcNumericMessage*>(message)); break; case IrcMessage::Part: formatted = formatPartMessage(static_cast<IrcPartMessage*>(message)); break; case IrcMessage::Pong: formatted = formatPongMessage(static_cast<IrcPongMessage*>(message)); break; case IrcMessage::Private: formatted = formatPrivateMessage(static_cast<IrcPrivateMessage*>(message)); break; case IrcMessage::Quit: formatted = formatQuitMessage(static_cast<IrcQuitMessage*>(message)); break; case IrcMessage::Topic: formatted = formatTopicMessage(static_cast<IrcTopicMessage*>(message)); break; case IrcMessage::Unknown: formatted = formatUnknownMessage(static_cast<IrcMessage*>(message)); break; default: break; } return formatMessage(formatted); }
QString MessageFormatter::formatMessage(IrcMessage* message) const { QString formatted; d.highlight = false; switch (message->type()) { case IrcMessage::Invite: formatted = formatInviteMessage(static_cast<IrcInviteMessage*>(message)); break; case IrcMessage::Join: formatted = formatJoinMessage(static_cast<IrcJoinMessage*>(message)); break; case IrcMessage::Kick: formatted = formatKickMessage(static_cast<IrcKickMessage*>(message)); break; case IrcMessage::Mode: formatted = formatModeMessage(static_cast<IrcModeMessage*>(message)); break; case IrcMessage::Nick: formatted = formatNickMessage(static_cast<IrcNickMessage*>(message)); break; case IrcMessage::Notice: formatted = formatNoticeMessage(static_cast<IrcNoticeMessage*>(message)); break; case IrcMessage::Numeric: formatted = formatNumericMessage(static_cast<IrcNumericMessage*>(message)); break; case IrcMessage::Part: formatted = formatPartMessage(static_cast<IrcPartMessage*>(message)); break; case IrcMessage::Pong: formatted = formatPongMessage(static_cast<IrcPongMessage*>(message)); break; case IrcMessage::Private: formatted = formatPrivateMessage(static_cast<IrcPrivateMessage*>(message)); break; case IrcMessage::Quit: formatted = formatQuitMessage(static_cast<IrcQuitMessage*>(message)); break; case IrcMessage::Topic: formatted = formatTopicMessage(static_cast<IrcTopicMessage*>(message)); break; case IrcMessage::Unknown: formatted = formatUnknownMessage(static_cast<IrcMessage*>(message)); break; default: break; } if (formatted.isEmpty()) return QString(); QString format = d.messageFormat; if (d.highlight && !d.highlightFormat.isEmpty()) format = d.highlightFormat; else format = d.prefixedFormats.value(formatted.left(1)); if (d.timeStamp) formatted = tr("[%1] %2").arg(QTime::currentTime().toString(), formatted); if (!format.isNull()) formatted = tr("<span %1>%2</span>").arg(format, formatted); return formatted; }