-rw-r--r-- | kabc/addressbook.cpp | 10 | ||||
-rw-r--r-- | kabc/addressbook.h | 2 | ||||
-rw-r--r-- | kaddressbook/kabcore.cpp | 9 | ||||
-rw-r--r-- | kaddressbook/kabcore.h | 2 | ||||
-rw-r--r-- | libkdepim/ksyncmanager.cpp | 2 |
5 files changed, 18 insertions, 7 deletions
diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp index f3744bc..e04f4b1 100644 --- a/kabc/addressbook.cpp +++ b/kabc/addressbook.cpp @@ -368,50 +368,56 @@ bool AddressBook::load() bool AddressBook::save( Ticket *ticket ) { kdDebug(5700) << "AddressBook::save()"<< endl; if ( ticket->resource() ) { deleteRemovedAddressees(); return ticket->resource()->save( ticket ); } return false; } // exports all Addressees, which are syncable -void AddressBook::export2File( QString fileName ) +void AddressBook::export2File( QString fileName, QString resourceName ) { QFile outFile( fileName ); if ( !outFile.open( IO_WriteOnly ) ) { QString text = i18n( "<qt>Unable to open file <b>%1</b> for export.</qt>" ); KMessageBox::error( 0, text.arg( fileName ) ); return ; } QTextStream t( &outFile ); t.setEncoding( QTextStream::UnicodeUTF8 ); Iterator it; KABC::VCardConverter::Version version; version = KABC::VCardConverter::v3_0; for ( it = begin(); it != end(); ++it ) { - if ( (*it).resource() && (*it).resource()->includeInSync() ) { + if ( (*it).resource() ) { + bool include = (*it).resource()->includeInSync(); + if ( !resourceName.isEmpty() ) + include = (resourceName == (*it).resource()->name() ); + if ( include ) { + qDebug(QString ("Exporting resource %1 to file %2").arg( (*it).resource()->name() ).arg( fileName ) ); if ( !(*it).IDStr().isEmpty() ) { (*it).insertCustom( "KADDRESSBOOK", "X-ExternalID", (*it).IDStr() ); } KABC::VCardConverter converter; QString vcard; //Resource *resource() const; converter.addresseeToVCard( *it, vcard, version ); t << vcard << "\r\n"; } } + } t << "\r\n\r\n"; outFile.close(); } // if QStringList uids is empty, all are exported bool AddressBook::export2PhoneFormat( QStringList uids ,QString fileName ) { KABC::VCardConverter converter; QString datastream; Iterator it; bool all = uids.isEmpty(); for ( it = begin(); it != end(); ++it ) { // for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) { diff --git a/kabc/addressbook.h b/kabc/addressbook.h index 18c03b5..4a0d0a3 100644 --- a/kabc/addressbook.h +++ b/kabc/addressbook.h @@ -137,25 +137,25 @@ class AddressBook : public QObject /** Save address book. The address book is saved to the file, the Ticket object has been requested for by @ref requestSaveTicket(). @param ticket a ticket object returned by @ref requestSaveTicket() */ bool save( Ticket *ticket ); bool saveAB( ); bool saveABphone( QString fileName ); void smplifyAddressees(); void removeSyncInfo( QString syncProfile); void preparePhoneSync( QString currentSyncDevice, bool isPreSync ); - void export2File( QString fileName ); + void export2File( QString fileName, QString resourceName = "" ); bool export2PhoneFormat( QStringList uids ,QString fileName ); int importFromFile( QString fileName, bool replaceLabel = false, bool removeOld = false ); void setUntagged( bool setNonSyncTagged = false ); void removeUntagged(); void findNewExtIds( QString fileName, QString currentSyncDevice ); /** Returns a iterator for first entry of address book. */ Iterator begin(); /** Returns a const iterator for first entry of address book. diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 2dea619..5d377bf 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp @@ -1927,25 +1927,25 @@ void KABCore::initGUI() mDetails = new ViewContainer( this ); topLayout->addWidget( viewSpace ); // topLayout->setStretchFactor( mDetailsSplitter, 100 ); topLayout->addWidget( mDetails ); #endif //KAB_NOSPLITTER */ syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); syncManager->setBlockSave(false); - connect(syncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); + connect(syncManager , SIGNAL( request_file(const QString &) ), this, SLOT( syncFileRequest(const QString &) ) ); connect(syncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); QString sync_file = sentSyncFile(); //qDebug("KABCore::initGUI()::setting tmp sync file to:%s ",sync_file.latin1()); syncManager->setDefaultFileName( sync_file ); //connect(syncManager , SIGNAL( ), this, SLOT( ) ); #endif //KAB_EMBEDDED initActions(); #ifdef KAB_EMBEDDED addActionsManually(); //US make sure the export and import menues are initialized before creating the xxPortManager. @@ -3463,31 +3463,36 @@ bool KABCore::syncPhone() void KABCore::getFile( bool success ) { if ( ! success ) { message( i18n("Error receiving file. Nothing changed!") ); return; } int count = mAddressBook->importFromFile( sentSyncFile() , false, true ); if ( count ) setModified( true ); message( i18n("Pi-Sync successful!") ); mViewManager->refreshView(); } -void KABCore::syncFileRequest() +void KABCore::syncFileRequest(const QString & resource) { if ( KABPrefs::instance()->mPassiveSyncWithDesktop ) { syncManager->slotSyncMenu( 999 ); } + + if ( resource == "ALL" ) { mAddressBook->export2File( sentSyncFile() ); } + else + mAddressBook->export2File( sentSyncFile(), resource); +} QString KABCore::sentSyncFile() { #ifdef DESKTOP_VERSION return locateLocal( "tmp", "copysyncab.vcf" ); #else return QString( "/tmp/copysyncab.vcf" ); #endif } void KABCore::setCaptionBack() { mMessageTimer->stop(); diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h index c4a0b3b..2d1505f 100644 --- a/kaddressbook/kabcore.h +++ b/kaddressbook/kabcore.h @@ -348,25 +348,25 @@ class KABCore : public QWidget, public KSyncInterface void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid); void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid); signals: void contactSelected( const QString &name ); void contactSelected( const QPixmap &pixmap ); public slots: void loadDataAfterStart(); void recieve(QString cmsg ); void getFile( bool success ); - void syncFileRequest(); + void syncFileRequest(const QString &); void setDetailsVisible( bool visible ); void setDetailsToState(); void saveSettings(); private slots: void updateToolBar(); void updateMainWindow(); void receive( const QCString& cmsg, const QByteArray& data ); void receiveStart( const QCString& cmsg, const QByteArray& data ); void toggleBeamReceive( ); void disableBR(bool); diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp index f80c2a6..e615cbe 100644 --- a/libkdepim/ksyncmanager.cpp +++ b/libkdepim/ksyncmanager.cpp @@ -1455,25 +1455,25 @@ void KServerSocket::send_file() mSyncActionDialog->setFixedSize( 230, 300); } else { mSyncActionDialog->setFixedSize( 230, 200); } } else { mSyncActionDialog->setFixedSize( 230, 120); } } else mSyncActionDialog->setFixedSize( 230, 120); mSyncActionDialog->show(); mSyncActionDialog->raise(); emit request_file(mResource); - emit request_file(); + //emit request_file(); qApp->processEvents(); QString fileName = mFileName; QFile file( fileName ); if (!file.open( IO_ReadOnly ) ) { mErrorMessage = 0; end_connect(); error_connect("ERROR_FI\r\n\r\n"); return ; } mSyncActionDialog->setCaption( i18n("Sending file...") ); QTextStream ts( &file ); ts.setEncoding( QTextStream::Latin1 ); |