Exemplo n.º 1
0
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));
    }
}
Exemplo n.º 2
0
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();
}