summaryrefslogtreecommitdiffabout
path: root/kabc/plugins
authorzautrix <zautrix>2005-01-26 01:11:54 (UTC)
committer zautrix <zautrix>2005-01-26 01:11:54 (UTC)
commitab91893abef351f53275248a50032a6d5175132a (patch) (side-by-side diff)
tree7ecb1aba3741dbffb34ad28787538db942e4d448 /kabc/plugins
parentc3ec0a5a43fb328f2d190b8adee1ef662746fb41 (diff)
downloadkdepimpi-ab91893abef351f53275248a50032a6d5175132a.zip
kdepimpi-ab91893abef351f53275248a50032a6d5175132a.tar.gz
kdepimpi-ab91893abef351f53275248a50032a6d5175132a.tar.bz2
fixes
Diffstat (limited to 'kabc/plugins') (more/less context) (show whitespace changes)
-rw-r--r--kabc/plugins/sharpdtm/resourcesharpdtm.cpp4
-rw-r--r--kabc/plugins/sharpdtm/sharpdtmconverter.cpp52
2 files changed, 7 insertions, 49 deletions
diff --git a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
index 6413b42..e8f8bdd 100644
--- a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
+++ b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
@@ -77,134 +77,134 @@ ResourceSharpDTM::ResourceSharpDTM( const QString &fileName )
{
mAccess = 0;
init( fileName );
}
void ResourceSharpDTM::init( const QString &fileName )
{
if (mConverter == 0) {
mConverter = new SharpDTMConverter();
bool res = mConverter->init();
if ( !res )
{
QString msg("Unable to initialize sharp converter. Most likely a problem with the category file");
qDebug(msg);
return;
}
}
setFileName( fileName );
}
ResourceSharpDTM::~ResourceSharpDTM()
{
if (mConverter != 0)
delete mConverter;
if(mAccess != 0)
delete mAccess;
}
void ResourceSharpDTM::writeConfig( KConfig *config )
{
Resource::writeConfig( config );
}
Ticket *ResourceSharpDTM::requestSaveTicket()
{
qDebug("ResourceSharpDTM::requestSaveTicket: %s", fileName().latin1());
if ( !addressBook() ) return 0;
return createTicket( this );
}
bool ResourceSharpDTM::doOpen()
{
if (!mConverter)
return false;
return true;
}
void ResourceSharpDTM::doClose()
{
return;
}
bool ResourceSharpDTM::load()
{
if (!mConverter)
return false;
QString fileN = SlZDataBase::addressbookFileName();
if ( ! mAccess ) {
mAccess = new SlZDataBase(fileN,
SlZDataBase::addressbookItems(),
- 0, false);
+ 0, true);
}
if(mAccess == 0)
return false;
- qDebug("%xResourceSharpDTM::load: %s",this, fileName().latin1());
+ qDebug("ResourceSharpDTM:: %x load: %s",this, fileName().latin1());
bool res = false;
CardId id;
for (bool res=mAccess->first(); res == true; res=mAccess->next())
{
id = mAccess->cardId();
KABC::Addressee addressee;
res = mConverter->sharpToAddressee( id, mAccess, addressee );
if ( !addressee.isEmpty() && res )
{
addressee.setResource( this );
addressBook()->insertAddressee( addressee );
}
}
if(mAccess != 0)
delete mAccess;
mAccess = 0;
return true;
}
bool ResourceSharpDTM::save( Ticket *ticket )
{
if (!mConverter)
return false;
QString fileN = SlZDataBase::addressbookFileName();
if ( ! mAccess ) {
mAccess = new SlZDataBase(fileN,
SlZDataBase::addressbookItems(),
0, false);
}
if(mAccess == 0)
return false;
qDebug("ResourceSharpDTM::save: %s", fileName().latin1());
KABC::AddressBook::Iterator it;
bool res;
KABC::Addressee::List changedAddressees;
typedef QMap<int,QString> AddresseeMap;
AddresseeMap map;
CardId id ;
for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) {
if ( (*it).tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) {
QString uid = (*it).originalExternalUID();
bool res;
if ( uid.isEmpty() )
id = 0;
else
id = uid.toUInt();
KABC::Addressee addressee = (*it);
if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_ADDED_EXTERNAL ) {
res = mAccess->startEditCard(id);
if (res == true)
{
res = mConverter->addresseeToSharp( (*it), mAccess, id );
if (res == true)
{
res = mAccess->finishEditCard(&id);;
mConverter->setCategories( (*it), mAccess, id );
map.insert(id,(*it).uid());
if (res == false)
qDebug("Unable to append Contact: %s", addressee.formattedName().latin1());
}
else
diff --git a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp
index 95e16b6..4adcae4 100644
--- a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp
+++ b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp
@@ -359,128 +359,86 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
PhoneNumber businesspager = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Pager );
database->writeField(ZdbAdrs::BusinessPager, businesspager.number());
database->writeField(ZdbAdrs::JobTitle, addr.role());
database->writeField(ZdbAdrs::Company, addr.organization());
database->writeField(ZdbAdrs::Profession, addr.custom( "KADDRESSBOOK", "X-Profession" ));
database->writeField(ZdbAdrs::Assistant, addr.custom( "KADDRESSBOOK", "X-AssistantsName" ));
database->writeField(ZdbAdrs::Department, addr.custom( "KADDRESSBOOK", "X-Department" ));
database->writeField(ZdbAdrs::Manager, addr.custom( "KADDRESSBOOK", "X-ManagersName" ));
database->writeField(ZdbAdrs::Office, addr.custom( "KADDRESSBOOK", "X-Office" ));
//personal
database->writeField(ZdbAdrs::Spouse, addr.custom( "KADDRESSBOOK", "X-Spouse" ));
QString gt = addr.custom( "KADDRESSBOOK", "X-Gender" );
//qDebug("SharpDTMConverter::addresseeToSharp please check that gender works!! : Gender: %s", gt.latin1());
//qDebug("SharpDTMConverter::addresseeToSharp: may be writeField(\"ZdbAdrs::Gender\", ushort) is here better suited?");
//qDebug("SharpDTMConverter::addresseeToSharp: check also the reverse functionality in sharpToAddressee");
if (gt == "male")
database->writeField(ZdbAdrs::Gender, "1");
else if (gt == "female")
database->writeField(ZdbAdrs::Gender, "2");
else
database->writeField(ZdbAdrs::Gender, "");
QString dateS ;
QDate dt = KGlobal::locale()->readDate(addr.custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); // = Qt::ISODate
if ( dt.isValid() ) {
dateS = KGlobal::locale()->formatDate(dt, true );
}
database->writeField(ZdbAdrs::Anniversary, dateS );
database->writeField(ZdbAdrs::Children, addr.custom( "KADDRESSBOOK", "X-Children" ));
dt = addr.birthday().date();
dateS = "";
if ( dt.isValid() ) {
dateS = KGlobal::locale()->formatDate(dt, true );
}
database->writeField(ZdbAdrs::Birthday, dateS);
database->writeField(ZdbAdrs::Nickname, addr.nickName());
// other
database->writeField(ZdbAdrs::Notes, addr.note());
//US QString groups() const { return find( Qtopia::Groups ); }
//US QStringList groupList() const;
//qDebug("SharpDTMConverter::addresseeToSharp please check if category transformation works");
return true;
}
bool SharpDTMConverter::setCategories( const Addressee &addr, SlZDataBase* database , const CardId &contact )
{
QStringList list = addr.categories();
QArray<int> ids(list.count());
uint index = 0;
for(uint i=0; i<ids.size(); i++){
if(catDB->exists(list[i])){
ids[index] = catDB->id(list[i]);
- qDebug("set ex cat %d %s ",ids[index] , list[i].latin1());
+ //qDebug("set exist cat %d %s ",ids[index] , list[i].latin1());
index++;
} else {
ids[index] = catDB->addCategory(list[i]);
- qDebug("add new cat %d %s ",ids[index] , list[i].latin1());
+ //qDebug("add new cat %d %s ",ids[index] , list[i].latin1());
index++;
}
}
bool res ;
- if ( res = database->updateCategories(contact, ids) )
- qDebug("cat updated ");
- else
- qDebug("error cat updating ");
-
- return res;
-}
-#if 0
- m_pCategories = new SlCategories;
-catDB
+ if ( !(res = database->updateCategories(contact, ids) ))
+ qDebug("SharpDTMConverter::Error updating categories");
- if(categories == QString::null) return true;
- QStringList list = CSVParser::parse(categories);
- QArray<int> ids(list.count());
- uint index = 0;
- for(uint i=0; i<ids.size(); i++){
-#if 0
- bool ok;
- ids[index] = list[i].toInt(&ok);
- if(ok){
- index++;
- } else {
- if(m_pCategories->exists(list[i])){
- ids[index] = m_pCategories->id(list[i]);
- index++;
- }
- }
-#else
- if(m_pCategories->exists(list[i])){
- ids[index] = m_pCategories->id(list[i]);
- index++;
- } else if(m_addCategory){
- ids[index] = m_pCategories->addCategory(list[i]);
- index++;
- }
-#endif
- }
- if(ids.size() > 0 && index == 0){
- return true;
- } else if(index != ids.size()){
- ids.resize(index);
- }
- if(!m_pZdb->updateCategories(id, ids)){
- return false;
+ return res;
}
- return true;
-#endif
QDate SharpDTMConverter::convertDate( QString s)
{
QDate dt = KGlobal::locale()->readDate( s );
return dt;
return QDate ();
}