summaryrefslogtreecommitdiffabout
path: root/kaddressbook
authorzautrix <zautrix>2004-12-05 13:41:41 (UTC)
committer zautrix <zautrix>2004-12-05 13:41:41 (UTC)
commit06bebf5be01898145c4f721a8d002519141e7f3b (patch) (unidiff)
treebc44d996a58a63de8c43cb5ba54d55bf1494eb5c /kaddressbook
parent5ab47964d8b52897bb0662ef4a5fcf9604acaf6c (diff)
downloadkdepimpi-06bebf5be01898145c4f721a8d002519141e7f3b.zip
kdepimpi-06bebf5be01898145c4f721a8d002519141e7f3b.tar.gz
kdepimpi-06bebf5be01898145c4f721a8d002519141e7f3b.tar.bz2
added better debug output to sync file problems
Diffstat (limited to 'kaddressbook') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 15cab73..b7edccd 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -1701,193 +1701,195 @@ void KABCore::initGUI()
1701 ImportMenu = new QPopupMenu( this ); 1701 ImportMenu = new QPopupMenu( this );
1702 ExportMenu = new QPopupMenu( this ); 1702 ExportMenu = new QPopupMenu( this );
1703 syncMenu = new QPopupMenu( this ); 1703 syncMenu = new QPopupMenu( this );
1704 changeMenu= new QPopupMenu( this ); 1704 changeMenu= new QPopupMenu( this );
1705 beamMenu= new QPopupMenu( this ); 1705 beamMenu= new QPopupMenu( this );
1706 1706
1707//US since we have no splitter for the embedded system, setup 1707//US since we have no splitter for the embedded system, setup
1708// a layout with two frames. One left and one right. 1708// a layout with two frames. One left and one right.
1709 1709
1710 QBoxLayout *topLayout; 1710 QBoxLayout *topLayout;
1711 1711
1712 // = new QHBoxLayout( this ); 1712 // = new QHBoxLayout( this );
1713// QBoxLayout *topLayout = (QBoxLayout*)layout(); 1713// QBoxLayout *topLayout = (QBoxLayout*)layout();
1714 1714
1715// QWidget *mainBox = new QWidget( this ); 1715// QWidget *mainBox = new QWidget( this );
1716// QBoxLayout * mainBoxLayout = new QHBoxLayout(mainBox); 1716// QBoxLayout * mainBoxLayout = new QHBoxLayout(mainBox);
1717 1717
1718#ifdef DESKTOP_VERSION 1718#ifdef DESKTOP_VERSION
1719 topLayout = new QHBoxLayout( this ); 1719 topLayout = new QHBoxLayout( this );
1720 1720
1721 1721
1722 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 1722 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
1723 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 1723 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
1724 1724
1725 topLayout->addWidget(mMiniSplitter ); 1725 topLayout->addWidget(mMiniSplitter );
1726 1726
1727 mExtensionBarSplitter = new KDGanttMinimizeSplitter( Qt::Vertical,mMiniSplitter ); 1727 mExtensionBarSplitter = new KDGanttMinimizeSplitter( Qt::Vertical,mMiniSplitter );
1728 mExtensionBarSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 1728 mExtensionBarSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
1729 mViewManager = new ViewManager( this, mExtensionBarSplitter ); 1729 mViewManager = new ViewManager( this, mExtensionBarSplitter );
1730 mDetails = new ViewContainer( mMiniSplitter ); 1730 mDetails = new ViewContainer( mMiniSplitter );
1731 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter ); 1731 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter );
1732#else 1732#else
1733 if ( QApplication::desktop()->width() > 480 ) { 1733 if ( QApplication::desktop()->width() > 480 ) {
1734 topLayout = new QHBoxLayout( this ); 1734 topLayout = new QHBoxLayout( this );
1735 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 1735 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
1736 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 1736 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
1737 } else { 1737 } else {
1738 1738
1739 topLayout = new QHBoxLayout( this ); 1739 topLayout = new QHBoxLayout( this );
1740 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this); 1740 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this);
1741 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 1741 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
1742 } 1742 }
1743 1743
1744 topLayout->addWidget(mMiniSplitter ); 1744 topLayout->addWidget(mMiniSplitter );
1745 mViewManager = new ViewManager( this, mMiniSplitter ); 1745 mViewManager = new ViewManager( this, mMiniSplitter );
1746 mDetails = new ViewContainer( mMiniSplitter ); 1746 mDetails = new ViewContainer( mMiniSplitter );
1747 1747
1748 1748
1749 mExtensionManager = new ExtensionManager( this, mMiniSplitter ); 1749 mExtensionManager = new ExtensionManager( this, mMiniSplitter );
1750#endif 1750#endif
1751 //eh->hide(); 1751 //eh->hide();
1752 // topLayout->addWidget(mExtensionManager ); 1752 // topLayout->addWidget(mExtensionManager );
1753 1753
1754 1754
1755/*US 1755/*US
1756#ifndef KAB_NOSPLITTER 1756#ifndef KAB_NOSPLITTER
1757 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1757 QHBoxLayout *topLayout = new QHBoxLayout( this );
1758//US topLayout->setSpacing( KDialogBase::spacingHint() ); 1758//US topLayout->setSpacing( KDialogBase::spacingHint() );
1759 topLayout->setSpacing( 10 ); 1759 topLayout->setSpacing( 10 );
1760 1760
1761 mDetailsSplitter = new QSplitter( this ); 1761 mDetailsSplitter = new QSplitter( this );
1762 1762
1763 QVBox *viewSpace = new QVBox( mDetailsSplitter ); 1763 QVBox *viewSpace = new QVBox( mDetailsSplitter );
1764 1764
1765 mViewManager = new ViewManager( this, viewSpace ); 1765 mViewManager = new ViewManager( this, viewSpace );
1766 viewSpace->setStretchFactor( mViewManager, 1 ); 1766 viewSpace->setStretchFactor( mViewManager, 1 );
1767 1767
1768 mDetails = new ViewContainer( mDetailsSplitter ); 1768 mDetails = new ViewContainer( mDetailsSplitter );
1769 1769
1770 topLayout->addWidget( mDetailsSplitter ); 1770 topLayout->addWidget( mDetailsSplitter );
1771 topLayout->setStretchFactor( mDetailsSplitter, 100 ); 1771 topLayout->setStretchFactor( mDetailsSplitter, 100 );
1772#else //KAB_NOSPLITTER 1772#else //KAB_NOSPLITTER
1773 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1773 QHBoxLayout *topLayout = new QHBoxLayout( this );
1774//US topLayout->setSpacing( KDialogBase::spacingHint() ); 1774//US topLayout->setSpacing( KDialogBase::spacingHint() );
1775 topLayout->setSpacing( 10 ); 1775 topLayout->setSpacing( 10 );
1776 1776
1777// mDetailsSplitter = new QSplitter( this ); 1777// mDetailsSplitter = new QSplitter( this );
1778 1778
1779 QVBox *viewSpace = new QVBox( this ); 1779 QVBox *viewSpace = new QVBox( this );
1780 1780
1781 mViewManager = new ViewManager( this, viewSpace ); 1781 mViewManager = new ViewManager( this, viewSpace );
1782 viewSpace->setStretchFactor( mViewManager, 1 ); 1782 viewSpace->setStretchFactor( mViewManager, 1 );
1783 1783
1784 mDetails = new ViewContainer( this ); 1784 mDetails = new ViewContainer( this );
1785 1785
1786 topLayout->addWidget( viewSpace ); 1786 topLayout->addWidget( viewSpace );
1787// topLayout->setStretchFactor( mDetailsSplitter, 100 ); 1787// topLayout->setStretchFactor( mDetailsSplitter, 100 );
1788 topLayout->addWidget( mDetails ); 1788 topLayout->addWidget( mDetails );
1789#endif //KAB_NOSPLITTER 1789#endif //KAB_NOSPLITTER
1790*/ 1790*/
1791 1791
1792 syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); 1792 syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu);
1793 syncManager->setBlockSave(false); 1793 syncManager->setBlockSave(false);
1794 1794
1795 connect(syncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); 1795 connect(syncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) );
1796 connect(syncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); 1796 connect(syncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) );
1797 syncManager->setDefaultFileName( sentSyncFile()); 1797 QString sync_file = sentSyncFile();
1798 qDebug("KABCore::initGUI()::setting tmp sync file to:%s ",sync_file.latin1());
1799 syncManager->setDefaultFileName( sync_file );
1798 //connect(syncManager , SIGNAL( ), this, SLOT( ) ); 1800 //connect(syncManager , SIGNAL( ), this, SLOT( ) );
1799 1801
1800#endif //KAB_EMBEDDED 1802#endif //KAB_EMBEDDED
1801 initActions(); 1803 initActions();
1802 1804
1803#ifdef KAB_EMBEDDED 1805#ifdef KAB_EMBEDDED
1804 addActionsManually(); 1806 addActionsManually();
1805 //US make sure the export and import menues are initialized before creating the xxPortManager. 1807 //US make sure the export and import menues are initialized before creating the xxPortManager.
1806 mXXPortManager = new XXPortManager( this, this ); 1808 mXXPortManager = new XXPortManager( this, this );
1807 1809
1808 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() ); 1810 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() );
1809 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget); 1811 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget);
1810 // mActionQuit->plug ( mMainWindow->toolBar()); 1812 // mActionQuit->plug ( mMainWindow->toolBar());
1811 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() ); 1813 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() );
1812 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget); 1814 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget);
1813 // mIncSearchWidget->hide(); 1815 // mIncSearchWidget->hide();
1814 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1816 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1815 SLOT( incrementalSearch( const QString& ) ) ); 1817 SLOT( incrementalSearch( const QString& ) ) );
1816 connect( mIncSearchWidget, SIGNAL( scrollUP() ),mViewManager, SLOT( scrollUP() ) ); 1818 connect( mIncSearchWidget, SIGNAL( scrollUP() ),mViewManager, SLOT( scrollUP() ) );
1817 connect( mIncSearchWidget, SIGNAL( scrollDOWN() ),mViewManager, SLOT( scrollDOWN() ) ); 1819 connect( mIncSearchWidget, SIGNAL( scrollDOWN() ),mViewManager, SLOT( scrollDOWN() ) );
1818 1820
1819 mJumpButtonBar = new JumpButtonBar( this, this ); 1821 mJumpButtonBar = new JumpButtonBar( this, this );
1820 1822
1821 topLayout->addWidget( mJumpButtonBar ); 1823 topLayout->addWidget( mJumpButtonBar );
1822//US topLayout->setStretchFactor( mJumpButtonBar, 10 ); 1824//US topLayout->setStretchFactor( mJumpButtonBar, 10 );
1823 1825
1824// mMainWindow->getIconToolBar()->raise(); 1826// mMainWindow->getIconToolBar()->raise();
1825 1827
1826#endif //KAB_EMBEDDED 1828#endif //KAB_EMBEDDED
1827 1829
1828} 1830}
1829void KABCore::initActions() 1831void KABCore::initActions()
1830{ 1832{
1831//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart); 1833//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart);
1832 1834
1833#ifndef KAB_EMBEDDED 1835#ifndef KAB_EMBEDDED
1834 connect( QApplication::clipboard(), SIGNAL( dataChanged() ), 1836 connect( QApplication::clipboard(), SIGNAL( dataChanged() ),
1835 SLOT( clipboardDataChanged() ) ); 1837 SLOT( clipboardDataChanged() ) );
1836#endif //KAB_EMBEDDED 1838#endif //KAB_EMBEDDED
1837 1839
1838 // file menu 1840 // file menu
1839 if ( mIsPart ) { 1841 if ( mIsPart ) {
1840 mActionMail = new KAction( i18n( "&Mail" ), "mail_generic", 0, this, 1842 mActionMail = new KAction( i18n( "&Mail" ), "mail_generic", 0, this,
1841 SLOT( sendMail() ), actionCollection(), 1843 SLOT( sendMail() ), actionCollection(),
1842 "kaddressbook_mail" ); 1844 "kaddressbook_mail" );
1843 mActionPrint = new KAction( i18n( "&Print" ), "fileprint", CTRL + Key_P, this, 1845 mActionPrint = new KAction( i18n( "&Print" ), "fileprint", CTRL + Key_P, this,
1844 SLOT( print() ), actionCollection(), "kaddressbook_print" ); 1846 SLOT( print() ), actionCollection(), "kaddressbook_print" );
1845 1847
1846 } else { 1848 } else {
1847 mActionMail = KStdAction::mail( this, SLOT( sendMail() ), actionCollection() ); 1849 mActionMail = KStdAction::mail( this, SLOT( sendMail() ), actionCollection() );
1848 mActionPrint = KStdAction::print( this, SLOT( print() ), actionCollection() ); 1850 mActionPrint = KStdAction::print( this, SLOT( print() ), actionCollection() );
1849 } 1851 }
1850 1852
1851 1853
1852 mActionSave = new KAction( i18n( "&Save" ), "filesave", CTRL+Key_S, this, 1854 mActionSave = new KAction( i18n( "&Save" ), "filesave", CTRL+Key_S, this,
1853 SLOT( save() ), actionCollection(), "file_sync" ); 1855 SLOT( save() ), actionCollection(), "file_sync" );
1854 1856
1855 mActionNewContact = new KAction( i18n( "&New Contact..." ), "filenew", CTRL+Key_N, this, 1857 mActionNewContact = new KAction( i18n( "&New Contact..." ), "filenew", CTRL+Key_N, this,
1856 SLOT( newContact() ), actionCollection(), "file_new_contact" ); 1858 SLOT( newContact() ), actionCollection(), "file_new_contact" );
1857 1859
1858 mActionMailVCard = new KAction(i18n("Mail &vCard..."), "mail_post_to", 0, 1860 mActionMailVCard = new KAction(i18n("Mail &vCard..."), "mail_post_to", 0,
1859 this, SLOT( mailVCard() ), 1861 this, SLOT( mailVCard() ),
1860 actionCollection(), "file_mail_vcard"); 1862 actionCollection(), "file_mail_vcard");
1861 1863
1862 mActionExport2phone = new KAction( i18n( "Export to phone" ), "ex2phone", 0, this, 1864 mActionExport2phone = new KAction( i18n( "Export to phone" ), "ex2phone", 0, this,
1863 SLOT( export2phone() ), actionCollection(), 1865 SLOT( export2phone() ), actionCollection(),
1864 "kaddressbook_ex2phone" ); 1866 "kaddressbook_ex2phone" );
1865 1867
1866 mActionBeamVCard = 0; 1868 mActionBeamVCard = 0;
1867 mActionBeam = 0; 1869 mActionBeam = 0;
1868 1870
1869#ifndef DESKTOP_VERSION 1871#ifndef DESKTOP_VERSION
1870 if ( Ir::supported() ) { 1872 if ( Ir::supported() ) {
1871 mActionBeamVCard = new KAction( i18n( "Beam v&Card(s)..." ), "beam", 0, this, 1873 mActionBeamVCard = new KAction( i18n( "Beam v&Card(s)..." ), "beam", 0, this,
1872 SLOT( beamVCard() ), actionCollection(), 1874 SLOT( beamVCard() ), actionCollection(),
1873 "kaddressbook_beam_vcard" ); 1875 "kaddressbook_beam_vcard" );
1874 1876
1875 mActionBeam = new KAction( i18n( "&Beam personal vCard" ), "beam", 0, this, 1877 mActionBeam = new KAction( i18n( "&Beam personal vCard" ), "beam", 0, this,
1876 SLOT( beamMySelf() ), actionCollection(), 1878 SLOT( beamMySelf() ), actionCollection(),
1877 "kaddressbook_beam_myself" ); 1879 "kaddressbook_beam_myself" );
1878 } 1880 }
1879#endif 1881#endif
1880 1882
1881 mActionEditAddressee = new KAction( i18n( "&Edit Contact..." ), "edit", 0, 1883 mActionEditAddressee = new KAction( i18n( "&Edit Contact..." ), "edit", 0,
1882 this, SLOT( editContact2() ), 1884 this, SLOT( editContact2() ),
1883 actionCollection(), "file_properties" ); 1885 actionCollection(), "file_properties" );
1884 1886
1885#ifdef KAB_EMBEDDED 1887#ifdef KAB_EMBEDDED
1886 // mActionQuit = KStdAction::quit( mMainWindow, SLOT( exit() ), actionCollection() ); 1888 // mActionQuit = KStdAction::quit( mMainWindow, SLOT( exit() ), actionCollection() );
1887 mActionQuit = new KAction( i18n( "&Exit" ), "exit", 0, 1889 mActionQuit = new KAction( i18n( "&Exit" ), "exit", 0,
1888 mMainWindow, SLOT( exit() ), 1890 mMainWindow, SLOT( exit() ),
1889 actionCollection(), "quit" ); 1891 actionCollection(), "quit" );
1890#endif //KAB_EMBEDDED 1892#endif //KAB_EMBEDDED
1891 1893
1892 // edit menu 1894 // edit menu
1893 if ( mIsPart ) { 1895 if ( mIsPart ) {
@@ -2913,259 +2915,263 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo
2913 qApp->processEvents(); 2915 qApp->processEvents();
2914 if (syncManager->isProgressBarCanceled()) 2916 if (syncManager->isProgressBarCanceled())
2915 return false; 2917 return false;
2916 if ( incCounter % modulo == 0 ) 2918 if ( incCounter % modulo == 0 )
2917 syncManager->showProgressBar(incCounter); 2919 syncManager->showProgressBar(incCounter);
2918 uid = el[ incCounter ]; 2920 uid = el[ incCounter ];
2919 bool skipIncidence = false; 2921 bool skipIncidence = false;
2920 if ( uid.left(19) == QString("last-syncAddressee-") ) 2922 if ( uid.left(19) == QString("last-syncAddressee-") )
2921 skipIncidence = true; 2923 skipIncidence = true;
2922 if ( !skipIncidence ) { 2924 if ( !skipIncidence ) {
2923 inL = local->findByUid( uid ); 2925 inL = local->findByUid( uid );
2924 if ( !inL.resource() || inL.resource()->includeInSync() ) { 2926 if ( !inL.resource() || inL.resource()->includeInSync() ) {
2925 inR = remote->findByUid( uid ); 2927 inR = remote->findByUid( uid );
2926 if ( inR.isEmpty() ) { // no conflict ********** add or delete local 2928 if ( inR.isEmpty() ) { // no conflict ********** add or delete local
2927 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2929 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2928 if ( !inL.getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { 2930 if ( !inL.getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) {
2929 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); 2931 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL);
2930 local->removeAddressee( inL ); 2932 local->removeAddressee( inL );
2931 ++deletedAddresseeL; 2933 ++deletedAddresseeL;
2932 } else { 2934 } else {
2933 if ( ! syncManager->mWriteBackExistingOnly ) { 2935 if ( ! syncManager->mWriteBackExistingOnly ) {
2934 inL.removeID(mCurrentSyncDevice ); 2936 inL.removeID(mCurrentSyncDevice );
2935 ++addedAddresseeR; 2937 ++addedAddresseeR;
2936 inL.setRevision( modifiedCalendar ); 2938 inL.setRevision( modifiedCalendar );
2937 local->insertAddressee( inL, false ); 2939 local->insertAddressee( inL, false );
2938 inR = inL; 2940 inR = inL;
2939 inR.setTempSyncStat( SYNC_TEMPSTATE_ADDED_EXTERNAL ); 2941 inR.setTempSyncStat( SYNC_TEMPSTATE_ADDED_EXTERNAL );
2940 inR.setResource( 0 ); 2942 inR.setResource( 0 );
2941 remote->insertAddressee( inR, false ); 2943 remote->insertAddressee( inR, false );
2942 } 2944 }
2943 } 2945 }
2944 } else { 2946 } else {
2945 if ( inL.revision() < mLastAddressbookSync && mode != 4 ) { 2947 if ( inL.revision() < mLastAddressbookSync && mode != 4 ) {
2946 //qDebug("data %s ", inL.revision().toString().latin1()); 2948 //qDebug("data %s ", inL.revision().toString().latin1());
2947 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); 2949 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL);
2948 local->removeAddressee( inL ); 2950 local->removeAddressee( inL );
2949 ++deletedAddresseeL; 2951 ++deletedAddresseeL;
2950 } else { 2952 } else {
2951 if ( ! syncManager->mWriteBackExistingOnly ) { 2953 if ( ! syncManager->mWriteBackExistingOnly ) {
2952 ++addedAddresseeR; 2954 ++addedAddresseeR;
2953 inL.setRevision( modifiedCalendar ); 2955 inL.setRevision( modifiedCalendar );
2954 local->insertAddressee( inL, false ); 2956 local->insertAddressee( inL, false );
2955 inR = inL; 2957 inR = inL;
2956 inR.setIDStr( ":" ); 2958 inR.setIDStr( ":" );
2957 inR.setResource( 0 ); 2959 inR.setResource( 0 );
2958 remote->insertAddressee( inR, false ); 2960 remote->insertAddressee( inR, false );
2959 } 2961 }
2960 } 2962 }
2961 } 2963 }
2962 } 2964 }
2963 } 2965 }
2964 } 2966 }
2965 ++incCounter; 2967 ++incCounter;
2966 } 2968 }
2967 el.clear(); 2969 el.clear();
2968 syncManager->hideProgressBar(); 2970 syncManager->hideProgressBar();
2969 mLastAddressbookSync = QDateTime::currentDateTime().addSecs( 1 ); 2971 mLastAddressbookSync = QDateTime::currentDateTime().addSecs( 1 );
2970 // get rid of micro seconds 2972 // get rid of micro seconds
2971 QTime t = mLastAddressbookSync.time(); 2973 QTime t = mLastAddressbookSync.time();
2972 mLastAddressbookSync.setTime( QTime (t.hour (), t.minute (), t.second () ) ); 2974 mLastAddressbookSync.setTime( QTime (t.hour (), t.minute (), t.second () ) );
2973 addresseeLSync.setRevision( mLastAddressbookSync ); 2975 addresseeLSync.setRevision( mLastAddressbookSync );
2974 addresseeRSync.setRevision( mLastAddressbookSync ); 2976 addresseeRSync.setRevision( mLastAddressbookSync );
2975 addresseeRSync.setRole( i18n("!Remote from: ")+mCurrentSyncName ) ; 2977 addresseeRSync.setRole( i18n("!Remote from: ")+mCurrentSyncName ) ;
2976 addresseeLSync.setRole(i18n("!Local from: ") + mCurrentSyncName ); 2978 addresseeLSync.setRole(i18n("!Local from: ") + mCurrentSyncName );
2977 addresseeRSync.setGivenName( i18n("!DO NOT EDIT!") ) ; 2979 addresseeRSync.setGivenName( i18n("!DO NOT EDIT!") ) ;
2978 addresseeLSync.setGivenName(i18n("!DO NOT EDIT!") ); 2980 addresseeLSync.setGivenName(i18n("!DO NOT EDIT!") );
2979 addresseeRSync.setOrganization( "!"+mLastAddressbookSync.toString() ) ; 2981 addresseeRSync.setOrganization( "!"+mLastAddressbookSync.toString() ) ;
2980 addresseeLSync.setOrganization("!"+ mLastAddressbookSync.toString() ); 2982 addresseeLSync.setOrganization("!"+ mLastAddressbookSync.toString() );
2981 addresseeRSync.setNote( "" ) ; 2983 addresseeRSync.setNote( "" ) ;
2982 addresseeLSync.setNote( "" ); 2984 addresseeLSync.setNote( "" );
2983 2985
2984 if ( mGlobalSyncMode == SYNC_MODE_NORMAL) 2986 if ( mGlobalSyncMode == SYNC_MODE_NORMAL)
2985 remote->insertAddressee( addresseeRSync, false ); 2987 remote->insertAddressee( addresseeRSync, false );
2986 local->insertAddressee( addresseeLSync, false ); 2988 local->insertAddressee( addresseeLSync, false );
2987 QString mes; 2989 QString mes;
2988 mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n"),addedAddressee, addedAddresseeR, changedLocal, changedRemote, deletedAddresseeL, deletedAddresseeR ); 2990 mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n"),addedAddressee, addedAddresseeR, changedLocal, changedRemote, deletedAddresseeL, deletedAddresseeR );
2989 qDebug( mes ); 2991 qDebug( mes );
2990 mes = i18n("Local addressbook changed!\n") +mes; 2992 mes = i18n("Local addressbook changed!\n") +mes;
2991 if ( syncManager->mShowSyncSummary ) { 2993 if ( syncManager->mShowSyncSummary ) {
2992 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, mes, 2994 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(this, mes,
2993 i18n("KA/Pi Synchronization"),i18n("Write back"))) { 2995 i18n("KA/Pi Synchronization"),i18n("Write back"))) {
2994 qDebug("cancelled "); 2996 qDebug("cancelled ");
2995 return false; 2997 return false;
2996 } 2998 }
2997 } 2999 }
2998 return syncOK; 3000 return syncOK;
2999} 3001}
3000 3002
3001 3003
3002//this is a overwritten callbackmethods from the syncinterface 3004//this is a overwritten callbackmethods from the syncinterface
3003bool KABCore::sync(KSyncManager* manager, QString filename, int mode) 3005bool KABCore::sync(KSyncManager* manager, QString filename, int mode)
3004{ 3006{
3005 3007
3006 //pending prepare addresseeview for output 3008 //pending prepare addresseeview for output
3007 //pending detect, if remote file has REV field. if not switch to external sync 3009 //pending detect, if remote file has REV field. if not switch to external sync
3008 mGlobalSyncMode = SYNC_MODE_NORMAL; 3010 mGlobalSyncMode = SYNC_MODE_NORMAL;
3011 if ( manager != syncManager )
3012 qDebug("KABCore::sync:: ERROR! :: manager != syncManager ");
3009 QString mCurrentSyncDevice = manager->getCurrentSyncDevice(); 3013 QString mCurrentSyncDevice = manager->getCurrentSyncDevice();
3010 3014
3011 AddressBook abLocal(filename,"syncContact"); 3015 AddressBook abLocal(filename,"syncContact");
3012 bool syncOK = false; 3016 bool syncOK = false;
3013 if ( abLocal.load() ) { 3017 if ( abLocal.load() ) {
3014 qDebug("AB loaded %s,sync mode %d",filename.latin1(), mode ); 3018 qDebug("AB loaded %s,sync mode %d",filename.latin1(), mode );
3015 bool external = false; 3019 bool external = false;
3016 bool isXML = false; 3020 bool isXML = false;
3017 if ( filename.right(4) == ".xml") { 3021 if ( filename.right(4) == ".xml") {
3018 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 3022 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
3019 isXML = true; 3023 isXML = true;
3020 abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, true ); 3024 abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, true );
3021 } else { 3025 } else {
3022 external = !manager->mIsKapiFile; 3026 external = !manager->mIsKapiFile;
3023 if ( external ) { 3027 if ( external ) {
3024 qDebug("Setting vcf mode to external "); 3028 qDebug("Setting vcf mode to external ");
3025 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 3029 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
3026 AddressBook::Iterator it; 3030 AddressBook::Iterator it;
3027 for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { 3031 for ( it = abLocal.begin(); it != abLocal.end(); ++it ) {
3028 (*it).setID( mCurrentSyncDevice, (*it).uid() ); 3032 (*it).setID( mCurrentSyncDevice, (*it).uid() );
3029 (*it).computeCsum( mCurrentSyncDevice ); 3033 (*it).computeCsum( mCurrentSyncDevice );
3030 } 3034 }
3031 } 3035 }
3032 } 3036 }
3033 //AddressBook::Iterator it; 3037 //AddressBook::Iterator it;
3034 //QStringList vcards; 3038 //QStringList vcards;
3035 //for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { 3039 //for ( it = abLocal.begin(); it != abLocal.end(); ++it ) {
3036 // qDebug("Name %s ", (*it).familyName().latin1()); 3040 // qDebug("Name %s ", (*it).familyName().latin1());
3037 //} 3041 //}
3038 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, mode ); 3042 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, mode );
3039 if ( syncOK ) { 3043 if ( syncOK ) {
3040 if ( syncManager->mWriteBackFile ) 3044 if ( syncManager->mWriteBackFile )
3041 { 3045 {
3042 if ( external ) 3046 if ( external )
3043 abLocal.removeSyncAddressees( !isXML); 3047 abLocal.removeSyncAddressees( !isXML);
3044 qDebug("Saving remote AB "); 3048 qDebug("Saving remote AB ");
3045 if ( ! abLocal.saveAB()) 3049 if ( ! abLocal.saveAB())
3046 qDebug("Error writing back AB to file "); 3050 qDebug("Error writing back AB to file ");
3047 if ( external ) { 3051 if ( external ) {
3048 // afterwrite processing 3052 // afterwrite processing
3049 abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ,isXML); 3053 abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ,isXML);
3050 } 3054 }
3051 } 3055 }
3052 } 3056 }
3053 setModified(); 3057 setModified();
3054 3058
3055 } 3059 }
3056 abLocal.removeResources(); 3060 abLocal.removeResources();
3057 if ( syncOK ) 3061 if ( syncOK )
3058 mViewManager->refreshView(); 3062 mViewManager->refreshView();
3059 return syncOK; 3063 return syncOK;
3060 3064
3061} 3065}
3062void KABCore::removeSyncInfo( QString syncProfile) 3066void KABCore::removeSyncInfo( QString syncProfile)
3063{ 3067{
3064 qDebug("AB:removeSyncInfo for profile %s ", syncProfile.latin1()); 3068 qDebug("AB:removeSyncInfo for profile %s ", syncProfile.latin1());
3065 mAddressBook->removeSyncInfo( syncProfile ); 3069 mAddressBook->removeSyncInfo( syncProfile );
3066 setModified(); 3070 setModified();
3067} 3071}
3068 3072
3069 3073
3070//this is a overwritten callbackmethods from the syncinterface 3074//this is a overwritten callbackmethods from the syncinterface
3071bool KABCore::syncExternal(KSyncManager* manager, QString resource) 3075bool KABCore::syncExternal(KSyncManager* manager, QString resource)
3072{ 3076{
3073 if ( resource == "phone" ) 3077 if ( resource == "phone" )
3074 return syncPhone(); 3078 return syncPhone();
3075 disableBR( true ); 3079 disableBR( true );
3080 if ( manager != syncManager )
3081 qDebug("KABCore::syncExternal:: ERROR! :: manager != syncManager ");
3076 QString mCurrentSyncDevice = manager->getCurrentSyncDevice(); 3082 QString mCurrentSyncDevice = manager->getCurrentSyncDevice();
3077 3083
3078 AddressBook abLocal( resource,"syncContact"); 3084 AddressBook abLocal( resource,"syncContact");
3079 bool syncOK = false; 3085 bool syncOK = false;
3080 if ( abLocal.load() ) { 3086 if ( abLocal.load() ) {
3081 qDebug("AB sharp loaded ,sync device %s",mCurrentSyncDevice.latin1()); 3087 qDebug("AB sharp loaded ,sync device %s",mCurrentSyncDevice.latin1());
3082 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 3088 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
3083 abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, false ); 3089 abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, false );
3084 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, syncManager->mSyncAlgoPrefs ); 3090 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, syncManager->mSyncAlgoPrefs );
3085 if ( syncOK ) { 3091 if ( syncOK ) {
3086 if ( syncManager->mWriteBackFile ) { 3092 if ( syncManager->mWriteBackFile ) {
3087 abLocal.removeSyncAddressees( false ); 3093 abLocal.removeSyncAddressees( false );
3088 abLocal.saveAB(); 3094 abLocal.saveAB();
3089 abLocal.postExternSync( mAddressBook,mCurrentSyncDevice, true ); 3095 abLocal.postExternSync( mAddressBook,mCurrentSyncDevice, true );
3090 } 3096 }
3091 } else 3097 } else
3092 message( i18n("Sync cancelled or failed.") ); 3098 message( i18n("Sync cancelled or failed.") );
3093 setModified(); 3099 setModified();
3094 } 3100 }
3095 abLocal.removeResources(); 3101 abLocal.removeResources();
3096 if ( syncOK ) 3102 if ( syncOK )
3097 mViewManager->refreshView(); 3103 mViewManager->refreshView();
3098 disableBR( false ); 3104 disableBR( false );
3099 return syncOK; 3105 return syncOK;
3100 3106
3101} 3107}
3102void KABCore::message( QString m ) 3108void KABCore::message( QString m )
3103{ 3109{
3104 topLevelWidget()->setCaption( m ); 3110 topLevelWidget()->setCaption( m );
3105 mMessageTimer->start( 15000, true ); 3111 mMessageTimer->start( 15000, true );
3106} 3112}
3107bool KABCore::syncPhone() 3113bool KABCore::syncPhone()
3108{ 3114{
3109 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); 3115 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice();
3110 QString fileName = getPhoneFile(); 3116 QString fileName = getPhoneFile();
3111 if ( !PhoneAccess::readFromPhone( fileName) ) { 3117 if ( !PhoneAccess::readFromPhone( fileName) ) {
3112 message(i18n("Phone access failed!")); 3118 message(i18n("Phone access failed!"));
3113 return false; 3119 return false;
3114 } 3120 }
3115 AddressBook abLocal( fileName,"syncContact"); 3121 AddressBook abLocal( fileName,"syncContact");
3116 bool syncOK = false; 3122 bool syncOK = false;
3117 { 3123 {
3118 abLocal.importFromFile( fileName ); 3124 abLocal.importFromFile( fileName );
3119 qDebug("AB phone loaded ,sync device %s",mCurrentSyncDevice.latin1()); 3125 qDebug("AB phone loaded ,sync device %s",mCurrentSyncDevice.latin1());
3120 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 3126 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
3121 abLocal.preparePhoneSync( mCurrentSyncDevice, true ); 3127 abLocal.preparePhoneSync( mCurrentSyncDevice, true );
3122 abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, true ); 3128 abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, true );
3123 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, syncManager->mSyncAlgoPrefs ); 3129 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, syncManager->mSyncAlgoPrefs );
3124 if ( syncOK ) { 3130 if ( syncOK ) {
3125 if ( syncManager->mWriteBackFile ) { 3131 if ( syncManager->mWriteBackFile ) {
3126 abLocal.removeSyncAddressees( true ); 3132 abLocal.removeSyncAddressees( true );
3127 abLocal.saveABphone( fileName ); 3133 abLocal.saveABphone( fileName );
3128 abLocal.findNewExtIds( fileName, mCurrentSyncDevice ); 3134 abLocal.findNewExtIds( fileName, mCurrentSyncDevice );
3129 //abLocal.preparePhoneSync( mCurrentSyncDevice, false ); 3135 //abLocal.preparePhoneSync( mCurrentSyncDevice, false );
3130 abLocal.postExternSync( mAddressBook,mCurrentSyncDevice, true ); 3136 abLocal.postExternSync( mAddressBook,mCurrentSyncDevice, true );
3131 } 3137 }
3132 } 3138 }
3133 setModified(); 3139 setModified();
3134 } 3140 }
3135 abLocal.removeResources(); 3141 abLocal.removeResources();
3136 if ( syncOK ) 3142 if ( syncOK )
3137 mViewManager->refreshView(); 3143 mViewManager->refreshView();
3138 return syncOK; 3144 return syncOK;
3139} 3145}
3140void KABCore::getFile( bool success ) 3146void KABCore::getFile( bool success )
3141{ 3147{
3142 if ( ! success ) { 3148 if ( ! success ) {
3143 message( i18n("Error receiving file. Nothing changed!") ); 3149 message( i18n("Error receiving file. Nothing changed!") );
3144 return; 3150 return;
3145 } 3151 }
3146 int count = mAddressBook->importFromFile( sentSyncFile() , false, true ); 3152 int count = mAddressBook->importFromFile( sentSyncFile() , false, true );
3147 if ( count ) 3153 if ( count )
3148 setModified( true ); 3154 setModified( true );
3149 message( i18n("Pi-Sync successful!") ); 3155 message( i18n("Pi-Sync successful!") );
3150 mViewManager->refreshView(); 3156 mViewManager->refreshView();
3151} 3157}
3152void KABCore::syncFileRequest() 3158void KABCore::syncFileRequest()
3153{ 3159{
3154 if ( KABPrefs::instance()->mPassiveSyncWithDesktop ) { 3160 if ( KABPrefs::instance()->mPassiveSyncWithDesktop ) {
3155 syncManager->slotSyncMenu( 999 ); 3161 syncManager->slotSyncMenu( 999 );
3156 } 3162 }
3157 mAddressBook->export2File( sentSyncFile() ); 3163 mAddressBook->export2File( sentSyncFile() );
3158} 3164}
3159QString KABCore::sentSyncFile() 3165QString KABCore::sentSyncFile()
3160{ 3166{
3161#ifdef DESKTOP_VERSION 3167#ifdef DESKTOP_VERSION
3162 return locateLocal( "tmp", "copysyncab.vcf" ); 3168 return locateLocal( "tmp", "copysyncab.vcf" );
3163#else 3169#else
3164 return QString( "/tmp/copysyncab.vcf" ); 3170 return QString( "/tmp/copysyncab.vcf" );
3165#endif 3171#endif
3166} 3172}
3167 3173
3168void KABCore::setCaptionBack() 3174void KABCore::setCaptionBack()
3169{ 3175{
3170 mMessageTimer->stop(); 3176 mMessageTimer->stop();
3171 topLevelWidget()->setCaption( i18n("KAddressbook/Pi") ); 3177 topLevelWidget()->setCaption( i18n("KAddressbook/Pi") );