Exemple #1
0
MsgEdit::~MsgEdit()
{
    editLostFocus();
    Command cmd;
    cmd->id = CmdCustomInput;
    cmd->param = this;
    Event e(EventCommandWidget, cmd);
    CToolCustom *w = (CToolCustom*)(e.process());
    if (w)
        w->removeWidgets();
}
Exemple #2
0
MsgEdit::~MsgEdit()
{
    typingStop();
    editLostFocus();
    Command cmd;
    cmd->id = CmdCustomInput;
    cmd->param = this;
    Event e(EventCommandWidget, cmd);
    CToolCustom *w = (CToolCustom*)(e.process());
    if (w)
        w->removeWidgets();
    if (m_retry.msg)
        delete m_retry.msg;
}
Exemple #3
0
void MsgEdit::setInput()
{
    Command cmd;
    cmd->id = CmdCustomInput;
    cmd->param = this;
    Event e(EventCommandWidget, cmd);
    CToolCustom *wInput = (CToolCustom*)(e.process());
    cmd->id = CmdCustomReceive;
    CToolCustom *wReceive = (CToolCustom*)(e.process());
    m_userWnd->setStatus("");

    if (wInput){
        wInput->show();
    }
    if (wReceive){
        wReceive->removeWidgets();
        wReceive->hide();
    }
}
Exemple #4
0
bool MsgEdit::setMessage(Message *msg, bool bSetFocus)
{
    m_type = msg->type();
    unsigned type = m_type;
    m_bReceived = msg->getFlags() & MESSAGE_RECEIVED;
    QObject *(*create)(QWidget *custom, Message *msg) = NULL;
    for (;;){
        CommandDef *cmd = CorePlugin::m_plugin->messageTypes.find(type);
        if (cmd == NULL)
            return false;
        MessageDef *def = (MessageDef*)(cmd->param);
        if (def == NULL)
            return false;
        if (m_bReceived){
            create = def->show;
        }else{
            create = def->generate;
        }
        if (create)
            break;
        if (def->base_type == 0){
            if (m_bReceived)
                break;
            return false;
        }
        type = def->base_type;
    }

    Command cmd;
    cmd->id = CmdCustomInput;
    cmd->param = this;
    Event e(EventCommandWidget, cmd);
    CToolCustom *wInput = (CToolCustom*)(e.process());
    cmd->id = CmdCustomReceive;
    CToolCustom *wReceive = (CToolCustom*)(e.process());
    m_userWnd->setStatus("");

    QObject *initObj = NULL;
    if (wInput){
        if (m_bReceived){
            wInput->hide();
            if (m_type == NO_TYPE){
                wInput->removeWidgets();
                m_type = MessageGeneric;
                Message msg(MessageGeneric);
                initObj = new MsgGen(wInput, &msg);
            }
        }else{
            wInput->removeWidgets();
            initObj = create(wInput, msg);
            wInput->show();
        }
    }
    if (wReceive){
        if (m_bReceived){
            wReceive->removeWidgets();
            initObj = new MsgReceived(wReceive, msg);
            wReceive->show();
        }else{
            wReceive->hide();
        }
    }
    if (msg->client()){
        m_client = msg->client();
    }else{
        m_client = "";
    }
    Contact *contact = getContacts()->contact(m_userWnd->id());
    if (contact){
        Event e(EventContactClient, contact);
        e.process();
    }

    cmd->id			= CmdMultiply;
    cmd->text		= I18N_NOOP("&Multiply send");
    cmd->icon		= "1rightarrow";
    cmd->icon_on	= "1leftarrow";
    cmd->flags		= COMMAND_DEFAULT;
    if (msg->getFlags() & MESSAGE_FORWARD){
        cmd->flags = COMMAND_CHECKED;
        m_userWnd->showListView(true, false);
    }
    Event eChange(EventCommandChange, cmd);
    eChange.process();

    if (initObj && bSetFocus){
        connect(this, SIGNAL(init()), initObj, SLOT(init()));
        emit init();
        disconnect(this, SIGNAL(init()), initObj, SLOT(init()));
    }
    return true;
}