author | zautrix <zautrix> | 2004-10-26 20:55:30 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-10-26 20:55:30 (UTC) |
commit | 13e996beddabc5e88f4f2fe49b2ce6cb8408eb30 (patch) (unidiff) | |
tree | 77395039348f3af1b5d1e1673f5638a7f34c0e99 | |
parent | 8b111ae30fc51a4a580b8d485bef8ad28b0dde84 (diff) | |
download | kdepimpi-13e996beddabc5e88f4f2fe49b2ce6cb8408eb30.zip kdepimpi-13e996beddabc5e88f4f2fe49b2ce6cb8408eb30.tar.gz kdepimpi-13e996beddabc5e88f4f2fe49b2ce6cb8408eb30.tar.bz2 |
added removeSyncInfo to KSyncInterface class
-rw-r--r-- | kaddressbook/kabcore.cpp | 5 | ||||
-rw-r--r-- | kaddressbook/kabcore.h | 1 | ||||
-rw-r--r-- | korganizer/calendarview.cpp | 6 | ||||
-rw-r--r-- | korganizer/calendarview.h | 1 | ||||
-rw-r--r-- | libkdepim/ksyncmanager.h | 1 | ||||
-rw-r--r-- | pwmanager/pwmanager/pwm.cpp | 6 | ||||
-rw-r--r-- | pwmanager/pwmanager/pwm.h | 3 | ||||
-rw-r--r-- | pwmanager/pwmanager/pwmdoc.cpp | 5 | ||||
-rw-r--r-- | pwmanager/pwmanager/pwmdoc.h | 1 |
9 files changed, 27 insertions, 2 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 2a3334e..efae874 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp | |||
@@ -2621,291 +2621,296 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo | |||
2621 | inL = inR; | 2621 | inL = inR; |
2622 | inL.setIDStr( idS ); | 2622 | inL.setIDStr( idS ); |
2623 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 2623 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
2624 | inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) ); | 2624 | inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) ); |
2625 | inL.setID( mCurrentSyncDevice, inR.getID(mCurrentSyncDevice) ); | 2625 | inL.setID( mCurrentSyncDevice, inR.getID(mCurrentSyncDevice) ); |
2626 | } | 2626 | } |
2627 | inL.setResource( 0 ); | 2627 | inL.setResource( 0 ); |
2628 | local->insertAddressee( inL , false ); | 2628 | local->insertAddressee( inL , false ); |
2629 | ++changedLocal; | 2629 | ++changedLocal; |
2630 | } | 2630 | } |
2631 | } | 2631 | } |
2632 | } | 2632 | } |
2633 | } else { // no conflict | 2633 | } else { // no conflict |
2634 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 2634 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
2635 | QString des = addresseeLSync.note(); | 2635 | QString des = addresseeLSync.note(); |
2636 | if ( des.find( inR.getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it | 2636 | if ( des.find( inR.getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it |
2637 | inR.setTempSyncStat( SYNC_TEMPSTATE_DELETE ); | 2637 | inR.setTempSyncStat( SYNC_TEMPSTATE_DELETE ); |
2638 | remote->insertAddressee( inR, false ); | 2638 | remote->insertAddressee( inR, false ); |
2639 | ++deletedAddresseeR; | 2639 | ++deletedAddresseeR; |
2640 | } else { | 2640 | } else { |
2641 | inR.setRevision( modifiedCalendar ); | 2641 | inR.setRevision( modifiedCalendar ); |
2642 | remote->insertAddressee( inR, false ); | 2642 | remote->insertAddressee( inR, false ); |
2643 | inL = inR; | 2643 | inL = inR; |
2644 | inL.setResource( 0 ); | 2644 | inL.setResource( 0 ); |
2645 | local->insertAddressee( inL , false); | 2645 | local->insertAddressee( inL , false); |
2646 | ++addedAddressee; | 2646 | ++addedAddressee; |
2647 | } | 2647 | } |
2648 | } else { | 2648 | } else { |
2649 | if ( inR.revision() > mLastAddressbookSync || mode == 5 ) { | 2649 | if ( inR.revision() > mLastAddressbookSync || mode == 5 ) { |
2650 | inR.setRevision( modifiedCalendar ); | 2650 | inR.setRevision( modifiedCalendar ); |
2651 | remote->insertAddressee( inR, false ); | 2651 | remote->insertAddressee( inR, false ); |
2652 | inR.setResource( 0 ); | 2652 | inR.setResource( 0 ); |
2653 | local->insertAddressee( inR, false ); | 2653 | local->insertAddressee( inR, false ); |
2654 | ++addedAddressee; | 2654 | ++addedAddressee; |
2655 | } else { | 2655 | } else { |
2656 | // pending checkExternSyncAddressee(addresseeRSyncSharp, inR); | 2656 | // pending checkExternSyncAddressee(addresseeRSyncSharp, inR); |
2657 | remote->removeAddressee( inR ); | 2657 | remote->removeAddressee( inR ); |
2658 | ++deletedAddresseeR; | 2658 | ++deletedAddresseeR; |
2659 | } | 2659 | } |
2660 | } | 2660 | } |
2661 | } | 2661 | } |
2662 | } | 2662 | } |
2663 | ++incCounter; | 2663 | ++incCounter; |
2664 | } | 2664 | } |
2665 | er.clear(); | 2665 | er.clear(); |
2666 | QStringList el = local->uidList(); | 2666 | QStringList el = local->uidList(); |
2667 | modulo = (el.count()/10)+1; | 2667 | modulo = (el.count()/10)+1; |
2668 | 2668 | ||
2669 | syncManager->showProgressBar(0, i18n("Add / remove addressees"), el.count()); | 2669 | syncManager->showProgressBar(0, i18n("Add / remove addressees"), el.count()); |
2670 | incCounter = 0; | 2670 | incCounter = 0; |
2671 | while ( incCounter < el.count()) { | 2671 | while ( incCounter < el.count()) { |
2672 | qApp->processEvents(); | 2672 | qApp->processEvents(); |
2673 | if (syncManager->isProgressBarCanceled()) | 2673 | if (syncManager->isProgressBarCanceled()) |
2674 | return false; | 2674 | return false; |
2675 | if ( incCounter % modulo == 0 ) | 2675 | if ( incCounter % modulo == 0 ) |
2676 | syncManager->showProgressBar(incCounter); | 2676 | syncManager->showProgressBar(incCounter); |
2677 | uid = el[ incCounter ]; | 2677 | uid = el[ incCounter ]; |
2678 | bool skipIncidence = false; | 2678 | bool skipIncidence = false; |
2679 | if ( uid.left(19) == QString("last-syncAddressee-") ) | 2679 | if ( uid.left(19) == QString("last-syncAddressee-") ) |
2680 | skipIncidence = true; | 2680 | skipIncidence = true; |
2681 | if ( !skipIncidence ) { | 2681 | if ( !skipIncidence ) { |
2682 | inL = local->findByUid( uid ); | 2682 | inL = local->findByUid( uid ); |
2683 | if ( !inL.resource() || inL.resource()->includeInSync() ) { | 2683 | if ( !inL.resource() || inL.resource()->includeInSync() ) { |
2684 | inR = remote->findByUid( uid ); | 2684 | inR = remote->findByUid( uid ); |
2685 | if ( inR.isEmpty() ) { | 2685 | if ( inR.isEmpty() ) { |
2686 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 2686 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
2687 | if ( !inL.getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { | 2687 | if ( !inL.getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { |
2688 | // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); | 2688 | // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); |
2689 | local->removeAddressee( inL ); | 2689 | local->removeAddressee( inL ); |
2690 | ++deletedAddresseeL; | 2690 | ++deletedAddresseeL; |
2691 | } else { | 2691 | } else { |
2692 | if ( ! syncManager->mWriteBackExistingOnly ) { | 2692 | if ( ! syncManager->mWriteBackExistingOnly ) { |
2693 | inL.removeID(mCurrentSyncDevice ); | 2693 | inL.removeID(mCurrentSyncDevice ); |
2694 | ++addedAddresseeR; | 2694 | ++addedAddresseeR; |
2695 | inL.setRevision( modifiedCalendar ); | 2695 | inL.setRevision( modifiedCalendar ); |
2696 | local->insertAddressee( inL, false ); | 2696 | local->insertAddressee( inL, false ); |
2697 | inR = inL; | 2697 | inR = inL; |
2698 | inR.setTempSyncStat( SYNC_TEMPSTATE_ADDED_EXTERNAL ); | 2698 | inR.setTempSyncStat( SYNC_TEMPSTATE_ADDED_EXTERNAL ); |
2699 | inR.setResource( 0 ); | 2699 | inR.setResource( 0 ); |
2700 | remote->insertAddressee( inR, false ); | 2700 | remote->insertAddressee( inR, false ); |
2701 | } | 2701 | } |
2702 | } | 2702 | } |
2703 | } else { | 2703 | } else { |
2704 | if ( inL.revision() < mLastAddressbookSync && mode != 4 ) { | 2704 | if ( inL.revision() < mLastAddressbookSync && mode != 4 ) { |
2705 | // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); | 2705 | // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); |
2706 | local->removeAddressee( inL ); | 2706 | local->removeAddressee( inL ); |
2707 | ++deletedAddresseeL; | 2707 | ++deletedAddresseeL; |
2708 | } else { | 2708 | } else { |
2709 | if ( ! syncManager->mWriteBackExistingOnly ) { | 2709 | if ( ! syncManager->mWriteBackExistingOnly ) { |
2710 | ++addedAddresseeR; | 2710 | ++addedAddresseeR; |
2711 | inL.setRevision( modifiedCalendar ); | 2711 | inL.setRevision( modifiedCalendar ); |
2712 | local->insertAddressee( inL, false ); | 2712 | local->insertAddressee( inL, false ); |
2713 | inR = inL; | 2713 | inR = inL; |
2714 | inR.setResource( 0 ); | 2714 | inR.setResource( 0 ); |
2715 | remote->insertAddressee( inR, false ); | 2715 | remote->insertAddressee( inR, false ); |
2716 | } | 2716 | } |
2717 | } | 2717 | } |
2718 | } | 2718 | } |
2719 | } | 2719 | } |
2720 | } | 2720 | } |
2721 | } | 2721 | } |
2722 | ++incCounter; | 2722 | ++incCounter; |
2723 | } | 2723 | } |
2724 | el.clear(); | 2724 | el.clear(); |
2725 | syncManager->hideProgressBar(); | 2725 | syncManager->hideProgressBar(); |
2726 | mLastAddressbookSync = QDateTime::currentDateTime().addSecs( 1 ); | 2726 | mLastAddressbookSync = QDateTime::currentDateTime().addSecs( 1 ); |
2727 | // get rid of micro seconds | 2727 | // get rid of micro seconds |
2728 | QTime t = mLastAddressbookSync.time(); | 2728 | QTime t = mLastAddressbookSync.time(); |
2729 | mLastAddressbookSync.setTime( QTime (t.hour (), t.minute (), t.second () ) ); | 2729 | mLastAddressbookSync.setTime( QTime (t.hour (), t.minute (), t.second () ) ); |
2730 | addresseeLSync.setRevision( mLastAddressbookSync ); | 2730 | addresseeLSync.setRevision( mLastAddressbookSync ); |
2731 | addresseeRSync.setRevision( mLastAddressbookSync ); | 2731 | addresseeRSync.setRevision( mLastAddressbookSync ); |
2732 | addresseeRSync.setRole( i18n("!Remote from: ")+mCurrentSyncName ) ; | 2732 | addresseeRSync.setRole( i18n("!Remote from: ")+mCurrentSyncName ) ; |
2733 | addresseeLSync.setRole(i18n("!Local from: ") + mCurrentSyncName ); | 2733 | addresseeLSync.setRole(i18n("!Local from: ") + mCurrentSyncName ); |
2734 | addresseeRSync.setGivenName( i18n("!DO NOT EDIT!") ) ; | 2734 | addresseeRSync.setGivenName( i18n("!DO NOT EDIT!") ) ; |
2735 | addresseeLSync.setGivenName(i18n("!DO NOT EDIT!") ); | 2735 | addresseeLSync.setGivenName(i18n("!DO NOT EDIT!") ); |
2736 | addresseeRSync.setOrganization( "!"+mLastAddressbookSync.toString() ) ; | 2736 | addresseeRSync.setOrganization( "!"+mLastAddressbookSync.toString() ) ; |
2737 | addresseeLSync.setOrganization("!"+ mLastAddressbookSync.toString() ); | 2737 | addresseeLSync.setOrganization("!"+ mLastAddressbookSync.toString() ); |
2738 | addresseeRSync.setNote( "" ) ; | 2738 | addresseeRSync.setNote( "" ) ; |
2739 | addresseeLSync.setNote( "" ); | 2739 | addresseeLSync.setNote( "" ); |
2740 | 2740 | ||
2741 | if ( mGlobalSyncMode == SYNC_MODE_NORMAL) | 2741 | if ( mGlobalSyncMode == SYNC_MODE_NORMAL) |
2742 | remote->insertAddressee( addresseeRSync, false ); | 2742 | remote->insertAddressee( addresseeRSync, false ); |
2743 | local->insertAddressee( addresseeLSync, false ); | 2743 | local->insertAddressee( addresseeLSync, false ); |
2744 | QString mes; | 2744 | QString mes; |
2745 | 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 ); | 2745 | 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 ); |
2746 | if ( syncManager->mShowSyncSummary ) { | 2746 | if ( syncManager->mShowSyncSummary ) { |
2747 | KMessageBox::information(this, mes, i18n("KA/Pi Synchronization") ); | 2747 | KMessageBox::information(this, mes, i18n("KA/Pi Synchronization") ); |
2748 | } | 2748 | } |
2749 | qDebug( mes ); | 2749 | qDebug( mes ); |
2750 | return syncOK; | 2750 | return syncOK; |
2751 | } | 2751 | } |
2752 | 2752 | ||
2753 | 2753 | ||
2754 | //this is a overwritten callbackmethods from the syncinterface | 2754 | //this is a overwritten callbackmethods from the syncinterface |
2755 | bool KABCore::sync(KSyncManager* manager, QString filename, int mode) | 2755 | bool KABCore::sync(KSyncManager* manager, QString filename, int mode) |
2756 | { | 2756 | { |
2757 | 2757 | ||
2758 | //pending prepare addresseeview for output | 2758 | //pending prepare addresseeview for output |
2759 | //pending detect, if remote file has REV field. if not switch to external sync | 2759 | //pending detect, if remote file has REV field. if not switch to external sync |
2760 | mGlobalSyncMode = SYNC_MODE_NORMAL; | 2760 | mGlobalSyncMode = SYNC_MODE_NORMAL; |
2761 | QString mCurrentSyncDevice = manager->getCurrentSyncDevice(); | 2761 | QString mCurrentSyncDevice = manager->getCurrentSyncDevice(); |
2762 | 2762 | ||
2763 | AddressBook abLocal(filename,"syncContact"); | 2763 | AddressBook abLocal(filename,"syncContact"); |
2764 | bool syncOK = false; | 2764 | bool syncOK = false; |
2765 | if ( abLocal.load() ) { | 2765 | if ( abLocal.load() ) { |
2766 | qDebug("AB loaded %s,sync mode %d",filename.latin1(), mode ); | 2766 | qDebug("AB loaded %s,sync mode %d",filename.latin1(), mode ); |
2767 | bool external = false; | 2767 | bool external = false; |
2768 | bool isXML = false; | 2768 | bool isXML = false; |
2769 | if ( filename.right(4) == ".xml") { | 2769 | if ( filename.right(4) == ".xml") { |
2770 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; | 2770 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; |
2771 | isXML = true; | 2771 | isXML = true; |
2772 | abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, true ); | 2772 | abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, true ); |
2773 | } else { | 2773 | } else { |
2774 | external = !manager->mIsKapiFile; | 2774 | external = !manager->mIsKapiFile; |
2775 | if ( external ) { | 2775 | if ( external ) { |
2776 | qDebug("Setting vcf mode to external "); | 2776 | qDebug("Setting vcf mode to external "); |
2777 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; | 2777 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; |
2778 | AddressBook::Iterator it; | 2778 | AddressBook::Iterator it; |
2779 | for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { | 2779 | for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { |
2780 | (*it).setID( mCurrentSyncDevice, (*it).uid() ); | 2780 | (*it).setID( mCurrentSyncDevice, (*it).uid() ); |
2781 | (*it).computeCsum( mCurrentSyncDevice ); | 2781 | (*it).computeCsum( mCurrentSyncDevice ); |
2782 | } | 2782 | } |
2783 | } | 2783 | } |
2784 | } | 2784 | } |
2785 | //AddressBook::Iterator it; | 2785 | //AddressBook::Iterator it; |
2786 | //QStringList vcards; | 2786 | //QStringList vcards; |
2787 | //for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { | 2787 | //for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { |
2788 | // qDebug("Name %s ", (*it).familyName().latin1()); | 2788 | // qDebug("Name %s ", (*it).familyName().latin1()); |
2789 | //} | 2789 | //} |
2790 | syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, mode ); | 2790 | syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, mode ); |
2791 | if ( syncOK ) { | 2791 | if ( syncOK ) { |
2792 | if ( syncManager->mWriteBackFile ) | 2792 | if ( syncManager->mWriteBackFile ) |
2793 | { | 2793 | { |
2794 | if ( external ) | 2794 | if ( external ) |
2795 | abLocal.removeSyncAddressees( !isXML); | 2795 | abLocal.removeSyncAddressees( !isXML); |
2796 | qDebug("Saving remote AB "); | 2796 | qDebug("Saving remote AB "); |
2797 | if ( ! abLocal.saveAB()) | 2797 | if ( ! abLocal.saveAB()) |
2798 | qDebug("Error writing back AB to file "); | 2798 | qDebug("Error writing back AB to file "); |
2799 | if ( isXML ) { | 2799 | if ( isXML ) { |
2800 | // afterwrite processing | 2800 | // afterwrite processing |
2801 | abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ); | 2801 | abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ); |
2802 | } | 2802 | } |
2803 | } | 2803 | } |
2804 | } | 2804 | } |
2805 | setModified(); | 2805 | setModified(); |
2806 | 2806 | ||
2807 | } | 2807 | } |
2808 | if ( syncOK ) | 2808 | if ( syncOK ) |
2809 | mViewManager->refreshView(); | 2809 | mViewManager->refreshView(); |
2810 | return syncOK; | 2810 | return syncOK; |
2811 | 2811 | ||
2812 | } | 2812 | } |
2813 | void KABCore::removeSyncInfo( QString syncProfile) | ||
2814 | { | ||
2815 | qDebug("removeSyncInfo for profile %s ", syncProfile.latin1()); | ||
2816 | |||
2817 | } | ||
2813 | 2818 | ||
2814 | 2819 | ||
2815 | //this is a overwritten callbackmethods from the syncinterface | 2820 | //this is a overwritten callbackmethods from the syncinterface |
2816 | bool KABCore::syncExternal(KSyncManager* manager, QString resource) | 2821 | bool KABCore::syncExternal(KSyncManager* manager, QString resource) |
2817 | { | 2822 | { |
2818 | if ( resource == "phone" ) | 2823 | if ( resource == "phone" ) |
2819 | return syncPhone(); | 2824 | return syncPhone(); |
2820 | disableBR( true ); | 2825 | disableBR( true ); |
2821 | QString mCurrentSyncDevice = manager->getCurrentSyncDevice(); | 2826 | QString mCurrentSyncDevice = manager->getCurrentSyncDevice(); |
2822 | 2827 | ||
2823 | AddressBook abLocal( resource,"syncContact"); | 2828 | AddressBook abLocal( resource,"syncContact"); |
2824 | bool syncOK = false; | 2829 | bool syncOK = false; |
2825 | if ( abLocal.load() ) { | 2830 | if ( abLocal.load() ) { |
2826 | qDebug("AB sharp loaded ,sync device %s",mCurrentSyncDevice.latin1()); | 2831 | qDebug("AB sharp loaded ,sync device %s",mCurrentSyncDevice.latin1()); |
2827 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; | 2832 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; |
2828 | abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, false ); | 2833 | abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, false ); |
2829 | syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, syncManager->mSyncAlgoPrefs ); | 2834 | syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, syncManager->mSyncAlgoPrefs ); |
2830 | if ( syncOK ) { | 2835 | if ( syncOK ) { |
2831 | if ( syncManager->mWriteBackFile ) { | 2836 | if ( syncManager->mWriteBackFile ) { |
2832 | abLocal.removeSyncAddressees( false ); | 2837 | abLocal.removeSyncAddressees( false ); |
2833 | abLocal.saveAB(); | 2838 | abLocal.saveAB(); |
2834 | abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ); | 2839 | abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ); |
2835 | } | 2840 | } |
2836 | } | 2841 | } |
2837 | setModified(); | 2842 | setModified(); |
2838 | } | 2843 | } |
2839 | if ( syncOK ) | 2844 | if ( syncOK ) |
2840 | mViewManager->refreshView(); | 2845 | mViewManager->refreshView(); |
2841 | disableBR( false ); | 2846 | disableBR( false ); |
2842 | return syncOK; | 2847 | return syncOK; |
2843 | 2848 | ||
2844 | } | 2849 | } |
2845 | void KABCore::message( QString m ) | 2850 | void KABCore::message( QString m ) |
2846 | { | 2851 | { |
2847 | topLevelWidget()->setCaption( m ); | 2852 | topLevelWidget()->setCaption( m ); |
2848 | mMessageTimer->start( 15000, true ); | 2853 | mMessageTimer->start( 15000, true ); |
2849 | } | 2854 | } |
2850 | bool KABCore::syncPhone() | 2855 | bool KABCore::syncPhone() |
2851 | { | 2856 | { |
2852 | QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); | 2857 | QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); |
2853 | QString fileName = getPhoneFile(); | 2858 | QString fileName = getPhoneFile(); |
2854 | if ( !PhoneAccess::readFromPhone( fileName) ) { | 2859 | if ( !PhoneAccess::readFromPhone( fileName) ) { |
2855 | message(i18n("Phone access failed!")); | 2860 | message(i18n("Phone access failed!")); |
2856 | return false; | 2861 | return false; |
2857 | } | 2862 | } |
2858 | AddressBook abLocal( fileName,"syncContact"); | 2863 | AddressBook abLocal( fileName,"syncContact"); |
2859 | bool syncOK = false; | 2864 | bool syncOK = false; |
2860 | { | 2865 | { |
2861 | abLocal.importFromFile( fileName ); | 2866 | abLocal.importFromFile( fileName ); |
2862 | qDebug("AB phone loaded ,sync device %s",mCurrentSyncDevice.latin1()); | 2867 | qDebug("AB phone loaded ,sync device %s",mCurrentSyncDevice.latin1()); |
2863 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; | 2868 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; |
2864 | abLocal.preparePhoneSync( mCurrentSyncDevice, true ); | 2869 | abLocal.preparePhoneSync( mCurrentSyncDevice, true ); |
2865 | abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, true ); | 2870 | abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, true ); |
2866 | syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, syncManager->mSyncAlgoPrefs ); | 2871 | syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, syncManager->mSyncAlgoPrefs ); |
2867 | if ( syncOK ) { | 2872 | if ( syncOK ) { |
2868 | if ( syncManager->mWriteBackFile ) { | 2873 | if ( syncManager->mWriteBackFile ) { |
2869 | abLocal.removeSyncAddressees( true ); | 2874 | abLocal.removeSyncAddressees( true ); |
2870 | abLocal.saveABphone( fileName ); | 2875 | abLocal.saveABphone( fileName ); |
2871 | abLocal.findNewExtIds( fileName, mCurrentSyncDevice ); | 2876 | abLocal.findNewExtIds( fileName, mCurrentSyncDevice ); |
2872 | //abLocal.preparePhoneSync( mCurrentSyncDevice, false ); | 2877 | //abLocal.preparePhoneSync( mCurrentSyncDevice, false ); |
2873 | abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ); | 2878 | abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ); |
2874 | } | 2879 | } |
2875 | } | 2880 | } |
2876 | setModified(); | 2881 | setModified(); |
2877 | } | 2882 | } |
2878 | if ( syncOK ) | 2883 | if ( syncOK ) |
2879 | mViewManager->refreshView(); | 2884 | mViewManager->refreshView(); |
2880 | return syncOK; | 2885 | return syncOK; |
2881 | } | 2886 | } |
2882 | void KABCore::getFile( bool success ) | 2887 | void KABCore::getFile( bool success ) |
2883 | { | 2888 | { |
2884 | if ( ! success ) { | 2889 | if ( ! success ) { |
2885 | message( i18n("Error receiving file. Nothing changed!") ); | 2890 | message( i18n("Error receiving file. Nothing changed!") ); |
2886 | return; | 2891 | return; |
2887 | } | 2892 | } |
2888 | int count = mAddressBook->importFromFile( sentSyncFile() , false, true ); | 2893 | int count = mAddressBook->importFromFile( sentSyncFile() , false, true ); |
2889 | if ( count ) | 2894 | if ( count ) |
2890 | setModified( true ); | 2895 | setModified( true ); |
2891 | message( i18n("Pi-Sync successful!") ); | 2896 | message( i18n("Pi-Sync successful!") ); |
2892 | mViewManager->refreshView(); | 2897 | mViewManager->refreshView(); |
2893 | } | 2898 | } |
2894 | void KABCore::syncFileRequest() | 2899 | void KABCore::syncFileRequest() |
2895 | { | 2900 | { |
2896 | mAddressBook->export2File( sentSyncFile() ); | 2901 | mAddressBook->export2File( sentSyncFile() ); |
2897 | } | 2902 | } |
2898 | QString KABCore::sentSyncFile() | 2903 | QString KABCore::sentSyncFile() |
2899 | { | 2904 | { |
2900 | #ifdef DESKTOP_VERSION | 2905 | #ifdef DESKTOP_VERSION |
2901 | return locateLocal( "tmp", "copysyncab.vcf" ); | 2906 | return locateLocal( "tmp", "copysyncab.vcf" ); |
2902 | #else | 2907 | #else |
2903 | return QString( "/tmp/copysyncab.vcf" ); | 2908 | return QString( "/tmp/copysyncab.vcf" ); |
2904 | #endif | 2909 | #endif |
2905 | } | 2910 | } |
2906 | 2911 | ||
2907 | void KABCore::setCaptionBack() | 2912 | void KABCore::setCaptionBack() |
2908 | { | 2913 | { |
2909 | mMessageTimer->stop(); | 2914 | mMessageTimer->stop(); |
2910 | topLevelWidget()->setCaption( i18n("KAddressbook/Pi") ); | 2915 | topLevelWidget()->setCaption( i18n("KAddressbook/Pi") ); |
2911 | } | 2916 | } |
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h index fcbe1e8..a288505 100644 --- a/kaddressbook/kabcore.h +++ b/kaddressbook/kabcore.h | |||
@@ -293,210 +293,211 @@ class KABCore : public QWidget, public KSyncInterface | |||
293 | Saves the contents of the AddressBook back to disk. | 293 | Saves the contents of the AddressBook back to disk. |
294 | */ | 294 | */ |
295 | void save(); | 295 | void save(); |
296 | 296 | ||
297 | /** | 297 | /** |
298 | Undos the last command using the undo stack. | 298 | Undos the last command using the undo stack. |
299 | */ | 299 | */ |
300 | void undo(); | 300 | void undo(); |
301 | 301 | ||
302 | /** | 302 | /** |
303 | Redos the last command that was undone, using the redo stack. | 303 | Redos the last command that was undone, using the redo stack. |
304 | */ | 304 | */ |
305 | void redo(); | 305 | void redo(); |
306 | 306 | ||
307 | /** | 307 | /** |
308 | Shows the edit dialog for the given uid. If the uid is QString::null, | 308 | Shows the edit dialog for the given uid. If the uid is QString::null, |
309 | the method will try to find a selected addressee in the view. | 309 | the method will try to find a selected addressee in the view. |
310 | */ | 310 | */ |
311 | void editContact( const QString &uid /*US = QString::null*/ ); | 311 | void editContact( const QString &uid /*US = QString::null*/ ); |
312 | //US added a second method without defaultparameter | 312 | //US added a second method without defaultparameter |
313 | void editContact2(); | 313 | void editContact2(); |
314 | 314 | ||
315 | /** | 315 | /** |
316 | Shows or edits the detail view for the given uid. If the uid is QString::null, | 316 | Shows or edits the detail view for the given uid. If the uid is QString::null, |
317 | the method will try to find a selected addressee in the view. | 317 | the method will try to find a selected addressee in the view. |
318 | */ | 318 | */ |
319 | void executeContact( const QString &uid /*US = QString::null*/ ); | 319 | void executeContact( const QString &uid /*US = QString::null*/ ); |
320 | 320 | ||
321 | /** | 321 | /** |
322 | Launches the configuration dialog. | 322 | Launches the configuration dialog. |
323 | */ | 323 | */ |
324 | void openConfigDialog(); | 324 | void openConfigDialog(); |
325 | 325 | ||
326 | /** | 326 | /** |
327 | Launches the ldap search dialog. | 327 | Launches the ldap search dialog. |
328 | */ | 328 | */ |
329 | void openLDAPDialog(); | 329 | void openLDAPDialog(); |
330 | 330 | ||
331 | /** | 331 | /** |
332 | Creates a KAddressBookPrinter, which will display the print | 332 | Creates a KAddressBookPrinter, which will display the print |
333 | dialog and do the printing. | 333 | dialog and do the printing. |
334 | */ | 334 | */ |
335 | void print(); | 335 | void print(); |
336 | 336 | ||
337 | /** | 337 | /** |
338 | Registers a new GUI client, so plugins can register its actions. | 338 | Registers a new GUI client, so plugins can register its actions. |
339 | */ | 339 | */ |
340 | void addGUIClient( KXMLGUIClient *client ); | 340 | void addGUIClient( KXMLGUIClient *client ); |
341 | 341 | ||
342 | void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid); | 342 | void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid); |
343 | void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); | 343 | void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); |
344 | void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid); | 344 | void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid); |
345 | 345 | ||
346 | 346 | ||
347 | signals: | 347 | signals: |
348 | void contactSelected( const QString &name ); | 348 | void contactSelected( const QString &name ); |
349 | void contactSelected( const QPixmap &pixmap ); | 349 | void contactSelected( const QPixmap &pixmap ); |
350 | public slots: | 350 | public slots: |
351 | void recieve(QString cmsg ); | 351 | void recieve(QString cmsg ); |
352 | void getFile( bool success ); | 352 | void getFile( bool success ); |
353 | void syncFileRequest(); | 353 | void syncFileRequest(); |
354 | void setDetailsVisible( bool visible ); | 354 | void setDetailsVisible( bool visible ); |
355 | void setDetailsToState(); | 355 | void setDetailsToState(); |
356 | // void slotSyncMenu( int ); | 356 | // void slotSyncMenu( int ); |
357 | private slots: | 357 | private slots: |
358 | void receive( const QCString& cmsg, const QByteArray& data ); | 358 | void receive( const QCString& cmsg, const QByteArray& data ); |
359 | void toggleBeamReceive( ); | 359 | void toggleBeamReceive( ); |
360 | void disableBR(bool); | 360 | void disableBR(bool); |
361 | void setJumpButtonBarVisible( bool visible ); | 361 | void setJumpButtonBarVisible( bool visible ); |
362 | void setCaptionBack(); | 362 | void setCaptionBack(); |
363 | void importFromOL(); | 363 | void importFromOL(); |
364 | void extensionModified( const KABC::Addressee::List &list ); | 364 | void extensionModified( const KABC::Addressee::List &list ); |
365 | void extensionChanged( int id ); | 365 | void extensionChanged( int id ); |
366 | void clipboardDataChanged(); | 366 | void clipboardDataChanged(); |
367 | void updateActionMenu(); | 367 | void updateActionMenu(); |
368 | void configureKeyBindings(); | 368 | void configureKeyBindings(); |
369 | void removeVoice(); | 369 | void removeVoice(); |
370 | #ifdef KAB_EMBEDDED | 370 | #ifdef KAB_EMBEDDED |
371 | void configureResources(); | 371 | void configureResources(); |
372 | #endif //KAB_EMBEDDED | 372 | #endif //KAB_EMBEDDED |
373 | 373 | ||
374 | void slotEditorDestroyed( const QString &uid ); | 374 | void slotEditorDestroyed( const QString &uid ); |
375 | void configurationChanged(); | 375 | void configurationChanged(); |
376 | void addressBookChanged(); | 376 | void addressBookChanged(); |
377 | 377 | ||
378 | private: | 378 | private: |
379 | bool mBRdisabled; | 379 | bool mBRdisabled; |
380 | #ifndef DESKTOP_VERSION | 380 | #ifndef DESKTOP_VERSION |
381 | QCopChannel* infrared; | 381 | QCopChannel* infrared; |
382 | #endif | 382 | #endif |
383 | QTimer *mMessageTimer; | 383 | QTimer *mMessageTimer; |
384 | void initGUI(); | 384 | void initGUI(); |
385 | void initActions(); | 385 | void initActions(); |
386 | QString getPhoneFile(); | 386 | QString getPhoneFile(); |
387 | 387 | ||
388 | AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent, | 388 | AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent, |
389 | const char *name = 0 ); | 389 | const char *name = 0 ); |
390 | 390 | ||
391 | KXMLGUIClient *mGUIClient; | 391 | KXMLGUIClient *mGUIClient; |
392 | 392 | ||
393 | KABC::AddressBook *mAddressBook; | 393 | KABC::AddressBook *mAddressBook; |
394 | 394 | ||
395 | ViewManager *mViewManager; | 395 | ViewManager *mViewManager; |
396 | // QSplitter *mDetailsSplitter; | 396 | // QSplitter *mDetailsSplitter; |
397 | KDGanttMinimizeSplitter *mExtensionBarSplitter; | 397 | KDGanttMinimizeSplitter *mExtensionBarSplitter; |
398 | ViewContainer *mDetails; | 398 | ViewContainer *mDetails; |
399 | KDGanttMinimizeSplitter* mMiniSplitter; | 399 | KDGanttMinimizeSplitter* mMiniSplitter; |
400 | XXPortManager *mXXPortManager; | 400 | XXPortManager *mXXPortManager; |
401 | JumpButtonBar *mJumpButtonBar; | 401 | JumpButtonBar *mJumpButtonBar; |
402 | IncSearchWidget *mIncSearchWidget; | 402 | IncSearchWidget *mIncSearchWidget; |
403 | ExtensionManager *mExtensionManager; | 403 | ExtensionManager *mExtensionManager; |
404 | 404 | ||
405 | KCMultiDialog *mConfigureDialog; | 405 | KCMultiDialog *mConfigureDialog; |
406 | 406 | ||
407 | #ifndef KAB_EMBEDDED | 407 | #ifndef KAB_EMBEDDED |
408 | LDAPSearchDialog *mLdapSearchDialog; | 408 | LDAPSearchDialog *mLdapSearchDialog; |
409 | #endif //KAB_EMBEDDED | 409 | #endif //KAB_EMBEDDED |
410 | // QDict<AddresseeEditorDialog> mEditorDict; | 410 | // QDict<AddresseeEditorDialog> mEditorDict; |
411 | AddresseeEditorDialog *mEditorDialog; | 411 | AddresseeEditorDialog *mEditorDialog; |
412 | bool mReadWrite; | 412 | bool mReadWrite; |
413 | bool mModified; | 413 | bool mModified; |
414 | bool mIsPart; | 414 | bool mIsPart; |
415 | bool mMultipleViewsAtOnce; | 415 | bool mMultipleViewsAtOnce; |
416 | 416 | ||
417 | 417 | ||
418 | //US file menu | 418 | //US file menu |
419 | KAction *mActionMail; | 419 | KAction *mActionMail; |
420 | KAction *mActionBeam; | 420 | KAction *mActionBeam; |
421 | KToggleAction *mActionBR; | 421 | KToggleAction *mActionBR; |
422 | KAction *mActionExport2phone; | 422 | KAction *mActionExport2phone; |
423 | KAction* mActionPrint; | 423 | KAction* mActionPrint; |
424 | KAction* mActionNewContact; | 424 | KAction* mActionNewContact; |
425 | KAction *mActionSave; | 425 | KAction *mActionSave; |
426 | KAction *mActionEditAddressee; | 426 | KAction *mActionEditAddressee; |
427 | KAction *mActionMailVCard; | 427 | KAction *mActionMailVCard; |
428 | KAction *mActionBeamVCard; | 428 | KAction *mActionBeamVCard; |
429 | 429 | ||
430 | KAction *mActionQuit; | 430 | KAction *mActionQuit; |
431 | 431 | ||
432 | //US edit menu | 432 | //US edit menu |
433 | KAction *mActionCopy; | 433 | KAction *mActionCopy; |
434 | KAction *mActionCut; | 434 | KAction *mActionCut; |
435 | KAction *mActionPaste; | 435 | KAction *mActionPaste; |
436 | KAction *mActionSelectAll; | 436 | KAction *mActionSelectAll; |
437 | KAction *mActionUndo; | 437 | KAction *mActionUndo; |
438 | KAction *mActionRedo; | 438 | KAction *mActionRedo; |
439 | KAction *mActionDelete; | 439 | KAction *mActionDelete; |
440 | 440 | ||
441 | //US settings menu | 441 | //US settings menu |
442 | KAction *mActionConfigResources; | 442 | KAction *mActionConfigResources; |
443 | KAction *mActionConfigKAddressbook; | 443 | KAction *mActionConfigKAddressbook; |
444 | KAction *mActionConfigShortcuts; | 444 | KAction *mActionConfigShortcuts; |
445 | KAction *mActionConfigureToolbars; | 445 | KAction *mActionConfigureToolbars; |
446 | KAction *mActionKeyBindings; | 446 | KAction *mActionKeyBindings; |
447 | KToggleAction *mActionJumpBar; | 447 | KToggleAction *mActionJumpBar; |
448 | KToggleAction *mActionDetails; | 448 | KToggleAction *mActionDetails; |
449 | KAction *mActionWhoAmI; | 449 | KAction *mActionWhoAmI; |
450 | KAction *mActionCategories; | 450 | KAction *mActionCategories; |
451 | KAction *mActionAboutKAddressbook; | 451 | KAction *mActionAboutKAddressbook; |
452 | KAction *mActionLicence; | 452 | KAction *mActionLicence; |
453 | KAction *mActionFaq; | 453 | KAction *mActionFaq; |
454 | KAction *mActionWN; | 454 | KAction *mActionWN; |
455 | KAction *mActionSyncHowto; | 455 | KAction *mActionSyncHowto; |
456 | 456 | ||
457 | KAction *mActionDeleteView; | 457 | KAction *mActionDeleteView; |
458 | 458 | ||
459 | QPopupMenu *viewMenu; | 459 | QPopupMenu *viewMenu; |
460 | QPopupMenu *filterMenu; | 460 | QPopupMenu *filterMenu; |
461 | QPopupMenu *settingsMenu; | 461 | QPopupMenu *settingsMenu; |
462 | QPopupMenu *changeMenu; | 462 | QPopupMenu *changeMenu; |
463 | //US QAction *mActionSave; | 463 | //US QAction *mActionSave; |
464 | QPopupMenu *ImportMenu; | 464 | QPopupMenu *ImportMenu; |
465 | QPopupMenu *ExportMenu; | 465 | QPopupMenu *ExportMenu; |
466 | //LR additional methods | 466 | //LR additional methods |
467 | KAction *mActionRemoveVoice; | 467 | KAction *mActionRemoveVoice; |
468 | KAction * mActionImportOL; | 468 | KAction * mActionImportOL; |
469 | 469 | ||
470 | #ifndef KAB_EMBEDDED | 470 | #ifndef KAB_EMBEDDED |
471 | KAddressBookService *mAddressBookService; | 471 | KAddressBookService *mAddressBookService; |
472 | #endif //KAB_EMBEDDED | 472 | #endif //KAB_EMBEDDED |
473 | 473 | ||
474 | class KABCorePrivate; | 474 | class KABCorePrivate; |
475 | KABCorePrivate *d; | 475 | KABCorePrivate *d; |
476 | //US bool mBlockSaveFlag; | 476 | //US bool mBlockSaveFlag; |
477 | 477 | ||
478 | #ifdef KAB_EMBEDDED | 478 | #ifdef KAB_EMBEDDED |
479 | KAddressBookMain *mMainWindow; // should be the same like mGUIClient | 479 | KAddressBookMain *mMainWindow; // should be the same like mGUIClient |
480 | #endif //KAB_EMBEDDED | 480 | #endif //KAB_EMBEDDED |
481 | 481 | ||
482 | //this are the overwritten callbackmethods from the syncinterface | 482 | //this are the overwritten callbackmethods from the syncinterface |
483 | virtual bool sync(KSyncManager* manager, QString filename, int mode); | 483 | virtual bool sync(KSyncManager* manager, QString filename, int mode); |
484 | virtual bool syncExternal(KSyncManager* manager, QString resource); | 484 | virtual bool syncExternal(KSyncManager* manager, QString resource); |
485 | virtual void removeSyncInfo( QString syncProfile); | ||
485 | bool syncPhone(); | 486 | bool syncPhone(); |
486 | void message( QString m ); | 487 | void message( QString m ); |
487 | 488 | ||
488 | // LR ******************************* | 489 | // LR ******************************* |
489 | // sync stuff! | 490 | // sync stuff! |
490 | QString sentSyncFile(); | 491 | QString sentSyncFile(); |
491 | QPopupMenu *syncMenu; | 492 | QPopupMenu *syncMenu; |
492 | KSyncManager* syncManager; | 493 | KSyncManager* syncManager; |
493 | int mGlobalSyncMode; | 494 | int mGlobalSyncMode; |
494 | bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode); | 495 | bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode); |
495 | KABC::Addressee getLastSyncAddressee(); | 496 | KABC::Addressee getLastSyncAddressee(); |
496 | QDateTime mLastAddressbookSync; | 497 | QDateTime mLastAddressbookSync; |
497 | int takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full ); | 498 | int takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full ); |
498 | // ********************* | 499 | // ********************* |
499 | 500 | ||
500 | }; | 501 | }; |
501 | 502 | ||
502 | #endif | 503 | #endif |
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 2ccccfa..af01625 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -3575,192 +3575,198 @@ void CalendarView::calendarModified( bool modified, Calendar * ) | |||
3575 | Todo *CalendarView::selectedTodo() | 3575 | Todo *CalendarView::selectedTodo() |
3576 | { | 3576 | { |
3577 | Incidence *incidence = currentSelection(); | 3577 | Incidence *incidence = currentSelection(); |
3578 | if ( incidence && incidence->type() == "Todo" ) { | 3578 | if ( incidence && incidence->type() == "Todo" ) { |
3579 | return static_cast<Todo *>( incidence ); | 3579 | return static_cast<Todo *>( incidence ); |
3580 | } | 3580 | } |
3581 | 3581 | ||
3582 | incidence = mTodoList->selectedIncidences().first(); | 3582 | incidence = mTodoList->selectedIncidences().first(); |
3583 | if ( incidence && incidence->type() == "Todo" ) { | 3583 | if ( incidence && incidence->type() == "Todo" ) { |
3584 | return static_cast<Todo *>( incidence ); | 3584 | return static_cast<Todo *>( incidence ); |
3585 | } | 3585 | } |
3586 | 3586 | ||
3587 | return 0; | 3587 | return 0; |
3588 | } | 3588 | } |
3589 | 3589 | ||
3590 | void CalendarView::dialogClosing(Incidence *in) | 3590 | void CalendarView::dialogClosing(Incidence *in) |
3591 | { | 3591 | { |
3592 | // mDialogList.remove(in); | 3592 | // mDialogList.remove(in); |
3593 | } | 3593 | } |
3594 | 3594 | ||
3595 | void CalendarView::showIncidence() | 3595 | void CalendarView::showIncidence() |
3596 | { | 3596 | { |
3597 | Incidence *incidence = currentSelection(); | 3597 | Incidence *incidence = currentSelection(); |
3598 | if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); | 3598 | if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); |
3599 | if ( incidence ) { | 3599 | if ( incidence ) { |
3600 | ShowIncidenceVisitor v; | 3600 | ShowIncidenceVisitor v; |
3601 | v.act( incidence, this ); | 3601 | v.act( incidence, this ); |
3602 | } | 3602 | } |
3603 | } | 3603 | } |
3604 | void CalendarView::editIncidenceDescription() | 3604 | void CalendarView::editIncidenceDescription() |
3605 | { | 3605 | { |
3606 | mFlagEditDescription = true; | 3606 | mFlagEditDescription = true; |
3607 | editIncidence(); | 3607 | editIncidence(); |
3608 | mFlagEditDescription = false; | 3608 | mFlagEditDescription = false; |
3609 | } | 3609 | } |
3610 | void CalendarView::editIncidence() | 3610 | void CalendarView::editIncidence() |
3611 | { | 3611 | { |
3612 | // qDebug("editIncidence() "); | 3612 | // qDebug("editIncidence() "); |
3613 | Incidence *incidence = currentSelection(); | 3613 | Incidence *incidence = currentSelection(); |
3614 | if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); | 3614 | if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); |
3615 | if ( incidence ) { | 3615 | if ( incidence ) { |
3616 | EditIncidenceVisitor v; | 3616 | EditIncidenceVisitor v; |
3617 | v.act( incidence, this ); | 3617 | v.act( incidence, this ); |
3618 | } | 3618 | } |
3619 | } | 3619 | } |
3620 | 3620 | ||
3621 | void CalendarView::deleteIncidence() | 3621 | void CalendarView::deleteIncidence() |
3622 | { | 3622 | { |
3623 | Incidence *incidence = currentSelection(); | 3623 | Incidence *incidence = currentSelection(); |
3624 | if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); | 3624 | if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); |
3625 | if ( incidence ) { | 3625 | if ( incidence ) { |
3626 | deleteIncidence(incidence); | 3626 | deleteIncidence(incidence); |
3627 | } | 3627 | } |
3628 | } | 3628 | } |
3629 | 3629 | ||
3630 | void CalendarView::showIncidence(Incidence *incidence) | 3630 | void CalendarView::showIncidence(Incidence *incidence) |
3631 | { | 3631 | { |
3632 | if ( incidence ) { | 3632 | if ( incidence ) { |
3633 | ShowIncidenceVisitor v; | 3633 | ShowIncidenceVisitor v; |
3634 | v.act( incidence, this ); | 3634 | v.act( incidence, this ); |
3635 | } | 3635 | } |
3636 | } | 3636 | } |
3637 | 3637 | ||
3638 | void CalendarView::editIncidence(Incidence *incidence) | 3638 | void CalendarView::editIncidence(Incidence *incidence) |
3639 | { | 3639 | { |
3640 | if ( incidence ) { | 3640 | if ( incidence ) { |
3641 | 3641 | ||
3642 | EditIncidenceVisitor v; | 3642 | EditIncidenceVisitor v; |
3643 | v.act( incidence, this ); | 3643 | v.act( incidence, this ); |
3644 | 3644 | ||
3645 | } | 3645 | } |
3646 | } | 3646 | } |
3647 | 3647 | ||
3648 | void CalendarView::deleteIncidence(Incidence *incidence) | 3648 | void CalendarView::deleteIncidence(Incidence *incidence) |
3649 | { | 3649 | { |
3650 | //qDebug(" CalendarView::deleteIncidence "); | 3650 | //qDebug(" CalendarView::deleteIncidence "); |
3651 | if ( incidence ) { | 3651 | if ( incidence ) { |
3652 | DeleteIncidenceVisitor v; | 3652 | DeleteIncidenceVisitor v; |
3653 | v.act( incidence, this ); | 3653 | v.act( incidence, this ); |
3654 | } | 3654 | } |
3655 | } | 3655 | } |
3656 | 3656 | ||
3657 | 3657 | ||
3658 | void CalendarView::lookForOutgoingMessages() | 3658 | void CalendarView::lookForOutgoingMessages() |
3659 | { | 3659 | { |
3660 | OutgoingDialog *ogd = mDialogManager->outgoingDialog(); | 3660 | OutgoingDialog *ogd = mDialogManager->outgoingDialog(); |
3661 | ogd->loadMessages(); | 3661 | ogd->loadMessages(); |
3662 | } | 3662 | } |
3663 | 3663 | ||
3664 | void CalendarView::lookForIncomingMessages() | 3664 | void CalendarView::lookForIncomingMessages() |
3665 | { | 3665 | { |
3666 | IncomingDialog *icd = mDialogManager->incomingDialog(); | 3666 | IncomingDialog *icd = mDialogManager->incomingDialog(); |
3667 | icd->retrieve(); | 3667 | icd->retrieve(); |
3668 | } | 3668 | } |
3669 | 3669 | ||
3670 | bool CalendarView::removeCompletedSubTodos( Todo* t ) | 3670 | bool CalendarView::removeCompletedSubTodos( Todo* t ) |
3671 | { | 3671 | { |
3672 | bool deleteTodo = true; | 3672 | bool deleteTodo = true; |
3673 | QPtrList<Incidence> subTodos; | 3673 | QPtrList<Incidence> subTodos; |
3674 | Incidence *aTodo; | 3674 | Incidence *aTodo; |
3675 | subTodos = t->relations(); | 3675 | subTodos = t->relations(); |
3676 | for (aTodo = subTodos.first(); aTodo; aTodo = subTodos.next()) { | 3676 | for (aTodo = subTodos.first(); aTodo; aTodo = subTodos.next()) { |
3677 | if (! removeCompletedSubTodos( (Todo*) aTodo )) | 3677 | if (! removeCompletedSubTodos( (Todo*) aTodo )) |
3678 | deleteTodo = false; | 3678 | deleteTodo = false; |
3679 | } | 3679 | } |
3680 | if ( deleteTodo ) { | 3680 | if ( deleteTodo ) { |
3681 | if ( t->isCompleted() ) { | 3681 | if ( t->isCompleted() ) { |
3682 | checkExternalId( t ); | 3682 | checkExternalId( t ); |
3683 | mCalendar->deleteTodo( t ); | 3683 | mCalendar->deleteTodo( t ); |
3684 | changeTodoDisplay( t,KOGlobals::EVENTDELETED ); | 3684 | changeTodoDisplay( t,KOGlobals::EVENTDELETED ); |
3685 | } | 3685 | } |
3686 | else | 3686 | else |
3687 | deleteTodo = false; | 3687 | deleteTodo = false; |
3688 | } | 3688 | } |
3689 | return deleteTodo; | 3689 | return deleteTodo; |
3690 | 3690 | ||
3691 | } | 3691 | } |
3692 | void CalendarView::purgeCompleted() | 3692 | void CalendarView::purgeCompleted() |
3693 | { | 3693 | { |
3694 | int result = KMessageBox::warningContinueCancel(this, | 3694 | int result = KMessageBox::warningContinueCancel(this, |
3695 | i18n("Delete all\ncompleted To-Dos?"),i18n("Purge To-Dos"),i18n("Purge")); | 3695 | i18n("Delete all\ncompleted To-Dos?"),i18n("Purge To-Dos"),i18n("Purge")); |
3696 | 3696 | ||
3697 | if (result == KMessageBox::Continue) { | 3697 | if (result == KMessageBox::Continue) { |
3698 | 3698 | ||
3699 | QPtrList<Todo> todoCal; | 3699 | QPtrList<Todo> todoCal; |
3700 | QPtrList<Todo> rootTodos; | 3700 | QPtrList<Todo> rootTodos; |
3701 | //QPtrList<Incidence> rel; | 3701 | //QPtrList<Incidence> rel; |
3702 | Todo *aTodo;//, *rTodo; | 3702 | Todo *aTodo;//, *rTodo; |
3703 | Incidence *rIncidence; | 3703 | Incidence *rIncidence; |
3704 | bool childDelete = false; | 3704 | bool childDelete = false; |
3705 | bool deletedOne = true; | 3705 | bool deletedOne = true; |
3706 | todoCal = calendar()->todos(); | 3706 | todoCal = calendar()->todos(); |
3707 | for (aTodo = todoCal.first(); aTodo; aTodo = todoCal.next()) { | 3707 | for (aTodo = todoCal.first(); aTodo; aTodo = todoCal.next()) { |
3708 | if ( !aTodo->relatedTo() ) | 3708 | if ( !aTodo->relatedTo() ) |
3709 | rootTodos.append( aTodo ); | 3709 | rootTodos.append( aTodo ); |
3710 | } | 3710 | } |
3711 | for (aTodo = rootTodos.first(); aTodo; aTodo = rootTodos.next()) { | 3711 | for (aTodo = rootTodos.first(); aTodo; aTodo = rootTodos.next()) { |
3712 | removeCompletedSubTodos( aTodo ); | 3712 | removeCompletedSubTodos( aTodo ); |
3713 | } | 3713 | } |
3714 | 3714 | ||
3715 | updateView(); | 3715 | updateView(); |
3716 | } | 3716 | } |
3717 | } | 3717 | } |
3718 | 3718 | ||
3719 | void CalendarView::slotCalendarChanged() | 3719 | void CalendarView::slotCalendarChanged() |
3720 | { | 3720 | { |
3721 | ; | 3721 | ; |
3722 | } | 3722 | } |
3723 | 3723 | ||
3724 | NavigatorBar *CalendarView::navigatorBar() | 3724 | NavigatorBar *CalendarView::navigatorBar() |
3725 | { | 3725 | { |
3726 | return mNavigatorBar; | 3726 | return mNavigatorBar; |
3727 | } | 3727 | } |
3728 | 3728 | ||
3729 | 3729 | ||
3730 | 3730 | ||
3731 | void CalendarView::keyPressEvent ( QKeyEvent *e) | 3731 | void CalendarView::keyPressEvent ( QKeyEvent *e) |
3732 | { | 3732 | { |
3733 | //qDebug(" alendarView::keyPressEvent "); | 3733 | //qDebug(" alendarView::keyPressEvent "); |
3734 | e->ignore(); | 3734 | e->ignore(); |
3735 | } | 3735 | } |
3736 | 3736 | ||
3737 | 3737 | ||
3738 | bool CalendarView::sync(KSyncManager* manager, QString filename, int mode) | 3738 | bool CalendarView::sync(KSyncManager* manager, QString filename, int mode) |
3739 | { | 3739 | { |
3740 | // mSyncManager = manager; | 3740 | // mSyncManager = manager; |
3741 | mSyncKDE = false; | 3741 | mSyncKDE = false; |
3742 | if ( filename == QDir::homeDirPath ()+"/.kdecalendardump.ics" ) { | 3742 | if ( filename == QDir::homeDirPath ()+"/.kdecalendardump.ics" ) { |
3743 | qDebug("SyncKDE request detected!"); | 3743 | qDebug("SyncKDE request detected!"); |
3744 | mSyncKDE = true; | 3744 | mSyncKDE = true; |
3745 | } | 3745 | } |
3746 | mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); | 3746 | mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); |
3747 | mCurrentSyncName = mSyncManager->getCurrentSyncName(); | 3747 | mCurrentSyncName = mSyncManager->getCurrentSyncName(); |
3748 | return syncCalendar( filename, mode ); | 3748 | return syncCalendar( filename, mode ); |
3749 | } | 3749 | } |
3750 | bool CalendarView::syncExternal(KSyncManager* manager, QString resource) | 3750 | bool CalendarView::syncExternal(KSyncManager* manager, QString resource) |
3751 | { | 3751 | { |
3752 | mSyncKDE = false; | 3752 | mSyncKDE = false; |
3753 | //mSyncManager = manager; | 3753 | //mSyncManager = manager; |
3754 | mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); | 3754 | mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); |
3755 | mCurrentSyncName = mSyncManager->getCurrentSyncName(); | 3755 | mCurrentSyncName = mSyncManager->getCurrentSyncName(); |
3756 | if ( resource == "sharp" ) | 3756 | if ( resource == "sharp" ) |
3757 | syncExternal( 0 ); | 3757 | syncExternal( 0 ); |
3758 | if ( resource == "phone" ) | 3758 | if ( resource == "phone" ) |
3759 | syncExternal( 1 ); | 3759 | syncExternal( 1 ); |
3760 | // pending setmodified | 3760 | // pending setmodified |
3761 | return true; | 3761 | return true; |
3762 | } | 3762 | } |
3763 | void CalendarView::setSyncManager(KSyncManager* manager) | 3763 | void CalendarView::setSyncManager(KSyncManager* manager) |
3764 | { | 3764 | { |
3765 | mSyncManager = manager; | 3765 | mSyncManager = manager; |
3766 | } | 3766 | } |
3767 | |||
3768 | void CalendarView::removeSyncInfo( QString syncProfile) | ||
3769 | { | ||
3770 | qDebug("removeSyncInfo for profile %s ", syncProfile.latin1()); | ||
3771 | |||
3772 | } | ||
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h index 2818ee9..acc20d6 100644 --- a/korganizer/calendarview.h +++ b/korganizer/calendarview.h | |||
@@ -276,330 +276,331 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser | |||
276 | * settings from the config file. | 276 | * settings from the config file. |
277 | */ | 277 | */ |
278 | void readSettings(); | 278 | void readSettings(); |
279 | 279 | ||
280 | /** write current state to config file. */ | 280 | /** write current state to config file. */ |
281 | void writeSettings(); | 281 | void writeSettings(); |
282 | 282 | ||
283 | /** read settings for calendar filters */ | 283 | /** read settings for calendar filters */ |
284 | void readFilterSettings(KConfig *config); | 284 | void readFilterSettings(KConfig *config); |
285 | 285 | ||
286 | /** write settings for calendar filters */ | 286 | /** write settings for calendar filters */ |
287 | void writeFilterSettings(KConfig *config); | 287 | void writeFilterSettings(KConfig *config); |
288 | 288 | ||
289 | /** passes on the message that an event has changed to the currently | 289 | /** passes on the message that an event has changed to the currently |
290 | * activated view so that it can make appropriate display changes. */ | 290 | * activated view so that it can make appropriate display changes. */ |
291 | void changeEventDisplay(Event *, int); | 291 | void changeEventDisplay(Event *, int); |
292 | void changeIncidenceDisplay(Incidence *, int); | 292 | void changeIncidenceDisplay(Incidence *, int); |
293 | void changeTodoDisplay(Todo *, int); | 293 | void changeTodoDisplay(Todo *, int); |
294 | 294 | ||
295 | void eventAdded(Event *); | 295 | void eventAdded(Event *); |
296 | void eventChanged(Event *); | 296 | void eventChanged(Event *); |
297 | void eventToBeDeleted(Event *); | 297 | void eventToBeDeleted(Event *); |
298 | void eventDeleted(); | 298 | void eventDeleted(); |
299 | 299 | ||
300 | void todoAdded(Todo *); | 300 | void todoAdded(Todo *); |
301 | void todoChanged(Todo *); | 301 | void todoChanged(Todo *); |
302 | void todoToBeDeleted(Todo *); | 302 | void todoToBeDeleted(Todo *); |
303 | void todoDeleted(); | 303 | void todoDeleted(); |
304 | 304 | ||
305 | void updateView(const QDate &start, const QDate &end); | 305 | void updateView(const QDate &start, const QDate &end); |
306 | void updateView(); | 306 | void updateView(); |
307 | 307 | ||
308 | /** Full update of visible todo views */ | 308 | /** Full update of visible todo views */ |
309 | void updateTodoViews(); | 309 | void updateTodoViews(); |
310 | 310 | ||
311 | void updateUnmanagedViews(); | 311 | void updateUnmanagedViews(); |
312 | 312 | ||
313 | /** cut the current appointment to the clipboard */ | 313 | /** cut the current appointment to the clipboard */ |
314 | void edit_cut(); | 314 | void edit_cut(); |
315 | 315 | ||
316 | /** copy the current appointment(s) to the clipboard */ | 316 | /** copy the current appointment(s) to the clipboard */ |
317 | void edit_copy(); | 317 | void edit_copy(); |
318 | 318 | ||
319 | /** paste the current vobject(s) in the clipboard buffer into calendar */ | 319 | /** paste the current vobject(s) in the clipboard buffer into calendar */ |
320 | void edit_paste(); | 320 | void edit_paste(); |
321 | 321 | ||
322 | /** edit viewing and configuration options. */ | 322 | /** edit viewing and configuration options. */ |
323 | void edit_options(); | 323 | void edit_options(); |
324 | /** | 324 | /** |
325 | Functions for printing, previewing a print, and setting up printing | 325 | Functions for printing, previewing a print, and setting up printing |
326 | parameters. | 326 | parameters. |
327 | */ | 327 | */ |
328 | void print(); | 328 | void print(); |
329 | void printSetup(); | 329 | void printSetup(); |
330 | void printPreview(); | 330 | void printPreview(); |
331 | 331 | ||
332 | /** Export as iCalendar file */ | 332 | /** Export as iCalendar file */ |
333 | void exportICalendar(); | 333 | void exportICalendar(); |
334 | 334 | ||
335 | /** Export as vCalendar file */ | 335 | /** Export as vCalendar file */ |
336 | bool exportVCalendar( QString fn); | 336 | bool exportVCalendar( QString fn); |
337 | 337 | ||
338 | /** pop up a dialog to show an existing appointment. */ | 338 | /** pop up a dialog to show an existing appointment. */ |
339 | void appointment_show(); | 339 | void appointment_show(); |
340 | /** | 340 | /** |
341 | * pop up an Appointment Dialog to edit an existing appointment.Get | 341 | * pop up an Appointment Dialog to edit an existing appointment.Get |
342 | * information on the appointment from the list of unique IDs that is | 342 | * information on the appointment from the list of unique IDs that is |
343 | * currently in the View, called currIds. | 343 | * currently in the View, called currIds. |
344 | */ | 344 | */ |
345 | void appointment_edit(); | 345 | void appointment_edit(); |
346 | /** | 346 | /** |
347 | * pop up dialog confirming deletion of currently selected event in the | 347 | * pop up dialog confirming deletion of currently selected event in the |
348 | * View. | 348 | * View. |
349 | */ | 349 | */ |
350 | void appointment_delete(); | 350 | void appointment_delete(); |
351 | 351 | ||
352 | /** mails the currently selected event to a particular user as a vCalendar | 352 | /** mails the currently selected event to a particular user as a vCalendar |
353 | attachment. */ | 353 | attachment. */ |
354 | void action_mail(); | 354 | void action_mail(); |
355 | 355 | ||
356 | /* frees a subtodo from it's relation */ | 356 | /* frees a subtodo from it's relation */ |
357 | void todo_unsub( Todo * ); | 357 | void todo_unsub( Todo * ); |
358 | void todo_resub( Todo * parent, Todo * sub ); | 358 | void todo_resub( Todo * parent, Todo * sub ); |
359 | 359 | ||
360 | /** Take ownership of selected event. */ | 360 | /** Take ownership of selected event. */ |
361 | void takeOverEvent(); | 361 | void takeOverEvent(); |
362 | 362 | ||
363 | /** Take ownership of all events in calendar. */ | 363 | /** Take ownership of all events in calendar. */ |
364 | void takeOverCalendar(); | 364 | void takeOverCalendar(); |
365 | 365 | ||
366 | /** query whether or not the calendar is "dirty". */ | 366 | /** query whether or not the calendar is "dirty". */ |
367 | bool isModified(); | 367 | bool isModified(); |
368 | /** set the state of calendar. Modified means "dirty", i.e. needing a save. */ | 368 | /** set the state of calendar. Modified means "dirty", i.e. needing a save. */ |
369 | void setModified(bool modified=true); | 369 | void setModified(bool modified=true); |
370 | 370 | ||
371 | /** query if the calendar is read-only. */ | 371 | /** query if the calendar is read-only. */ |
372 | bool isReadOnly(); | 372 | bool isReadOnly(); |
373 | /** set state of calendar to read-only */ | 373 | /** set state of calendar to read-only */ |
374 | void setReadOnly(bool readOnly=true); | 374 | void setReadOnly(bool readOnly=true); |
375 | 375 | ||
376 | void eventUpdated(Incidence *); | 376 | void eventUpdated(Incidence *); |
377 | 377 | ||
378 | /* iTIP scheduling actions */ | 378 | /* iTIP scheduling actions */ |
379 | void schedule_publish(Incidence *incidence = 0); | 379 | void schedule_publish(Incidence *incidence = 0); |
380 | void schedule_request(Incidence *incidence = 0); | 380 | void schedule_request(Incidence *incidence = 0); |
381 | void schedule_refresh(Incidence *incidence = 0); | 381 | void schedule_refresh(Incidence *incidence = 0); |
382 | void schedule_cancel(Incidence *incidence = 0); | 382 | void schedule_cancel(Incidence *incidence = 0); |
383 | void schedule_add(Incidence *incidence = 0); | 383 | void schedule_add(Incidence *incidence = 0); |
384 | void schedule_reply(Incidence *incidence = 0); | 384 | void schedule_reply(Incidence *incidence = 0); |
385 | void schedule_counter(Incidence *incidence = 0); | 385 | void schedule_counter(Incidence *incidence = 0); |
386 | void schedule_declinecounter(Incidence *incidence = 0); | 386 | void schedule_declinecounter(Incidence *incidence = 0); |
387 | void schedule_publish_freebusy(int daysToPublish = 30); | 387 | void schedule_publish_freebusy(int daysToPublish = 30); |
388 | 388 | ||
389 | void openAddressbook(); | 389 | void openAddressbook(); |
390 | 390 | ||
391 | void editFilters(); | 391 | void editFilters(); |
392 | void toggleFilerEnabled(); | 392 | void toggleFilerEnabled(); |
393 | QPtrList<CalFilter> filters(); | 393 | QPtrList<CalFilter> filters(); |
394 | void toggleFilter(); | 394 | void toggleFilter(); |
395 | void showFilter(bool visible); | 395 | void showFilter(bool visible); |
396 | void updateFilter(); | 396 | void updateFilter(); |
397 | void filterEdited(); | 397 | void filterEdited(); |
398 | void selectFilter( int ); | 398 | void selectFilter( int ); |
399 | KOFilterView *filterView(); | 399 | KOFilterView *filterView(); |
400 | 400 | ||
401 | void showIntro(); | 401 | void showIntro(); |
402 | 402 | ||
403 | /** Move the curdatepient view date to today */ | 403 | /** Move the curdatepient view date to today */ |
404 | void goToday(); | 404 | void goToday(); |
405 | 405 | ||
406 | /** Move to the next date(s) in the current view */ | 406 | /** Move to the next date(s) in the current view */ |
407 | void goNext(); | 407 | void goNext(); |
408 | 408 | ||
409 | /** Move to the previous date(s) in the current view */ | 409 | /** Move to the previous date(s) in the current view */ |
410 | void goPrevious(); | 410 | void goPrevious(); |
411 | /** Move to the next date(s) in the current view */ | 411 | /** Move to the next date(s) in the current view */ |
412 | void goNextMonth(); | 412 | void goNextMonth(); |
413 | 413 | ||
414 | /** Move to the previous date(s) in the current view */ | 414 | /** Move to the previous date(s) in the current view */ |
415 | void goPreviousMonth(); | 415 | void goPreviousMonth(); |
416 | 416 | ||
417 | void toggleExpand(); | 417 | void toggleExpand(); |
418 | void toggleDateNavigatorWidget(); | 418 | void toggleDateNavigatorWidget(); |
419 | void toggleAllDaySize(); | 419 | void toggleAllDaySize(); |
420 | void dialogClosing(Incidence *); | 420 | void dialogClosing(Incidence *); |
421 | 421 | ||
422 | /** Look for new messages in the inbox */ | 422 | /** Look for new messages in the inbox */ |
423 | void lookForIncomingMessages(); | 423 | void lookForIncomingMessages(); |
424 | /** Look for new messages in the outbox */ | 424 | /** Look for new messages in the outbox */ |
425 | void lookForOutgoingMessages(); | 425 | void lookForOutgoingMessages(); |
426 | 426 | ||
427 | void processMainViewSelection( Incidence * ); | 427 | void processMainViewSelection( Incidence * ); |
428 | void processTodoListSelection( Incidence * ); | 428 | void processTodoListSelection( Incidence * ); |
429 | 429 | ||
430 | void processIncidenceSelection( Incidence * ); | 430 | void processIncidenceSelection( Incidence * ); |
431 | 431 | ||
432 | void purgeCompleted(); | 432 | void purgeCompleted(); |
433 | bool removeCompletedSubTodos( Todo* ); | 433 | bool removeCompletedSubTodos( Todo* ); |
434 | void slotCalendarChanged(); | 434 | void slotCalendarChanged(); |
435 | bool importBday(); | 435 | bool importBday(); |
436 | bool addAnniversary( QDate data, QString name, KCal::Attendee* a , bool birthday ); | 436 | bool addAnniversary( QDate data, QString name, KCal::Attendee* a , bool birthday ); |
437 | bool importQtopia( const QString &categoriesFile, | 437 | bool importQtopia( const QString &categoriesFile, |
438 | const QString &datebookFile, | 438 | const QString &datebookFile, |
439 | const QString &tasklistFile ); | 439 | const QString &tasklistFile ); |
440 | void syncExternal( int mode ); | 440 | void syncExternal( int mode ); |
441 | void slotSelectPickerDate( QDate ) ; | 441 | void slotSelectPickerDate( QDate ) ; |
442 | void showDatePicker( ) ; | 442 | void showDatePicker( ) ; |
443 | void moveIncidence(Incidence *) ; | 443 | void moveIncidence(Incidence *) ; |
444 | void beamIncidence(Incidence *) ; | 444 | void beamIncidence(Incidence *) ; |
445 | void beamCalendar() ; | 445 | void beamCalendar() ; |
446 | void beamFilteredCalendar() ; | 446 | void beamFilteredCalendar() ; |
447 | void beamIncidenceList(QPtrList<Incidence>) ; | 447 | void beamIncidenceList(QPtrList<Incidence>) ; |
448 | void manageCategories(); | 448 | void manageCategories(); |
449 | int addCategories(); | 449 | int addCategories(); |
450 | void removeCategories(); | 450 | void removeCategories(); |
451 | void setSyncDevice( QString ); | 451 | void setSyncDevice( QString ); |
452 | void setSyncName( QString ); | 452 | void setSyncName( QString ); |
453 | protected slots: | 453 | protected slots: |
454 | void timerAlarm(); | 454 | void timerAlarm(); |
455 | void suspendAlarm(); | 455 | void suspendAlarm(); |
456 | void beamDone( Ir *ir ); | 456 | void beamDone( Ir *ir ); |
457 | /** Select a view or adapt the current view to display the specified dates. */ | 457 | /** Select a view or adapt the current view to display the specified dates. */ |
458 | void showDates( const KCal::DateList & ); | 458 | void showDates( const KCal::DateList & ); |
459 | void selectWeekNum ( int ); | 459 | void selectWeekNum ( int ); |
460 | 460 | ||
461 | public: | 461 | public: |
462 | // show a standard warning | 462 | // show a standard warning |
463 | // returns KMsgBox::yesNoCancel() | 463 | // returns KMsgBox::yesNoCancel() |
464 | int msgCalModified(); | 464 | int msgCalModified(); |
465 | virtual bool sync(KSyncManager* manager, QString filename, int mode); | 465 | virtual bool sync(KSyncManager* manager, QString filename, int mode); |
466 | 466 | ||
467 | virtual bool syncExternal(KSyncManager* manager, QString resource); | 467 | virtual bool syncExternal(KSyncManager* manager, QString resource); |
468 | virtual void removeSyncInfo( QString syncProfile); | ||
468 | void setSyncManager(KSyncManager* manager); | 469 | void setSyncManager(KSyncManager* manager); |
469 | void setLoadedFileVersion(QDateTime); | 470 | void setLoadedFileVersion(QDateTime); |
470 | bool checkFileVersion(QString fn); | 471 | bool checkFileVersion(QString fn); |
471 | bool checkFileChanged(QString fn); | 472 | bool checkFileChanged(QString fn); |
472 | Event* getLastSyncEvent(); | 473 | Event* getLastSyncEvent(); |
473 | /** Adapt navigation units correpsonding to step size of navigation of the | 474 | /** Adapt navigation units correpsonding to step size of navigation of the |
474 | * current view. | 475 | * current view. |
475 | */ | 476 | */ |
476 | void adaptNavigationUnits(); | 477 | void adaptNavigationUnits(); |
477 | bool synchronizeCalendar( Calendar* local, Calendar* remote, int mode ); | 478 | bool synchronizeCalendar( Calendar* local, Calendar* remote, int mode ); |
478 | int takeEvent( Incidence* local, Incidence* remote, int mode, bool full = false ); | 479 | int takeEvent( Incidence* local, Incidence* remote, int mode, bool full = false ); |
479 | //Attendee* getYourAttendee(Event *event); | 480 | //Attendee* getYourAttendee(Event *event); |
480 | protected: | 481 | protected: |
481 | void schedule(Scheduler::Method, Incidence *incidence = 0); | 482 | void schedule(Scheduler::Method, Incidence *incidence = 0); |
482 | 483 | ||
483 | // returns KMsgBox::OKCandel() | 484 | // returns KMsgBox::OKCandel() |
484 | int msgItemDelete(); | 485 | int msgItemDelete(); |
485 | void showEventEditor(); | 486 | void showEventEditor(); |
486 | void showTodoEditor(); | 487 | void showTodoEditor(); |
487 | void writeLocale(); | 488 | void writeLocale(); |
488 | Todo *selectedTodo(); | 489 | Todo *selectedTodo(); |
489 | 490 | ||
490 | private: | 491 | private: |
491 | bool mSyncKDE; | 492 | bool mSyncKDE; |
492 | KSyncManager* mSyncManager; | 493 | KSyncManager* mSyncManager; |
493 | AlarmDialog * mAlarmDialog; | 494 | AlarmDialog * mAlarmDialog; |
494 | QString mAlarmNotification; | 495 | QString mAlarmNotification; |
495 | QString mSuspendAlarmNotification; | 496 | QString mSuspendAlarmNotification; |
496 | QTimer* mSuspendTimer; | 497 | QTimer* mSuspendTimer; |
497 | QTimer* mAlarmTimer; | 498 | QTimer* mAlarmTimer; |
498 | QTimer* mRecheckAlarmTimer; | 499 | QTimer* mRecheckAlarmTimer; |
499 | void computeAlarm( QString ); | 500 | void computeAlarm( QString ); |
500 | void startAlarm( QString, QString ); | 501 | void startAlarm( QString, QString ); |
501 | void setSyncEventsReadOnly(); | 502 | void setSyncEventsReadOnly(); |
502 | 503 | ||
503 | QDateTime loadedFileVersion; | 504 | QDateTime loadedFileVersion; |
504 | void checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ); | 505 | void checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ); |
505 | void checkExternalId( Incidence * inc ); | 506 | void checkExternalId( Incidence * inc ); |
506 | int mGlobalSyncMode; | 507 | int mGlobalSyncMode; |
507 | QString mCurrentSyncDevice; | 508 | QString mCurrentSyncDevice; |
508 | QString mCurrentSyncName; | 509 | QString mCurrentSyncName; |
509 | KOBeamPrefs* beamDialog; | 510 | KOBeamPrefs* beamDialog; |
510 | void init(); | 511 | void init(); |
511 | int mDatePickerMode; | 512 | int mDatePickerMode; |
512 | bool mFlagEditDescription; | 513 | bool mFlagEditDescription; |
513 | QDateTime mLastCalendarSync; | 514 | QDateTime mLastCalendarSync; |
514 | void createPrinter(); | 515 | void createPrinter(); |
515 | 516 | ||
516 | void calendarModified( bool, Calendar * ); | 517 | void calendarModified( bool, Calendar * ); |
517 | 518 | ||
518 | CalPrinter *mCalPrinter; | 519 | CalPrinter *mCalPrinter; |
519 | 520 | ||
520 | QSplitter *mPanner; | 521 | QSplitter *mPanner; |
521 | QSplitter *mLeftSplitter; | 522 | QSplitter *mLeftSplitter; |
522 | QWidget *mLeftFrame; | 523 | QWidget *mLeftFrame; |
523 | QWidgetStack *mRightFrame; | 524 | QWidgetStack *mRightFrame; |
524 | 525 | ||
525 | KDatePicker* mDatePicker; | 526 | KDatePicker* mDatePicker; |
526 | QVBox* mDateFrame; | 527 | QVBox* mDateFrame; |
527 | NavigatorBar *mNavigatorBar; | 528 | NavigatorBar *mNavigatorBar; |
528 | 529 | ||
529 | KDateNavigator *mDateNavigator; // widget showing small month view. | 530 | KDateNavigator *mDateNavigator; // widget showing small month view. |
530 | 531 | ||
531 | KOFilterView *mFilterView; | 532 | KOFilterView *mFilterView; |
532 | 533 | ||
533 | ResourceView *mResourceView; | 534 | ResourceView *mResourceView; |
534 | 535 | ||
535 | // calendar object for this viewing instance | 536 | // calendar object for this viewing instance |
536 | Calendar *mCalendar; | 537 | Calendar *mCalendar; |
537 | 538 | ||
538 | CalendarResourceManager *mResourceManager; | 539 | CalendarResourceManager *mResourceManager; |
539 | 540 | ||
540 | FileStorage *mStorage; | 541 | FileStorage *mStorage; |
541 | 542 | ||
542 | DateNavigator *mNavigator; | 543 | DateNavigator *mNavigator; |
543 | 544 | ||
544 | KOViewManager *mViewManager; | 545 | KOViewManager *mViewManager; |
545 | KODialogManager *mDialogManager; | 546 | KODialogManager *mDialogManager; |
546 | 547 | ||
547 | // Calendar filters | 548 | // Calendar filters |
548 | QPtrList<CalFilter> mFilters; | 549 | QPtrList<CalFilter> mFilters; |
549 | 550 | ||
550 | // various housekeeping variables. | 551 | // various housekeeping variables. |
551 | bool mModified; // flag indicating if calendar is modified | 552 | bool mModified; // flag indicating if calendar is modified |
552 | bool mReadOnly; // flag indicating if calendar is read-only | 553 | bool mReadOnly; // flag indicating if calendar is read-only |
553 | QDate mSaveSingleDate; | 554 | QDate mSaveSingleDate; |
554 | 555 | ||
555 | Incidence *mSelectedIncidence; | 556 | Incidence *mSelectedIncidence; |
556 | Incidence *mMoveIncidence; | 557 | Incidence *mMoveIncidence; |
557 | KOTodoView *mTodoList; | 558 | KOTodoView *mTodoList; |
558 | KOEventEditor * mEventEditor; | 559 | KOEventEditor * mEventEditor; |
559 | KOTodoEditor * mTodoEditor; | 560 | KOTodoEditor * mTodoEditor; |
560 | KOEventViewerDialog * mEventViewerDialog; | 561 | KOEventViewerDialog * mEventViewerDialog; |
561 | void keyPressEvent ( QKeyEvent *e) ; | 562 | void keyPressEvent ( QKeyEvent *e) ; |
562 | //QMap<Incidence*,KOIncidenceEditor*> mDialogList; | 563 | //QMap<Incidence*,KOIncidenceEditor*> mDialogList; |
563 | }; | 564 | }; |
564 | 565 | ||
565 | 566 | ||
566 | class CalendarViewVisitor : public Incidence::Visitor | 567 | class CalendarViewVisitor : public Incidence::Visitor |
567 | { | 568 | { |
568 | public: | 569 | public: |
569 | CalendarViewVisitor() : mView( 0 ) {} | 570 | CalendarViewVisitor() : mView( 0 ) {} |
570 | 571 | ||
571 | bool act( Incidence *incidence, CalendarView *view ) | 572 | bool act( Incidence *incidence, CalendarView *view ) |
572 | { | 573 | { |
573 | mView = view; | 574 | mView = view; |
574 | return incidence->accept( *this ); | 575 | return incidence->accept( *this ); |
575 | } | 576 | } |
576 | 577 | ||
577 | protected: | 578 | protected: |
578 | CalendarView *mView; | 579 | CalendarView *mView; |
579 | }; | 580 | }; |
580 | 581 | ||
581 | class ShowIncidenceVisitor : public CalendarViewVisitor | 582 | class ShowIncidenceVisitor : public CalendarViewVisitor |
582 | { | 583 | { |
583 | protected: | 584 | protected: |
584 | bool visit( Event *event ) { mView->showEvent( event ); return true; } | 585 | bool visit( Event *event ) { mView->showEvent( event ); return true; } |
585 | bool visit( Todo *todo ) { mView->showTodo( todo ); return true; } | 586 | bool visit( Todo *todo ) { mView->showTodo( todo ); return true; } |
586 | bool visit( Journal * j ) { mView->showJournal( j );return true; } | 587 | bool visit( Journal * j ) { mView->showJournal( j );return true; } |
587 | }; | 588 | }; |
588 | 589 | ||
589 | class EditIncidenceVisitor : public CalendarViewVisitor | 590 | class EditIncidenceVisitor : public CalendarViewVisitor |
590 | { | 591 | { |
591 | protected: | 592 | protected: |
592 | bool visit( Event *event ) { mView->editEvent( event ); return true; } | 593 | bool visit( Event *event ) { mView->editEvent( event ); return true; } |
593 | bool visit( Todo *todo ) { mView->editTodo( todo ); return true; } | 594 | bool visit( Todo *todo ) { mView->editTodo( todo ); return true; } |
594 | bool visit( Journal *j ) { mView->editJournal( j); return true; } | 595 | bool visit( Journal *j ) { mView->editJournal( j); return true; } |
595 | }; | 596 | }; |
596 | 597 | ||
597 | class DeleteIncidenceVisitor : public CalendarViewVisitor | 598 | class DeleteIncidenceVisitor : public CalendarViewVisitor |
598 | { | 599 | { |
599 | protected: | 600 | protected: |
600 | bool visit( Event *event ) { mView->deleteEvent( event ); return true; } | 601 | bool visit( Event *event ) { mView->deleteEvent( event ); return true; } |
601 | bool visit( Todo *todo ) { mView->deleteTodo( todo ); return true; } | 602 | bool visit( Todo *todo ) { mView->deleteTodo( todo ); return true; } |
602 | bool visit( Journal * j) {mView->deleteJournal( j ); return true; } | 603 | bool visit( Journal * j) {mView->deleteJournal( j ); return true; } |
603 | }; | 604 | }; |
604 | 605 | ||
605 | #endif | 606 | #endif |
diff --git a/libkdepim/ksyncmanager.h b/libkdepim/ksyncmanager.h index 4a610fa..af4f1ab 100644 --- a/libkdepim/ksyncmanager.h +++ b/libkdepim/ksyncmanager.h | |||
@@ -7,205 +7,206 @@ | |||
7 | License as published by the Free Software Foundation; either | 7 | License as published by the Free Software Foundation; either |
8 | version 2 of the License, or (at your option) any later version. | 8 | version 2 of the License, or (at your option) any later version. |
9 | 9 | ||
10 | This library is distributed in the hope that it will be useful, | 10 | This library 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 GNU | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | Library General Public License for more details. | 13 | Library General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU Library General Public License | 15 | You should have received a copy of the GNU Library General Public License |
16 | along with this library; see the file COPYING.LIB. If not, write to | 16 | along with this library; see the file COPYING.LIB. If not, write to |
17 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 17 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
18 | Boston, MA 02111-1307, USA. | 18 | Boston, MA 02111-1307, USA. |
19 | 19 | ||
20 | $Id$ | 20 | $Id$ |
21 | */ | 21 | */ |
22 | #ifndef _KSYNCMANAGER_H | 22 | #ifndef _KSYNCMANAGER_H |
23 | #define _KSYNCMANAGER_H | 23 | #define _KSYNCMANAGER_H |
24 | 24 | ||
25 | #include <qobject.h> | 25 | #include <qobject.h> |
26 | #include <qstring.h> | 26 | #include <qstring.h> |
27 | #include <qsocket.h> | 27 | #include <qsocket.h> |
28 | #include <qdatetime.h> | 28 | #include <qdatetime.h> |
29 | #include <qserversocket.h> | 29 | #include <qserversocket.h> |
30 | #include <qtextstream.h> | 30 | #include <qtextstream.h> |
31 | #include <qregexp.h> | 31 | #include <qregexp.h> |
32 | 32 | ||
33 | class QPopupMenu; | 33 | class QPopupMenu; |
34 | class KSyncProfile; | 34 | class KSyncProfile; |
35 | class KPimPrefs; | 35 | class KPimPrefs; |
36 | class QWidget; | 36 | class QWidget; |
37 | class KSyncManager; | 37 | class KSyncManager; |
38 | class KSyncInterface; | 38 | class KSyncInterface; |
39 | class QProgressBar; | 39 | class QProgressBar; |
40 | 40 | ||
41 | 41 | ||
42 | class KServerSocket : public QServerSocket | 42 | class KServerSocket : public QServerSocket |
43 | { | 43 | { |
44 | Q_OBJECT | 44 | Q_OBJECT |
45 | 45 | ||
46 | public: | 46 | public: |
47 | KServerSocket ( QString password, Q_UINT16 port, int backlog = 0, QObject * parent=0, const char * name=0 ); | 47 | KServerSocket ( QString password, Q_UINT16 port, int backlog = 0, QObject * parent=0, const char * name=0 ); |
48 | 48 | ||
49 | void newConnection ( int socket ) ; | 49 | void newConnection ( int socket ) ; |
50 | void setFileName( QString fn ) {mFileName = fn;}; | 50 | void setFileName( QString fn ) {mFileName = fn;}; |
51 | signals: | 51 | signals: |
52 | void file_received( bool ); | 52 | void file_received( bool ); |
53 | void request_file(); | 53 | void request_file(); |
54 | void saveFile(); | 54 | void saveFile(); |
55 | void endConnect(); | 55 | void endConnect(); |
56 | private slots: | 56 | private slots: |
57 | void discardClient(); | 57 | void discardClient(); |
58 | void readClient(); | 58 | void readClient(); |
59 | void readBackFileFromSocket(); | 59 | void readBackFileFromSocket(); |
60 | private : | 60 | private : |
61 | bool blockRC; | 61 | bool blockRC; |
62 | void send_file(); | 62 | void send_file(); |
63 | void get_file(); | 63 | void get_file(); |
64 | void end_connect(); | 64 | void end_connect(); |
65 | QDialog* mSyncActionDialog; | 65 | QDialog* mSyncActionDialog; |
66 | QSocket* mSocket; | 66 | QSocket* mSocket; |
67 | QString mPassWord; | 67 | QString mPassWord; |
68 | QString mFileName; | 68 | QString mFileName; |
69 | QTime piTime; | 69 | QTime piTime; |
70 | QString piFileString; | 70 | QString piFileString; |
71 | }; | 71 | }; |
72 | 72 | ||
73 | class KCommandSocket : public QObject | 73 | class KCommandSocket : public QObject |
74 | { | 74 | { |
75 | Q_OBJECT | 75 | Q_OBJECT |
76 | public: | 76 | public: |
77 | enum state { successR, errorR, successW, errorW, errorTO, quiet }; | 77 | enum state { successR, errorR, successW, errorW, errorTO, quiet }; |
78 | KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent=0, const char * name=0 ); | 78 | KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent=0, const char * name=0 ); |
79 | void readFile( QString ); | 79 | void readFile( QString ); |
80 | void writeFile( QString ); | 80 | void writeFile( QString ); |
81 | void sendStop(); | 81 | void sendStop(); |
82 | 82 | ||
83 | signals: | 83 | signals: |
84 | void commandFinished( KCommandSocket*, int ); | 84 | void commandFinished( KCommandSocket*, int ); |
85 | private slots: | 85 | private slots: |
86 | void startReadFileFromSocket(); | 86 | void startReadFileFromSocket(); |
87 | void readFileFromSocket(); | 87 | void readFileFromSocket(); |
88 | void deleteSocket(); | 88 | void deleteSocket(); |
89 | void writeFileToSocket(); | 89 | void writeFileToSocket(); |
90 | private : | 90 | private : |
91 | QSocket* mSocket; | 91 | QSocket* mSocket; |
92 | QString mPassWord; | 92 | QString mPassWord; |
93 | Q_UINT16 mPort; | 93 | Q_UINT16 mPort; |
94 | QString mHost; | 94 | QString mHost; |
95 | QString mFileName; | 95 | QString mFileName; |
96 | QTimer* mTimerSocket; | 96 | QTimer* mTimerSocket; |
97 | int mRetVal; | 97 | int mRetVal; |
98 | QTime mTime; | 98 | QTime mTime; |
99 | QString mFileString; | 99 | QString mFileString; |
100 | bool mFirst; | 100 | bool mFirst; |
101 | }; | 101 | }; |
102 | 102 | ||
103 | 103 | ||
104 | class KSyncManager : public QObject | 104 | class KSyncManager : public QObject |
105 | { | 105 | { |
106 | Q_OBJECT | 106 | Q_OBJECT |
107 | 107 | ||
108 | public: | 108 | public: |
109 | enum TargetApp { | 109 | enum TargetApp { |
110 | KOPI = 0, | 110 | KOPI = 0, |
111 | KAPI = 1, | 111 | KAPI = 1, |
112 | PWMPI = 2 }; | 112 | PWMPI = 2 }; |
113 | 113 | ||
114 | KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu); | 114 | KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu); |
115 | ~KSyncManager() ; | 115 | ~KSyncManager() ; |
116 | 116 | ||
117 | void multiSync( bool askforPrefs ); | 117 | void multiSync( bool askforPrefs ); |
118 | bool blockSave() { return mBlockSaveFlag; } | 118 | bool blockSave() { return mBlockSaveFlag; } |
119 | void setBlockSave(bool sa) { mBlockSaveFlag = sa; } | 119 | void setBlockSave(bool sa) { mBlockSaveFlag = sa; } |
120 | void setDefaultFileName( QString s) { mDefFileName = s ;} | 120 | void setDefaultFileName( QString s) { mDefFileName = s ;} |
121 | QString defaultFileName() { return mDefFileName ;} | 121 | QString defaultFileName() { return mDefFileName ;} |
122 | QString syncFileName(); | 122 | QString syncFileName(); |
123 | void enableQuick( bool ask = true); | 123 | void enableQuick( bool ask = true); |
124 | 124 | ||
125 | QString getCurrentSyncDevice() { return mCurrentSyncDevice; } | 125 | QString getCurrentSyncDevice() { return mCurrentSyncDevice; } |
126 | QString getCurrentSyncName() { return mCurrentSyncName; } | 126 | QString getCurrentSyncName() { return mCurrentSyncName; } |
127 | 127 | ||
128 | void showProgressBar(int percentage, QString caption = QString::null, int total=100); | 128 | void showProgressBar(int percentage, QString caption = QString::null, int total=100); |
129 | void hideProgressBar(); | 129 | void hideProgressBar(); |
130 | bool isProgressBarCanceled(); | 130 | bool isProgressBarCanceled(); |
131 | 131 | ||
132 | // sync stuff | 132 | // sync stuff |
133 | QString mLocalMachineName; | 133 | QString mLocalMachineName; |
134 | QStringList mExternSyncProfiles; | 134 | QStringList mExternSyncProfiles; |
135 | QStringList mSyncProfileNames; | 135 | QStringList mSyncProfileNames; |
136 | bool mAskForPreferences; | 136 | bool mAskForPreferences; |
137 | bool mShowSyncSummary; | 137 | bool mShowSyncSummary; |
138 | bool mIsKapiFile; | 138 | bool mIsKapiFile; |
139 | bool mWriteBackExistingOnly; | 139 | bool mWriteBackExistingOnly; |
140 | int mSyncAlgoPrefs; | 140 | int mSyncAlgoPrefs; |
141 | bool mWriteBackFile; | 141 | bool mWriteBackFile; |
142 | int mWriteBackInFuture; | 142 | int mWriteBackInFuture; |
143 | QString mPhoneDevice; | 143 | QString mPhoneDevice; |
144 | QString mPhoneConnection; | 144 | QString mPhoneConnection; |
145 | QString mPhoneModel; | 145 | QString mPhoneModel; |
146 | QString mPassWordPiSync; | 146 | QString mPassWordPiSync; |
147 | QString mActiveSyncPort; | 147 | QString mActiveSyncPort; |
148 | QString mActiveSyncIP ; | 148 | QString mActiveSyncIP ; |
149 | 149 | ||
150 | signals: | 150 | signals: |
151 | void save(); | 151 | void save(); |
152 | void request_file(); | 152 | void request_file(); |
153 | void getFile( bool ); | 153 | void getFile( bool ); |
154 | 154 | ||
155 | public slots: | 155 | public slots: |
156 | void slotSyncMenu( int ); | 156 | void slotSyncMenu( int ); |
157 | void deleteCommandSocket(KCommandSocket*s, int state); | 157 | void deleteCommandSocket(KCommandSocket*s, int state); |
158 | void readFileFromSocket(); | 158 | void readFileFromSocket(); |
159 | void fillSyncMenu(); | 159 | void fillSyncMenu(); |
160 | 160 | ||
161 | private: | 161 | private: |
162 | void syncPi(); | 162 | void syncPi(); |
163 | KServerSocket * mServerSocket; | 163 | KServerSocket * mServerSocket; |
164 | KPimPrefs* mPrefs; | 164 | KPimPrefs* mPrefs; |
165 | QString mDefFileName; | 165 | QString mDefFileName; |
166 | QString mCurrentSyncDevice; | 166 | QString mCurrentSyncDevice; |
167 | QString mCurrentSyncName; | 167 | QString mCurrentSyncName; |
168 | void quickSyncLocalFile(); | 168 | void quickSyncLocalFile(); |
169 | bool syncWithFile( QString fn , bool quick ); | 169 | bool syncWithFile( QString fn , bool quick ); |
170 | void syncLocalFile(); | 170 | void syncLocalFile(); |
171 | void syncPhone(); | 171 | void syncPhone(); |
172 | void syncSharp(); | 172 | void syncSharp(); |
173 | void syncKDE(); | 173 | void syncKDE(); |
174 | bool syncExternalApplication(QString); | 174 | bool syncExternalApplication(QString); |
175 | int mCurrentSyncProfile ; | 175 | int mCurrentSyncProfile ; |
176 | void syncRemote( KSyncProfile* prof, bool ask = true); | 176 | void syncRemote( KSyncProfile* prof, bool ask = true); |
177 | bool edit_sync_options(); | 177 | bool edit_sync_options(); |
178 | bool edit_pisync_options(); | 178 | bool edit_pisync_options(); |
179 | int ringSync(); | 179 | int ringSync(); |
180 | QString getPassword( ); | 180 | QString getPassword( ); |
181 | bool mPisyncFinished; | 181 | bool mPisyncFinished; |
182 | bool mBlockSaveFlag; | 182 | bool mBlockSaveFlag; |
183 | QWidget* mParent; | 183 | QWidget* mParent; |
184 | KSyncInterface* mImplementation; | 184 | KSyncInterface* mImplementation; |
185 | TargetApp mTargetApp; | 185 | TargetApp mTargetApp; |
186 | QPopupMenu* mSyncMenu; | 186 | QPopupMenu* mSyncMenu; |
187 | QProgressBar* bar; | 187 | QProgressBar* bar; |
188 | 188 | ||
189 | private slots: | 189 | private slots: |
190 | void confSync(); | 190 | void confSync(); |
191 | 191 | ||
192 | 192 | ||
193 | }; | 193 | }; |
194 | 194 | ||
195 | 195 | ||
196 | class KSyncInterface | 196 | class KSyncInterface |
197 | { | 197 | { |
198 | public : | 198 | public : |
199 | virtual void removeSyncInfo( QString syncProfile) = 0; | ||
199 | virtual bool sync(KSyncManager* manager, QString filename, int mode) = 0; | 200 | virtual bool sync(KSyncManager* manager, QString filename, int mode) = 0; |
200 | virtual bool syncExternal(KSyncManager* manager, QString resource) | 201 | virtual bool syncExternal(KSyncManager* manager, QString resource) |
201 | { | 202 | { |
202 | // empty implementation, because some syncable applications do not | 203 | // empty implementation, because some syncable applications do not |
203 | // have an external(sharpdtm) syncmode, like pwmanager. | 204 | // have an external(sharpdtm) syncmode, like pwmanager. |
204 | return false; | 205 | return false; |
205 | } | 206 | } |
206 | 207 | ||
207 | 208 | ||
208 | }; | 209 | }; |
209 | 210 | ||
210 | 211 | ||
211 | #endif | 212 | #endif |
diff --git a/pwmanager/pwmanager/pwm.cpp b/pwmanager/pwmanager/pwm.cpp index 2b8f2fa..6ae6e28 100644 --- a/pwmanager/pwmanager/pwm.cpp +++ b/pwmanager/pwmanager/pwm.cpp | |||
@@ -1275,198 +1275,204 @@ exit_fail: | |||
1275 | return false; | 1275 | return false; |
1276 | } | 1276 | } |
1277 | 1277 | ||
1278 | void PwM::print_slot() | 1278 | void PwM::print_slot() |
1279 | { | 1279 | { |
1280 | curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); | 1280 | curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); |
1281 | #ifndef PWM_EMBEDDED | 1281 | #ifndef PWM_EMBEDDED |
1282 | PwMPrint p(curDoc(), this); | 1282 | PwMPrint p(curDoc(), this); |
1283 | p.printNow(); | 1283 | p.printNow(); |
1284 | #else | 1284 | #else |
1285 | qDebug("PwM::print_slot , PRINTING IS NOT IMPLEMENTED"); | 1285 | qDebug("PwM::print_slot , PRINTING IS NOT IMPLEMENTED"); |
1286 | #endif | 1286 | #endif |
1287 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); | 1287 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); |
1288 | } | 1288 | } |
1289 | 1289 | ||
1290 | void PwM::genNewCard_slot() | 1290 | void PwM::genNewCard_slot() |
1291 | { | 1291 | { |
1292 | #ifdef CONFIG_KEYCARD | 1292 | #ifdef CONFIG_KEYCARD |
1293 | init->keycard()->genNewCard(); | 1293 | init->keycard()->genNewCard(); |
1294 | #endif | 1294 | #endif |
1295 | } | 1295 | } |
1296 | 1296 | ||
1297 | void PwM::eraseCard_slot() | 1297 | void PwM::eraseCard_slot() |
1298 | { | 1298 | { |
1299 | #ifdef CONFIG_KEYCARD | 1299 | #ifdef CONFIG_KEYCARD |
1300 | init->keycard()->eraseCard(); | 1300 | init->keycard()->eraseCard(); |
1301 | #endif | 1301 | #endif |
1302 | } | 1302 | } |
1303 | 1303 | ||
1304 | void PwM::readCardId_slot() | 1304 | void PwM::readCardId_slot() |
1305 | { | 1305 | { |
1306 | #ifdef CONFIG_KEYCARD | 1306 | #ifdef CONFIG_KEYCARD |
1307 | init->keycard()->displayKey(); | 1307 | init->keycard()->displayKey(); |
1308 | #endif | 1308 | #endif |
1309 | } | 1309 | } |
1310 | 1310 | ||
1311 | void PwM::makeCardBackup_slot() | 1311 | void PwM::makeCardBackup_slot() |
1312 | { | 1312 | { |
1313 | #ifdef CONFIG_KEYCARD | 1313 | #ifdef CONFIG_KEYCARD |
1314 | init->keycard()->makeBackupImage(); | 1314 | init->keycard()->makeBackupImage(); |
1315 | #endif | 1315 | #endif |
1316 | } | 1316 | } |
1317 | 1317 | ||
1318 | void PwM::replayCardBackup_slot() | 1318 | void PwM::replayCardBackup_slot() |
1319 | { | 1319 | { |
1320 | #ifdef CONFIG_KEYCARD | 1320 | #ifdef CONFIG_KEYCARD |
1321 | init->keycard()->replayBackupImage(); | 1321 | init->keycard()->replayBackupImage(); |
1322 | #endif | 1322 | #endif |
1323 | } | 1323 | } |
1324 | 1324 | ||
1325 | void PwM::execLauncher_slot() | 1325 | void PwM::execLauncher_slot() |
1326 | { | 1326 | { |
1327 | PWM_ASSERT(curDoc()); | 1327 | PWM_ASSERT(curDoc()); |
1328 | if (curDoc()->isDeepLocked()) | 1328 | if (curDoc()->isDeepLocked()) |
1329 | return; | 1329 | return; |
1330 | unsigned int curEntryIndex; | 1330 | unsigned int curEntryIndex; |
1331 | if (!view->getCurEntryIndex(&curEntryIndex)) | 1331 | if (!view->getCurEntryIndex(&curEntryIndex)) |
1332 | return; | 1332 | return; |
1333 | bool ret = curDoc()->execLauncher(view->getCurrentCategory(), | 1333 | bool ret = curDoc()->execLauncher(view->getCurrentCategory(), |
1334 | curEntryIndex); | 1334 | curEntryIndex); |
1335 | if (ret) | 1335 | if (ret) |
1336 | showStatMsg(i18n("Executed the \"Launcher\".")); | 1336 | showStatMsg(i18n("Executed the \"Launcher\".")); |
1337 | else | 1337 | else |
1338 | showStatMsg(i18n("ERROR: Couldn't execute the \"Launcher\"!")); | 1338 | showStatMsg(i18n("ERROR: Couldn't execute the \"Launcher\"!")); |
1339 | } | 1339 | } |
1340 | 1340 | ||
1341 | void PwM::goToURL_slot() | 1341 | void PwM::goToURL_slot() |
1342 | { | 1342 | { |
1343 | PWM_ASSERT(curDoc()); | 1343 | PWM_ASSERT(curDoc()); |
1344 | if (curDoc()->isDeepLocked()) | 1344 | if (curDoc()->isDeepLocked()) |
1345 | return; | 1345 | return; |
1346 | unsigned int curEntryIndex; | 1346 | unsigned int curEntryIndex; |
1347 | if (!view->getCurEntryIndex(&curEntryIndex)) | 1347 | if (!view->getCurEntryIndex(&curEntryIndex)) |
1348 | return; | 1348 | return; |
1349 | bool ret = curDoc()->goToURL(view->getCurrentCategory(), | 1349 | bool ret = curDoc()->goToURL(view->getCurrentCategory(), |
1350 | curEntryIndex); | 1350 | curEntryIndex); |
1351 | if (ret) | 1351 | if (ret) |
1352 | showStatMsg(i18n("started browser with current URL.")); | 1352 | showStatMsg(i18n("started browser with current URL.")); |
1353 | else | 1353 | else |
1354 | showStatMsg(i18n("ERROR: Couldn't start browser! Maybe invalid URL?")); | 1354 | showStatMsg(i18n("ERROR: Couldn't start browser! Maybe invalid URL?")); |
1355 | } | 1355 | } |
1356 | 1356 | ||
1357 | void PwM::copyToClipboard(const QString &s) | 1357 | void PwM::copyToClipboard(const QString &s) |
1358 | { | 1358 | { |
1359 | QClipboard *cb = QApplication::clipboard(); | 1359 | QClipboard *cb = QApplication::clipboard(); |
1360 | #ifndef PWM_EMBEDDED | 1360 | #ifndef PWM_EMBEDDED |
1361 | if (cb->supportsSelection()) | 1361 | if (cb->supportsSelection()) |
1362 | cb->setText(s, QClipboard::Selection); | 1362 | cb->setText(s, QClipboard::Selection); |
1363 | cb->setText(s, QClipboard::Clipboard); | 1363 | cb->setText(s, QClipboard::Clipboard); |
1364 | #else | 1364 | #else |
1365 | cb->setText(s); | 1365 | cb->setText(s); |
1366 | 1366 | ||
1367 | #endif | 1367 | #endif |
1368 | 1368 | ||
1369 | } | 1369 | } |
1370 | 1370 | ||
1371 | 1371 | ||
1372 | void PwM::showStatMsg(const QString &msg) | 1372 | void PwM::showStatMsg(const QString &msg) |
1373 | { | 1373 | { |
1374 | #ifdef DESKTOP_VERSION | 1374 | #ifdef DESKTOP_VERSION |
1375 | statusBar()->message(msg, STATUSBAR_MSG_TIMEOUT * 1000); | 1375 | statusBar()->message(msg, STATUSBAR_MSG_TIMEOUT * 1000); |
1376 | #else | 1376 | #else |
1377 | qDebug("Statusbar : %s",msg.latin1()); | 1377 | qDebug("Statusbar : %s",msg.latin1()); |
1378 | Global::statusMessage(msg); | 1378 | Global::statusMessage(msg); |
1379 | #endif | 1379 | #endif |
1380 | } | 1380 | } |
1381 | 1381 | ||
1382 | void PwM::focusInEvent(QFocusEvent *e) | 1382 | void PwM::focusInEvent(QFocusEvent *e) |
1383 | { | 1383 | { |
1384 | if (e->gotFocus()) { | 1384 | if (e->gotFocus()) { |
1385 | emit gotFocus(this); | 1385 | emit gotFocus(this); |
1386 | } else if (e->lostFocus()) { | 1386 | } else if (e->lostFocus()) { |
1387 | emit lostFocus(this); | 1387 | emit lostFocus(this); |
1388 | } | 1388 | } |
1389 | } | 1389 | } |
1390 | 1390 | ||
1391 | 1391 | ||
1392 | #ifdef PWM_EMBEDDED | 1392 | #ifdef PWM_EMBEDDED |
1393 | 1393 | ||
1394 | void PwM::whatsnew_slot() | 1394 | void PwM::whatsnew_slot() |
1395 | { | 1395 | { |
1396 | KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" ); | 1396 | KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" ); |
1397 | } | 1397 | } |
1398 | 1398 | ||
1399 | void PwM::showLicense_slot() | 1399 | void PwM::showLicense_slot() |
1400 | { | 1400 | { |
1401 | KApplication::showLicence(); | 1401 | KApplication::showLicence(); |
1402 | } | 1402 | } |
1403 | 1403 | ||
1404 | void PwM::faq_slot() | 1404 | void PwM::faq_slot() |
1405 | { | 1405 | { |
1406 | KApplication::showFile( "PWM/Pi FAQ", "kdepim/pwmanager/pwmanagerFAQ.txt" ); | 1406 | KApplication::showFile( "PWM/Pi FAQ", "kdepim/pwmanager/pwmanagerFAQ.txt" ); |
1407 | } | 1407 | } |
1408 | 1408 | ||
1409 | void PwM::syncHowTo_slot() | 1409 | void PwM::syncHowTo_slot() |
1410 | { | 1410 | { |
1411 | KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" ); | 1411 | KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" ); |
1412 | } | 1412 | } |
1413 | 1413 | ||
1414 | 1414 | ||
1415 | void PwM::createAboutData_slot() | 1415 | void PwM::createAboutData_slot() |
1416 | { | 1416 | { |
1417 | QString version; | 1417 | QString version; |
1418 | #include <../version> | 1418 | #include <../version> |
1419 | ; | 1419 | ; |
1420 | QMessageBox::about( this, "About PwManager/Pi", | 1420 | QMessageBox::about( this, "About PwManager/Pi", |
1421 | "PwManager/Platform-independent\n" | 1421 | "PwManager/Platform-independent\n" |
1422 | "(PWM/Pi) " +version + " - " + | 1422 | "(PWM/Pi) " +version + " - " + |
1423 | #ifdef DESKTOP_VERSION | 1423 | #ifdef DESKTOP_VERSION |
1424 | "Desktop Edition\n" | 1424 | "Desktop Edition\n" |
1425 | #else | 1425 | #else |
1426 | "PDA-Edition\n" | 1426 | "PDA-Edition\n" |
1427 | "for: Zaurus 5500 / 7x0 / 8x0\n" | 1427 | "for: Zaurus 5500 / 7x0 / 8x0\n" |
1428 | #endif | 1428 | #endif |
1429 | 1429 | ||
1430 | "(c) 2004 Ulf Schenk\n" | 1430 | "(c) 2004 Ulf Schenk\n" |
1431 | "(c) 2004 Lutz Rogowski\n" | 1431 | "(c) 2004 Lutz Rogowski\n" |
1432 | "(c) 1997-2004, The KDE PIM Team\n" | 1432 | "(c) 1997-2004, The KDE PIM Team\n" |
1433 | 1433 | ||
1434 | "(c) Michael Buesch - main programming\nand current maintainer\nmbuesch@freenet.de\n" | 1434 | "(c) Michael Buesch - main programming\nand current maintainer\nmbuesch@freenet.de\n" |
1435 | "Matt Scifo - mscifo@o1.com\n" | 1435 | "Matt Scifo - mscifo@o1.com\n" |
1436 | "Elias Probst - elias.probst@gmx.de\n" | 1436 | "Elias Probst - elias.probst@gmx.de\n" |
1437 | "George Staikos - staikos@kde.org\n" | 1437 | "George Staikos - staikos@kde.org\n" |
1438 | "Matthew Palmer - mjp16@uow.edu.au\n" | 1438 | "Matthew Palmer - mjp16@uow.edu.au\n" |
1439 | "Olivier Sessink - gpasman@nl.linux.org\n" | 1439 | "Olivier Sessink - gpasman@nl.linux.org\n" |
1440 | "The libgcrypt developers -\nBlowfish and SHA1 algorithms\nftp://ftp.gnupg.org/gcrypt/alpha/libgcrypt/\n" | 1440 | "The libgcrypt developers -\nBlowfish and SHA1 algorithms\nftp://ftp.gnupg.org/gcrypt/alpha/libgcrypt/\n" |
1441 | "Troy Engel - tengel@sonic.net\n" | 1441 | "Troy Engel - tengel@sonic.net\n" |
1442 | "Wickey - wickey@gmx.at\n" | 1442 | "Wickey - wickey@gmx.at\n" |
1443 | "Ian MacGregor - original documentation author.\n" | 1443 | "Ian MacGregor - original documentation author.\n" |
1444 | ); | 1444 | ); |
1445 | } | 1445 | } |
1446 | 1446 | ||
1447 | 1447 | ||
1448 | //this are the overwritten callbackmethods from the syncinterface | 1448 | //this are the overwritten callbackmethods from the syncinterface |
1449 | bool PwM::sync(KSyncManager* manager, QString filename, int mode) | 1449 | bool PwM::sync(KSyncManager* manager, QString filename, int mode) |
1450 | { | 1450 | { |
1451 | PWM_ASSERT(curDoc()); | 1451 | PWM_ASSERT(curDoc()); |
1452 | 1452 | ||
1453 | bool ret = curDoc()->sync(manager, filename, mode); | 1453 | bool ret = curDoc()->sync(manager, filename, mode); |
1454 | 1454 | ||
1455 | qDebug("PwM::sync save now: ret=%i", ret); | 1455 | qDebug("PwM::sync save now: ret=%i", ret); |
1456 | 1456 | ||
1457 | if (ret == true) { | 1457 | if (ret == true) { |
1458 | //US BUG: what can we call here to update the view of the current doc? | 1458 | //US BUG: what can we call here to update the view of the current doc? |
1459 | //mViewManager->refreshView(); | 1459 | //mViewManager->refreshView(); |
1460 | 1460 | ||
1461 | //US curDoc()->sync sets the dirtyFlag in case the sync was successfull. | 1461 | //US curDoc()->sync sets the dirtyFlag in case the sync was successfull. |
1462 | save(); | 1462 | save(); |
1463 | } | 1463 | } |
1464 | 1464 | ||
1465 | return ret; | 1465 | return ret; |
1466 | } | 1466 | } |
1467 | |||
1468 | void PwM::removeSyncInfo( QString syncProfile) | ||
1469 | { | ||
1470 | qDebug("PWM::not implemented: removeSyncInfo for profile %s ", syncProfile.latin1()); | ||
1471 | } | ||
1472 | |||
1467 | #endif | 1473 | #endif |
1468 | 1474 | ||
1469 | 1475 | ||
1470 | #ifndef PWM_EMBEDDED | 1476 | #ifndef PWM_EMBEDDED |
1471 | #include "pwm.moc" | 1477 | #include "pwm.moc" |
1472 | #endif | 1478 | #endif |
diff --git a/pwmanager/pwmanager/pwm.h b/pwmanager/pwmanager/pwm.h index 5822d59..fb34bca 100644 --- a/pwmanager/pwmanager/pwm.h +++ b/pwmanager/pwmanager/pwm.h | |||
@@ -88,210 +88,211 @@ public: | |||
88 | bool save(); | 88 | bool save(); |
89 | /** ask the user where to save the doc | 89 | /** ask the user where to save the doc |
90 | * and write the data to disk. | 90 | * and write the data to disk. |
91 | */ | 91 | */ |
92 | bool saveAs(); | 92 | bool saveAs(); |
93 | /** force quit. Quit this window, always! Don't minimize it */ | 93 | /** force quit. Quit this window, always! Don't minimize it */ |
94 | bool isForceQuit() | 94 | bool isForceQuit() |
95 | { return forceQuit; } | 95 | { return forceQuit; } |
96 | /** set forceQuit */ | 96 | /** set forceQuit */ |
97 | void setForceQuit(bool force) | 97 | void setForceQuit(bool force) |
98 | { forceQuit = force; } | 98 | { forceQuit = force; } |
99 | /** force minimize this window */ | 99 | /** force minimize this window */ |
100 | bool isForceMinimizeToTray() | 100 | bool isForceMinimizeToTray() |
101 | { return forceMinimizeToTray; } | 101 | { return forceMinimizeToTray; } |
102 | /** set forceMinimizeToTray */ | 102 | /** set forceMinimizeToTray */ |
103 | void setForceMinimizeToTray(bool force) | 103 | void setForceMinimizeToTray(bool force) |
104 | { forceMinimizeToTray = force; } | 104 | { forceMinimizeToTray = force; } |
105 | 105 | ||
106 | public slots: | 106 | public slots: |
107 | /** file/new triggered */ | 107 | /** file/new triggered */ |
108 | void new_slot(); | 108 | void new_slot(); |
109 | /** file/open triggered */ | 109 | /** file/open triggered */ |
110 | //US ENH | 110 | //US ENH |
111 | void open_slot(); | 111 | void open_slot(); |
112 | void open_slot(QString fn); | 112 | void open_slot(QString fn); |
113 | /** file/close triggered */ | 113 | /** file/close triggered */ |
114 | void close_slot(); | 114 | void close_slot(); |
115 | /** file/quit triggered */ | 115 | /** file/quit triggered */ |
116 | void quitButton_slot(); | 116 | void quitButton_slot(); |
117 | /** file/save triggered */ | 117 | /** file/save triggered */ |
118 | void save_slot(); | 118 | void save_slot(); |
119 | /** file/saveAs triggered */ | 119 | /** file/saveAs triggered */ |
120 | void saveAs_slot(); | 120 | void saveAs_slot(); |
121 | /** file/export/text triggered */ | 121 | /** file/export/text triggered */ |
122 | void exportToText(); | 122 | void exportToText(); |
123 | /** file/export/gpasman triggered */ | 123 | /** file/export/gpasman triggered */ |
124 | void exportToGpasman(); | 124 | void exportToGpasman(); |
125 | /** file/export/kwallet triggered */ | 125 | /** file/export/kwallet triggered */ |
126 | void exportToKWallet(); | 126 | void exportToKWallet(); |
127 | /** file/export/csv triggered */ | 127 | /** file/export/csv triggered */ |
128 | void exportToCsv(); | 128 | void exportToCsv(); |
129 | /** file/import/text triggered */ | 129 | /** file/import/text triggered */ |
130 | bool importFromText(); | 130 | bool importFromText(); |
131 | /** file/import/gpasman triggered */ | 131 | /** file/import/gpasman triggered */ |
132 | bool importFromGpasman(); | 132 | bool importFromGpasman(); |
133 | /** file/import/kwallet triggered */ | 133 | /** file/import/kwallet triggered */ |
134 | bool importKWallet(); | 134 | bool importKWallet(); |
135 | /** file/import/csv triggered */ | 135 | /** file/import/csv triggered */ |
136 | bool importCsv(); | 136 | bool importCsv(); |
137 | /** file/print triggered */ | 137 | /** file/print triggered */ |
138 | void print_slot(); | 138 | void print_slot(); |
139 | /** manage/add triggered */ | 139 | /** manage/add triggered */ |
140 | //US ENH : changed code to run with older MOC | 140 | //US ENH : changed code to run with older MOC |
141 | 141 | ||
142 | void addPwd_slot(); | 142 | void addPwd_slot(); |
143 | void addPwd_slot1(QString *pw, PwMDoc *_doc); | 143 | void addPwd_slot1(QString *pw, PwMDoc *_doc); |
144 | /** manage/edit triggered */ | 144 | /** manage/edit triggered */ |
145 | //US ENH : changed code to run with older MOC | 145 | //US ENH : changed code to run with older MOC |
146 | void editPwd_slot(); | 146 | void editPwd_slot(); |
147 | void editPwd_slot1(const QString *category); | 147 | void editPwd_slot1(const QString *category); |
148 | void editPwd_slot3(const QString *category, const int *index ,PwMDoc *_doc ); | 148 | void editPwd_slot3(const QString *category, const int *index ,PwMDoc *_doc ); |
149 | 149 | ||
150 | /** manage/delete triggered */ | 150 | /** manage/delete triggered */ |
151 | void deletePwd_slot(); | 151 | void deletePwd_slot(); |
152 | /** execute the "Launcher" entry */ | 152 | /** execute the "Launcher" entry */ |
153 | void execLauncher_slot(); | 153 | void execLauncher_slot(); |
154 | /** open browser with URL entry */ | 154 | /** open browser with URL entry */ |
155 | void goToURL_slot(); | 155 | void goToURL_slot(); |
156 | /** manage/changeMasterPwd triggered */ | 156 | /** manage/changeMasterPwd triggered */ |
157 | void changeMasterPwd_slot(); | 157 | void changeMasterPwd_slot(); |
158 | /** lock current document */ | 158 | /** lock current document */ |
159 | void lockWnd_slot(); | 159 | void lockWnd_slot(); |
160 | /** deeplock current document */ | 160 | /** deeplock current document */ |
161 | void deepLockWnd_slot(); | 161 | void deepLockWnd_slot(); |
162 | /** window/unlock triggered */ | 162 | /** window/unlock triggered */ |
163 | void unlockWnd_slot(); | 163 | void unlockWnd_slot(); |
164 | /** find item */ | 164 | /** find item */ |
165 | void find_slot(); | 165 | void find_slot(); |
166 | /** configure clicked */ | 166 | /** configure clicked */ |
167 | void config_slot(); | 167 | void config_slot(); |
168 | /** (de)activate the "change master pw" button in the menu-bar */ | 168 | /** (de)activate the "change master pw" button in the menu-bar */ |
169 | void activateMpButton(bool activate = true); | 169 | void activateMpButton(bool activate = true); |
170 | /** generate a new chipcard */ | 170 | /** generate a new chipcard */ |
171 | void genNewCard_slot(); | 171 | void genNewCard_slot(); |
172 | /** completely erase the current card */ | 172 | /** completely erase the current card */ |
173 | void eraseCard_slot(); | 173 | void eraseCard_slot(); |
174 | /** returns the ID number of the current card */ | 174 | /** returns the ID number of the current card */ |
175 | void readCardId_slot(); | 175 | void readCardId_slot(); |
176 | /** make backup image of the current card */ | 176 | /** make backup image of the current card */ |
177 | void makeCardBackup_slot(); | 177 | void makeCardBackup_slot(); |
178 | /** write backup image to current card */ | 178 | /** write backup image to current card */ |
179 | void replayCardBackup_slot(); | 179 | void replayCardBackup_slot(); |
180 | 180 | ||
181 | #ifdef PWM_EMBEDDED | 181 | #ifdef PWM_EMBEDDED |
182 | void whatsnew_slot(); | 182 | void whatsnew_slot(); |
183 | void showLicense_slot(); | 183 | void showLicense_slot(); |
184 | void faq_slot(); | 184 | void faq_slot(); |
185 | void createAboutData_slot(); | 185 | void createAboutData_slot(); |
186 | void syncHowTo_slot(); | 186 | void syncHowTo_slot(); |
187 | #endif | 187 | #endif |
188 | 188 | ||
189 | protected: | 189 | protected: |
190 | /** is this window virgin? */ | 190 | /** is this window virgin? */ |
191 | bool isVirgin() | 191 | bool isVirgin() |
192 | { return virgin; } | 192 | { return virgin; } |
193 | /** add/remove virginity */ | 193 | /** add/remove virginity */ |
194 | void setVirgin(bool v); | 194 | void setVirgin(bool v); |
195 | /** initialize the menubar */ | 195 | /** initialize the menubar */ |
196 | void initMenubar(); | 196 | void initMenubar(); |
197 | /** initialize the toolbar */ | 197 | /** initialize the toolbar */ |
198 | void initToolbar(); | 198 | void initToolbar(); |
199 | /** initialize the window-metrics */ | 199 | /** initialize the window-metrics */ |
200 | void initMetrics(); | 200 | void initMetrics(); |
201 | /** close-event */ | 201 | /** close-event */ |
202 | void closeEvent(QCloseEvent *e); | 202 | void closeEvent(QCloseEvent *e); |
203 | /** creates a new PwM-ListView and returns it */ | 203 | /** creates a new PwM-ListView and returns it */ |
204 | PwMView * makeNewListView(PwMDoc *doc); | 204 | PwMView * makeNewListView(PwMDoc *doc); |
205 | /** Window hide-event */ | 205 | /** Window hide-event */ |
206 | void hideEvent(QHideEvent *); | 206 | void hideEvent(QHideEvent *); |
207 | /** is this window minimized? */ | 207 | /** is this window minimized? */ |
208 | bool isMinimized() | 208 | bool isMinimized() |
209 | { | 209 | { |
210 | #ifndef PWM_EMBEDDED | 210 | #ifndef PWM_EMBEDDED |
211 | #if KDE_VERSION >= KDE_MAKE_VERSION(3, 2, 0) | 211 | #if KDE_VERSION >= KDE_MAKE_VERSION(3, 2, 0) |
212 | return KWin::windowInfo(winId()).isMinimized(); | 212 | return KWin::windowInfo(winId()).isMinimized(); |
213 | #else // KDE_VERSION | 213 | #else // KDE_VERSION |
214 | return KWin::info(winId()).isIconified(); | 214 | return KWin::info(winId()).isIconified(); |
215 | #endif // KDE_VERSION | 215 | #endif // KDE_VERSION |
216 | #else | 216 | #else |
217 | return false; | 217 | return false; |
218 | #endif | 218 | #endif |
219 | } | 219 | } |
220 | /** window got the focus */ | 220 | /** window got the focus */ |
221 | void focusInEvent(QFocusEvent *e); | 221 | void focusInEvent(QFocusEvent *e); |
222 | /** update the caption string */ | 222 | /** update the caption string */ |
223 | void updateCaption(); | 223 | void updateCaption(); |
224 | #ifdef CONFIG_KWALLETIF | 224 | #ifdef CONFIG_KWALLETIF |
225 | /** check if kwalletemu is enabled and ask the user what to do */ | 225 | /** check if kwalletemu is enabled and ask the user what to do */ |
226 | bool checkAndAskForKWalletEmu(); | 226 | bool checkAndAskForKWalletEmu(); |
227 | #endif // CONFIG_KWALLETIF | 227 | #endif // CONFIG_KWALLETIF |
228 | 228 | ||
229 | protected slots: | 229 | protected slots: |
230 | /** doc got closed */ | 230 | /** doc got closed */ |
231 | void docClosed(PwMDoc *doc); | 231 | void docClosed(PwMDoc *doc); |
232 | 232 | ||
233 | signals: | 233 | signals: |
234 | /** window got closed (by user or someone else) */ | 234 | /** window got closed (by user or someone else) */ |
235 | void closed(PwM *wnd); | 235 | void closed(PwM *wnd); |
236 | /** window got the focus (was brought to foreground) */ | 236 | /** window got the focus (was brought to foreground) */ |
237 | void gotFocus(PwM *wnd); | 237 | void gotFocus(PwM *wnd); |
238 | /** window lost the focus */ | 238 | /** window lost the focus */ |
239 | void lostFocus(PwM *wnd); | 239 | void lostFocus(PwM *wnd); |
240 | 240 | ||
241 | protected: | 241 | protected: |
242 | /** pointer to the view active in this KMainWindow */ | 242 | /** pointer to the view active in this KMainWindow */ |
243 | PwMView *view; | 243 | PwMView *view; |
244 | /** pointer to the init class */ | 244 | /** pointer to the init class */ |
245 | PwMInit *init; | 245 | PwMInit *init; |
246 | /** has this window already lost its virginity? | 246 | /** has this window already lost its virginity? |
247 | * Means is there an open working document | 247 | * Means is there an open working document |
248 | */ | 248 | */ |
249 | bool virgin; | 249 | bool virgin; |
250 | /** "file" popup-menu */ | 250 | /** "file" popup-menu */ |
251 | KPopupMenu *filePopup; | 251 | KPopupMenu *filePopup; |
252 | 252 | ||
253 | /** "manage" popup-menu */ | 253 | /** "manage" popup-menu */ |
254 | KPopupMenu *managePopup; | 254 | KPopupMenu *managePopup; |
255 | #ifdef CONFIG_KEYCARD | 255 | #ifdef CONFIG_KEYCARD |
256 | /** "chipcard" popup-menu */ | 256 | /** "chipcard" popup-menu */ |
257 | KPopupMenu *chipcardPopup; | 257 | KPopupMenu *chipcardPopup; |
258 | #endif // CONFIG_KEYCARD | 258 | #endif // CONFIG_KEYCARD |
259 | /** "view" popup-menu */ | 259 | /** "view" popup-menu */ |
260 | KPopupMenu *viewPopup; | 260 | KPopupMenu *viewPopup; |
261 | /** "options" popup-menu */ | 261 | /** "options" popup-menu */ |
262 | KPopupMenu *optionsPopup; | 262 | KPopupMenu *optionsPopup; |
263 | /** "help" popup-menu */ | 263 | /** "help" popup-menu */ |
264 | KPopupMenu *helpPopup; | 264 | KPopupMenu *helpPopup; |
265 | /** "export" popup-menu */ | 265 | /** "export" popup-menu */ |
266 | KPopupMenu *exportPopup; | 266 | KPopupMenu *exportPopup; |
267 | /** "import" popup-menu */ | 267 | /** "import" popup-menu */ |
268 | KPopupMenu *importPopup; | 268 | KPopupMenu *importPopup; |
269 | /** force quit this window? */ | 269 | /** force quit this window? */ |
270 | bool forceQuit; | 270 | bool forceQuit; |
271 | /** force minimize this window to the tray */ | 271 | /** force minimize this window to the tray */ |
272 | bool forceMinimizeToTray; | 272 | bool forceMinimizeToTray; |
273 | 273 | ||
274 | 274 | ||
275 | 275 | ||
276 | 276 | ||
277 | private: | 277 | private: |
278 | #ifdef PWM_EMBEDDED | 278 | #ifdef PWM_EMBEDDED |
279 | //this are the overwritten callbackmethods from the syncinterface | 279 | //this are the overwritten callbackmethods from the syncinterface |
280 | virtual bool sync(KSyncManager* manager, QString filename, int mode); | 280 | virtual bool sync(KSyncManager* manager, QString filename, int mode); |
281 | virtual void removeSyncInfo( QString syncProfile); | ||
281 | 282 | ||
282 | // LR ******************************* | 283 | // LR ******************************* |
283 | // sync stuff! | 284 | // sync stuff! |
284 | QPopupMenu *syncPopup; | 285 | QPopupMenu *syncPopup; |
285 | KSyncManager* syncManager; | 286 | KSyncManager* syncManager; |
286 | #endif | 287 | #endif |
287 | 288 | ||
288 | 289 | ||
289 | 290 | ||
290 | 291 | ||
291 | 292 | ||
292 | 293 | ||
293 | 294 | ||
294 | 295 | ||
295 | }; | 296 | }; |
296 | 297 | ||
297 | #endif | 298 | #endif |
diff --git a/pwmanager/pwmanager/pwmdoc.cpp b/pwmanager/pwmanager/pwmdoc.cpp index cf8690f..fd17ce5 100644 --- a/pwmanager/pwmanager/pwmdoc.cpp +++ b/pwmanager/pwmanager/pwmdoc.cpp | |||
@@ -3115,384 +3115,387 @@ PwMerror PwMDoc::syncronize(KSyncManager* manager, PwMDoc* syncLocal , PwMDoc* s | |||
3115 | inRemote = syncRemote->findEntryByID( uid, &catRemote, &indexRemote ); | 3115 | inRemote = syncRemote->findEntryByID( uid, &catRemote, &indexRemote ); |
3116 | PWM_ASSERT(inRemote); | 3116 | PWM_ASSERT(inRemote); |
3117 | if ( inLocal != 0 ) { // maybe conflict - same uid in both files | 3117 | if ( inLocal != 0 ) { // maybe conflict - same uid in both files |
3118 | if ( (take = takePwMDataItem( inLocal, inRemote, mLastSync, mode, fullDateRange) ) ) { | 3118 | if ( (take = takePwMDataItem( inLocal, inRemote, mLastSync, mode, fullDateRange) ) ) { |
3119 | qDebug("take %d %s ", take, inLocal->desc.c_str()); | 3119 | qDebug("take %d %s ", take, inLocal->desc.c_str()); |
3120 | if ( take == 3 ) | 3120 | if ( take == 3 ) |
3121 | return e_syncError; | 3121 | return e_syncError; |
3122 | if ( take == 1 ) {// take local | 3122 | if ( take == 1 ) {// take local |
3123 | int oldlistpos = inRemote->listViewPos; | 3123 | int oldlistpos = inRemote->listViewPos; |
3124 | (*inRemote) = (*inLocal); | 3124 | (*inRemote) = (*inLocal); |
3125 | inRemote->listViewPos = oldlistpos; | 3125 | inRemote->listViewPos = oldlistpos; |
3126 | ++changedRemote; | 3126 | ++changedRemote; |
3127 | } else { // take == 2 take remote | 3127 | } else { // take == 2 take remote |
3128 | int oldlistpos = inLocal->listViewPos; | 3128 | int oldlistpos = inLocal->listViewPos; |
3129 | (*inLocal) = (*inRemote); | 3129 | (*inLocal) = (*inRemote); |
3130 | inLocal->listViewPos = oldlistpos; | 3130 | inLocal->listViewPos = oldlistpos; |
3131 | ++changedLocal; | 3131 | ++changedLocal; |
3132 | } | 3132 | } |
3133 | } | 3133 | } |
3134 | } else { // no conflict | 3134 | } else { // no conflict |
3135 | if ( inRemote->meta.update > mLastSync || mode == 5 ) { | 3135 | if ( inRemote->meta.update > mLastSync || mode == 5 ) { |
3136 | inRemote->meta.update = modifiedSync; | 3136 | inRemote->meta.update = modifiedSync; |
3137 | 3137 | ||
3138 | //first check if we have a matching category in the local file | 3138 | //first check if we have a matching category in the local file |
3139 | const string* remotecat = syncRemote->getCategory(catRemote); | 3139 | const string* remotecat = syncRemote->getCategory(catRemote); |
3140 | syncLocal->addEntry(remotecat->c_str(), inRemote, true, false); | 3140 | syncLocal->addEntry(remotecat->c_str(), inRemote, true, false); |
3141 | 3141 | ||
3142 | ++addedPasswordsLocal; | 3142 | ++addedPasswordsLocal; |
3143 | } else { | 3143 | } else { |
3144 | // pending checkExternSyncAddressee(addresseeRSyncSharp, inR); | 3144 | // pending checkExternSyncAddressee(addresseeRSyncSharp, inR); |
3145 | syncRemote->delEntry(catRemote, indexRemote, true); | 3145 | syncRemote->delEntry(catRemote, indexRemote, true); |
3146 | ++deletedPasswordsRemote; | 3146 | ++deletedPasswordsRemote; |
3147 | } | 3147 | } |
3148 | } | 3148 | } |
3149 | 3149 | ||
3150 | ++incCounter; | 3150 | ++incCounter; |
3151 | } | 3151 | } |
3152 | 3152 | ||
3153 | 3153 | ||
3154 | er.clear(); | 3154 | er.clear(); |
3155 | QStringList el = syncLocal->getIDEntryList(); | 3155 | QStringList el = syncLocal->getIDEntryList(); |
3156 | modulo = (el.count()/10)+1; | 3156 | modulo = (el.count()/10)+1; |
3157 | 3157 | ||
3158 | manager->showProgressBar(0, i18n("Add / remove addressees"), el.count()); | 3158 | manager->showProgressBar(0, i18n("Add / remove addressees"), el.count()); |
3159 | incCounter = 0; | 3159 | incCounter = 0; |
3160 | while ( incCounter < el.count()) { | 3160 | while ( incCounter < el.count()) { |
3161 | qApp->processEvents(); | 3161 | qApp->processEvents(); |
3162 | if (manager->isProgressBarCanceled()) | 3162 | if (manager->isProgressBarCanceled()) |
3163 | return e_syncError; | 3163 | return e_syncError; |
3164 | if ( incCounter % modulo == 0 ) | 3164 | if ( incCounter % modulo == 0 ) |
3165 | manager->showProgressBar(incCounter); | 3165 | manager->showProgressBar(incCounter); |
3166 | uid = el[ incCounter ]; | 3166 | uid = el[ incCounter ]; |
3167 | qDebug("sync uid %s from local file", uid.latin1()); | 3167 | qDebug("sync uid %s from local file", uid.latin1()); |
3168 | 3168 | ||
3169 | inLocal = syncLocal->findEntryByID( uid, &catLocal, &indexLocal ); | 3169 | inLocal = syncLocal->findEntryByID( uid, &catLocal, &indexLocal ); |
3170 | inRemote = syncRemote->findEntryByID( uid, &catRemote, &indexRemote ); | 3170 | inRemote = syncRemote->findEntryByID( uid, &catRemote, &indexRemote ); |
3171 | PWM_ASSERT(inLocal); | 3171 | PWM_ASSERT(inLocal); |
3172 | 3172 | ||
3173 | if ( inRemote == 0 ) { | 3173 | if ( inRemote == 0 ) { |
3174 | if ( inLocal->meta.update < mLastSync && mode != 4 ) { | 3174 | if ( inLocal->meta.update < mLastSync && mode != 4 ) { |
3175 | // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); | 3175 | // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); |
3176 | syncLocal->delEntry(catLocal, indexLocal, true); | 3176 | syncLocal->delEntry(catLocal, indexLocal, true); |
3177 | ++deletedPasswordsLocal; | 3177 | ++deletedPasswordsLocal; |
3178 | } else { | 3178 | } else { |
3179 | if ( ! manager->mWriteBackExistingOnly ) { | 3179 | if ( ! manager->mWriteBackExistingOnly ) { |
3180 | ++addedPasswordsRemote; | 3180 | ++addedPasswordsRemote; |
3181 | inLocal->meta.update = modifiedSync; | 3181 | inLocal->meta.update = modifiedSync; |
3182 | 3182 | ||
3183 | //first check if we have a matching category in the remote file | 3183 | //first check if we have a matching category in the remote file |
3184 | const string* localcat = syncLocal->getCategory(catLocal); | 3184 | const string* localcat = syncLocal->getCategory(catLocal); |
3185 | 3185 | ||
3186 | PwMDataItem newEntry; | 3186 | PwMDataItem newEntry; |
3187 | newEntry = *inLocal; | 3187 | newEntry = *inLocal; |
3188 | inRemote = &newEntry; | 3188 | inRemote = &newEntry; |
3189 | 3189 | ||
3190 | //USsyncRemote->insertAddressee( inRemote, false ); | 3190 | //USsyncRemote->insertAddressee( inRemote, false ); |
3191 | syncRemote->addEntry(localcat->c_str(), inRemote, true, false); | 3191 | syncRemote->addEntry(localcat->c_str(), inRemote, true, false); |
3192 | 3192 | ||
3193 | } | 3193 | } |
3194 | } | 3194 | } |
3195 | 3195 | ||
3196 | } | 3196 | } |
3197 | ++incCounter; | 3197 | ++incCounter; |
3198 | } | 3198 | } |
3199 | el.clear(); | 3199 | el.clear(); |
3200 | manager->hideProgressBar(); | 3200 | manager->hideProgressBar(); |
3201 | 3201 | ||
3202 | // Now write the info back into the sync data space of the files | 3202 | // Now write the info back into the sync data space of the files |
3203 | 3203 | ||
3204 | mLastSync = QDateTime::currentDateTime().addSecs( 1 ); | 3204 | mLastSync = QDateTime::currentDateTime().addSecs( 1 ); |
3205 | // get rid of micro seconds | 3205 | // get rid of micro seconds |
3206 | QTime t = mLastSync.time(); | 3206 | QTime t = mLastSync.time(); |
3207 | mLastSync.setTime( QTime (t.hour (), t.minute (), t.second () ) ); | 3207 | mLastSync.setTime( QTime (t.hour (), t.minute (), t.second () ) ); |
3208 | 3208 | ||
3209 | 3209 | ||
3210 | syncItemLocal->lastSyncDate = mLastSync; | 3210 | syncItemLocal->lastSyncDate = mLastSync; |
3211 | syncItemRemote->lastSyncDate = mLastSync; | 3211 | syncItemRemote->lastSyncDate = mLastSync; |
3212 | 3212 | ||
3213 | QString mes; | 3213 | QString mes; |
3214 | 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"),addedPasswordsLocal, addedPasswordsRemote, changedLocal, changedRemote, deletedPasswordsLocal, deletedPasswordsRemote ); | 3214 | 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"),addedPasswordsLocal, addedPasswordsRemote, changedLocal, changedRemote, deletedPasswordsLocal, deletedPasswordsRemote ); |
3215 | if ( manager->mShowSyncSummary ) { | 3215 | if ( manager->mShowSyncSummary ) { |
3216 | KMessageBox::information(0, mes, i18n("PWM/Pi Synchronization") ); | 3216 | KMessageBox::information(0, mes, i18n("PWM/Pi Synchronization") ); |
3217 | } | 3217 | } |
3218 | qDebug( mes ); | 3218 | qDebug( mes ); |
3219 | return e_success; | 3219 | return e_success; |
3220 | } | 3220 | } |
3221 | 3221 | ||
3222 | 3222 | ||
3223 | int PwMDoc::takePwMDataItem( PwMDataItem* local, PwMDataItem* remote, QDateTime lastSync, int mode , bool full ) | 3223 | int PwMDoc::takePwMDataItem( PwMDataItem* local, PwMDataItem* remote, QDateTime lastSync, int mode , bool full ) |
3224 | { | 3224 | { |
3225 | // 0 equal | 3225 | // 0 equal |
3226 | // 1 take local | 3226 | // 1 take local |
3227 | // 2 take remote | 3227 | // 2 take remote |
3228 | // 3 cancel | 3228 | // 3 cancel |
3229 | QDateTime localMod = local->meta.update; | 3229 | QDateTime localMod = local->meta.update; |
3230 | QDateTime remoteMod = remote->meta.update; | 3230 | QDateTime remoteMod = remote->meta.update; |
3231 | 3231 | ||
3232 | if ( localMod == remoteMod ) | 3232 | if ( localMod == remoteMod ) |
3233 | return 0; | 3233 | return 0; |
3234 | 3234 | ||
3235 | qDebug(" %d %d conflict on %s %s ", mode, full, local->desc.c_str(), remote->desc.c_str() ); | 3235 | qDebug(" %d %d conflict on %s %s ", mode, full, local->desc.c_str(), remote->desc.c_str() ); |
3236 | 3236 | ||
3237 | //qDebug("%s %d %s %d", local->lastModified().toString().latin1() , localMod, remote->lastModified().toString().latin1(), remoteMod); | 3237 | //qDebug("%s %d %s %d", local->lastModified().toString().latin1() , localMod, remote->lastModified().toString().latin1(), remoteMod); |
3238 | //qDebug("%d %d %d %d ", local->lastModified().time().second(), local->lastModified().time().msec(), remote->lastModified().time().second(), remote->lastModified().time().msec() ); | 3238 | //qDebug("%d %d %d %d ", local->lastModified().time().second(), local->lastModified().time().msec(), remote->lastModified().time().second(), remote->lastModified().time().msec() ); |
3239 | //full = true; //debug only | 3239 | //full = true; //debug only |
3240 | if ( full ) { | 3240 | if ( full ) { |
3241 | bool equ = ( (*local) == (*remote) ); | 3241 | bool equ = ( (*local) == (*remote) ); |
3242 | if ( equ ) { | 3242 | if ( equ ) { |
3243 | //qDebug("equal "); | 3243 | //qDebug("equal "); |
3244 | if ( mode < SYNC_PREF_FORCE_LOCAL ) | 3244 | if ( mode < SYNC_PREF_FORCE_LOCAL ) |
3245 | return 0; | 3245 | return 0; |
3246 | 3246 | ||
3247 | }//else //debug only | 3247 | }//else //debug only |
3248 | //qDebug("not equal %s %s ", local->desc.c_str(), remote->desc.c_str()); | 3248 | //qDebug("not equal %s %s ", local->desc.c_str(), remote->desc.c_str()); |
3249 | } | 3249 | } |
3250 | 3250 | ||
3251 | int result; | 3251 | int result; |
3252 | bool localIsNew; | 3252 | bool localIsNew; |
3253 | //qDebug("%s -- %s mLastCalendarSync %s lastsync %s --- local %s remote %s ",local->summary().latin1(), remote->summary().latin1(),mLastCalendarSync.toString().latin1() ,lastSync.toString().latin1() , local->lastModified().toString().latin1() , remote->lastModified().toString().latin1() ); | 3253 | //qDebug("%s -- %s mLastCalendarSync %s lastsync %s --- local %s remote %s ",local->summary().latin1(), remote->summary().latin1(),mLastCalendarSync.toString().latin1() ,lastSync.toString().latin1() , local->lastModified().toString().latin1() , remote->lastModified().toString().latin1() ); |
3254 | 3254 | ||
3255 | if ( full && mode < SYNC_PREF_NEWEST ) | 3255 | if ( full && mode < SYNC_PREF_NEWEST ) |
3256 | mode = SYNC_PREF_ASK; | 3256 | mode = SYNC_PREF_ASK; |
3257 | 3257 | ||
3258 | switch( mode ) { | 3258 | switch( mode ) { |
3259 | case SYNC_PREF_LOCAL: | 3259 | case SYNC_PREF_LOCAL: |
3260 | if ( lastSync > remoteMod ) | 3260 | if ( lastSync > remoteMod ) |
3261 | return 1; | 3261 | return 1; |
3262 | if ( lastSync > localMod ) | 3262 | if ( lastSync > localMod ) |
3263 | return 2; | 3263 | return 2; |
3264 | return 1; | 3264 | return 1; |
3265 | break; | 3265 | break; |
3266 | case SYNC_PREF_REMOTE: | 3266 | case SYNC_PREF_REMOTE: |
3267 | if ( lastSync > remoteMod ) | 3267 | if ( lastSync > remoteMod ) |
3268 | return 1; | 3268 | return 1; |
3269 | if ( lastSync > localMod ) | 3269 | if ( lastSync > localMod ) |
3270 | return 2; | 3270 | return 2; |
3271 | return 2; | 3271 | return 2; |
3272 | break; | 3272 | break; |
3273 | case SYNC_PREF_NEWEST: | 3273 | case SYNC_PREF_NEWEST: |
3274 | if ( localMod > remoteMod ) | 3274 | if ( localMod > remoteMod ) |
3275 | return 1; | 3275 | return 1; |
3276 | else | 3276 | else |
3277 | return 2; | 3277 | return 2; |
3278 | break; | 3278 | break; |
3279 | case SYNC_PREF_ASK: | 3279 | case SYNC_PREF_ASK: |
3280 | //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); | 3280 | //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); |
3281 | if ( lastSync > remoteMod ) | 3281 | if ( lastSync > remoteMod ) |
3282 | return 1; | 3282 | return 1; |
3283 | if ( lastSync > localMod ) | 3283 | if ( lastSync > localMod ) |
3284 | return 2; | 3284 | return 2; |
3285 | localIsNew = localMod >= remoteMod; | 3285 | localIsNew = localMod >= remoteMod; |
3286 | //qDebug("conflict! ************************************** "); | 3286 | //qDebug("conflict! ************************************** "); |
3287 | { | 3287 | { |
3288 | PwMDataItemChooser acd ( *local,*remote, localIsNew , 0/*this*/ ); | 3288 | PwMDataItemChooser acd ( *local,*remote, localIsNew , 0/*this*/ ); |
3289 | result = acd.executeD(localIsNew); | 3289 | result = acd.executeD(localIsNew); |
3290 | return result; | 3290 | return result; |
3291 | } | 3291 | } |
3292 | break; | 3292 | break; |
3293 | case SYNC_PREF_FORCE_LOCAL: | 3293 | case SYNC_PREF_FORCE_LOCAL: |
3294 | return 1; | 3294 | return 1; |
3295 | break; | 3295 | break; |
3296 | case SYNC_PREF_FORCE_REMOTE: | 3296 | case SYNC_PREF_FORCE_REMOTE: |
3297 | return 2; | 3297 | return 2; |
3298 | break; | 3298 | break; |
3299 | 3299 | ||
3300 | default: | 3300 | default: |
3301 | // SYNC_PREF_TAKE_BOTH not implemented | 3301 | // SYNC_PREF_TAKE_BOTH not implemented |
3302 | break; | 3302 | break; |
3303 | } | 3303 | } |
3304 | return 0; | 3304 | return 0; |
3305 | } | 3305 | } |
3306 | 3306 | ||
3307 | 3307 | void PwMDoc::removeSyncInfo( QString syncProfile) | |
3308 | { | ||
3309 | qDebug("PwMDoc::not implemented: removeSyncInfo for profile %s ", syncProfile.latin1()); | ||
3310 | } | ||
3308 | 3311 | ||
3309 | 3312 | ||
3310 | //this are the overwritten callbackmethods from the syncinterface | 3313 | //this are the overwritten callbackmethods from the syncinterface |
3311 | bool PwMDoc::sync(KSyncManager* manager, QString filename, int mode) | 3314 | bool PwMDoc::sync(KSyncManager* manager, QString filename, int mode) |
3312 | { | 3315 | { |
3313 | QString mCurrentSyncDevice = manager->getCurrentSyncDevice(); | 3316 | QString mCurrentSyncDevice = manager->getCurrentSyncDevice(); |
3314 | 3317 | ||
3315 | //1) unlock local file first if necessary (ask for password) | 3318 | //1) unlock local file first if necessary (ask for password) |
3316 | if (this->isDeepLocked()) { | 3319 | if (this->isDeepLocked()) { |
3317 | PwMerror ret = this->deepLock(false); | 3320 | PwMerror ret = this->deepLock(false); |
3318 | if (ret != e_success) | 3321 | if (ret != e_success) |
3319 | return false; | 3322 | return false; |
3320 | } | 3323 | } |
3321 | 3324 | ||
3322 | //2) construct and open a new doc on the stack(automatic cleanup of remote file). | 3325 | //2) construct and open a new doc on the stack(automatic cleanup of remote file). |
3323 | PwMDoc syncTarget(this, "synctarget"); | 3326 | PwMDoc syncTarget(this, "synctarget"); |
3324 | PwMDoc* pSyncTarget = &syncTarget; | 3327 | PwMDoc* pSyncTarget = &syncTarget; |
3325 | 3328 | ||
3326 | 3329 | ||
3327 | PwMerror err = pSyncTarget->openDoc(&filename, 1 /*== open with all entries locked*/); | 3330 | PwMerror err = pSyncTarget->openDoc(&filename, 1 /*== open with all entries locked*/); |
3328 | 3331 | ||
3329 | if (err == e_alreadyOpen) { | 3332 | if (err == e_alreadyOpen) { |
3330 | PwMDocList::listItem li; | 3333 | PwMDocList::listItem li; |
3331 | if (getOpenDocList()->find(filename.latin1(), &li)) | 3334 | if (getOpenDocList()->find(filename.latin1(), &li)) |
3332 | pSyncTarget = li.doc; | 3335 | pSyncTarget = li.doc; |
3333 | else { | 3336 | else { |
3334 | qDebug("PwmDoc::sync: sync failed. Error %i while opening file %s",err, filename.latin1()); | 3337 | qDebug("PwmDoc::sync: sync failed. Error %i while opening file %s",err, filename.latin1()); |
3335 | return false; | 3338 | return false; |
3336 | } | 3339 | } |
3337 | } | 3340 | } |
3338 | else if (err != e_success) { | 3341 | else if (err != e_success) { |
3339 | qDebug("PwmDoc::sync: sync failed. Error %i while opening file %s",err, filename.latin1()); | 3342 | qDebug("PwmDoc::sync: sync failed. Error %i while opening file %s",err, filename.latin1()); |
3340 | return false; | 3343 | return false; |
3341 | } | 3344 | } |
3342 | 3345 | ||
3343 | qDebug("PWM file loaded %s,sync mode %d",filename.latin1(), mode ); | 3346 | qDebug("PWM file loaded %s,sync mode %d",filename.latin1(), mode ); |
3344 | 3347 | ||
3345 | 3348 | ||
3346 | //3) unlock remote file first if necessary (ask for password) | 3349 | //3) unlock remote file first if necessary (ask for password) |
3347 | if (pSyncTarget->isDeepLocked()) { | 3350 | if (pSyncTarget->isDeepLocked()) { |
3348 | PwMerror ret = pSyncTarget->deepLock(false); | 3351 | PwMerror ret = pSyncTarget->deepLock(false); |
3349 | if (ret != e_success) | 3352 | if (ret != e_success) |
3350 | return false; | 3353 | return false; |
3351 | } | 3354 | } |
3352 | 3355 | ||
3353 | 3356 | ||
3354 | err = syncronize(manager, this, pSyncTarget, mode ); | 3357 | err = syncronize(manager, this, pSyncTarget, mode ); |
3355 | 3358 | ||
3356 | if (err == e_success) { | 3359 | if (err == e_success) { |
3357 | if ( manager->mWriteBackFile ){ | 3360 | if ( manager->mWriteBackFile ){ |
3358 | qDebug("Saving remote PWManager file"); | 3361 | qDebug("Saving remote PWManager file"); |
3359 | err = pSyncTarget->saveDoc(conf()->confGlobCompression()); | 3362 | err = pSyncTarget->saveDoc(conf()->confGlobCompression()); |
3360 | if (err != e_success) { | 3363 | if (err != e_success) { |
3361 | qDebug("PwmDoc::sync: Sync failed. Error %i while storing file %s",err, filename.latin1()); | 3364 | qDebug("PwmDoc::sync: Sync failed. Error %i while storing file %s",err, filename.latin1()); |
3362 | return false; | 3365 | return false; |
3363 | } | 3366 | } |
3364 | } | 3367 | } |
3365 | 3368 | ||
3366 | flagDirty(); | 3369 | flagDirty(); |
3367 | return true; | 3370 | return true; |
3368 | } | 3371 | } |
3369 | else { | 3372 | else { |
3370 | return false; | 3373 | return false; |
3371 | } | 3374 | } |
3372 | } | 3375 | } |
3373 | 3376 | ||
3374 | #endif | 3377 | #endif |
3375 | 3378 | ||
3376 | 3379 | ||
3377 | bool PwMDoc::findSyncData(const QString &syncname, unsigned int *index) | 3380 | bool PwMDoc::findSyncData(const QString &syncname, unsigned int *index) |
3378 | { | 3381 | { |
3379 | vector<PwMSyncItem>::iterator i = dti.syncDta.begin(), | 3382 | vector<PwMSyncItem>::iterator i = dti.syncDta.begin(), |
3380 | end = dti.syncDta.end(); | 3383 | end = dti.syncDta.end(); |
3381 | 3384 | ||
3382 | while (i != end) { | 3385 | while (i != end) { |
3383 | if ((*i).syncName == syncname.latin1()) { | 3386 | if ((*i).syncName == syncname.latin1()) { |
3384 | if (index) { | 3387 | if (index) { |
3385 | *index = i - dti.syncDta.begin(); | 3388 | *index = i - dti.syncDta.begin(); |
3386 | } | 3389 | } |
3387 | return true; | 3390 | return true; |
3388 | } | 3391 | } |
3389 | ++i; | 3392 | ++i; |
3390 | } | 3393 | } |
3391 | return false; | 3394 | return false; |
3392 | }; | 3395 | }; |
3393 | 3396 | ||
3394 | /** add new syncdataentry */ | 3397 | /** add new syncdataentry */ |
3395 | PwMerror PwMDoc::addSyncDataEntry(PwMSyncItem *d, bool dontFlagDirty) | 3398 | PwMerror PwMDoc::addSyncDataEntry(PwMSyncItem *d, bool dontFlagDirty) |
3396 | { | 3399 | { |
3397 | PWM_ASSERT(d); | 3400 | PWM_ASSERT(d); |
3398 | 3401 | ||
3399 | if (isDeepLocked()) { | 3402 | if (isDeepLocked()) { |
3400 | PwMerror ret; | 3403 | PwMerror ret; |
3401 | ret = deepLock(false); | 3404 | ret = deepLock(false); |
3402 | if (ret != e_success) | 3405 | if (ret != e_success) |
3403 | return e_lock; | 3406 | return e_lock; |
3404 | } | 3407 | } |
3405 | unsigned int index; | 3408 | unsigned int index; |
3406 | 3409 | ||
3407 | const QString tmp = d->syncName.c_str(); | 3410 | const QString tmp = d->syncName.c_str(); |
3408 | bool exists = findSyncData(d->syncName.c_str(), &index); | 3411 | bool exists = findSyncData(d->syncName.c_str(), &index); |
3409 | 3412 | ||
3410 | if (exists == true) { | 3413 | if (exists == true) { |
3411 | // DOH! We found this entry. | 3414 | // DOH! We found this entry. |
3412 | return e_entryExists; | 3415 | return e_entryExists; |
3413 | } | 3416 | } |
3414 | 3417 | ||
3415 | dti.syncDta.push_back(*d); | 3418 | dti.syncDta.push_back(*d); |
3416 | 3419 | ||
3417 | if (!dontFlagDirty) | 3420 | if (!dontFlagDirty) |
3418 | flagDirty(); | 3421 | flagDirty(); |
3419 | return e_success; | 3422 | return e_success; |
3420 | } | 3423 | } |
3421 | 3424 | ||
3422 | 3425 | ||
3423 | 3426 | ||
3424 | /** delete syncdata entry */ | 3427 | /** delete syncdata entry */ |
3425 | bool PwMDoc::delSyncDataEntry(unsigned int index, bool dontFlagDirty) | 3428 | bool PwMDoc::delSyncDataEntry(unsigned int index, bool dontFlagDirty) |
3426 | { | 3429 | { |
3427 | if (isDeepLocked()) | 3430 | if (isDeepLocked()) |
3428 | return false; | 3431 | return false; |
3429 | if (index > dti.syncDta.size() - 1) | 3432 | if (index > dti.syncDta.size() - 1) |
3430 | return false; | 3433 | return false; |
3431 | 3434 | ||
3432 | // delete entry | 3435 | // delete entry |
3433 | dti.syncDta.erase(dti.syncDta.begin() + index); | 3436 | dti.syncDta.erase(dti.syncDta.begin() + index); |
3434 | 3437 | ||
3435 | if (!dontFlagDirty) | 3438 | if (!dontFlagDirty) |
3436 | flagDirty(); | 3439 | flagDirty(); |
3437 | return true; | 3440 | return true; |
3438 | } | 3441 | } |
3439 | 3442 | ||
3440 | 3443 | ||
3441 | PwMDataItem* PwMDoc::findEntryByID(const QString &uid, unsigned int *category, unsigned int *index) | 3444 | PwMDataItem* PwMDoc::findEntryByID(const QString &uid, unsigned int *category, unsigned int *index) |
3442 | { | 3445 | { |
3443 | vector<PwMCategoryItem>::iterator catcounter = dti.dta.begin(), | 3446 | vector<PwMCategoryItem>::iterator catcounter = dti.dta.begin(), |
3444 | catend = dti.dta.end(); | 3447 | catend = dti.dta.end(); |
3445 | 3448 | ||
3446 | vector<PwMDataItem>::iterator entrBegin, entrEnd, entrI; | 3449 | vector<PwMDataItem>::iterator entrBegin, entrEnd, entrI; |
3447 | 3450 | ||
3448 | while (catcounter != catend) { | 3451 | while (catcounter != catend) { |
3449 | entrBegin = catcounter->d.begin(); | 3452 | entrBegin = catcounter->d.begin(); |
3450 | entrEnd = catcounter->d.end(); | 3453 | entrEnd = catcounter->d.end(); |
3451 | entrI = entrBegin; | 3454 | entrI = entrBegin; |
3452 | while (entrI != entrEnd) { | 3455 | while (entrI != entrEnd) { |
3453 | if ((*entrI).meta.uniqueid == uid.latin1()) { | 3456 | if ((*entrI).meta.uniqueid == uid.latin1()) { |
3454 | if (category) | 3457 | if (category) |
3455 | *category = catcounter - dti.dta.begin(); | 3458 | *category = catcounter - dti.dta.begin(); |
3456 | if (index) | 3459 | if (index) |
3457 | *index = entrI - entrBegin; | 3460 | *index = entrI - entrBegin; |
3458 | 3461 | ||
3459 | return &(*entrI); | 3462 | return &(*entrI); |
3460 | } | 3463 | } |
3461 | ++entrI; | 3464 | ++entrI; |
3462 | } | 3465 | } |
3463 | ++catcounter; | 3466 | ++catcounter; |
3464 | } | 3467 | } |
3465 | 3468 | ||
3466 | return 0; | 3469 | return 0; |
3467 | } | 3470 | } |
3468 | 3471 | ||
3469 | QStringList PwMDoc::getIDEntryList() | 3472 | QStringList PwMDoc::getIDEntryList() |
3470 | { | 3473 | { |
3471 | QStringList results; | 3474 | QStringList results; |
3472 | 3475 | ||
3473 | vector<PwMCategoryItem>::iterator catcounter = dti.dta.begin(), | 3476 | vector<PwMCategoryItem>::iterator catcounter = dti.dta.begin(), |
3474 | catend = dti.dta.end(); | 3477 | catend = dti.dta.end(); |
3475 | 3478 | ||
3476 | vector<PwMDataItem>::iterator entrBegin, entrEnd, entrI; | 3479 | vector<PwMDataItem>::iterator entrBegin, entrEnd, entrI; |
3477 | 3480 | ||
3478 | while (catcounter != catend) { | 3481 | while (catcounter != catend) { |
3479 | entrBegin = catcounter->d.begin(); | 3482 | entrBegin = catcounter->d.begin(); |
3480 | entrEnd = catcounter->d.end(); | 3483 | entrEnd = catcounter->d.end(); |
3481 | entrI = entrBegin; | 3484 | entrI = entrBegin; |
3482 | while (entrI != entrEnd) { | 3485 | while (entrI != entrEnd) { |
3483 | results.append( (*entrI).meta.uniqueid.c_str() ); | 3486 | results.append( (*entrI).meta.uniqueid.c_str() ); |
3484 | ++entrI; | 3487 | ++entrI; |
3485 | } | 3488 | } |
3486 | ++catcounter; | 3489 | ++catcounter; |
3487 | } | 3490 | } |
3488 | 3491 | ||
3489 | return results; | 3492 | return results; |
3490 | } | 3493 | } |
3491 | 3494 | ||
3492 | 3495 | ||
3493 | 3496 | ||
3494 | 3497 | ||
3495 | 3498 | ||
3496 | #ifndef PWM_EMBEDDED | 3499 | #ifndef PWM_EMBEDDED |
3497 | #include "pwmdoc.moc" | 3500 | #include "pwmdoc.moc" |
3498 | #endif | 3501 | #endif |
diff --git a/pwmanager/pwmanager/pwmdoc.h b/pwmanager/pwmanager/pwmdoc.h index 55e3231..e419c24 100644 --- a/pwmanager/pwmanager/pwmdoc.h +++ b/pwmanager/pwmanager/pwmdoc.h | |||
@@ -573,216 +573,217 @@ public: | |||
573 | /** open a browser with the URL-section of the given entry */ | 573 | /** open a browser with the URL-section of the given entry */ |
574 | bool goToURL(const QString &category, unsigned int entryIndex); | 574 | bool goToURL(const QString &category, unsigned int entryIndex); |
575 | /** see above */ | 575 | /** see above */ |
576 | bool goToURL(unsigned int category, unsigned int entryIndex); | 576 | bool goToURL(unsigned int category, unsigned int entryIndex); |
577 | /** returns true if there is no entry present in the document. | 577 | /** returns true if there is no entry present in the document. |
578 | * Note: The "default" Category is present everytime, so | 578 | * Note: The "default" Category is present everytime, so |
579 | * it's checked for it's entries. | 579 | * it's checked for it's entries. |
580 | */ | 580 | */ |
581 | bool isDocEmpty() | 581 | bool isDocEmpty() |
582 | { | 582 | { |
583 | if (numCategories() > 1) | 583 | if (numCategories() > 1) |
584 | return false; | 584 | return false; |
585 | if (numEntries(0)) | 585 | if (numEntries(0)) |
586 | return false; | 586 | return false; |
587 | return true; | 587 | return true; |
588 | } | 588 | } |
589 | /** returns the filename of this doc */ | 589 | /** returns the filename of this doc */ |
590 | const QString& getFilename() | 590 | const QString& getFilename() |
591 | { return filename; } | 591 | { return filename; } |
592 | /** returns the title of the doc */ | 592 | /** returns the title of the doc */ |
593 | QString getTitle(); | 593 | QString getTitle(); |
594 | /** sets the list-view-pointer hold in the doc */ | 594 | /** sets the list-view-pointer hold in the doc */ |
595 | void setListViewPointer(PwMView *_listView) | 595 | void setListViewPointer(PwMView *_listView) |
596 | { listView = _listView; } | 596 | { listView = _listView; } |
597 | /** returns the list-view-pointer */ | 597 | /** returns the list-view-pointer */ |
598 | PwMView * getListViewPointer() | 598 | PwMView * getListViewPointer() |
599 | { return listView; } | 599 | { return listView; } |
600 | /** try to delete the doc. The user may be asked to save | 600 | /** try to delete the doc. The user may be asked to save |
601 | * the data. The user may cancel the whole operation. | 601 | * the data. The user may cancel the whole operation. |
602 | * false is returned, then. | 602 | * false is returned, then. |
603 | */ | 603 | */ |
604 | bool tryDelete(); | 604 | bool tryDelete(); |
605 | /** is the doc deleted? (with tryDelete() ) */ | 605 | /** is the doc deleted? (with tryDelete() ) */ |
606 | bool isDeleted() | 606 | bool isDeleted() |
607 | { return deleted; } | 607 | { return deleted; } |
608 | /** returns the document timer object */ | 608 | /** returns the document timer object */ |
609 | DocTimer * timer() | 609 | DocTimer * timer() |
610 | { return _timer; } | 610 | { return _timer; } |
611 | /** get a lock on the dataChanged signal. | 611 | /** get a lock on the dataChanged signal. |
612 | * If someone is holding a lock, the signal is not emitted. | 612 | * If someone is holding a lock, the signal is not emitted. |
613 | */ | 613 | */ |
614 | void getDataChangedLock() | 614 | void getDataChangedLock() |
615 | { ++dataChangedLock; } | 615 | { ++dataChangedLock; } |
616 | /** put the dataChanged lock */ | 616 | /** put the dataChanged lock */ |
617 | void putDataChangedLock() | 617 | void putDataChangedLock() |
618 | { --dataChangedLock; } | 618 | { --dataChangedLock; } |
619 | /** returns the revision count of the item at cat/index */ | 619 | /** returns the revision count of the item at cat/index */ |
620 | unsigned int getEntryRevCnt(unsigned int category, unsigned int index) | 620 | unsigned int getEntryRevCnt(unsigned int category, unsigned int index) |
621 | { return dti.dta[category].d[index].rev; } | 621 | { return dti.dta[category].d[index].rev; } |
622 | /** returns a const pointer to the entries meta */ | 622 | /** returns a const pointer to the entries meta */ |
623 | const PwMMetaData * getEntryMeta(unsigned int category, unsigned int index) | 623 | const PwMMetaData * getEntryMeta(unsigned int category, unsigned int index) |
624 | { return &(dti.dta[category].d[index].meta); } | 624 | { return &(dti.dta[category].d[index].meta); } |
625 | /** is the entry at "category" "index" a binary entry? */ | 625 | /** is the entry at "category" "index" a binary entry? */ |
626 | bool isBinEntry(unsigned int category, unsigned int index) | 626 | bool isBinEntry(unsigned int category, unsigned int index) |
627 | { return dti.dta[category].d[index].binary; } | 627 | { return dti.dta[category].d[index].binary; } |
628 | 628 | ||
629 | public slots: | 629 | public slots: |
630 | /** wrapper for PwMTray */ | 630 | /** wrapper for PwMTray */ |
631 | void _deepUnlock(); | 631 | void _deepUnlock(); |
632 | 632 | ||
633 | signals: | 633 | signals: |
634 | /** the data of the document has changed and must be updated | 634 | /** the data of the document has changed and must be updated |
635 | * in all views. | 635 | * in all views. |
636 | * NOTE: use emitDataChanged(PwMDoc *document) to emit this signal! | 636 | * NOTE: use emitDataChanged(PwMDoc *document) to emit this signal! |
637 | */ | 637 | */ |
638 | void dataChanged(PwMDoc *document); | 638 | void dataChanged(PwMDoc *document); |
639 | /** the document class is going to close. This signal may be | 639 | /** the document class is going to close. This signal may be |
640 | * used to nofify all views, that the user closed the document, | 640 | * used to nofify all views, that the user closed the document, |
641 | * so the views can go down, too. | 641 | * so the views can go down, too. |
642 | */ | 642 | */ |
643 | void docClosed(PwMDoc *document); | 643 | void docClosed(PwMDoc *document); |
644 | /** somebody just opened the document */ | 644 | /** somebody just opened the document */ |
645 | void docOpened(PwMDoc *document); | 645 | void docOpened(PwMDoc *document); |
646 | /** this document object just got created */ | 646 | /** this document object just got created */ |
647 | void docCreated(PwMDoc *document); | 647 | void docCreated(PwMDoc *document); |
648 | 648 | ||
649 | public: | 649 | public: |
650 | /** emit the dataChanged signal after checking for a lock */ | 650 | /** emit the dataChanged signal after checking for a lock */ |
651 | void emitDataChanged(PwMDoc *document) | 651 | void emitDataChanged(PwMDoc *document) |
652 | { | 652 | { |
653 | if (!dataChangedLock) | 653 | if (!dataChangedLock) |
654 | emit dataChanged(document); | 654 | emit dataChanged(document); |
655 | } | 655 | } |
656 | 656 | ||
657 | protected: | 657 | protected: |
658 | /** current file for this doc */ | 658 | /** current file for this doc */ |
659 | QString filename; | 659 | QString filename; |
660 | //US ENH: we need a place where we keep the syncentries. So I invented | 660 | //US ENH: we need a place where we keep the syncentries. So I invented |
661 | // struct PwMItem, that has a vector of PwMCategoryItem and vector of PwMSyncItem | 661 | // struct PwMItem, that has a vector of PwMCategoryItem and vector of PwMSyncItem |
662 | /** holds all data */ | 662 | /** holds all data */ |
663 | PwMItem dti; | 663 | PwMItem dti; |
664 | /** maximum number of entries */ | 664 | /** maximum number of entries */ |
665 | unsigned int maxEntries; | 665 | unsigned int maxEntries; |
666 | /** currently used password to encrypt data */ | 666 | /** currently used password to encrypt data */ |
667 | QString currentPw; | 667 | QString currentPw; |
668 | /** current global document status flags */ | 668 | /** current global document status flags */ |
669 | unsigned int curDocStat; | 669 | unsigned int curDocStat; |
670 | /** browser process for goToURL() */ | 670 | /** browser process for goToURL() */ |
671 | KProcess browserProc; | 671 | KProcess browserProc; |
672 | /** pointer to the list-view, using this document. | 672 | /** pointer to the list-view, using this document. |
673 | * As there can only be one list-view per doc, we | 673 | * As there can only be one list-view per doc, we |
674 | * don't need a list here. | 674 | * don't need a list here. |
675 | */ | 675 | */ |
676 | PwMView *listView; | 676 | PwMView *listView; |
677 | /** unnamedNum is used to store the "unnamed counter" | 677 | /** unnamedNum is used to store the "unnamed counter" |
678 | * for this document, while it's unnamed. If it's 0, | 678 | * for this document, while it's unnamed. If it's 0, |
679 | * we have to get a new unique one. | 679 | * we have to get a new unique one. |
680 | */ | 680 | */ |
681 | unsigned int unnamedNum; | 681 | unsigned int unnamedNum; |
682 | /** is this doc going to be deleted (executing in destructor context) */ | 682 | /** is this doc going to be deleted (executing in destructor context) */ |
683 | bool deleted; | 683 | bool deleted; |
684 | /** document timer */ | 684 | /** document timer */ |
685 | DocTimer *_timer; | 685 | DocTimer *_timer; |
686 | /** lock counter for the "dataChanged" signal */ | 686 | /** lock counter for the "dataChanged" signal */ |
687 | unsigned int dataChangedLock; | 687 | unsigned int dataChangedLock; |
688 | 688 | ||
689 | /** list of all open documents */ | 689 | /** list of all open documents */ |
690 | static PwMDocList openDocList; | 690 | static PwMDocList openDocList; |
691 | 691 | ||
692 | protected: | 692 | protected: |
693 | /** serialize "dta" and return it in "d". */ | 693 | /** serialize "dta" and return it in "d". */ |
694 | bool serializeDta(string *d); | 694 | bool serializeDta(string *d); |
695 | /** de-serialize "d" and overwrite "dta" */ | 695 | /** de-serialize "d" and overwrite "dta" */ |
696 | bool deSerializeDta(const string *d, bool entriesLocked); | 696 | bool deSerializeDta(const string *d, bool entriesLocked); |
697 | /** write header to file */ | 697 | /** write header to file */ |
698 | PwMerror writeFileHeader(char keyHash, char dataHash, char crypt, char compress, | 698 | PwMerror writeFileHeader(char keyHash, char dataHash, char crypt, char compress, |
699 | QString *pw, QFile *f); | 699 | QString *pw, QFile *f); |
700 | /** write data-hash to file */ | 700 | /** write data-hash to file */ |
701 | PwMerror writeDataHash(char dataHash, string *d, QFile *f); | 701 | PwMerror writeDataHash(char dataHash, string *d, QFile *f); |
702 | /** check header. Read header info and verify key-hash and filever. | 702 | /** check header. Read header info and verify key-hash and filever. |
703 | * returns length of header in "headerLength" */ | 703 | * returns length of header in "headerLength" */ |
704 | PwMerror checkHeader(char *cryptAlgo, QString *pw, char *compress, | 704 | PwMerror checkHeader(char *cryptAlgo, QString *pw, char *compress, |
705 | unsigned int *headerLength, char *dataHashType, | 705 | unsigned int *headerLength, char *dataHashType, |
706 | string *dataHash, QFile *f); | 706 | string *dataHash, QFile *f); |
707 | /** check the data-hash */ | 707 | /** check the data-hash */ |
708 | PwMerror checkDataHash(char dataHashType, const string *dataHash, const string *dataStream); | 708 | PwMerror checkDataHash(char dataHashType, const string *dataHash, const string *dataStream); |
709 | /** encrypt data "d" and write to "filename" */ | 709 | /** encrypt data "d" and write to "filename" */ |
710 | PwMerror encrypt(string *d, const QString *pw, QFile *f, char algo); | 710 | PwMerror encrypt(string *d, const QString *pw, QFile *f, char algo); |
711 | /** read data from file beginning at "pos", decrypt and return it */ | 711 | /** read data from file beginning at "pos", decrypt and return it */ |
712 | PwMerror decrypt(string *d, unsigned int pos, const QString *pw, char algo, QFile *f); | 712 | PwMerror decrypt(string *d, unsigned int pos, const QString *pw, char algo, QFile *f); |
713 | /** compress the data */ | 713 | /** compress the data */ |
714 | bool compressDta(string *d, char algo); | 714 | bool compressDta(string *d, char algo); |
715 | /** uncompress the data */ | 715 | /** uncompress the data */ |
716 | bool decompressDta(string *d, char algo); | 716 | bool decompressDta(string *d, char algo); |
717 | /** internal import function for a text-file generated by PwM. | 717 | /** internal import function for a text-file generated by PwM. |
718 | * If this is not a valid PwM-exported file, it returns e_fileFormat */ | 718 | * If this is not a valid PwM-exported file, it returns e_fileFormat */ |
719 | PwMerror importText_PwM(const QString *file); | 719 | PwMerror importText_PwM(const QString *file); |
720 | /** PwM-text-import helper function to extract the name/pw/comment out | 720 | /** PwM-text-import helper function to extract the name/pw/comment out |
721 | * of one entry-line */ | 721 | * of one entry-line */ |
722 | bool textExtractEntry_PwM(const char *in, ssize_t in_size, string *out); | 722 | bool textExtractEntry_PwM(const char *in, ssize_t in_size, string *out); |
723 | /** compare two strings */ | 723 | /** compare two strings */ |
724 | bool compareString(const string &s1, const string &s2, bool caseSensitive, | 724 | bool compareString(const string &s1, const string &s2, bool caseSensitive, |
725 | bool exactWordMatch); | 725 | bool exactWordMatch); |
726 | /** clears all document-data */ | 726 | /** clears all document-data */ |
727 | void clearDoc(); | 727 | void clearDoc(); |
728 | /** delete all empty categories */ | 728 | /** delete all empty categories */ |
729 | void delAllEmptyCat(bool dontFlagDirty); | 729 | void delAllEmptyCat(bool dontFlagDirty); |
730 | /** set a document status flag */ | 730 | /** set a document status flag */ |
731 | void setDocStatFlag(unsigned int statFlag) | 731 | void setDocStatFlag(unsigned int statFlag) |
732 | { curDocStat |= statFlag; } | 732 | { curDocStat |= statFlag; } |
733 | /** unset a document status flag */ | 733 | /** unset a document status flag */ |
734 | void unsetDocStatFlag(unsigned int statFlag) | 734 | void unsetDocStatFlag(unsigned int statFlag) |
735 | { curDocStat &= ~statFlag; } | 735 | { curDocStat &= ~statFlag; } |
736 | /** get a document status flag */ | 736 | /** get a document status flag */ |
737 | bool getDocStatFlag(unsigned int statFlag) const | 737 | bool getDocStatFlag(unsigned int statFlag) const |
738 | { return (curDocStat & statFlag); } | 738 | { return (curDocStat & statFlag); } |
739 | /** set the "currentPassword" */ | 739 | /** set the "currentPassword" */ |
740 | void setCurrentPw(const QString &pw) | 740 | void setCurrentPw(const QString &pw) |
741 | { | 741 | { |
742 | currentPw = pw; | 742 | currentPw = pw; |
743 | setDocStatFlag(DOC_STAT_DISK_DIRTY); | 743 | setDocStatFlag(DOC_STAT_DISK_DIRTY); |
744 | } | 744 | } |
745 | /** make a backup-copy of the given file */ | 745 | /** make a backup-copy of the given file */ |
746 | bool backupFile(const QString &filePath); | 746 | bool backupFile(const QString &filePath); |
747 | /** copy a file from src to dst */ | 747 | /** copy a file from src to dst */ |
748 | bool copyFile(const QString &src, const QString &dst); | 748 | bool copyFile(const QString &src, const QString &dst); |
749 | 749 | ||
750 | 750 | ||
751 | public: | 751 | public: |
752 | #ifdef PWM_EMBEDDED | 752 | #ifdef PWM_EMBEDDED |
753 | //US ENH: this is the magic function that syncronizes the local doc with the remote doc. | 753 | //US ENH: this is the magic function that syncronizes the local doc with the remote doc. |
754 | PwMerror syncronize(KSyncManager* manager, PwMDoc* syncLocal, PwMDoc* syncRemote, int mode ); | 754 | PwMerror syncronize(KSyncManager* manager, PwMDoc* syncLocal, PwMDoc* syncRemote, int mode ); |
755 | 755 | ||
756 | //takePwMDataItem returns the following values | 756 | //takePwMDataItem returns the following values |
757 | // 0 equal | 757 | // 0 equal |
758 | // 1 take local | 758 | // 1 take local |
759 | // 2 take remote | 759 | // 2 take remote |
760 | // 3 cancel | 760 | // 3 cancel |
761 | int takePwMDataItem( PwMDataItem* local, PwMDataItem* remote, QDateTime lastSync, int mode , bool full ); | 761 | int takePwMDataItem( PwMDataItem* local, PwMDataItem* remote, QDateTime lastSync, int mode , bool full ); |
762 | 762 | ||
763 | //the following methods are the overwritten callbackmethods from the syncinterface | 763 | //the following methods are the overwritten callbackmethods from the syncinterface |
764 | virtual bool sync(KSyncManager* manager, QString filename, int mode); | 764 | virtual bool sync(KSyncManager* manager, QString filename, int mode); |
765 | virtual void removeSyncInfo( QString syncProfile); | ||
765 | 766 | ||
766 | #endif | 767 | #endif |
767 | private: | 768 | private: |
768 | //US ENH: helpermethods to access the sync data for a certain syncname. | 769 | //US ENH: helpermethods to access the sync data for a certain syncname. |
769 | // It returns the syncdatas index | 770 | // It returns the syncdatas index |
770 | bool findSyncData(const QString &syncname, unsigned int *index); | 771 | bool findSyncData(const QString &syncname, unsigned int *index); |
771 | 772 | ||
772 | /** add new syncdataentry */ | 773 | /** add new syncdataentry */ |
773 | PwMerror addSyncDataEntry(PwMSyncItem *d, bool dontFlagDirty = false); | 774 | PwMerror addSyncDataEntry(PwMSyncItem *d, bool dontFlagDirty = false); |
774 | 775 | ||
775 | /** returns a pointer to the syncdata */ | 776 | /** returns a pointer to the syncdata */ |
776 | PwMSyncItem* getSyncDataEntry(unsigned int index) | 777 | PwMSyncItem* getSyncDataEntry(unsigned int index) |
777 | { return &(dti.syncDta[index]); } | 778 | { return &(dti.syncDta[index]); } |
778 | 779 | ||
779 | /** delete entry */ | 780 | /** delete entry */ |
780 | bool delSyncDataEntry(unsigned int index, bool dontFlagDirty = false); | 781 | bool delSyncDataEntry(unsigned int index, bool dontFlagDirty = false); |
781 | 782 | ||
782 | PwMDataItem* findEntryByID(const QString &uid, unsigned int *category, unsigned int *index); | 783 | PwMDataItem* findEntryByID(const QString &uid, unsigned int *category, unsigned int *index); |
783 | 784 | ||
784 | QStringList getIDEntryList(); | 785 | QStringList getIDEntryList(); |
785 | 786 | ||
786 | }; | 787 | }; |
787 | 788 | ||
788 | #endif | 789 | #endif |