MainInfo::MainInfo(QWidget *parent, Contact *contact) : MainInfoBase(parent) { m_contact = contact; m_bInit = false; cmbDisplay->setEditable(true); lstMails->addColumn(i18n("EMail")); lstPhones->addColumn(i18n("Type")); lstPhones->addColumn(i18n("Phone")); lstMails->setMenu(MenuMailList); lstPhones->setMenu(MenuPhoneList); if (m_contact == NULL) { lstMails->addColumn(i18n("Publish")); lstPhones->addColumn(i18n("Publish")); lblCurrent->setText(i18n("I'm currently available at:")); cmbStatus->insertItem(i18n("Don't show")); cmbStatus->insertItem(Pict("phone"), i18n("Available")); cmbStatus->insertItem(Pict("nophone"), i18n("Busy")); cmbStatus->setCurrentItem(getContacts()->owner()->getPhoneStatus()); } else { lblCurrent->setText(i18n("User is crrently available at:")); disableWidget(cmbCurrent); lblStatus->hide(); cmbStatus->hide(); } bool bHide = true; for (unsigned i = 0; i < getContacts()->nClients(); i++) { if (getContacts()->getClient(i)->protocol()->description()->flags & PROTOCOL_FOLLOWME) { bHide = false; break; } } if (bHide) { lblCurrent->hide(); cmbCurrent->hide(); lblStatus->hide(); cmbStatus->hide(); } lstMails->setExpandingColumn(0); lstPhones->setExpandingColumn(PHONE_NUMBER); if (m_contact == NULL) tabMain->removePage(tabNotes); fill(); connect(lstMails, SIGNAL(selectionChanged()), this, SLOT(mailSelectionChanged())); connect(lstPhones, SIGNAL(selectionChanged()), this, SLOT(phoneSelectionChanged())); connect(lstMails, SIGNAL(deleteItem(QListViewItem*)), this, SLOT(deleteMail(QListViewItem*))); connect(lstPhones, SIGNAL(deleteItem(QListViewItem*)), this, SLOT(deletePhone(QListViewItem*))); connect(btnMailAdd, SIGNAL(clicked()), this, SLOT(addMail())); connect(btnMailEdit, SIGNAL(clicked()), this, SLOT(editMail())); connect(btnMailDelete, SIGNAL(clicked()), this, SLOT(deleteMail())); connect(btnPhoneAdd, SIGNAL(clicked()), this, SLOT(addPhone())); connect(btnPhoneEdit, SIGNAL(clicked()), this, SLOT(editPhone())); connect(btnPhoneDelete, SIGNAL(clicked()), this, SLOT(deletePhone())); }
void MainInfo::deletePhone() { deletePhone(lstPhones->currentItem()); }
void *MainInfo::processEvent(Event *e) { if (e->type() == EventContactChanged){ Contact *contact = (Contact*)(e->param()); if (contact == m_contact) fill(); } if (e->type() == EventCheckState){ CommandDef *cmd = (CommandDef*)(e->param()); if (cmd->menu_id == MenuMailList){ if ((cmd->id != CmdEditList) && (cmd->id != CmdRemoveList)) return NULL; QListViewItem *item = (QListViewItem*)(cmd->param); if (item->listView() != lstMails) return NULL; cmd->flags &= ~(COMMAND_CHECKED | COMMAND_DISABLED); bool bEnable = ((item != NULL) && (item->text(MAIL_PROTO).isEmpty() || (item->text(MAIL_PROTO) == "-"))); if (!bEnable) cmd->flags |= COMMAND_DISABLED; return e->param(); } if (cmd->menu_id == MenuPhoneList){ if ((cmd->id != CmdEditList) && (cmd->id != CmdRemoveList)) return NULL; QListViewItem *item = (QListViewItem*)(cmd->param); if (item->listView() != lstPhones) return NULL; cmd->flags &= ~(COMMAND_CHECKED | COMMAND_DISABLED); bool bEnable = ((item != NULL) && (item->text(PHONE_PROTO).isEmpty() || (item->text(PHONE_PROTO) == "-"))); if (!bEnable) cmd->flags |= COMMAND_DISABLED; return e->param(); } } if (e->type() == EventCommandExec){ CommandDef *cmd = (CommandDef*)(e->param()); if (cmd->menu_id == MenuMailList){ QListViewItem *item = (QListViewItem*)(cmd->param); if (item->listView() != lstMails) return NULL; bool bEnable = ((item != NULL) && (item->text(MAIL_PROTO).isEmpty() || (item->text(MAIL_PROTO) == "-"))); if (!bEnable) return NULL; if (cmd->id == CmdEditList){ editMail(item); return e->param(); } if (cmd->id == CmdRemoveList){ deleteMail(item); return e->param(); } } if (cmd->menu_id == MenuPhoneList){ QListViewItem *item = (QListViewItem*)(cmd->param); if (item->listView() != lstPhones) return NULL; bool bEnable = ((item != NULL) && (item->text(PHONE_PROTO).isEmpty() || (item->text(PHONE_PROTO) == "-"))); if (!bEnable) return NULL; if (cmd->id == CmdEditList){ editPhone(item); return e->param(); } if (cmd->id == CmdRemoveList){ deletePhone(item); return e->param(); } } } return NULL; }