-rw-r--r-- | kaddressbook/kabcore.cpp | 63 | ||||
-rw-r--r-- | kaddressbook/viewmanager.cpp | 9 | ||||
-rw-r--r-- | kaddressbook/viewmanager.h | 2 |
3 files changed, 47 insertions, 27 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index c6288fa..c5a36e2 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp | |||
@@ -2838,64 +2838,69 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo | |||
2838 | addresseeRSync.setUid("last-syncAddressee-"+mCurrentSyncName ); | 2838 | addresseeRSync.setUid("last-syncAddressee-"+mCurrentSyncName ); |
2839 | addresseeRSync.setRevision( mLastAddressbookSync ); | 2839 | addresseeRSync.setRevision( mLastAddressbookSync ); |
2840 | addresseeRSync.setCategories( i18n("SyncAddressee") ); | 2840 | addresseeRSync.setCategories( i18n("SyncAddressee") ); |
2841 | } | 2841 | } |
2842 | } | 2842 | } |
2843 | if ( addresseeLSync.revision() == mLastAddressbookSync ) { | 2843 | if ( addresseeLSync.revision() == mLastAddressbookSync ) { |
2844 | // qDebug("FULLDATE 2"); | 2844 | // qDebug("FULLDATE 2"); |
2845 | fullDateRange = true; | 2845 | fullDateRange = true; |
2846 | } | 2846 | } |
2847 | if ( ! fullDateRange ) { | 2847 | if ( ! fullDateRange ) { |
2848 | if ( addresseeLSync.revision() != addresseeRSync.revision() ) { | 2848 | if ( addresseeLSync.revision() != addresseeRSync.revision() ) { |
2849 | 2849 | ||
2850 | // qDebug("set fulldate to true %s %s" ,addresseeLSync->dtStart().toString().latin1(), addresseeRSync->dtStart().toString().latin1() ); | 2850 | // qDebug("set fulldate to true %s %s" ,addresseeLSync->dtStart().toString().latin1(), addresseeRSync->dtStart().toString().latin1() ); |
2851 | //qDebug("%d %d %d %d ", addresseeLSync->dtStart().time().second(), addresseeLSync->dtStart().time().msec() , addresseeRSync->dtStart().time().second(), addresseeRSync->dtStart().time().msec()); | 2851 | //qDebug("%d %d %d %d ", addresseeLSync->dtStart().time().second(), addresseeLSync->dtStart().time().msec() , addresseeRSync->dtStart().time().second(), addresseeRSync->dtStart().time().msec()); |
2852 | fullDateRange = true; | 2852 | fullDateRange = true; |
2853 | //qDebug("FULLDATE 3 %s %s", addresseeLSync.revision().toString().latin1() , addresseeRSync.revision().toString().latin1() ); | 2853 | //qDebug("FULLDATE 3 %s %s", addresseeLSync.revision().toString().latin1() , addresseeRSync.revision().toString().latin1() ); |
2854 | } | 2854 | } |
2855 | } | 2855 | } |
2856 | // fullDateRange = true; // debug only! | 2856 | // fullDateRange = true; // debug only! |
2857 | if ( fullDateRange ) | 2857 | if ( fullDateRange ) |
2858 | mLastAddressbookSync = QDateTime::currentDateTime().addDays( -100*365); | 2858 | mLastAddressbookSync = QDateTime::currentDateTime().addDays( -100*365); |
2859 | else | 2859 | else |
2860 | mLastAddressbookSync = addresseeLSync.revision(); | 2860 | mLastAddressbookSync = addresseeLSync.revision(); |
2861 | // for resyncing if own file has changed | 2861 | // for resyncing if own file has changed |
2862 | // PENDING fixme later when implemented | 2862 | // PENDING fixme later when implemented |
2863 | #if 0 | 2863 | #if 0 |
2864 | if ( mCurrentSyncDevice == "deleteaftersync" ) { | 2864 | if ( mCurrentSyncDevice == "deleteaftersync" ) { |
2865 | mLastAddressbookSync = loadedFileVersion; | 2865 | mLastAddressbookSync = loadedFileVersion; |
2866 | qDebug("setting mLastAddressbookSync "); | 2866 | qDebug("setting mLastAddressbookSync "); |
2867 | } | 2867 | } |
2868 | #endif | 2868 | #endif |
2869 | 2869 | ||
2870 | |||
2871 | // ********** setting filters **************** | ||
2872 | Filter filterIN = mViewManager->getFilterByName( syncManager->mFilterInAB ); | ||
2873 | Filter filterOUT = mViewManager->getFilterByName( syncManager->mFilterOutAB ); | ||
2874 | |||
2870 | //qDebug("*************************** "); | 2875 | //qDebug("*************************** "); |
2871 | // qDebug("mLastAddressbookSync %s ",mLastAddressbookSync.toString().latin1() ); | 2876 | // qDebug("mLastAddressbookSync %s ",mLastAddressbookSync.toString().latin1() ); |
2872 | QStringList er = remote->uidList(); | 2877 | QStringList er = remote->uidList(); |
2873 | Addressee inR ;//= er.first(); | 2878 | Addressee inR ;//= er.first(); |
2874 | Addressee inL; | 2879 | Addressee inL; |
2875 | 2880 | ||
2876 | syncManager->showProgressBar(0, i18n("Syncing - close to abort!"), er.count()); | 2881 | syncManager->showProgressBar(0, i18n("Syncing - close to abort!"), er.count()); |
2877 | 2882 | ||
2878 | int modulo = (er.count()/10)+1; | 2883 | int modulo = (er.count()/10)+1; |
2879 | int incCounter = 0; | 2884 | int incCounter = 0; |
2880 | while ( incCounter < er.count()) { | 2885 | while ( incCounter < er.count()) { |
2881 | if (syncManager->isProgressBarCanceled()) | 2886 | if (syncManager->isProgressBarCanceled()) |
2882 | return false; | 2887 | return false; |
2883 | if ( incCounter % modulo == 0 ) | 2888 | if ( incCounter % modulo == 0 ) |
2884 | syncManager->showProgressBar(incCounter); | 2889 | syncManager->showProgressBar(incCounter); |
2885 | 2890 | ||
2886 | uid = er[ incCounter ]; | 2891 | uid = er[ incCounter ]; |
2887 | bool skipIncidence = false; | 2892 | bool skipIncidence = false; |
2888 | if ( uid.left(19) == QString("last-syncAddressee-") ) | 2893 | if ( uid.left(19) == QString("last-syncAddressee-") ) |
2889 | skipIncidence = true; | 2894 | skipIncidence = true; |
2890 | QString idS,OidS; | 2895 | QString idS,OidS; |
2891 | qApp->processEvents(); | 2896 | qApp->processEvents(); |
2892 | if ( !skipIncidence ) { | 2897 | if ( !skipIncidence ) { |
2893 | inL = local->findByUid( uid ); | 2898 | inL = local->findByUid( uid ); |
2894 | inR = remote->findByUid( uid ); | 2899 | inR = remote->findByUid( uid ); |
2895 | //inL.setResource( 0 ); | 2900 | //inL.setResource( 0 ); |
2896 | //inR.setResource( 0 ); | 2901 | //inR.setResource( 0 ); |
2897 | if ( !inL.isEmpty() ) { // maybe conflict - same uid in both calendars | 2902 | if ( !inL.isEmpty() ) { // maybe conflict - same uid in both calendars |
2898 | if ( !inL.resource() || inL.resource()->includeInSync() ) { | 2903 | if ( !inL.resource() || inL.resource()->includeInSync() ) { |
2899 | if ( (take = takeAddressee( &inL, &inR, mode, fullDateRange )) ) { | 2904 | if ( (take = takeAddressee( &inL, &inR, mode, fullDateRange )) ) { |
2900 | //qDebug("take %d %s ", take, inL.summary().latin1()); | 2905 | //qDebug("take %d %s ", take, inL.summary().latin1()); |
2901 | if ( take == 3 ) | 2906 | if ( take == 3 ) |
@@ -2917,114 +2922,118 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo | |||
2917 | inR.setOriginalExternalUID( OidS ); | 2922 | inR.setOriginalExternalUID( OidS ); |
2918 | inR.setExternalUID( idS ); | 2923 | inR.setExternalUID( idS ); |
2919 | if ( syncManager->syncWithDesktop() ) { | 2924 | if ( syncManager->syncWithDesktop() ) { |
2920 | inR.setIDStr("changed" ); | 2925 | inR.setIDStr("changed" ); |
2921 | } | 2926 | } |
2922 | //inR.insertCustom( "KADDRESSBOOK", "X-KDESYNC","changed" ); | 2927 | //inR.insertCustom( "KADDRESSBOOK", "X-KDESYNC","changed" ); |
2923 | } else { | 2928 | } else { |
2924 | inR.setIDStr( idS ); | 2929 | inR.setIDStr( idS ); |
2925 | } | 2930 | } |
2926 | inR.setResource( 0 ); | 2931 | inR.setResource( 0 ); |
2927 | remote->insertAddressee( inR , false); | 2932 | remote->insertAddressee( inR , false); |
2928 | ++changedRemote; | 2933 | ++changedRemote; |
2929 | } else { // take == 2 take remote ********************** | 2934 | } else { // take == 2 take remote ********************** |
2930 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 2935 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
2931 | if ( inR.revision().date().year() < 2004 ) | 2936 | if ( inR.revision().date().year() < 2004 ) |
2932 | inR.setRevision( modifiedCalendar ); | 2937 | inR.setRevision( modifiedCalendar ); |
2933 | } | 2938 | } |
2934 | idS = inL.IDStr(); | 2939 | idS = inL.IDStr(); |
2935 | local->removeAddressee( inL ); | 2940 | local->removeAddressee( inL ); |
2936 | inL = inR; | 2941 | inL = inR; |
2937 | inL.setIDStr( idS ); | 2942 | inL.setIDStr( idS ); |
2938 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 2943 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
2939 | inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) ); | 2944 | inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) ); |
2940 | inL.setID( mCurrentSyncDevice, inR.getID(mCurrentSyncDevice) ); | 2945 | inL.setID( mCurrentSyncDevice, inR.getID(mCurrentSyncDevice) ); |
2941 | } | 2946 | } |
2942 | inL.setResource( 0 ); | 2947 | inL.setResource( 0 ); |
2943 | local->insertAddressee( inL , false ); | 2948 | local->insertAddressee( inL , false ); |
2944 | ++changedLocal; | 2949 | ++changedLocal; |
2945 | } | 2950 | } |
2946 | } | 2951 | } |
2947 | } | 2952 | } |
2948 | } else { // no conflict ********** add or delete remote | 2953 | } else { // no conflict ********** add or delete remote |
2949 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 2954 | if ( filterIN.name().isEmpty() || filterIN.filterAddressee( inR ) ) { |
2950 | QString des = addresseeLSync.note(); | 2955 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
2951 | if ( des.find( inR.getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it | 2956 | QString des = addresseeLSync.note(); |
2952 | inR.setTempSyncStat( SYNC_TEMPSTATE_DELETE ); | 2957 | if ( des.find( inR.getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it |
2953 | remote->insertAddressee( inR, false ); | 2958 | inR.setTempSyncStat( SYNC_TEMPSTATE_DELETE ); |
2954 | ++deletedAddresseeR; | 2959 | remote->insertAddressee( inR, false ); |
2955 | } else { | 2960 | ++deletedAddresseeR; |
2956 | inR.setRevision( modifiedCalendar ); | 2961 | } else { |
2957 | remote->insertAddressee( inR, false ); | 2962 | inR.setRevision( modifiedCalendar ); |
2958 | inL = inR; | 2963 | remote->insertAddressee( inR, false ); |
2959 | inL.setIDStr( ":" ); | 2964 | inL = inR; |
2960 | inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) ); | 2965 | inL.setIDStr( ":" ); |
2961 | inL.setID( mCurrentSyncDevice, inR.getID(mCurrentSyncDevice) ); | 2966 | inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) ); |
2962 | inL.setResource( 0 ); | 2967 | inL.setID( mCurrentSyncDevice, inR.getID(mCurrentSyncDevice) ); |
2963 | local->insertAddressee( inL , false); | 2968 | inL.setResource( 0 ); |
2964 | ++addedAddressee; | 2969 | local->insertAddressee( inL , false); |
2965 | } | 2970 | ++addedAddressee; |
2966 | } else { | 2971 | } |
2967 | if ( inR.revision() > mLastAddressbookSync || mode == 5 ) { | ||
2968 | inR.setRevision( modifiedCalendar ); | ||
2969 | remote->insertAddressee( inR, false ); | ||
2970 | inR.setResource( 0 ); | ||
2971 | local->insertAddressee( inR, false ); | ||
2972 | ++addedAddressee; | ||
2973 | } else { | 2972 | } else { |
2974 | // pending checkExternSyncAddressee(addresseeRSyncSharp, inR); | 2973 | if ( inR.revision() > mLastAddressbookSync || mode == 5 ) { |
2975 | remote->removeAddressee( inR ); | 2974 | inR.setRevision( modifiedCalendar ); |
2976 | ++deletedAddresseeR; | 2975 | remote->insertAddressee( inR, false ); |
2976 | inR.setResource( 0 ); | ||
2977 | local->insertAddressee( inR, false ); | ||
2978 | ++addedAddressee; | ||
2979 | } else { | ||
2980 | // pending checkExternSyncAddressee(addresseeRSyncSharp, inR); | ||
2981 | remote->removeAddressee( inR ); | ||
2982 | ++deletedAddresseeR; | ||
2983 | } | ||
2977 | } | 2984 | } |
2978 | } | 2985 | } |
2979 | } | 2986 | } |
2980 | } | 2987 | } |
2981 | ++incCounter; | 2988 | ++incCounter; |
2982 | } | 2989 | } |
2983 | er.clear(); | 2990 | er.clear(); |
2984 | QStringList el = local->uidList(); | 2991 | QStringList el = local->uidList(); |
2985 | modulo = (el.count()/10)+1; | 2992 | modulo = (el.count()/10)+1; |
2986 | 2993 | ||
2987 | syncManager->showProgressBar(0, i18n("Add / remove addressees"), el.count()); | 2994 | syncManager->showProgressBar(0, i18n("Add / remove addressees"), el.count()); |
2988 | incCounter = 0; | 2995 | incCounter = 0; |
2989 | while ( incCounter < el.count()) { | 2996 | while ( incCounter < el.count()) { |
2990 | qApp->processEvents(); | 2997 | qApp->processEvents(); |
2991 | if (syncManager->isProgressBarCanceled()) | 2998 | if (syncManager->isProgressBarCanceled()) |
2992 | return false; | 2999 | return false; |
2993 | if ( incCounter % modulo == 0 ) | 3000 | if ( incCounter % modulo == 0 ) |
2994 | syncManager->showProgressBar(incCounter); | 3001 | syncManager->showProgressBar(incCounter); |
2995 | uid = el[ incCounter ]; | 3002 | uid = el[ incCounter ]; |
2996 | bool skipIncidence = false; | 3003 | bool skipIncidence = false; |
2997 | if ( uid.left(19) == QString("last-syncAddressee-") ) | 3004 | if ( uid.left(19) == QString("last-syncAddressee-") ) |
2998 | skipIncidence = true; | 3005 | skipIncidence = true; |
3006 | if ( !filterOUT.name().isEmpty() && ! filterOUT.filterAddressee( inL ) ) | ||
3007 | skipIncidence = true; | ||
2999 | if ( !skipIncidence ) { | 3008 | if ( !skipIncidence ) { |
3000 | inL = local->findByUid( uid ); | 3009 | inL = local->findByUid( uid ); |
3001 | if ( !inL.resource() || inL.resource()->includeInSync() ) { | 3010 | if ( !inL.resource() || inL.resource()->includeInSync() ) { |
3002 | inR = remote->findByUid( uid ); | 3011 | inR = remote->findByUid( uid ); |
3003 | if ( inR.isEmpty() ) { // no conflict ********** add or delete local | 3012 | if ( inR.isEmpty() ) { // no conflict ********** add or delete local |
3004 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 3013 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
3005 | if ( !inL.getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { | 3014 | if ( !inL.getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { |
3006 | // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); | 3015 | // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); |
3007 | local->removeAddressee( inL ); | 3016 | local->removeAddressee( inL ); |
3008 | ++deletedAddresseeL; | 3017 | ++deletedAddresseeL; |
3009 | } else { | 3018 | } else { |
3010 | if ( ! syncManager->mWriteBackExistingOnly ) { | 3019 | if ( ! syncManager->mWriteBackExistingOnly ) { |
3011 | inL.removeID(mCurrentSyncDevice ); | 3020 | inL.removeID(mCurrentSyncDevice ); |
3012 | ++addedAddresseeR; | 3021 | ++addedAddresseeR; |
3013 | inL.setRevision( modifiedCalendar ); | 3022 | inL.setRevision( modifiedCalendar ); |
3014 | local->insertAddressee( inL, false ); | 3023 | local->insertAddressee( inL, false ); |
3015 | inR = inL; | 3024 | inR = inL; |
3016 | inR.setTempSyncStat( SYNC_TEMPSTATE_ADDED_EXTERNAL ); | 3025 | inR.setTempSyncStat( SYNC_TEMPSTATE_ADDED_EXTERNAL ); |
3017 | inR.setResource( 0 ); | 3026 | inR.setResource( 0 ); |
3018 | remote->insertAddressee( inR, false ); | 3027 | remote->insertAddressee( inR, false ); |
3019 | } | 3028 | } |
3020 | } | 3029 | } |
3021 | } else { | 3030 | } else { |
3022 | if ( inL.revision() < mLastAddressbookSync && mode != 4 ) { | 3031 | if ( inL.revision() < mLastAddressbookSync && mode != 4 ) { |
3023 | //qDebug("data %s ", inL.revision().toString().latin1()); | 3032 | //qDebug("data %s ", inL.revision().toString().latin1()); |
3024 | // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); | 3033 | // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); |
3025 | local->removeAddressee( inL ); | 3034 | local->removeAddressee( inL ); |
3026 | ++deletedAddresseeL; | 3035 | ++deletedAddresseeL; |
3027 | } else { | 3036 | } else { |
3028 | if ( ! syncManager->mWriteBackExistingOnly ) { | 3037 | if ( ! syncManager->mWriteBackExistingOnly ) { |
3029 | ++addedAddresseeR; | 3038 | ++addedAddresseeR; |
3030 | inL.setRevision( modifiedCalendar ); | 3039 | inL.setRevision( modifiedCalendar ); |
diff --git a/kaddressbook/viewmanager.cpp b/kaddressbook/viewmanager.cpp index 59bddd9..9c3a641 100644 --- a/kaddressbook/viewmanager.cpp +++ b/kaddressbook/viewmanager.cpp | |||
@@ -589,64 +589,73 @@ void ViewManager::setActiveFilter( int index ) | |||
589 | } | 589 | } |
590 | 590 | ||
591 | void ViewManager::configureFilters() | 591 | void ViewManager::configureFilters() |
592 | { | 592 | { |
593 | FilterDialog dlg( this ); | 593 | FilterDialog dlg( this ); |
594 | 594 | ||
595 | dlg.setFilters( mFilterList ); | 595 | dlg.setFilters( mFilterList ); |
596 | 596 | ||
597 | if ( dlg.exec() ) | 597 | if ( dlg.exec() ) |
598 | mFilterList = dlg.filters(); | 598 | mFilterList = dlg.filters(); |
599 | 599 | ||
600 | uint pos = mActionSelectFilter->currentItem(); | 600 | uint pos = mActionSelectFilter->currentItem(); |
601 | mActionSelectFilter->setItems( filterNames() ); | 601 | mActionSelectFilter->setItems( filterNames() ); |
602 | mActionSelectFilter->setCurrentItem( pos ); | 602 | mActionSelectFilter->setCurrentItem( pos ); |
603 | setActiveFilter( pos ); | 603 | setActiveFilter( pos ); |
604 | int cw = 150; | 604 | int cw = 150; |
605 | if (QApplication::desktop()->width() == 480 ) | 605 | if (QApplication::desktop()->width() == 480 ) |
606 | cw = 0; | 606 | cw = 0; |
607 | mActionSelectFilter->setComboWidth( cw ); | 607 | mActionSelectFilter->setComboWidth( cw ); |
608 | saveSettings(); | 608 | saveSettings(); |
609 | } | 609 | } |
610 | 610 | ||
611 | QStringList ViewManager::filterNames() const | 611 | QStringList ViewManager::filterNames() const |
612 | { | 612 | { |
613 | QStringList names( i18n( "No Filter" ) ); | 613 | QStringList names( i18n( "No Filter" ) ); |
614 | 614 | ||
615 | Filter::List::ConstIterator it; | 615 | Filter::List::ConstIterator it; |
616 | for ( it = mFilterList.begin(); it != mFilterList.end(); ++it ) | 616 | for ( it = mFilterList.begin(); it != mFilterList.end(); ++it ) |
617 | names.append( (*it).name() ); | 617 | names.append( (*it).name() ); |
618 | 618 | ||
619 | return names; | 619 | return names; |
620 | } | 620 | } |
621 | Filter ViewManager::getFilterByName( const QString &name ) const | ||
622 | { | ||
623 | Filter::List::ConstIterator it; | ||
624 | for ( it = mFilterList.begin(); it != mFilterList.end(); ++it ) | ||
625 | if ( name == (*it).name() ) | ||
626 | return (*it); | ||
627 | |||
628 | return Filter(); | ||
629 | } | ||
621 | 630 | ||
622 | int ViewManager::filterPosition( const QString &name ) const | 631 | int ViewManager::filterPosition( const QString &name ) const |
623 | { | 632 | { |
624 | int pos = 0; | 633 | int pos = 0; |
625 | 634 | ||
626 | Filter::List::ConstIterator it; | 635 | Filter::List::ConstIterator it; |
627 | for ( it = mFilterList.begin(); it != mFilterList.end(); ++it, ++pos ) | 636 | for ( it = mFilterList.begin(); it != mFilterList.end(); ++it, ++pos ) |
628 | if ( name == (*it).name() ) | 637 | if ( name == (*it).name() ) |
629 | return pos + 1; | 638 | return pos + 1; |
630 | 639 | ||
631 | return 0; | 640 | return 0; |
632 | } | 641 | } |
633 | 642 | ||
634 | void ViewManager::initActions() | 643 | void ViewManager::initActions() |
635 | { | 644 | { |
636 | //US <ActionList name="view_loadedviews"/> | 645 | //US <ActionList name="view_loadedviews"/> |
637 | //US <Separator/> | 646 | //US <Separator/> |
638 | 647 | ||
639 | #ifdef KAB_EMBEDDED | 648 | #ifdef KAB_EMBEDDED |
640 | QPopupMenu *viewmenu = (QPopupMenu*)mCore->getViewMenu(); | 649 | QPopupMenu *viewmenu = (QPopupMenu*)mCore->getViewMenu(); |
641 | QPopupMenu *settingsmenu = (QPopupMenu*)mCore->getSettingsMenu(); | 650 | QPopupMenu *settingsmenu = (QPopupMenu*)mCore->getSettingsMenu(); |
642 | QPopupMenu *filtermenu = (QPopupMenu*)mCore->getFilterMenu(); | 651 | QPopupMenu *filtermenu = (QPopupMenu*)mCore->getFilterMenu(); |
643 | #endif //KAB_EMBEDDED | 652 | #endif //KAB_EMBEDDED |
644 | 653 | ||
645 | mActionSelectView = new KSelectAction( i18n( "Select View" ), 0, mCore->actionCollection(), "select_view" ); | 654 | mActionSelectView = new KSelectAction( i18n( "Select View" ), 0, mCore->actionCollection(), "select_view" ); |
646 | #if KDE_VERSION >= 309 | 655 | #if KDE_VERSION >= 309 |
647 | mActionSelectView->setMenuAccelsEnabled( false ); | 656 | mActionSelectView->setMenuAccelsEnabled( false ); |
648 | #endif | 657 | #endif |
649 | connect( mActionSelectView, SIGNAL( activated( const QString& ) ), | 658 | connect( mActionSelectView, SIGNAL( activated( const QString& ) ), |
650 | SLOT( setActiveView( const QString& ) ) ); | 659 | SLOT( setActiveView( const QString& ) ) ); |
651 | 660 | ||
652 | 661 | ||
diff --git a/kaddressbook/viewmanager.h b/kaddressbook/viewmanager.h index a03a83f..272e1b0 100644 --- a/kaddressbook/viewmanager.h +++ b/kaddressbook/viewmanager.h | |||
@@ -1,93 +1,95 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KAddressBook. | 2 | This file is part of KAddressBook. |
3 | Copyright (c) 2002 Mike Pilone <mpilone@slac.com> | 3 | Copyright (c) 2002 Mike Pilone <mpilone@slac.com> |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify | 5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or | 7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | This program is distributed in the hope that it will be useful, | 10 | This program is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 | 18 | ||
19 | As a special exception, permission is given to link this program | 19 | As a special exception, permission is given to link this program |
20 | with any edition of Qt, and distribute the resulting executable, | 20 | with any edition of Qt, and distribute the resulting executable, |
21 | without including the source code for Qt in the source distribution. | 21 | without including the source code for Qt in the source distribution. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #ifndef VIEWMANAGER_H | 24 | #ifndef VIEWMANAGER_H |
25 | #define VIEWMANAGER_H | 25 | #define VIEWMANAGER_H |
26 | 26 | ||
27 | #include <qwidget.h> | 27 | #include <qwidget.h> |
28 | #include <qstringlist.h> | 28 | #include <qstringlist.h> |
29 | #include <kaddressbookview.h> | 29 | #include <kaddressbookview.h> |
30 | #include <qdict.h> | 30 | #include <qdict.h> |
31 | #include "filter.h" | ||
31 | 32 | ||
32 | class KAction; | 33 | class KAction; |
33 | class KSelectAction; | 34 | class KSelectAction; |
34 | 35 | ||
35 | class KABCore; | 36 | class KABCore; |
36 | class QWidgetStack; | 37 | class QWidgetStack; |
37 | class QDropEvent; | 38 | class QDropEvent; |
38 | 39 | ||
39 | namespace KABC { class AddressBook; } | 40 | namespace KABC { class AddressBook; } |
40 | 41 | ||
41 | /** | 42 | /** |
42 | The view manager manages the views and everything related to them. The | 43 | The view manager manages the views and everything related to them. The |
43 | manager will load the views at startup and display a view when told to | 44 | manager will load the views at startup and display a view when told to |
44 | make one active. | 45 | make one active. |
45 | 46 | ||
46 | The view manager will also create and manage all dialogs directly related to | 47 | The view manager will also create and manage all dialogs directly related to |
47 | views (ie: AddView, ConfigureView, DeleteView, etc). | 48 | views (ie: AddView, ConfigureView, DeleteView, etc). |
48 | */ | 49 | */ |
49 | class ViewManager : public QWidget | 50 | class ViewManager : public QWidget |
50 | { | 51 | { |
51 | Q_OBJECT | 52 | Q_OBJECT |
52 | public: | 53 | public: |
53 | ViewManager( KABCore *core, QWidget *parent, const char *name = 0 ); | 54 | ViewManager( KABCore *core, QWidget *parent, const char *name = 0 ); |
54 | ~ViewManager(); | 55 | ~ViewManager(); |
55 | 56 | ||
56 | void restoreSettings(); | 57 | void restoreSettings(); |
57 | void saveSettings(); | 58 | void saveSettings(); |
58 | void doSearch( const QString& s ,KABC::Field *field ); | 59 | void doSearch( const QString& s ,KABC::Field *field ); |
59 | 60 | ||
60 | void unloadViews(); | 61 | void unloadViews(); |
61 | KSelectAction * getFilterAction() { return mActionSelectFilter; } | 62 | KSelectAction * getFilterAction() { return mActionSelectFilter; } |
63 | Filter getFilterByName( const QString &name ) const; | ||
62 | 64 | ||
63 | QStringList selectedUids() const; | 65 | QStringList selectedUids() const; |
64 | QStringList selectedEmails() const; | 66 | QStringList selectedEmails() const; |
65 | KABC::Addressee::List selectedAddressees() const; | 67 | KABC::Addressee::List selectedAddressees() const; |
66 | void setListSelected(QStringList); | 68 | void setListSelected(QStringList); |
67 | void setFocusAV(); | 69 | void setFocusAV(); |
68 | 70 | ||
69 | public slots: | 71 | public slots: |
70 | void scrollUP(); | 72 | void scrollUP(); |
71 | void scrollDOWN(); | 73 | void scrollDOWN(); |
72 | 74 | ||
73 | //US void setSelected( const QString &uid = QString::null, bool selected = true ); | 75 | //US void setSelected( const QString &uid = QString::null, bool selected = true ); |
74 | void setSelected( const QString &uid, bool); | 76 | void setSelected( const QString &uid, bool); |
75 | //US added another method with no parameter, since my moc compiler does not support default parameters. | 77 | //US added another method with no parameter, since my moc compiler does not support default parameters. |
76 | void setSelected(); | 78 | void setSelected(); |
77 | 79 | ||
78 | 80 | ||
79 | 81 | ||
80 | //US added another method with no parameter, since my moc compiler does not support default parameters. | 82 | //US added another method with no parameter, since my moc compiler does not support default parameters. |
81 | void refreshView(); | 83 | void refreshView(); |
82 | void refreshView( const QString &uid); | 84 | void refreshView( const QString &uid); |
83 | 85 | ||
84 | void editView(); | 86 | void editView(); |
85 | void deleteView(); | 87 | void deleteView(); |
86 | void addView(); | 88 | void addView(); |
87 | 89 | ||
88 | protected slots: | 90 | protected slots: |
89 | /** | 91 | /** |
90 | Called whenever the user drops something in the active view. | 92 | Called whenever the user drops something in the active view. |
91 | This method will try to decode what was dropped, and if it was | 93 | This method will try to decode what was dropped, and if it was |
92 | a valid addressee, add it to the addressbook. | 94 | a valid addressee, add it to the addressbook. |
93 | */ | 95 | */ |