You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdenetwork/kopete/protocols/yahoo/ui/yahoouserinfodialog.cpp

257 lines
14 KiB

/*
Kopete Yahoo Protocol
yahoouserinfodialog.h - Display Yahoo user info
Copyright (c) 2005 Matt Rogers <mattr@kde.org>
Copyright (c) 2006 Andre Duffeck <andre@duffeck.de>
Kopete (c) 2002-2006 by the Kopete developers <kopete-devel@kde.org>
*************************************************************************
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Lesser General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
*************************************************************************
*/
#include "yahoouserinfodialog.h"
#include <tqlayout.h>
#include <tqlineedit.h>
#include <tqspinbox.h>
#include <tqcombobox.h>
#include <tqtextedit.h>
#include <tqobject.h>
#include <tqtextcodec.h>
#include <kdatewidget.h>
#include <kdebug.h>
#include <tdeglobal.h>
#include <kiconloader.h>
#include <kjanuswidget.h>
#include <tdelocale.h>
#include "yahooworkinfowidget.h"
#include "yahoogeneralinfowidget.h"
#include "yahoootherinfowidget.h"
#include "yahoocontact.h"
YahooUserInfoDialog::YahooUserInfoDialog( YahooContact *c, TQWidget * parent, const char * name )
: KDialogBase( KDialogBase::IconList, 0, parent, name, false, i18n( "Yahoo User Information" ), User2|User1|Cancel, Cancel, false, i18n("Save and Close"), i18n("Merge with existing entry") )
{
kdDebug(14180) << k_funcinfo << "Creating new yahoo user info widget" << endl;
m_contact = c;
showButton( User2, false );
TQFrame* genInfo = addPage( i18n( "General Info" ),
i18n( "General Yahoo Information" ),
TDEGlobal::iconLoader()->loadIcon( TQString::fromLatin1( "identity" ), TDEIcon::Desktop ) );
TQVBoxLayout* genLayout = new TQVBoxLayout( genInfo );
m_genInfoWidget = new YahooGeneralInfoWidget( genInfo, "Basic Information" );
genLayout->addWidget( m_genInfoWidget );
TQFrame* workInfo = addPage( i18n( "Work Info" ),
i18n( "Work Information" ),
TDEGlobal::iconLoader()->loadIcon( TQString::fromLatin1( "attach" ), TDEIcon::Desktop ) );
TQVBoxLayout* workLayout = new TQVBoxLayout( workInfo );
m_workInfoWidget = new YahooWorkInfoWidget( workInfo, "Work Information" );
workLayout->addWidget( m_workInfoWidget );
TQFrame* otherInfo = addPage( i18n( "Other Info" ),
i18n( "Other Yahoo Information" ),
TDEGlobal::iconLoader()->loadIcon( TQString::fromLatin1( "email" ), TDEIcon::Desktop ) );
TQVBoxLayout* otherLayout = new TQVBoxLayout( otherInfo );
m_otherInfoWidget = new YahooOtherInfoWidget( otherInfo, "Other Information" );
otherLayout->addWidget( m_otherInfoWidget );
TQObject::connect(this, TQT_SIGNAL(user1Clicked()), this, TQT_SLOT(slotSaveAndCloseClicked()));
}
void YahooUserInfoDialog::setAccountConnected( bool isOnline )
{
enableButton( User1, isOnline );
enableButton( User2, isOnline );
}
void YahooUserInfoDialog::slotSaveAndCloseClicked()
{
YABEntry entry;
entry.yahooId = m_yab.yahooId;
entry.YABId = m_yab.YABId;
entry.firstName = m_genInfoWidget->firstNameEdit->text();
entry.secondName = m_genInfoWidget->secondNameEdit->text();
entry.lastName = m_genInfoWidget->lastNameEdit->text();
entry.nickName = m_genInfoWidget->nickNameEdit->text();
entry.email = m_genInfoWidget->emailEdit->text();
entry.privatePhone = m_genInfoWidget->phoneEdit->text();
entry.workPhone = m_workInfoWidget->phoneEdit->text();
entry.pager = m_genInfoWidget->pagerEdit->text();
entry.fax = m_genInfoWidget->faxEdit->text();
entry.phoneMobile = m_genInfoWidget->cellEdit->text();
entry.additionalNumber = m_genInfoWidget->additionalEdit->text();
entry.altEmail1 = m_genInfoWidget->emailEdit_2->text();
entry.altEmail2 = m_genInfoWidget->emailEdit_3->text();
entry.privateURL = m_genInfoWidget->homepageEdit->text();
entry.title = m_genInfoWidget->titleEdit->text();
entry.corporation = m_workInfoWidget->companyEdit->text();
entry.workAdress = m_workInfoWidget->addressEdit->text();
entry.workCity = m_workInfoWidget->cityEdit->text();
entry.workState = m_workInfoWidget->stateEdit->text();
entry.workZIP = m_workInfoWidget->zipEdit->text();
entry.workCountry = m_workInfoWidget->countryEdit->text();
entry.workURL = m_workInfoWidget->homepageEdit->text();
entry.privateAdress = m_genInfoWidget->addressEdit->text();
entry.privateCity = m_genInfoWidget->cityEdit->text();
entry.privateState = m_genInfoWidget->stateEdit->text();
entry.privateZIP = m_genInfoWidget->zipEdit->text();
entry.privateCountry = m_genInfoWidget->countryEdit->text();
TQString bi = m_genInfoWidget->birthdayEdit->text();
entry.birthday = TQDate( bi.section("/",2,2).toInt(), bi.section("/",1,1).toInt(), bi.section("/",0,0).toInt() );
TQString an = m_genInfoWidget->anniversaryEdit->text();
entry.anniversary = TQDate( an.section("/",2,2).toInt(), an.section("/",1,1).toInt(), an.section("/",0,0).toInt() );
entry.additional1 = m_otherInfoWidget->note1Edit->text();
entry.additional2 = m_otherInfoWidget->note2Edit->text();
entry.additional3 = m_otherInfoWidget->note3Edit->text();
entry.additional4 = m_otherInfoWidget->note4Edit->text();
entry.notes = m_otherInfoWidget->commentsEdit->text();
// entry.imGoogleTalk = m_genInfoWidget->firstNameEdit->text();
// entry.imICQ = m_genInfoWidget->firstNameEdit->text();
// entry.imIRC = m_genInfoWidget->firstNameEdit->text();
// entry.imQQ = m_genInfoWidget->firstNameEdit->text();
// entry.imSkype = m_genInfoWidget->firstNameEdit->text();
emit saveYABEntry( entry );
TQDialog::accept();
}
void YahooUserInfoDialog::slotUser2()
{
if( m_contact )
{
YABEntry entry;
const YABEntry *oldEntry = m_contact->yabEntry();
entry.yahooId = m_yab.yahooId;
entry.YABId = m_yab.YABId;
entry.firstName = m_genInfoWidget->firstNameEdit->text().isEmpty() ? oldEntry->firstName : m_genInfoWidget->firstNameEdit->text();
entry.secondName = m_genInfoWidget->secondNameEdit->text().isEmpty() ? oldEntry->secondName : m_genInfoWidget->secondNameEdit->text();
entry.lastName = m_genInfoWidget->lastNameEdit->text().isEmpty() ? oldEntry->lastName : m_genInfoWidget->lastNameEdit->text();
entry.nickName = m_genInfoWidget->nickNameEdit->text().isEmpty() ? oldEntry->nickName : m_genInfoWidget->nickNameEdit->text();
entry.email = m_genInfoWidget->emailEdit->text().isEmpty() ? oldEntry->email : m_genInfoWidget->emailEdit->text();
entry.privatePhone = m_genInfoWidget->phoneEdit->text().isEmpty() ? oldEntry->privatePhone : m_genInfoWidget->phoneEdit->text();
entry.workPhone = m_workInfoWidget->phoneEdit->text().isEmpty() ? oldEntry->workPhone : m_workInfoWidget->phoneEdit->text();
entry.pager = m_genInfoWidget->pagerEdit->text().isEmpty() ? oldEntry->pager : m_genInfoWidget->pagerEdit->text();
entry.fax = m_genInfoWidget->faxEdit->text().isEmpty() ? oldEntry->fax : m_genInfoWidget->faxEdit->text();
entry.phoneMobile = m_genInfoWidget->cellEdit->text().isEmpty() ? oldEntry->phoneMobile : m_genInfoWidget->cellEdit->text();
entry.additionalNumber = m_genInfoWidget->additionalEdit->text().isEmpty() ? oldEntry->additionalNumber : m_genInfoWidget->additionalEdit->text();
entry.altEmail1 = m_genInfoWidget->emailEdit_2->text().isEmpty() ? oldEntry->altEmail1 : m_genInfoWidget->emailEdit_2->text();
entry.altEmail2 = m_genInfoWidget->emailEdit_3->text().isEmpty() ? oldEntry->altEmail2 : m_genInfoWidget->emailEdit_3->text();
entry.privateURL = m_genInfoWidget->homepageEdit->text().isEmpty() ? oldEntry->privateURL : m_genInfoWidget->homepageEdit->text();
entry.title = m_genInfoWidget->titleEdit->text().isEmpty() ? oldEntry->title : m_genInfoWidget->titleEdit->text();
entry.corporation = m_workInfoWidget->companyEdit->text().isEmpty() ? oldEntry->corporation : m_workInfoWidget->companyEdit->text();
entry.workAdress = m_workInfoWidget->addressEdit->text().isEmpty() ? oldEntry->workAdress : m_workInfoWidget->addressEdit->text();
entry.workCity = m_workInfoWidget->cityEdit->text().isEmpty() ? oldEntry->workCity : m_workInfoWidget->cityEdit->text();
entry.workState = m_workInfoWidget->stateEdit->text().isEmpty() ? oldEntry->workState : m_workInfoWidget->stateEdit->text();
entry.workZIP = m_workInfoWidget->zipEdit->text().isEmpty() ? oldEntry->workZIP : m_workInfoWidget->zipEdit->text();
entry.workCountry = m_workInfoWidget->countryEdit->text().isEmpty() ? oldEntry->workCountry : m_workInfoWidget->countryEdit->text();
entry.workURL = m_workInfoWidget->homepageEdit->text().isEmpty() ? oldEntry->workURL : m_workInfoWidget->homepageEdit->text();
entry.privateAdress = m_genInfoWidget->addressEdit->text().isEmpty() ? oldEntry->privateAdress : m_genInfoWidget->addressEdit->text();
entry.privateCity = m_genInfoWidget->cityEdit->text().isEmpty() ? oldEntry->privateCity : m_genInfoWidget->cityEdit->text();
entry.privateState = m_genInfoWidget->stateEdit->text().isEmpty() ? oldEntry->privateState : m_genInfoWidget->stateEdit->text();
entry.privateZIP = m_genInfoWidget->zipEdit->text().isEmpty() ? oldEntry->privateZIP : m_genInfoWidget->zipEdit->text();
entry.privateCountry = m_genInfoWidget->countryEdit->text().isEmpty() ? oldEntry->privateCountry : m_genInfoWidget->countryEdit->text();
if( m_genInfoWidget->birthdayEdit->text().isEmpty() )
entry.birthday = oldEntry->birthday;
else
{
TQString bi = m_genInfoWidget->birthdayEdit->text();
entry.birthday = TQDate( bi.section("/",2,2).toInt(), bi.section("/",1,1).toInt(), bi.section("/",0,0).toInt() );
}
if( m_genInfoWidget->anniversaryEdit->text().isEmpty() )
entry.anniversary = oldEntry->anniversary;
else
{
TQString an = m_genInfoWidget->anniversaryEdit->text();
entry.anniversary = TQDate( an.section("/",2,2).toInt(), an.section("/",1,1).toInt(), an.section("/",0,0).toInt() );
}
entry.additional1 = m_otherInfoWidget->note1Edit->text().isEmpty() ? oldEntry->additional1 : m_otherInfoWidget->note1Edit->text();
entry.additional2 = m_otherInfoWidget->note2Edit->text().isEmpty() ? oldEntry->additional2 : m_otherInfoWidget->note2Edit->text();
entry.additional3 = m_otherInfoWidget->note3Edit->text().isEmpty() ? oldEntry->additional3 : m_otherInfoWidget->note3Edit->text();
entry.additional4 = m_otherInfoWidget->note4Edit->text().isEmpty() ? oldEntry->additional4 : m_otherInfoWidget->note4Edit->text();
entry.notes = m_otherInfoWidget->commentsEdit->text().isEmpty() ? oldEntry->notes : m_otherInfoWidget->commentsEdit->text();
// entry.imGoogleTalk = m_genInfoWidget->firstNameEdit->text().isEmpty() ? oldEntry->notes : m_otherInfoWidget->commentsEdit->text();
// entry.imICQ = m_genInfoWidget->firstNameEdit->text().isEmpty() ? oldEntry->notes : m_otherInfoWidget->commentsEdit->text();
// entry.imIRC = m_genInfoWidget->firstNameEdit->text().isEmpty() ? oldEntry->notes : m_otherInfoWidget->commentsEdit->text();
// entry.imQQ = m_genInfoWidget->firstNameEdit->text().isEmpty() ? oldEntry->notes : m_otherInfoWidget->commentsEdit->text();
// entry.imSkype = m_genInfoWidget->firstNameEdit->text().isEmpty() ? oldEntry->notes : m_otherInfoWidget->commentsEdit->text();
emit saveYABEntry( entry );
}
TQDialog::accept();
}
void YahooUserInfoDialog::setData( const YABEntry &yab )
{
m_yab = yab;
if( m_yab.source == YABEntry::SourceContact )
{
showButton( User2, true );
setButtonText( User1, i18n("Replace existing entry") );
}
m_genInfoWidget->firstNameEdit->setText( yab.firstName );
m_genInfoWidget->secondNameEdit->setText( yab.secondName );
m_genInfoWidget->lastNameEdit->setText( yab.lastName );
m_genInfoWidget->nickNameEdit->setText( yab.nickName );
m_genInfoWidget->yahooIdEdit->setText( yab.yahooId );
m_genInfoWidget->titleEdit->setText( yab.title );
if( yab.birthday.isValid() )
m_genInfoWidget->birthdayEdit->setText( TQString("%1/%2/%3").arg( yab.birthday.day() ).arg( yab.birthday.month() ).arg( yab.birthday.year() ));
if( yab.anniversary.isValid() )
m_genInfoWidget->anniversaryEdit->setText( TQString("%1/%2/%3").arg( yab.anniversary.day() ).arg( yab.anniversary.month() ).arg( yab.anniversary.year() ));
m_genInfoWidget->addressEdit->setText( yab.privateAdress );
m_genInfoWidget->cityEdit->setText( yab.privateCity );
m_genInfoWidget->stateEdit->setText( yab.privateState );
m_genInfoWidget->zipEdit->setText( yab.privateZIP );
m_genInfoWidget->countryEdit->setText( yab.privateCountry );
m_genInfoWidget->phoneEdit->setText( yab.privatePhone );
m_genInfoWidget->cellEdit->setText( yab.phoneMobile );
m_genInfoWidget->faxEdit->setText( yab.fax );
m_genInfoWidget->pagerEdit->setText( yab.pager );
m_genInfoWidget->emailEdit->setText( yab.email );
m_genInfoWidget->emailEdit_2->setText( yab.altEmail1 );
m_genInfoWidget->emailEdit_3->setText( yab.altEmail2 );
m_genInfoWidget->homepageEdit->setText( yab.privateURL );
m_genInfoWidget->additionalEdit->setText( yab.additionalNumber );
m_workInfoWidget->phoneEdit->setText( yab.workPhone );
m_workInfoWidget->addressEdit->setText( yab.workAdress );
m_workInfoWidget->cityEdit->setText( yab.workCity );
m_workInfoWidget->stateEdit->setText( yab.workState );
m_workInfoWidget->zipEdit->setText( yab.workZIP );
m_workInfoWidget->countryEdit->setText( yab.workCountry );
m_workInfoWidget->companyEdit->setText( yab.corporation );
m_workInfoWidget->homepageEdit->setText( yab.workURL );
m_otherInfoWidget->commentsEdit->setText( yab.notes );
m_otherInfoWidget->note1Edit->setText( yab.additional1 );
m_otherInfoWidget->note2Edit->setText( yab.additional2 );
m_otherInfoWidget->note3Edit->setText( yab.additional3 );
m_otherInfoWidget->note4Edit->setText( yab.additional4 );
}
#include "yahoouserinfodialog.moc"
//kate: indent-mode csands; tab-width 4; space-indent off; replace-tabs off;