Kopete::MetaContact* Account::addContact( const QString &contactId, const QString &displayName , Group *group, AddMode mode ) { if ( contactId == d->myself->contactId() ) { KMessageBox::queuedMessageBox( Kopete::UI::Global::mainWidget(), KMessageBox::Error, i18n("You are not allowed to add yourself to the contact list. The addition of \"%1\" to account \"%2\" will not take place.").arg(contactId,accountId()), i18n("Error Creating Contact") ); return nullptr; } bool isTemporary = mode == Temporary; Contact *c = d->contacts[ contactId ]; if(!group) group=Group::topLevel(); if ( c && c->metaContact() ) { if ( c->metaContact()->isTemporary() && !isTemporary ) { kdDebug( 14010 ) << k_funcinfo << " You are trying to add an existing temporary contact. Just add it on the list" << endl; c->metaContact()->setTemporary(false, group ); ContactList::self()->addMetaContact(c->metaContact()); } else { // should we here add the contact to the parentContact if any? kdDebug( 14010 ) << k_funcinfo << "Contact already exists" << endl; } return c->metaContact(); } MetaContact *parentContact = new MetaContact(); if(!displayName.isEmpty()) parentContact->setDisplayName( displayName ); //Set it as a temporary contact if requested if ( isTemporary ) parentContact->setTemporary( true ); else parentContact->addToGroup( group ); if ( c ) { c->setMetaContact( parentContact ); if ( mode == ChangeKABC ) { kdDebug( 14010 ) << k_funcinfo << " changing KABC" << endl; KABCPersistence::self()->write( parentContact ); } } else { if ( !createContact( contactId, parentContact ) ) { delete parentContact; return 0L; } } ContactList::self()->addMetaContact( parentContact ); return parentContact; }
Kopete::MetaContact* Account::addContact( const QString &contactId, const QString &displayName , Group *group, AddMode mode ) { if ( !protocol()->canAddMyself() && contactId == d->myself->contactId() ) { if ( isConnected() && d->lastLoginTime.secsTo(QDateTime::currentDateTime()) > 30 ) { KMessageBox::queuedMessageBox( Kopete::UI::Global::mainWidget(), KMessageBox::Error, i18n("You are not allowed to add yourself to the contact list. The addition of \"%1\" to account \"%2\" will not take place.", contactId, accountId()), i18n("Error Creating Contact") ); } else { kWarning(14010) << "You are not allowed to add yourself to the contact list. The addition of" << contactId << "to account" << accountId() << "will not take place."; } return 0; } bool isTemporary = (mode == Temporary); Contact *c = d->contacts.value( contactId ); if(!group) group=Group::topLevel(); if ( c && c->metaContact() ) { if ( c->metaContact()->isTemporary() && !isTemporary ) { kDebug( 14010 ) << " You are trying to add an existing temporary contact. Just add it on the list"; c->metaContact()->setTemporary(false, group ); ContactList::self()->addMetaContact(c->metaContact()); } else { // should we here add the contact to the parentContact if any? kDebug( 14010 ) << "Contact already exists"; } return c->metaContact(); } MetaContact *parentContact = new MetaContact(); if(!displayName.isEmpty()) parentContact->setDisplayName( displayName ); //Set it as a temporary contact if requested if ( isTemporary ) parentContact->setTemporary( true ); else parentContact->addToGroup( group ); if ( c ) { c->setMetaContact( parentContact ); if ( mode == ChangeKABC ) { kDebug( 14010 ) << " changing KABC"; KABCPersistence::self()->write( parentContact ); } } else { if ( !createContact( contactId, parentContact ) ) { delete parentContact; return 0L; } } ContactList::self()->addMetaContact( parentContact ); return parentContact; }