QObject(session),
_coreSession(session)
{
-
+ connect(this, SIGNAL(newEvent(Event *)), coreSession()->eventManager(), SLOT(postEvent(Event *)));
}
bool IrcParser::checkParamCount(const QString &cmd, const QList<QByteArray> ¶ms, int minParams) {
QList<Event *> events;
EventManager::EventType type = EventManager::Invalid;
- // numeric replies have the target as first param (RFC 2812 - 2.4). this is usually our own nick. Remove this!
uint num = cmd.toUInt();
if(num > 0) {
+ // numeric reply
if(params.count() == 0) {
qWarning() << "Message received from server violates RFC and is ignored!" << msg;
return;
}
+ // numeric replies have the target as first param (RFC 2812 - 2.4). this is usually our own nick. Remove this!
target = net->serverDecode(params.takeFirst());
type = EventManager::IrcEventNumeric;
} else {
+ // any other irc command
QString typeName = QLatin1String("IrcEvent") + cmd.at(0).toUpper() + cmd.mid(1).toLower();
type = eventManager()->eventTypeByName(typeName);
if(type == EventManager::Invalid) {
}
foreach(Event *event, events) {
- coreSession()->eventManager()->sendEvent(event);
+ emit newEvent(event);
}
}