void SessionChildItem::receiveMessage(IrcMessage* message) { AbstractSessionItem::receiveMessage(message); if (message->type() == IrcMessage::Private) { IrcPrivateMessage* privMsg = static_cast<IrcPrivateMessage*>(message); QString alertText; if (isChannel()) { if (privMsg->message().contains(m_parent->session()->nickName(), Qt::CaseInsensitive)) { setHighlighted(true); if (!isCurrent()) alertText = tr("%1 on %2:\n%3").arg(privMsg->sender().name()).arg(title()).arg(privMsg->message()); } } else { setHighlighted(true); if (!isCurrent()) alertText = tr("%1 in private:\n%2").arg(privMsg->sender().name()).arg(privMsg->message()); } if (!alertText.isEmpty()) { setAlertText(alertText); emit alert(this); } if (!isCurrent()) setUnreadCount(unreadCount() + 1); } else if (message->type() == IrcMessage::Numeric) { IrcNumericMessage* numMsg = static_cast<IrcNumericMessage*>(message); if (isChannel() && numMsg->code() == Irc::RPL_TOPIC) setSubtitle(numMsg->parameters().value(2)); else if (!isChannel() && numMsg->code() == Irc::RPL_WHOISUSER) setSubtitle(numMsg->parameters().value(5)); } }
void CAlertUI::showEvent(QShowEvent * e) { Json::Value pObj; int itemCnt = 0; if (AppControl) { pObj = AppControl->getAlertJson(); setAlertText(0,""); setAlertText(1,""); setAlertText(2,""); setBtnText(0, "-", false); setBtnText(1, "-", false); setBtnText(2, "-", false); setBtnText(3, "-", false); if (pObj["params"].isMember("alertStrings")) { itemCnt = pObj["params"]["alertStrings"].size(); for(int i = 0; i < itemCnt; i++) { if (i < 3) { setAlertText(i, pObj["params"]["alertStrings"][i]["fieldText"].asString().c_str()); } else { break; } } } if (pObj["params"].isMember("softButtons")) { setTimeOut(pObj["params"]["duration"].asInt()+20000); itemCnt = pObj["params"]["softButtons"].size(); if(itemCnt == 2) { setBtnText(0,pObj["params"]["softButtons"][0]["text"].asString().c_str(),pObj["params"]["softButtons"][0]["isHighlighted"].asBool(), pObj["params"]["softButtons"][0]["softButtonID"].asInt()); setBtnText(3,pObj["params"]["softButtons"][1]["text"].asString().c_str(),pObj["params"]["softButtons"][1]["isHighlighted"].asBool(), pObj["params"]["softButtons"][1]["softButtonID"].asInt()); } else { for (int i = 0; i < itemCnt; i++) { if (i < 4) { setBtnText(i,pObj["params"]["softButtons"][i]["text"].asString().c_str(),pObj["params"]["softButtons"][i]["isHighlighted"].asBool(), pObj["params"]["softButtons"][i]["softButtonID"].asInt()); } else { break; } } } } else { setTimeOut(pObj["params"]["duration"].asInt()); } } updateLayout(); }