void KviNotifyListManager::notifyOffLine(const QString & szNick, const QString & szUser, const QString & szHost, const QString & szReason) { KviWindow * pOut = KVI_OPTION_BOOL(KviOption_boolNotifyListChangesToActiveWindow) ? m_pConsole->activeWindow() : m_pConsole; if(!KVS_TRIGGER_EVENT_1_HALTED(KviEvent_OnNotifyOffLine, pOut, szNick)) { QString szWho; if(!(szUser.isEmpty() || szHost.isEmpty())) szWho = QString("\r!n\r%1\r [%2@\r!h\r%3\r]").arg(szNick, szUser, szHost); else szWho = QString("\r!n\r%1\r").arg(szNick); QString szMsg; KviPointerHashTable<QString, KviRegisteredUser> * d = g_pRegisteredUserDataBase->userDict(); KviPointerHashTableIterator<QString, KviRegisteredUser> it(*d); while(KviRegisteredUser * pUser = it.current()) { QString szProp = pUser->getProperty("notify"); if(!szProp.isEmpty()) { if(szProp.split(",", QString::SkipEmptyParts).indexOf(szNick) != -1) { QString szComment = pUser->getProperty("comment"); if(!szComment.isEmpty()) szMsg = QString("%1 (%2), Group \"%3\" has left IRC as (%4)").arg(pUser->name(), szComment, pUser->group(), szWho); else szMsg = QString("%1, Group \"%2\" has left IRC as (%3)").arg(pUser->name(), pUser->group(), szWho); break; } } ++it; } if(szMsg.isEmpty()) szMsg = QString(__tr2qs("%1 has left IRC")).arg(szWho); if((!szReason.isEmpty()) && (_OUTPUT_VERBOSE)) { szMsg += "("; szMsg += szReason; szMsg += ")"; } pOut->outputNoFmt(KVI_OUT_NOTIFYOFFLINE, szMsg); } m_pConsole->notifyListView()->part(szNick); }
void DccChatWindow::connected() { if(!(m_pDescriptor->bActive)) { // PASSIVE CONNECTION...Find out the remote end m_pDescriptor->szIp = m_pMarshal->remoteIp(); m_pDescriptor->szPort = m_pMarshal->remotePort(); m_pDescriptor->szHost = m_pMarshal->remoteIp(); } updateCaption(); m_pSlaveThread = new DccChatThread(this, m_pMarshal->releaseSocket()); #ifdef COMPILE_SSL_SUPPORT KviSSL * s = m_pMarshal->releaseSSL(); if(s) { KviSSLMaster::printSSLConnectionInfo(this, s); m_pSlaveThread->setSSL(s); } #endif m_pSlaveThread->start(); if(!KVS_TRIGGER_EVENT_1_HALTED(KviEvent_OnDCCChatConnected, this, m_pDescriptor->idString())) { output(KVI_OUT_DCCMSG, __tr2qs_ctx("Connected to %Q:%Q", "dcc"), &(m_pMarshal->remoteIp()), &(m_pMarshal->remotePort())); output(KVI_OUT_DCCMSG, __tr2qs_ctx("Local end is %Q:%Q", "dcc"), &(m_pMarshal->localIp()), &(m_pMarshal->localPort())); #ifdef COMPILE_SSL_SUPPORT QString tmp = QString("DCC: %1 %2@%3:%4").arg(m_pDescriptor->bIsSSL ? "SChat" : "Chat", m_pDescriptor->szNick, m_pDescriptor->szIp, m_pDescriptor->szPort); #else QString tmp = QString("DCC: %1 %2@%3:%4").arg("Chat", m_pDescriptor->szNick, m_pDescriptor->szIp, m_pDescriptor->szPort); #endif m_pLabel->setText(tmp); } }
void KviNotifyListManager::notifyOnLine(const QString & szNick, const QString & szUser, const QString & szHost, const QString & szReason, bool bJoin) { if(bJoin) m_pConsole->notifyListView()->join(szNick, szUser, szHost); KviWindow * pOut = KVI_OPTION_BOOL(KviOption_boolNotifyListChangesToActiveWindow) ? m_pConsole->activeWindow() : m_pConsole; if(KVS_TRIGGER_EVENT_1_HALTED(KviEvent_OnNotifyOnLine, pOut, szNick)) return; QString szWho; QString szMsg; if(!(szUser.isEmpty() || szHost.isEmpty())) szWho = QString("\r!n\r%1\r [%2@\r!h\r%3\r]").arg(szNick, szUser, szHost); else szWho = QString("\r!n\r%1\r").arg(szNick); KviPointerHashTable<QString, KviRegisteredUser> * d = g_pRegisteredUserDataBase->userDict(); KviPointerHashTableIterator<QString, KviRegisteredUser> it(*d); while(KviRegisteredUser * pUser = it.current()) { QString szProp = pUser->getProperty("notify"); if(!szProp.isEmpty()) { if(szProp.split(",", QString::SkipEmptyParts).indexOf(szNick) != -1) { QString szComment = pUser->getProperty("comment"); if(!szComment.isEmpty()) szMsg = QString("%1 (%2), Group \"%3\" is on IRC as (%4)").arg(pUser->name(), szComment, pUser->group(), szWho); else szMsg = QString("%1, Group \"%2\" is on IRC as (%3)").arg(pUser->name(), pUser->group(), szWho); break; } } ++it; } QString szFmt = __tr2qs("%1 is on IRC"); if(szMsg.isEmpty()) szMsg = QString(szFmt).arg(szWho); if((!szReason.isEmpty()) && (_OUTPUT_VERBOSE)) { szMsg += "("; szMsg += szReason; szMsg += ")"; } pOut->outputNoFmt(KVI_OUT_NOTIFYONLINE, szMsg); if(!(pOut->hasAttention(KviWindow::MainWindowIsVisible))) { if(KVI_OPTION_BOOL(KviOption_boolFlashWindowOnNotifyOnLine)) pOut->demandAttention(); if(KVI_OPTION_BOOL(KviOption_boolPopupNotifierOnNotifyOnLine)) { szWho = "<b>"; szWho += szNick; szWho += "</b>"; szMsg = QString(szFmt).arg(szWho); g_pApp->notifierMessage(pOut, KVI_OPTION_MSGTYPE(KVI_OUT_NOTIFYONLINE).pixId(), szMsg, KVI_OPTION_UINT(KviOption_uintNotifierAutoHideTime)); } } }