-rw-r--r-- | bin/kdepim/korganizer/kopiWhatsNew.txt | 8 | ||||
-rw-r--r-- | kabc/addressbook.cpp | 14 | ||||
-rw-r--r-- | kabc/addressbook.h | 2 | ||||
-rw-r--r-- | kabc/addressee.cpp | 17 | ||||
-rw-r--r-- | kabc/addressee.h | 1 | ||||
-rw-r--r-- | kaddressbook/kabcore.cpp | 20 | ||||
-rw-r--r-- | kaddressbook/kabcore.h | 1 | ||||
-rw-r--r-- | kaddressbook/kaddressbookmain.cpp | 12 | ||||
-rw-r--r-- | kaddressbook/kaddressbookmain.h | 2 | ||||
-rw-r--r-- | kaddressbook/mainembedded.cpp | 6 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 13 | ||||
-rw-r--r-- | libkdepim/ksyncmanager.cpp | 6 |
12 files changed, 75 insertions, 27 deletions
diff --git a/bin/kdepim/korganizer/kopiWhatsNew.txt b/bin/kdepim/korganizer/kopiWhatsNew.txt index eea860c..3f95dcf 100644 --- a/bin/kdepim/korganizer/kopiWhatsNew.txt +++ b/bin/kdepim/korganizer/kopiWhatsNew.txt @@ -13,13 +13,19 @@ application/config data should be saved. An easy Kx/Pi to Kx/Pi syncing is now possible (it is called Pi-Sync) via network. Please look at the Sync Howto. -Exporting of data to mobile phones is now possible. +Exporting of calendar data and contacts to mobile phones is now possible. The SyncHowto is updated with information howto access/sync mobile phones. Please look at the Sync Howto. +Now KO/Pi and KA/Pi on the Zaurus can receive data via infrared directly. +Please disable Fastload for the original contact/calendar applications +and close them. +KO/Pi and KA/Pi must be running in order to receive the data. +(KO/Pi and KA/Pi are always running if Fastload for them is enabled!) + ********** VERSION 1.9.6 ************ Changes in the external application communication on the Zaurus diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp index dc3cda1..bf6d053 100644 --- a/kabc/addressbook.cpp +++ b/kabc/addressbook.cpp @@ -401,24 +401,32 @@ void AddressBook::export2File( QString fileName ) } t << "\r\n\r\n"; outFile.close(); } -void AddressBook::importFromFile( QString fileName ) +void AddressBook::importFromFile( QString fileName, bool replaceLabel ) { KABC::Addressee::List list; QFile file( fileName ); file.open( IO_ReadOnly ); QByteArray rawData = file.readAll(); file.close(); - - QString data = QString::fromUtf8( rawData.data(), rawData.size() + 1 ); + qDebug("AddressBook::importFromFile "); + QString data; + if ( replaceLabel ) { + data = QString::fromLatin1( rawData.data(), rawData.size() + 1 ); + data.replace ( QRegExp("LABEL") , "ADR" ); + data.replace ( QRegExp("CHARSET=ISO-8859-1") , "" ); + } else + data = QString::fromUtf8( rawData.data(), rawData.size() + 1 ); KABC::VCardTool tool; list = tool.parseVCards( data ); KABC::Addressee::List::Iterator it; for ( it = list.begin(); it != list.end(); ++it ) { (*it).setResource( 0 ); + if ( replaceLabel ) + (*it).removeVoice(); insertAddressee( (*it), false, true ); } } diff --git a/kabc/addressbook.h b/kabc/addressbook.h index 3603ec1..cea1b03 100644 --- a/kabc/addressbook.h +++ b/kabc/addressbook.h @@ -142,9 +142,9 @@ class AddressBook : public QObject */ bool save( Ticket *ticket ); bool saveAB( ); void export2File( QString fileName ); - void importFromFile( QString fileName ); + void importFromFile( QString fileName, bool replaceLabel = false ); /** Returns a iterator for first entry of address book. */ Iterator begin(); diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp index 19a1845..3f3d5c0 100644 --- a/kabc/addressee.cpp +++ b/kabc/addressee.cpp @@ -314,8 +314,25 @@ void Addressee::mergeContact( const Addressee& ad ) setUid( ad.uid() ); setRevision( ad.revision() ); } +bool Addressee::removeVoice() +{ + PhoneNumber::List phoneN = phoneNumbers(); + PhoneNumber::List::Iterator phoneIt; + bool found = false; + for ( phoneIt = phoneN.begin(); phoneIt != phoneN.end(); ++phoneIt ) { + if ( (*phoneIt).type() & PhoneNumber::Voice) { // voice found + if ((*phoneIt).type() - PhoneNumber::Voice ) { + (*phoneIt).setType((*phoneIt).type() - PhoneNumber::Voice ); + insertPhoneNumber( (*phoneIt) ); + found = true; + } + } + + } + return found; +} void Addressee::simplifyAddresses() { if ( mData->addresses.count() < 3 ) return ; int count = 0; diff --git a/kabc/addressee.h b/kabc/addressee.h index 44f0629..9336edc 100644 --- a/kabc/addressee.h +++ b/kabc/addressee.h @@ -120,8 +120,9 @@ class Addressee void simplifyEmails(); void simplifyAddresses(); void simplifyPhoneNumbers(); void simplifyPhoneNumberTypes(); + bool removeVoice(); /** Set unique identifier. */ diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 9b059d3..3a542ba 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp @@ -324,8 +324,14 @@ KABCore::~KABCore() delete syncManager; } +void KABCore::recieve( QString fn ) +{ + qDebug("KABCore::recieve "); + mAddressBook->importFromFile( fn, true ); + topLevelWidget()->raise(); +} void KABCore::restoreSettings() { mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce; @@ -2085,22 +2091,10 @@ void KABCore::removeVoice() return; KABC::Addressee::List list = mViewManager->selectedAddressees(); KABC::Addressee::List::Iterator it; for ( it = list.begin(); it != list.end(); ++it ) { - PhoneNumber::List phoneNumbers = (*it).phoneNumbers(); - PhoneNumber::List::Iterator phoneIt; - bool found = false; - for ( phoneIt = phoneNumbers.begin(); phoneIt != phoneNumbers.end(); ++phoneIt ) { - if ( (*phoneIt).type() & PhoneNumber::Voice) { // voice found - if ((*phoneIt).type() - PhoneNumber::Voice ) { - (*phoneIt).setType((*phoneIt).type() - PhoneNumber::Voice ); - (*it).insertPhoneNumber( (*phoneIt) ); - found = true; - } - } - } - if ( found ) + if ( (*it).removeVoice() ) contactModified((*it) ); } } diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h index c628399..43c5f99 100644 --- a/kaddressbook/kabcore.h +++ b/kaddressbook/kabcore.h @@ -341,8 +341,9 @@ class KABCore : public QWidget, public KSyncInterface signals: void contactSelected( const QString &name ); void contactSelected( const QPixmap &pixmap ); public slots: + void recieve(QString cmsg ); void getFile( bool success ); void syncFileRequest(); void setDetailsVisible( bool visible ); void setDetailsToState(); diff --git a/kaddressbook/kaddressbookmain.cpp b/kaddressbook/kaddressbookmain.cpp index f48f214..8c4ca09 100644 --- a/kaddressbook/kaddressbookmain.cpp +++ b/kaddressbook/kaddressbookmain.cpp @@ -91,9 +91,19 @@ KAddressBookMain::KAddressBookMain() : DCOPObject( "KAddressBookIface" ), KMainW KAddressBookMain::~KAddressBookMain() { // mCore->saveSettings(); } - +void KAddressBookMain::recieve( const QCString& cmsg, const QByteArray& data ) +{ + qDebug("KA: QCOP message received: %s ", cmsg.data() ); + if ( cmsg == "setDocument(QString)" ) { + QDataStream stream( data, IO_ReadOnly ); + QString fileName; + stream >> fileName; + mCore->recieve( fileName ); + return; + } +} void KAddressBookMain::showMinimized () { QWidget::showMinimized () ; } diff --git a/kaddressbook/kaddressbookmain.h b/kaddressbook/kaddressbookmain.h index cf6f899..40d2bdd 100644 --- a/kaddressbook/kaddressbookmain.h +++ b/kaddressbook/kaddressbookmain.h @@ -80,9 +80,9 @@ class KAddressBookMain : public KMainWindow, virtual public KAddressBookIface virtual void newContact(); virtual QString getNameByPhone( QString phone ); virtual void save(); virtual void exit(); - + void recieve( const QCString& cmsg, const QByteArray& data ); protected: void initActions(); #ifdef KAB_EMBEDDED //US new method to setup menues and toolbars on embedded systems diff --git a/kaddressbook/mainembedded.cpp b/kaddressbook/mainembedded.cpp index 965fb06..6dd97b8 100644 --- a/kaddressbook/mainembedded.cpp +++ b/kaddressbook/mainembedded.cpp @@ -1,6 +1,7 @@ #ifndef DESKTOP_VERSION #include <qpe/qpeapplication.h> +#include <qcopchannel_qws.h> #include <stdlib.h> #else #include <qapplication.h> #include <qwindowsstyle.h> @@ -77,14 +78,19 @@ int main( int argc, char **argv ) KPimGlobalPrefs::instance()->setGlobalConfig(); } #ifndef DESKTOP_VERSION a.showMainWidget( &m ); + QCopChannel* c1 = new QCopChannel("QPE/Application/addressbook",&m, "channelAB" ) ; + QObject::connect( c1, SIGNAL (received ( const QCString &, const QByteArray & )),&m, SLOT(recieve( const QCString&, const QByteArray& ))); #else a.setMainWidget( &m ); m.resize (640, 480 ); m.show(); #endif a.exec(); +#ifndef DESKTOP_VERSION + delete c1; +#endif } qDebug("KA: Bye! "); } diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 3c16458..a69a0bd 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp @@ -334,14 +334,15 @@ void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) //QString datamess; //qDebug("message "); qDebug("KO: QCOP message received: %s ", cmsg.data() ); - if ( cmsg == "-writeFile" ) { - // I made from the "-writeFile" an "-writeAlarm" - mView->viewManager()->showWhatsNextView(); - mCalendar->checkAlarmForIncidence( 0, true); - showMaximized(); - raise(); + if ( cmsg == "setDocument(QString)" ) { + QDataStream stream( data, IO_ReadOnly ); + QString fileName; + stream >> fileName; + qDebug("filename %s ", fileName.latin1()); + KOPrefs::instance()->mLastSyncedLocalFile = fileName ; + mSyncManager->slotSyncMenu( 1002 ); return; } if ( cmsg == "-writeFile" ) { diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp index 08b1a3d..80fb147 100644 --- a/libkdepim/ksyncmanager.cpp +++ b/libkdepim/ksyncmanager.cpp @@ -190,8 +190,12 @@ void KSyncManager::slotSyncMenu( int action ) } else if ( action == 1001 ) { syncLocalFile(); } else if ( action == 1002 ) { + mWriteBackFile = false; + mAskForPreferences = false; + mShowSyncSummary = false; + mSyncAlgoPrefs = 3; quickSyncLocalFile(); } else if ( action >= 1003 ) { if ( temp->getIsLocalFileSync() ) { @@ -365,9 +369,9 @@ bool KSyncManager::syncWithFile( QString fn , bool quick ) void KSyncManager::quickSyncLocalFile() { - if ( syncWithFile( mPrefs->mLastSyncedLocalFile, false ) ) { + if ( syncWithFile( mPrefs->mLastSyncedLocalFile, true ) ) { qDebug("quick syncLocalFile() successful "); } } |