author | ulf69 <ulf69> | 2004-10-20 18:38:39 (UTC) |
---|---|---|
committer | ulf69 <ulf69> | 2004-10-20 18:38:39 (UTC) |
commit | 8e00329a4a5f0b66d26d20f067ab6aefca17f17a (patch) (unidiff) | |
tree | 9fa40d29baece91dc854b7e124c3bbc2962a0729 /pwmanager | |
parent | 13243e1fb1855d306d45a84365f55e20efeff69d (diff) | |
download | kdepimpi-8e00329a4a5f0b66d26d20f067ab6aefca17f17a.zip kdepimpi-8e00329a4a5f0b66d26d20f067ab6aefca17f17a.tar.gz kdepimpi-8e00329a4a5f0b66d26d20f067ab6aefca17f17a.tar.bz2 |
removed dead code
-rw-r--r-- | pwmanager/pwmanager/pwm.cpp | 30 | ||||
-rw-r--r-- | pwmanager/pwmanager/pwmdoc.cpp | 25 |
2 files changed, 27 insertions, 28 deletions
diff --git a/pwmanager/pwmanager/pwm.cpp b/pwmanager/pwmanager/pwm.cpp index c511661..66d26d6 100644 --- a/pwmanager/pwmanager/pwm.cpp +++ b/pwmanager/pwmanager/pwm.cpp | |||
@@ -665,130 +665,130 @@ void PwM::editPwd_slot1(const QString *category) | |||
665 | 665 | ||
666 | void PwM::editPwd_slot3(const QString *category, const int *index, | 666 | void PwM::editPwd_slot3(const QString *category, const int *index, |
667 | PwMDoc *_doc) | 667 | PwMDoc *_doc) |
668 | { | 668 | { |
669 | PwMDoc *doc; | 669 | PwMDoc *doc; |
670 | if (_doc) { | 670 | if (_doc) { |
671 | doc = _doc; | 671 | doc = _doc; |
672 | } else { | 672 | } else { |
673 | doc = curDoc(); | 673 | doc = curDoc(); |
674 | } | 674 | } |
675 | PWM_ASSERT(doc); | 675 | PWM_ASSERT(doc); |
676 | if (doc->isDocEmpty()) | 676 | if (doc->isDocEmpty()) |
677 | return; | 677 | return; |
678 | if (doc->isDeepLocked()) | 678 | if (doc->isDeepLocked()) |
679 | return; | 679 | return; |
680 | doc->timer()->getLock(DocTimer::id_autoLockTimer); | 680 | doc->timer()->getLock(DocTimer::id_autoLockTimer); |
681 | unsigned int curEntryIndex; | 681 | unsigned int curEntryIndex; |
682 | if (index) { | 682 | if (index) { |
683 | curEntryIndex = *index; | 683 | curEntryIndex = *index; |
684 | } else { | 684 | } else { |
685 | if (!(view->getCurEntryIndex(&curEntryIndex))) { | 685 | if (!(view->getCurEntryIndex(&curEntryIndex))) { |
686 | printDebug("couldn't get index. Maybe we have a binary entry here."); | 686 | printDebug("couldn't get index. Maybe we have a binary entry here."); |
687 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 687 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
688 | return; | 688 | return; |
689 | } | 689 | } |
690 | } | 690 | } |
691 | QString curCategory; | 691 | QString curCategory; |
692 | if (category) { | 692 | if (category) { |
693 | curCategory = *category; | 693 | curCategory = *category; |
694 | } else { | 694 | } else { |
695 | curCategory = view->getCurrentCategory(); | 695 | curCategory = view->getCurrentCategory(); |
696 | } | 696 | } |
697 | PwMDataItem currItem; | 697 | PwMDataItem currItem; |
698 | if (!doc->getEntry(curCategory, curEntryIndex, &currItem, true)) { | 698 | if (!doc->getEntry(curCategory, curEntryIndex, &currItem, true)) { |
699 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 699 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
700 | return; | 700 | return; |
701 | } | 701 | } |
702 | BUG_ON(currItem.binary); | 702 | BUG_ON(currItem.binary); |
703 | 703 | ||
704 | AddEntryWndImpl w; | 704 | AddEntryWndImpl w; |
705 | vector<string> catList; | 705 | vector<string> catList; |
706 | doc->getCategoryList(&catList); | 706 | doc->getCategoryList(&catList); |
707 | unsigned i, size = catList.size(); | 707 | unsigned i, size = catList.size(); |
708 | for (i = 0; i < size; ++i) { | 708 | for (i = 0; i < size; ++i) { |
709 | w.addCategory(catList[i].c_str()); | 709 | w.addCategory(catList[i].c_str()); |
710 | } | 710 | } |
711 | w.setCurrCategory(curCategory); | 711 | w.setCurrCategory(curCategory); |
712 | w.setDescription(currItem.desc.c_str()); | 712 | w.setDescription(currItem.desc.c_str()); |
713 | w.setUsername(currItem.name.c_str()); | 713 | w.setUsername(currItem.name.c_str()); |
714 | w.setPassword(currItem.pw.c_str()); | 714 | w.setPassword(currItem.pw.c_str()); |
715 | w.setUrl(currItem.url.c_str()); | 715 | w.setUrl(currItem.url.c_str()); |
716 | w.setLauncher(currItem.launcher.c_str()); | 716 | w.setLauncher(currItem.launcher.c_str()); |
717 | w.setComment(currItem.comment.c_str()); | 717 | w.setComment(currItem.comment.c_str()); |
718 | if (w.exec() == 1) { | 718 | if (w.exec() == 1) { |
719 | currItem.desc = w.getDescription().latin1(); | 719 | currItem.desc = w.getDescription().latin1(); |
720 | currItem.name = w.getUsername().latin1(); | 720 | currItem.name = w.getUsername().latin1(); |
721 | currItem.pw = w.getPassword().latin1(); | 721 | currItem.pw = w.getPassword().latin1(); |
722 | currItem.comment = w.getComment().latin1(); | 722 | currItem.comment = w.getComment().latin1(); |
723 | currItem.url = w.getUrl().latin1(); | 723 | currItem.url = w.getUrl().latin1(); |
724 | currItem.launcher = w.getLauncher().latin1(); | 724 | currItem.launcher = w.getLauncher().latin1(); |
725 | if (!doc->editEntry(curCategory, w.getCategory(), | 725 | if (!doc->editEntry(curCategory, w.getCategory(), |
726 | curEntryIndex, &currItem)) { | 726 | curEntryIndex, &currItem)) { |
727 | KMessageBox::error(this, | 727 | KMessageBox::error(this, |
728 | i18n("Couldn't edit the entry.\n" | 728 | i18n("Couldn't edit the entry.\n" |
729 | "Maybe you changed the category and " | 729 | "Maybe you changed the category and\n" |
730 | "this entry is already present in the new " | 730 | "this entry is already present\nin the new " |
731 | "category?"), | 731 | "category?"), |
732 | i18n("couldn't edit entry.")); | 732 | i18n("couldn't edit entry.")); |
733 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 733 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
734 | return; | 734 | return; |
735 | } | 735 | } |
736 | } | 736 | } |
737 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 737 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
738 | } | 738 | } |
739 | 739 | ||
740 | void PwM::deletePwd_slot() | 740 | void PwM::deletePwd_slot() |
741 | { | 741 | { |
742 | PWM_ASSERT(curDoc()); | 742 | PWM_ASSERT(curDoc()); |
743 | if (curDoc()->isDocEmpty()) | 743 | if (curDoc()->isDocEmpty()) |
744 | return; | 744 | return; |
745 | if (curDoc()->isDeepLocked()) | 745 | if (curDoc()->isDeepLocked()) |
746 | return; | 746 | return; |
747 | curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); | 747 | curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); |
748 | unsigned int curEntryIndex = 0; | 748 | unsigned int curEntryIndex = 0; |
749 | if (!(view->getCurEntryIndex(&curEntryIndex))) { | 749 | if (!(view->getCurEntryIndex(&curEntryIndex))) { |
750 | printDebug("couldn't get index"); | 750 | printDebug("couldn't get index"); |
751 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); | 751 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); |
752 | return; | 752 | return; |
753 | } | 753 | } |
754 | 754 | ||
755 | PwMDataItem currItem; | 755 | PwMDataItem currItem; |
756 | QString curCategory = view->getCurrentCategory(); | 756 | QString curCategory = view->getCurrentCategory(); |
757 | if (!curDoc()->getEntry(curCategory, curEntryIndex, &currItem)) { | 757 | if (!curDoc()->getEntry(curCategory, curEntryIndex, &currItem)) { |
758 | printDebug("couldn't get entry"); | 758 | printDebug("couldn't get entry"); |
759 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); | 759 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); |
760 | return; | 760 | return; |
761 | } | 761 | } |
762 | if (KMessageBox:: | 762 | if (KMessageBox:: |
763 | questionYesNo(this, | 763 | questionYesNo(this, |
764 | i18n | 764 | i18n |
765 | ("Do you really want to delete\nthe selected entry") + | 765 | ("Do you really want to delete\nthe selected entry") + |
766 | " \n\"" + QString(currItem.desc.c_str()) | 766 | " \n\"" + QString(currItem.desc.c_str()) |
767 | + "\" ?", i18n("delete?")) | 767 | + "\" ?", i18n("delete?")) |
768 | == KMessageBox::Yes) { | 768 | == KMessageBox::Yes) { |
769 | 769 | ||
770 | curDoc()->delEntry(curCategory, curEntryIndex); | 770 | curDoc()->delEntry(curCategory, curEntryIndex); |
771 | } | 771 | } |
772 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); | 772 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); |
773 | } | 773 | } |
774 | 774 | ||
775 | void PwM::changeMasterPwd_slot() | 775 | void PwM::changeMasterPwd_slot() |
776 | { | 776 | { |
777 | PWM_ASSERT(curDoc()); | 777 | PWM_ASSERT(curDoc()); |
778 | curDoc()->changeCurrentPw(); | 778 | curDoc()->changeCurrentPw(); |
779 | } | 779 | } |
780 | 780 | ||
781 | void PwM::lockWnd_slot() | 781 | void PwM::lockWnd_slot() |
782 | { | 782 | { |
783 | PWM_ASSERT(curDoc()); | 783 | PWM_ASSERT(curDoc()); |
784 | curDoc()->lockAll(true); | 784 | curDoc()->lockAll(true); |
785 | } | 785 | } |
786 | 786 | ||
787 | void PwM::deepLockWnd_slot() | 787 | void PwM::deepLockWnd_slot() |
788 | { | 788 | { |
789 | PWM_ASSERT(curDoc()); | 789 | PWM_ASSERT(curDoc()); |
790 | curDoc()->deepLock(); | 790 | curDoc()->deepLock(); |
791 | } | 791 | } |
792 | 792 | ||
793 | void PwM::unlockWnd_slot() | 793 | void PwM::unlockWnd_slot() |
794 | { | 794 | { |
@@ -854,294 +854,294 @@ void PwM::config_slot() | |||
854 | pwm = *i2; | 854 | pwm = *i2; |
855 | // reinitialize the window style. | 855 | // reinitialize the window style. |
856 | if (oldStyle != newStyle) | 856 | if (oldStyle != newStyle) |
857 | pwm->curView()->initStyle(newStyle); | 857 | pwm->curView()->initStyle(newStyle); |
858 | // set the new font | 858 | // set the new font |
859 | pwm->curView()->setFont(conf()->confGlobEntryFont()); | 859 | pwm->curView()->setFont(conf()->confGlobEntryFont()); |
860 | ++i2; | 860 | ++i2; |
861 | } | 861 | } |
862 | } | 862 | } |
863 | 863 | ||
864 | void PwM::activateMpButton(bool activate) | 864 | void PwM::activateMpButton(bool activate) |
865 | { | 865 | { |
866 | managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_CHANGEMP, activate); | 866 | managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_CHANGEMP, activate); |
867 | } | 867 | } |
868 | 868 | ||
869 | void PwM::closeEvent(QCloseEvent *e) | 869 | void PwM::closeEvent(QCloseEvent *e) |
870 | { | 870 | { |
871 | e->accept(); | 871 | e->accept(); |
872 | } | 872 | } |
873 | 873 | ||
874 | void PwM::docClosed(PwMDoc *doc) | 874 | void PwM::docClosed(PwMDoc *doc) |
875 | { | 875 | { |
876 | PARAM_UNUSED(doc); | 876 | PARAM_UNUSED(doc); |
877 | PWM_ASSERT(doc == curDoc()); | 877 | PWM_ASSERT(doc == curDoc()); |
878 | close(); | 878 | close(); |
879 | } | 879 | } |
880 | 880 | ||
881 | void PwM::find_slot() | 881 | void PwM::find_slot() |
882 | { | 882 | { |
883 | PWM_ASSERT(curDoc()); | 883 | PWM_ASSERT(curDoc()); |
884 | if (curDoc()->isDocEmpty()) | 884 | if (curDoc()->isDocEmpty()) |
885 | return; | 885 | return; |
886 | if (curDoc()->isDeepLocked()) | 886 | if (curDoc()->isDeepLocked()) |
887 | return; | 887 | return; |
888 | curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); | 888 | curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); |
889 | FindWndImpl findWnd(view); | 889 | FindWndImpl findWnd(view); |
890 | findWnd.exec(); | 890 | findWnd.exec(); |
891 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); | 891 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); |
892 | } | 892 | } |
893 | 893 | ||
894 | void PwM::exportToText() | 894 | void PwM::exportToText() |
895 | { | 895 | { |
896 | PWM_ASSERT(curDoc()); | 896 | PWM_ASSERT(curDoc()); |
897 | if (curDoc()->isDocEmpty()) { | 897 | if (curDoc()->isDocEmpty()) { |
898 | KMessageBox::information(this, | 898 | KMessageBox::information(this, |
899 | i18n | 899 | i18n |
900 | ("Sorry, there's nothing to export.\n" | 900 | ("Sorry, there's nothing to export.\n" |
901 | "Please first add some passwords."), | 901 | "Please first add some passwords."), |
902 | i18n("nothing to do")); | 902 | i18n("nothing to do")); |
903 | return; | 903 | return; |
904 | } | 904 | } |
905 | curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); | 905 | curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); |
906 | QString fn(KFileDialog::getSaveFileName(QString::null, | 906 | QString fn(KFileDialog::getSaveFileName(QString::null, |
907 | i18n("*|plain-text file"), | 907 | i18n("*|plain-text file"), |
908 | this)); | 908 | this)); |
909 | if (fn == "") { | 909 | if (fn == "") { |
910 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); | 910 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); |
911 | return; | 911 | return; |
912 | } | 912 | } |
913 | 913 | ||
914 | PwMerror ret = curDoc()->exportToText(&fn); | 914 | PwMerror ret = curDoc()->exportToText(&fn); |
915 | if (ret != e_success) { | 915 | if (ret != e_success) { |
916 | KMessageBox::error(this, | 916 | KMessageBox::error(this, |
917 | i18n("Error: Couldn't write to file.\n" | 917 | i18n("Error: Couldn't write to file.\n" |
918 | "Please check if you have permission to write " | 918 | "Please check if you have permission to write\n" |
919 | "to the file in that directory."), | 919 | "to the file in that directory."), |
920 | i18n("error while writing")); | 920 | i18n("error while writing")); |
921 | } else | 921 | } else |
922 | showStatMsg(i18n("Successfully exported data.")); | 922 | showStatMsg(i18n("Successfully exported data.")); |
923 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); | 923 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); |
924 | } | 924 | } |
925 | 925 | ||
926 | bool PwM::importFromText() | 926 | bool PwM::importFromText() |
927 | { | 927 | { |
928 | if (!isVirgin()) { | 928 | if (!isVirgin()) { |
929 | if (KMessageBox::questionYesNo(this, | 929 | if (KMessageBox::questionYesNo(this, |
930 | i18n("Do you want to import the data " | 930 | i18n("Do you want to import the data\n" |
931 | "into the current document? (If you " | 931 | "into the current document? (If you\n" |
932 | "select \"no\", a new document will be " | 932 | "select \"no\", a new document will be\n" |
933 | "opened.)"), | 933 | "opened.)"), |
934 | i18n("import into this document?")) | 934 | i18n("import into this document?")) |
935 | == KMessageBox::No) { | 935 | == KMessageBox::No) { |
936 | // import the data to a new window. | 936 | // import the data to a new window. |
937 | PwM *newInstance = init->createMainWnd(); | 937 | PwM *newInstance = init->createMainWnd(); |
938 | bool ok = newInstance->importFromText(); | 938 | bool ok = newInstance->importFromText(); |
939 | if (!ok) { | 939 | if (!ok) { |
940 | newInstance->setForceQuit(true); | 940 | newInstance->setForceQuit(true); |
941 | delete_and_null(newInstance); | 941 | delete_and_null(newInstance); |
942 | } | 942 | } |
943 | return ok; | 943 | return ok; |
944 | } | 944 | } |
945 | } | 945 | } |
946 | 946 | ||
947 | curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); | 947 | curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); |
948 | PwMerror ret; | 948 | PwMerror ret; |
949 | QString path(KFileDialog::getOpenFileName(QString::null, | 949 | QString path(KFileDialog::getOpenFileName(QString::null, |
950 | i18n("*|PWM-exported text file"), | 950 | i18n("*|PWM-exported text file"), |
951 | this)); | 951 | this)); |
952 | if (path == "") | 952 | if (path == "") |
953 | goto cancelImport; | 953 | goto cancelImport; |
954 | 954 | ||
955 | ret = curDoc()->importFromText(&path, 0); | 955 | ret = curDoc()->importFromText(&path, 0); |
956 | if (ret == e_fileFormat) { | 956 | if (ret == e_fileFormat) { |
957 | KMessageBox::error(this, | 957 | KMessageBox::error(this, |
958 | i18n("Could not read file-format.\n" | 958 | i18n("Could not read file-format.\n" |
959 | "This seems to be _not_ a valid file " | 959 | "This seems to be _not_ a valid file\n" |
960 | "exported by PwM."), | 960 | "exported by PwM."), |
961 | i18n("invalid file-format")); | 961 | i18n("invalid file-format")); |
962 | goto cancelImport; | 962 | goto cancelImport; |
963 | } else if (ret == e_invalidArg) { | 963 | } else if (ret == e_invalidArg) { |
964 | BUG(); | 964 | BUG(); |
965 | goto cancelImport; | 965 | goto cancelImport; |
966 | } else if (ret != e_success) { | 966 | } else if (ret != e_success) { |
967 | KMessageBox::error(this, | 967 | KMessageBox::error(this, |
968 | i18n("Could not import file!\n" | 968 | i18n("Could not import file!\n" |
969 | "Do you have permission to read this file? " | 969 | "Do you have permission to read this file?\n" |
970 | "Do you have enough free memory?"), | 970 | "Do you have enough free memory?"), |
971 | i18n("import failed")); | 971 | i18n("import failed")); |
972 | goto cancelImport; | 972 | goto cancelImport; |
973 | } | 973 | } |
974 | setVirgin(false); | 974 | setVirgin(false); |
975 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); | 975 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); |
976 | return true; | 976 | return true; |
977 | 977 | ||
978 | cancelImport: | 978 | cancelImport: |
979 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); | 979 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); |
980 | return false; | 980 | return false; |
981 | } | 981 | } |
982 | 982 | ||
983 | void PwM::exportToGpasman() | 983 | void PwM::exportToGpasman() |
984 | { | 984 | { |
985 | PWM_ASSERT(curDoc()); | 985 | PWM_ASSERT(curDoc()); |
986 | if (curDoc()->isDocEmpty()) { | 986 | if (curDoc()->isDocEmpty()) { |
987 | KMessageBox::information(this, | 987 | KMessageBox::information(this, |
988 | i18n | 988 | i18n |
989 | ("Sorry, there's nothing to export.\n" | 989 | ("Sorry, there's nothing to export.\n" |
990 | "Please first add some passwords."), | 990 | "Please first add some passwords."), |
991 | i18n("nothing to do")); | 991 | i18n("nothing to do")); |
992 | return; | 992 | return; |
993 | } | 993 | } |
994 | curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); | 994 | curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); |
995 | QString fn(KFileDialog::getSaveFileName(QString::null, | 995 | QString fn(KFileDialog::getSaveFileName(QString::null, |
996 | i18n("*|Gpasman or Kpasman file"), | 996 | i18n("*|Gpasman or Kpasman file"), |
997 | this)); | 997 | this)); |
998 | if (fn == "") { | 998 | if (fn == "") { |
999 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); | 999 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); |
1000 | return; | 1000 | return; |
1001 | } | 1001 | } |
1002 | 1002 | ||
1003 | PwMerror ret = curDoc()->exportToGpasman(&fn); | 1003 | PwMerror ret = curDoc()->exportToGpasman(&fn); |
1004 | if (ret != e_success) { | 1004 | if (ret != e_success) { |
1005 | if (ret == e_noPw) { | 1005 | if (ret == e_noPw) { |
1006 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); | 1006 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); |
1007 | return; | 1007 | return; |
1008 | } | 1008 | } |
1009 | KMessageBox::error(this, | 1009 | KMessageBox::error(this, |
1010 | i18n("Error: Couldn't write to file.\n" | 1010 | i18n("Error: Couldn't write to file.\n" |
1011 | "Please check if you have permission to write " | 1011 | "Please check if you have permission to write " |
1012 | "to the file in that directory."), | 1012 | "to the file in that directory."), |
1013 | i18n("error while writing")); | 1013 | i18n("error while writing")); |
1014 | } else | 1014 | } else |
1015 | showStatMsg(i18n("Successfully exported data.")); | 1015 | showStatMsg(i18n("Successfully exported data.")); |
1016 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); | 1016 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); |
1017 | } | 1017 | } |
1018 | 1018 | ||
1019 | void PwM::exportToKWallet() | 1019 | void PwM::exportToKWallet() |
1020 | { | 1020 | { |
1021 | #ifdef CONFIG_KWALLETIF | 1021 | #ifdef CONFIG_KWALLETIF |
1022 | if (!checkAndAskForKWalletEmu()) | 1022 | if (!checkAndAskForKWalletEmu()) |
1023 | return; | 1023 | return; |
1024 | PWM_ASSERT(curDoc()); | 1024 | PWM_ASSERT(curDoc()); |
1025 | if (curDoc()->isDocEmpty()) { | 1025 | if (curDoc()->isDocEmpty()) { |
1026 | KMessageBox::information(this, | 1026 | KMessageBox::information(this, |
1027 | i18n | 1027 | i18n |
1028 | ("Sorry, there's nothing to export.\n" | 1028 | ("Sorry, there's nothing to export.\n" |
1029 | "Please first add some passwords."), | 1029 | "Please first add some passwords."), |
1030 | i18n("nothing to do")); | 1030 | i18n("nothing to do")); |
1031 | init->initKWalletEmu(); | 1031 | init->initKWalletEmu(); |
1032 | return; | 1032 | return; |
1033 | } | 1033 | } |
1034 | curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); | 1034 | curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); |
1035 | KWalletIf walletIf(this); | 1035 | KWalletIf walletIf(this); |
1036 | if (walletIf.kwalletExport(curDoc())) { | 1036 | if (walletIf.kwalletExport(curDoc())) { |
1037 | KMessageBox::information(this, | 1037 | KMessageBox::information(this, |
1038 | i18n("Successfully exported the data of the current " | 1038 | i18n("Successfully exported the data of the current " |
1039 | "document to KWallet."), | 1039 | "document to KWallet."), |
1040 | i18n("Successfully exported data.")); | 1040 | i18n("Successfully exported data.")); |
1041 | showStatMsg(i18n("Successfully exported data.")); | 1041 | showStatMsg(i18n("Successfully exported data.")); |
1042 | } | 1042 | } |
1043 | init->initKWalletEmu(); | 1043 | init->initKWalletEmu(); |
1044 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); | 1044 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); |
1045 | #endif // CONFIG_KWALLETIF | 1045 | #endif // CONFIG_KWALLETIF |
1046 | } | 1046 | } |
1047 | 1047 | ||
1048 | bool PwM::importFromGpasman() | 1048 | bool PwM::importFromGpasman() |
1049 | { | 1049 | { |
1050 | if (!isVirgin()) { | 1050 | if (!isVirgin()) { |
1051 | if (KMessageBox::questionYesNo(this, | 1051 | if (KMessageBox::questionYesNo(this, |
1052 | i18n("Do you want to import the data " | 1052 | i18n("Do you want to import the data\n" |
1053 | "into the current document? (If you " | 1053 | "into the current document? (If you\n" |
1054 | "select \"no\", a new document will be " | 1054 | "select \"no\", a new document will be\n" |
1055 | "opened.)"), | 1055 | "opened.)"), |
1056 | i18n("import into this document?")) | 1056 | i18n("import into this document?")) |
1057 | == KMessageBox::No) { | 1057 | == KMessageBox::No) { |
1058 | // import the data to a new window. | 1058 | // import the data to a new window. |
1059 | PwM *newInstance = init->createMainWnd(); | 1059 | PwM *newInstance = init->createMainWnd(); |
1060 | bool ok = newInstance->importFromGpasman(); | 1060 | bool ok = newInstance->importFromGpasman(); |
1061 | if (!ok) { | 1061 | if (!ok) { |
1062 | newInstance->setForceQuit(true); | 1062 | newInstance->setForceQuit(true); |
1063 | delete_and_null(newInstance); | 1063 | delete_and_null(newInstance); |
1064 | } | 1064 | } |
1065 | return ok; | 1065 | return ok; |
1066 | } | 1066 | } |
1067 | } | 1067 | } |
1068 | 1068 | ||
1069 | curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); | 1069 | curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); |
1070 | PwMerror ret; | 1070 | PwMerror ret; |
1071 | QString path(KFileDialog::getOpenFileName(QString::null, | 1071 | QString path(KFileDialog::getOpenFileName(QString::null, |
1072 | i18n("*|Gpasman or Kpasman file"), this)); | 1072 | i18n("*|Gpasman or Kpasman file"), this)); |
1073 | if (path == "") | 1073 | if (path == "") |
1074 | goto cancelImport; | 1074 | goto cancelImport; |
1075 | ret = curDoc()->importFromGpasman(&path); | 1075 | ret = curDoc()->importFromGpasman(&path); |
1076 | if (ret == e_wrongPw) { | 1076 | if (ret == e_wrongPw) { |
1077 | if (KMessageBox::questionYesNo(this, | 1077 | if (KMessageBox::questionYesNo(this, |
1078 | i18n | 1078 | i18n |
1079 | ("This is probably the wrong master-password" | 1079 | ("This is probably the wrong master-password\n" |
1080 | "you have typed in.\n" | 1080 | "you have typed in.\n" |
1081 | "There is no real way to determine the " | 1081 | "There is no real way to determine the\n" |
1082 | "correctness of the password in the Gpasman " | 1082 | "correctness of the password in the Gpasman\n" |
1083 | "file-format. But I think this " | 1083 | "file-format. But I think this\n" |
1084 | "password ist wrong.\n" | 1084 | "password ist wrong.\n" |
1085 | "Do you want to continue nevertheless?"), | 1085 | "Do you want to continue nevertheless?"), |
1086 | i18n("password error")) | 1086 | i18n("password error")) |
1087 | == KMessageBox::No) { | 1087 | == KMessageBox::No) { |
1088 | goto cancelImport; | 1088 | goto cancelImport; |
1089 | } | 1089 | } |
1090 | } else if (ret != e_success) { | 1090 | } else if (ret != e_success) { |
1091 | KMessageBox::error(this, | 1091 | KMessageBox::error(this, |
1092 | i18n("Could not import file!\n" | 1092 | i18n("Could not import file!\n" |
1093 | "Do you have permission to read this file?"), | 1093 | "Do you have permission to read this file?"), |
1094 | i18n("import failed")); | 1094 | i18n("import failed")); |
1095 | goto cancelImport; | 1095 | goto cancelImport; |
1096 | } | 1096 | } |
1097 | setVirgin(false); | 1097 | setVirgin(false); |
1098 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); | 1098 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); |
1099 | return true; | 1099 | return true; |
1100 | 1100 | ||
1101 | cancelImport: | 1101 | cancelImport: |
1102 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); | 1102 | curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); |
1103 | return false; | 1103 | return false; |
1104 | } | 1104 | } |
1105 | 1105 | ||
1106 | #ifdef CONFIG_KWALLETIF | 1106 | #ifdef CONFIG_KWALLETIF |
1107 | bool PwM::checkAndAskForKWalletEmu() | 1107 | bool PwM::checkAndAskForKWalletEmu() |
1108 | { | 1108 | { |
1109 | if (init->kwalletEmu()) { | 1109 | if (init->kwalletEmu()) { |
1110 | /* KWallet emulation is enabled. We can't import/export | 1110 | /* KWallet emulation is enabled. We can't import/export |
1111 | * data from/to it, while emulation is active. | 1111 | * data from/to it, while emulation is active. |
1112 | */ | 1112 | */ |
1113 | if (KMessageBox::questionYesNo(this, | 1113 | if (KMessageBox::questionYesNo(this, |
1114 | i18n("KWallet emulation is enabled.\n" | 1114 | i18n("KWallet emulation is enabled.\n" |
1115 | "You can't import or export data from/to " | 1115 | "You can't import or export data from/to " |
1116 | "the original KWallet, while the emulation " | 1116 | "the original KWallet, while the emulation " |
1117 | "is active.\n" | 1117 | "is active.\n" |
1118 | "Do you want to tempoarly disable the KWallet emulation?"), | 1118 | "Do you want to tempoarly disable the KWallet emulation?"), |
1119 | i18n("Tempoarly disable KWallet emulation?")) | 1119 | i18n("Tempoarly disable KWallet emulation?")) |
1120 | == KMessageBox::Yes) { | 1120 | == KMessageBox::Yes) { |
1121 | init->initKWalletEmu(true); | 1121 | init->initKWalletEmu(true); |
1122 | PWM_ASSERT(!init->kwalletEmu()); | 1122 | PWM_ASSERT(!init->kwalletEmu()); |
1123 | return true; | 1123 | return true; |
1124 | } | 1124 | } |
1125 | return false; | 1125 | return false; |
1126 | } | 1126 | } |
1127 | return true; | 1127 | return true; |
1128 | } | 1128 | } |
1129 | #endif // CONFIG_KWALLETIF | 1129 | #endif // CONFIG_KWALLETIF |
1130 | 1130 | ||
1131 | bool PwM::importKWallet() | 1131 | bool PwM::importKWallet() |
1132 | { | 1132 | { |
1133 | #ifdef CONFIG_KWALLETIF | 1133 | #ifdef CONFIG_KWALLETIF |
1134 | if (!checkAndAskForKWalletEmu()) | 1134 | if (!checkAndAskForKWalletEmu()) |
1135 | return false; | 1135 | return false; |
1136 | KWalletIf walletIf(this); | 1136 | KWalletIf walletIf(this); |
1137 | if (!isVirgin()) { | 1137 | if (!isVirgin()) { |
1138 | if (KMessageBox::questionYesNo(this, | 1138 | if (KMessageBox::questionYesNo(this, |
1139 | i18n("Do you want to import the data " | 1139 | i18n("Do you want to import the data " |
1140 | "into the current document? (If you " | 1140 | "into the current document? (If you " |
1141 | "select \"no\", a new document will be " | 1141 | "select \"no\", a new document will be " |
1142 | "opened.)"), | 1142 | "opened.)"), |
1143 | i18n("import into this document?")) | 1143 | i18n("import into this document?")) |
1144 | == KMessageBox::No) { | 1144 | == KMessageBox::No) { |
1145 | // import the data to a new window. | 1145 | // import the data to a new window. |
1146 | PwM *newInstance = init->createMainWnd(); | 1146 | PwM *newInstance = init->createMainWnd(); |
1147 | bool ok = newInstance->importKWallet(); | 1147 | bool ok = newInstance->importKWallet(); |
diff --git a/pwmanager/pwmanager/pwmdoc.cpp b/pwmanager/pwmanager/pwmdoc.cpp index 8869f3a..86b6273 100644 --- a/pwmanager/pwmanager/pwmdoc.cpp +++ b/pwmanager/pwmanager/pwmdoc.cpp | |||
@@ -1203,153 +1203,159 @@ bool PwMDoc::getEntry(const QString &category, unsigned int index, | |||
1203 | if (!findCategory(category, &cat)) { | 1203 | if (!findCategory(category, &cat)) { |
1204 | BUG(); | 1204 | BUG(); |
1205 | return false; | 1205 | return false; |
1206 | } | 1206 | } |
1207 | 1207 | ||
1208 | return getEntry(cat, index, d, unlockIfLocked); | 1208 | return getEntry(cat, index, d, unlockIfLocked); |
1209 | } | 1209 | } |
1210 | 1210 | ||
1211 | bool PwMDoc::getEntry(unsigned int category, unsigned int index, | 1211 | bool PwMDoc::getEntry(unsigned int category, unsigned int index, |
1212 | PwMDataItem *d, bool unlockIfLocked) | 1212 | PwMDataItem *d, bool unlockIfLocked) |
1213 | { | 1213 | { |
1214 | if (index > dti.dta[category].d.size() - 1) | 1214 | if (index > dti.dta[category].d.size() - 1) |
1215 | return false; | 1215 | return false; |
1216 | 1216 | ||
1217 | bool locked = isLocked(category, index); | 1217 | bool locked = isLocked(category, index); |
1218 | if (locked) { | 1218 | if (locked) { |
1219 | /* this entry is locked. We don't return a password, | 1219 | /* this entry is locked. We don't return a password, |
1220 | * until it's unlocked by the user by inserting | 1220 | * until it's unlocked by the user by inserting |
1221 | * chipcard or entering the mpw | 1221 | * chipcard or entering the mpw |
1222 | */ | 1222 | */ |
1223 | if (unlockIfLocked) { | 1223 | if (unlockIfLocked) { |
1224 | if (!lockAt(category, index, false)) { | 1224 | if (!lockAt(category, index, false)) { |
1225 | return false; | 1225 | return false; |
1226 | } | 1226 | } |
1227 | locked = false; | 1227 | locked = false; |
1228 | } | 1228 | } |
1229 | } | 1229 | } |
1230 | 1230 | ||
1231 | *d = dti.dta[category].d[index]; | 1231 | *d = dti.dta[category].d[index]; |
1232 | if (locked) | 1232 | if (locked) |
1233 | d->pw = LOCKED_STRING.latin1(); | 1233 | d->pw = LOCKED_STRING.latin1(); |
1234 | 1234 | ||
1235 | return true; | 1235 | return true; |
1236 | } | 1236 | } |
1237 | 1237 | ||
1238 | PwMerror PwMDoc::getCommentByLvp(const QString &category, int listViewPos, | 1238 | PwMerror PwMDoc::getCommentByLvp(const QString &category, int listViewPos, |
1239 | string *foundComment) | 1239 | string *foundComment) |
1240 | { | 1240 | { |
1241 | PWM_ASSERT(foundComment); | 1241 | PWM_ASSERT(foundComment); |
1242 | unsigned int cat = 0; | 1242 | unsigned int cat = 0; |
1243 | 1243 | ||
1244 | if (!findCategory(category, &cat)) | 1244 | if (!findCategory(category, &cat)) |
1245 | return e_invalidArg; | 1245 | return e_invalidArg; |
1246 | 1246 | ||
1247 | unsigned int i, entries = numEntries(cat); | 1247 | unsigned int i, entries = numEntries(cat); |
1248 | for (i = 0; i < entries; ++i) { | 1248 | for (i = 0; i < entries; ++i) { |
1249 | if (dti.dta[cat].d[i].listViewPos == listViewPos) { | 1249 | if (dti.dta[cat].d[i].listViewPos == listViewPos) { |
1250 | *foundComment = dti.dta[cat].d[i].comment; | 1250 | *foundComment = dti.dta[cat].d[i].comment; |
1251 | if (dti.dta[cat].d[i].binary) | 1251 | if (dti.dta[cat].d[i].binary) |
1252 | return e_binEntry; | 1252 | return e_binEntry; |
1253 | return e_normalEntry; | 1253 | return e_normalEntry; |
1254 | } | 1254 | } |
1255 | } | 1255 | } |
1256 | BUG(); | 1256 | BUG(); |
1257 | return e_generic; | 1257 | return e_generic; |
1258 | } | 1258 | } |
1259 | 1259 | ||
1260 | bool PwMDoc::compressDta(string *d, char algo) | 1260 | bool PwMDoc::compressDta(string *d, char algo) |
1261 | { | 1261 | { |
1262 | PWM_ASSERT(d); | 1262 | PWM_ASSERT(d); |
1263 | switch (algo) { | 1263 | switch (algo) { |
1264 | case PWM_COMPRESS_GZIP: { | 1264 | case PWM_COMPRESS_GZIP: { |
1265 | CompressGzip comp; | 1265 | CompressGzip comp; |
1266 | return comp.compress(d); | 1266 | return comp.compress(d); |
1267 | /*US } case PWM_COMPRESS_BZIP2: { | 1267 | } |
1268 | #ifndef PWM_EMBEDDED | ||
1269 | case PWM_COMPRESS_BZIP2: { | ||
1268 | CompressBzip2 comp; | 1270 | CompressBzip2 comp; |
1269 | return comp.compress(d); | 1271 | return comp.compress(d); |
1270 | */ | 1272 | } |
1271 | } case PWM_COMPRESS_NONE: { | 1273 | #endif |
1274 | case PWM_COMPRESS_NONE: { | ||
1272 | return true; | 1275 | return true; |
1273 | } default: { | 1276 | } default: { |
1274 | BUG(); | 1277 | BUG(); |
1275 | } | 1278 | } |
1276 | } | 1279 | } |
1277 | return false; | 1280 | return false; |
1278 | } | 1281 | } |
1279 | 1282 | ||
1280 | bool PwMDoc::decompressDta(string *d, char algo) | 1283 | bool PwMDoc::decompressDta(string *d, char algo) |
1281 | { | 1284 | { |
1282 | PWM_ASSERT(d); | 1285 | PWM_ASSERT(d); |
1283 | switch (algo) { | 1286 | switch (algo) { |
1284 | case PWM_COMPRESS_GZIP: { | 1287 | case PWM_COMPRESS_GZIP: { |
1285 | CompressGzip comp; | 1288 | CompressGzip comp; |
1286 | return comp.decompress(d); | 1289 | return comp.decompress(d); |
1287 | /*US } case PWM_COMPRESS_BZIP2: { | 1290 | } |
1291 | #ifndef PWM_EMBEDDED | ||
1292 | case PWM_COMPRESS_BZIP2: { | ||
1288 | CompressBzip2 comp; | 1293 | CompressBzip2 comp; |
1289 | return comp.decompress(d); | 1294 | return comp.decompress(d); |
1290 | */ | 1295 | } |
1291 | } case PWM_COMPRESS_NONE: { | 1296 | #endif |
1297 | case PWM_COMPRESS_NONE: { | ||
1292 | return true; | 1298 | return true; |
1293 | } | 1299 | } |
1294 | } | 1300 | } |
1295 | return false; | 1301 | return false; |
1296 | } | 1302 | } |
1297 | 1303 | ||
1298 | PwMerror PwMDoc::encrypt(string *d, const QString *pw, QFile *f, char algo) | 1304 | PwMerror PwMDoc::encrypt(string *d, const QString *pw, QFile *f, char algo) |
1299 | { | 1305 | { |
1300 | PWM_ASSERT(d); | 1306 | PWM_ASSERT(d); |
1301 | PWM_ASSERT(pw); | 1307 | PWM_ASSERT(pw); |
1302 | PWM_ASSERT(f); | 1308 | PWM_ASSERT(f); |
1303 | 1309 | ||
1304 | size_t encSize; | 1310 | size_t encSize; |
1305 | byte *encrypted = 0; | 1311 | byte *encrypted = 0; |
1306 | 1312 | ||
1307 | switch (algo) { | 1313 | switch (algo) { |
1308 | case PWM_CRYPT_BLOWFISH: { | 1314 | case PWM_CRYPT_BLOWFISH: { |
1309 | Blowfish::padNull(d); | 1315 | Blowfish::padNull(d); |
1310 | encSize = d->length(); | 1316 | encSize = d->length(); |
1311 | encrypted = new byte[encSize]; | 1317 | encrypted = new byte[encSize]; |
1312 | Blowfish bf; | 1318 | Blowfish bf; |
1313 | if (bf.bf_setkey((byte *) pw->latin1(), pw->length())) { | 1319 | if (bf.bf_setkey((byte *) pw->latin1(), pw->length())) { |
1314 | delete [] encrypted; | 1320 | delete [] encrypted; |
1315 | return e_weakPw; | 1321 | return e_weakPw; |
1316 | } | 1322 | } |
1317 | bf.bf_encrypt((byte *) encrypted, (byte *) d->c_str(), encSize); | 1323 | bf.bf_encrypt((byte *) encrypted, (byte *) d->c_str(), encSize); |
1318 | break; | 1324 | break; |
1319 | } | 1325 | } |
1320 | case PWM_CRYPT_AES128: | 1326 | case PWM_CRYPT_AES128: |
1321 | /*... fall through */ | 1327 | /*... fall through */ |
1322 | case PWM_CRYPT_AES192: | 1328 | case PWM_CRYPT_AES192: |
1323 | case PWM_CRYPT_AES256: | 1329 | case PWM_CRYPT_AES256: |
1324 | case PWM_CRYPT_3DES: | 1330 | case PWM_CRYPT_3DES: |
1325 | case PWM_CRYPT_TWOFISH: | 1331 | case PWM_CRYPT_TWOFISH: |
1326 | case PWM_CRYPT_TWOFISH128: { | 1332 | case PWM_CRYPT_TWOFISH128: { |
1327 | if (!LibGCryptIf::available()) | 1333 | if (!LibGCryptIf::available()) |
1328 | return e_cryptNotImpl; | 1334 | return e_cryptNotImpl; |
1329 | LibGCryptIf gc; | 1335 | LibGCryptIf gc; |
1330 | PwMerror err; | 1336 | PwMerror err; |
1331 | unsigned char *plain = new unsigned char[d->length() + 1024]; | 1337 | unsigned char *plain = new unsigned char[d->length() + 1024]; |
1332 | memcpy(plain, d->c_str(), d->length()); | 1338 | memcpy(plain, d->c_str(), d->length()); |
1333 | err = gc.encrypt(&encrypted, | 1339 | err = gc.encrypt(&encrypted, |
1334 | &encSize, | 1340 | &encSize, |
1335 | plain, | 1341 | plain, |
1336 | d->length(), | 1342 | d->length(), |
1337 | reinterpret_cast<const unsigned char *>(pw->latin1()), | 1343 | reinterpret_cast<const unsigned char *>(pw->latin1()), |
1338 | pw->length(), | 1344 | pw->length(), |
1339 | algo); | 1345 | algo); |
1340 | delete [] plain; | 1346 | delete [] plain; |
1341 | if (err != e_success) | 1347 | if (err != e_success) |
1342 | return e_cryptNotImpl; | 1348 | return e_cryptNotImpl; |
1343 | break; | 1349 | break; |
1344 | } | 1350 | } |
1345 | default: { | 1351 | default: { |
1346 | delete_ifnot_null_array(encrypted); | 1352 | delete_ifnot_null_array(encrypted); |
1347 | return e_cryptNotImpl; | 1353 | return e_cryptNotImpl; |
1348 | } } | 1354 | } } |
1349 | 1355 | ||
1350 | // write encrypted data to file | 1356 | // write encrypted data to file |
1351 | if (f->writeBlock(reinterpret_cast<const char *>(encrypted), | 1357 | if (f->writeBlock(reinterpret_cast<const char *>(encrypted), |
1352 | static_cast<Q_ULONG>(encSize)) | 1358 | static_cast<Q_ULONG>(encSize)) |
1353 | != static_cast<Q_LONG>(encSize)) { | 1359 | != static_cast<Q_LONG>(encSize)) { |
1354 | delete_ifnot_null_array(encrypted); | 1360 | delete_ifnot_null_array(encrypted); |
1355 | return e_writeFile; | 1361 | return e_writeFile; |
@@ -3062,227 +3068,220 @@ PwMerror PwMDoc::syncronize(KSyncManager* manager, PwMDoc* syncLocal , PwMDoc* s | |||
3062 | if ( ! fullDateRange ) { | 3068 | if ( ! fullDateRange ) { |
3063 | if ( syncItemLocal->lastSyncDate != syncItemRemote->lastSyncDate ) { | 3069 | if ( syncItemLocal->lastSyncDate != syncItemRemote->lastSyncDate ) { |
3064 | 3070 | ||
3065 | fullDateRange = true; | 3071 | fullDateRange = true; |
3066 | qDebug("FULLDATE 3 %s %s", syncItemLocal->lastSyncDate.toString().latin1() , syncItemRemote->lastSyncDate.toString().latin1() ); | 3072 | qDebug("FULLDATE 3 %s %s", syncItemLocal->lastSyncDate.toString().latin1() , syncItemRemote->lastSyncDate.toString().latin1() ); |
3067 | } | 3073 | } |
3068 | } | 3074 | } |
3069 | // fullDateRange = true; // debug only! | 3075 | // fullDateRange = true; // debug only! |
3070 | if ( fullDateRange ) | 3076 | if ( fullDateRange ) |
3071 | mLastSync = QDateTime::currentDateTime().addDays( -100*365); | 3077 | mLastSync = QDateTime::currentDateTime().addDays( -100*365); |
3072 | else | 3078 | else |
3073 | mLastSync = syncItemLocal->lastSyncDate; | 3079 | mLastSync = syncItemLocal->lastSyncDate; |
3074 | 3080 | ||
3075 | 3081 | ||
3076 | qDebug("*************************** "); | 3082 | qDebug("*************************** "); |
3077 | qDebug("mLastSync %s ",mLastSync.toString().latin1() ); | 3083 | qDebug("mLastSync %s ",mLastSync.toString().latin1() ); |
3078 | QStringList er = syncRemote->getIDEntryList(); | 3084 | QStringList er = syncRemote->getIDEntryList(); |
3079 | PwMDataItem* inRemote ;//= er.first(); | 3085 | PwMDataItem* inRemote ;//= er.first(); |
3080 | PwMDataItem* inLocal; | 3086 | PwMDataItem* inLocal; |
3081 | unsigned int catLocal, indexLocal; | 3087 | unsigned int catLocal, indexLocal; |
3082 | unsigned int catRemote, indexRemote; | 3088 | unsigned int catRemote, indexRemote; |
3083 | 3089 | ||
3084 | QString uid; | 3090 | QString uid; |
3085 | manager->showProgressBar(0, i18n("Syncing - close to abort!"), er.count()); | 3091 | manager->showProgressBar(0, i18n("Syncing - close to abort!"), er.count()); |
3086 | 3092 | ||
3087 | int modulo = (er.count()/10)+1; | 3093 | int modulo = (er.count()/10)+1; |
3088 | unsigned int incCounter = 0; | 3094 | unsigned int incCounter = 0; |
3089 | while ( incCounter < er.count()) { | 3095 | while ( incCounter < er.count()) { |
3090 | if (manager->isProgressBarCanceled()) | 3096 | if (manager->isProgressBarCanceled()) |
3091 | return e_syncError; | 3097 | return e_syncError; |
3092 | if ( incCounter % modulo == 0 ) | 3098 | if ( incCounter % modulo == 0 ) |
3093 | manager->showProgressBar(incCounter); | 3099 | manager->showProgressBar(incCounter); |
3094 | 3100 | ||
3095 | uid = er[ incCounter ]; | 3101 | uid = er[ incCounter ]; |
3096 | qDebug("sync uid %s from remote file", uid.latin1()); | 3102 | qDebug("sync uid %s from remote file", uid.latin1()); |
3097 | 3103 | ||
3098 | qApp->processEvents(); | 3104 | qApp->processEvents(); |
3099 | 3105 | ||
3100 | inLocal = syncLocal->findEntryByID( uid, &catLocal, &indexLocal ); | 3106 | inLocal = syncLocal->findEntryByID( uid, &catLocal, &indexLocal ); |
3101 | inRemote = syncRemote->findEntryByID( uid, &catRemote, &indexRemote ); | 3107 | inRemote = syncRemote->findEntryByID( uid, &catRemote, &indexRemote ); |
3102 | PWM_ASSERT(inRemote); | 3108 | PWM_ASSERT(inRemote); |
3103 | if ( inLocal != 0 ) { // maybe conflict - same uid in both files | 3109 | if ( inLocal != 0 ) { // maybe conflict - same uid in both files |
3104 | if ( (take = takePwMDataItem( inLocal, inRemote, mLastSync, mode, fullDateRange) ) ) { | 3110 | if ( (take = takePwMDataItem( inLocal, inRemote, mLastSync, mode, fullDateRange) ) ) { |
3105 | qDebug("take %d %s ", take, inLocal->desc.c_str()); | 3111 | qDebug("take %d %s ", take, inLocal->desc.c_str()); |
3106 | if ( take == 3 ) | 3112 | if ( take == 3 ) |
3107 | return e_syncError; | 3113 | return e_syncError; |
3108 | if ( take == 1 ) {// take local | 3114 | if ( take == 1 ) {// take local |
3109 | int oldlistpos = inRemote->listViewPos; | 3115 | int oldlistpos = inRemote->listViewPos; |
3110 | (*inRemote) = (*inLocal); | 3116 | (*inRemote) = (*inLocal); |
3111 | inRemote->listViewPos = oldlistpos; | 3117 | inRemote->listViewPos = oldlistpos; |
3112 | ++changedRemote; | 3118 | ++changedRemote; |
3113 | } else { // take == 2 take remote | 3119 | } else { // take == 2 take remote |
3114 | int oldlistpos = inLocal->listViewPos; | 3120 | int oldlistpos = inLocal->listViewPos; |
3115 | (*inLocal) = (*inRemote); | 3121 | (*inLocal) = (*inRemote); |
3116 | inLocal->listViewPos = oldlistpos; | 3122 | inLocal->listViewPos = oldlistpos; |
3117 | ++changedLocal; | 3123 | ++changedLocal; |
3118 | } | 3124 | } |
3119 | } | 3125 | } |
3120 | } else { // no conflict | 3126 | } else { // no conflict |
3121 | if ( inRemote->meta.update > mLastSync || mode == 5 ) { | 3127 | if ( inRemote->meta.update > mLastSync || mode == 5 ) { |
3122 | inRemote->meta.update = modifiedSync; | 3128 | inRemote->meta.update = modifiedSync; |
3123 | 3129 | ||
3124 | //first check if we have a matching category in the local file | 3130 | //first check if we have a matching category in the local file |
3125 | const string* remotecat = syncRemote->getCategory(catRemote); | 3131 | const string* remotecat = syncRemote->getCategory(catRemote); |
3126 | //US syncRemote->insertAddressee( inRemote, false ); | ||
3127 | //US syncLocal->insertAddressee( inRemote, false ); | ||
3128 | syncLocal->addEntry(remotecat->c_str(), inRemote, true, false); | 3132 | syncLocal->addEntry(remotecat->c_str(), inRemote, true, false); |
3129 | 3133 | ||
3130 | ++addedPasswordsLocal; | 3134 | ++addedPasswordsLocal; |
3131 | } else { | 3135 | } else { |
3132 | // pending checkExternSyncAddressee(addresseeRSyncSharp, inR); | 3136 | // pending checkExternSyncAddressee(addresseeRSyncSharp, inR); |
3133 | syncRemote->delEntry(catRemote, indexRemote, true); | 3137 | syncRemote->delEntry(catRemote, indexRemote, true); |
3134 | //USsyncRemote->removeAddressee( inRemote ); | ||
3135 | ++deletedPasswordsRemote; | 3138 | ++deletedPasswordsRemote; |
3136 | } | 3139 | } |
3137 | } | 3140 | } |
3138 | 3141 | ||
3139 | ++incCounter; | 3142 | ++incCounter; |
3140 | } | 3143 | } |
3141 | 3144 | ||
3142 | 3145 | ||
3143 | er.clear(); | 3146 | er.clear(); |
3144 | QStringList el = syncLocal->getIDEntryList(); | 3147 | QStringList el = syncLocal->getIDEntryList(); |
3145 | modulo = (el.count()/10)+1; | 3148 | modulo = (el.count()/10)+1; |
3146 | 3149 | ||
3147 | manager->showProgressBar(0, i18n("Add / remove addressees"), el.count()); | 3150 | manager->showProgressBar(0, i18n("Add / remove addressees"), el.count()); |
3148 | incCounter = 0; | 3151 | incCounter = 0; |
3149 | while ( incCounter < el.count()) { | 3152 | while ( incCounter < el.count()) { |
3150 | qApp->processEvents(); | 3153 | qApp->processEvents(); |
3151 | if (manager->isProgressBarCanceled()) | 3154 | if (manager->isProgressBarCanceled()) |
3152 | return e_syncError; | 3155 | return e_syncError; |
3153 | if ( incCounter % modulo == 0 ) | 3156 | if ( incCounter % modulo == 0 ) |
3154 | manager->showProgressBar(incCounter); | 3157 | manager->showProgressBar(incCounter); |
3155 | uid = el[ incCounter ]; | 3158 | uid = el[ incCounter ]; |
3156 | qDebug("sync uid %s from local file", uid.latin1()); | 3159 | qDebug("sync uid %s from local file", uid.latin1()); |
3157 | 3160 | ||
3158 | inLocal = syncLocal->findEntryByID( uid, &catLocal, &indexLocal ); | 3161 | inLocal = syncLocal->findEntryByID( uid, &catLocal, &indexLocal ); |
3159 | inRemote = syncRemote->findEntryByID( uid, &catRemote, &indexRemote ); | 3162 | inRemote = syncRemote->findEntryByID( uid, &catRemote, &indexRemote ); |
3160 | PWM_ASSERT(inLocal); | 3163 | PWM_ASSERT(inLocal); |
3161 | 3164 | ||
3162 | if ( inRemote == 0 ) { | 3165 | if ( inRemote == 0 ) { |
3163 | if ( inLocal->meta.update < mLastSync && mode != 4 ) { | 3166 | if ( inLocal->meta.update < mLastSync && mode != 4 ) { |
3164 | // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); | 3167 | // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); |
3165 | syncLocal->delEntry(catLocal, indexLocal, true); | 3168 | syncLocal->delEntry(catLocal, indexLocal, true); |
3166 | //USsyncLocal->removeAddressee( inLocal ); | ||
3167 | ++deletedPasswordsLocal; | 3169 | ++deletedPasswordsLocal; |
3168 | } else { | 3170 | } else { |
3169 | if ( ! manager->mWriteBackExistingOnly ) { | 3171 | if ( ! manager->mWriteBackExistingOnly ) { |
3170 | ++addedPasswordsRemote; | 3172 | ++addedPasswordsRemote; |
3171 | inLocal->meta.update = modifiedSync; | 3173 | inLocal->meta.update = modifiedSync; |
3172 | 3174 | ||
3173 | //first check if we have a matching category in the remote file | 3175 | //first check if we have a matching category in the remote file |
3174 | const string* localcat = syncLocal->getCategory(catLocal); | 3176 | const string* localcat = syncLocal->getCategory(catLocal); |
3175 | 3177 | ||
3176 | //USsyncLocal->insertAddressee( inLocal, false ); | ||
3177 | PwMDataItem newEntry; | 3178 | PwMDataItem newEntry; |
3178 | newEntry = *inLocal; | 3179 | newEntry = *inLocal; |
3179 | inRemote = &newEntry; | 3180 | inRemote = &newEntry; |
3180 | 3181 | ||
3181 | //USsyncRemote->insertAddressee( inRemote, false ); | 3182 | //USsyncRemote->insertAddressee( inRemote, false ); |
3182 | syncRemote->addEntry(localcat->c_str(), inRemote, true, false); | 3183 | syncRemote->addEntry(localcat->c_str(), inRemote, true, false); |
3183 | 3184 | ||
3184 | } | 3185 | } |
3185 | } | 3186 | } |
3186 | 3187 | ||
3187 | } | 3188 | } |
3188 | ++incCounter; | 3189 | ++incCounter; |
3189 | } | 3190 | } |
3190 | el.clear(); | 3191 | el.clear(); |
3191 | manager->hideProgressBar(); | 3192 | manager->hideProgressBar(); |
3192 | 3193 | ||
3193 | // Now write the info back into the sync data space of the files | 3194 | // Now write the info back into the sync data space of the files |
3194 | 3195 | ||
3195 | mLastSync = QDateTime::currentDateTime().addSecs( 1 ); | 3196 | mLastSync = QDateTime::currentDateTime().addSecs( 1 ); |
3196 | // get rid of micro seconds | 3197 | // get rid of micro seconds |
3197 | QTime t = mLastSync.time(); | 3198 | QTime t = mLastSync.time(); |
3198 | mLastSync.setTime( QTime (t.hour (), t.minute (), t.second () ) ); | 3199 | mLastSync.setTime( QTime (t.hour (), t.minute (), t.second () ) ); |
3199 | 3200 | ||
3200 | 3201 | ||
3201 | syncItemLocal->lastSyncDate = mLastSync; | 3202 | syncItemLocal->lastSyncDate = mLastSync; |
3202 | syncItemRemote->lastSyncDate = mLastSync; | 3203 | syncItemRemote->lastSyncDate = mLastSync; |
3203 | 3204 | ||
3204 | QString mes; | 3205 | QString mes; |
3205 | 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 ); | 3206 | 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 ); |
3206 | if ( manager->mShowSyncSummary ) { | 3207 | if ( manager->mShowSyncSummary ) { |
3207 | KMessageBox::information(0, mes, i18n("PWM/Pi Synchronization") ); | 3208 | KMessageBox::information(0, mes, i18n("PWM/Pi Synchronization") ); |
3208 | } | 3209 | } |
3209 | qDebug( mes ); | 3210 | qDebug( mes ); |
3210 | return e_success; | 3211 | return e_success; |
3211 | } | 3212 | } |
3212 | 3213 | ||
3213 | 3214 | ||
3214 | int PwMDoc::takePwMDataItem( PwMDataItem* local, PwMDataItem* remote, QDateTime lastSync, int mode , bool full ) | 3215 | int PwMDoc::takePwMDataItem( PwMDataItem* local, PwMDataItem* remote, QDateTime lastSync, int mode , bool full ) |
3215 | { | 3216 | { |
3216 | // 0 equal | 3217 | // 0 equal |
3217 | // 1 take local | 3218 | // 1 take local |
3218 | // 2 take remote | 3219 | // 2 take remote |
3219 | // 3 cancel | 3220 | // 3 cancel |
3220 | QDateTime localMod = local->meta.update; | 3221 | QDateTime localMod = local->meta.update; |
3221 | QDateTime remoteMod = remote->meta.update; | 3222 | QDateTime remoteMod = remote->meta.update; |
3222 | 3223 | ||
3223 | //US QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); | ||
3224 | |||
3225 | if ( localMod == remoteMod ) | 3224 | if ( localMod == remoteMod ) |
3226 | return 0; | 3225 | return 0; |
3227 | 3226 | ||
3228 | qDebug(" %d %d conflict on %s %s ", mode, full, local->desc.c_str(), remote->desc.c_str() ); | 3227 | qDebug(" %d %d conflict on %s %s ", mode, full, local->desc.c_str(), remote->desc.c_str() ); |
3229 | 3228 | ||
3230 | //qDebug("%s %d %s %d", local->lastModified().toString().latin1() , localMod, remote->lastModified().toString().latin1(), remoteMod); | 3229 | //qDebug("%s %d %s %d", local->lastModified().toString().latin1() , localMod, remote->lastModified().toString().latin1(), remoteMod); |
3231 | //qDebug("%d %d %d %d ", local->lastModified().time().second(), local->lastModified().time().msec(), remote->lastModified().time().second(), remote->lastModified().time().msec() ); | 3230 | //qDebug("%d %d %d %d ", local->lastModified().time().second(), local->lastModified().time().msec(), remote->lastModified().time().second(), remote->lastModified().time().msec() ); |
3232 | //full = true; //debug only | 3231 | //full = true; //debug only |
3233 | if ( full ) { | 3232 | if ( full ) { |
3234 | bool equ = ( (*local) == (*remote) ); | 3233 | bool equ = ( (*local) == (*remote) ); |
3235 | if ( equ ) { | 3234 | if ( equ ) { |
3236 | //qDebug("equal "); | 3235 | //qDebug("equal "); |
3237 | if ( mode < SYNC_PREF_FORCE_LOCAL ) | 3236 | if ( mode < SYNC_PREF_FORCE_LOCAL ) |
3238 | return 0; | 3237 | return 0; |
3239 | 3238 | ||
3240 | }//else //debug only | 3239 | }//else //debug only |
3241 | //qDebug("not equal %s %s ", local->desc.c_str(), remote->desc.c_str()); | 3240 | //qDebug("not equal %s %s ", local->desc.c_str(), remote->desc.c_str()); |
3242 | } | 3241 | } |
3243 | 3242 | ||
3244 | int result; | 3243 | int result; |
3245 | bool localIsNew; | 3244 | bool localIsNew; |
3246 | //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() ); | 3245 | //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() ); |
3247 | 3246 | ||
3248 | if ( full && mode < SYNC_PREF_NEWEST ) | 3247 | if ( full && mode < SYNC_PREF_NEWEST ) |
3249 | mode = SYNC_PREF_ASK; | 3248 | mode = SYNC_PREF_ASK; |
3250 | 3249 | ||
3251 | switch( mode ) { | 3250 | switch( mode ) { |
3252 | case SYNC_PREF_LOCAL: | 3251 | case SYNC_PREF_LOCAL: |
3253 | if ( lastSync > remoteMod ) | 3252 | if ( lastSync > remoteMod ) |
3254 | return 1; | 3253 | return 1; |
3255 | if ( lastSync > localMod ) | 3254 | if ( lastSync > localMod ) |
3256 | return 2; | 3255 | return 2; |
3257 | return 1; | 3256 | return 1; |
3258 | break; | 3257 | break; |
3259 | case SYNC_PREF_REMOTE: | 3258 | case SYNC_PREF_REMOTE: |
3260 | if ( lastSync > remoteMod ) | 3259 | if ( lastSync > remoteMod ) |
3261 | return 1; | 3260 | return 1; |
3262 | if ( lastSync > localMod ) | 3261 | if ( lastSync > localMod ) |
3263 | return 2; | 3262 | return 2; |
3264 | return 2; | 3263 | return 2; |
3265 | break; | 3264 | break; |
3266 | case SYNC_PREF_NEWEST: | 3265 | case SYNC_PREF_NEWEST: |
3267 | if ( localMod > remoteMod ) | 3266 | if ( localMod > remoteMod ) |
3268 | return 1; | 3267 | return 1; |
3269 | else | 3268 | else |
3270 | return 2; | 3269 | return 2; |
3271 | break; | 3270 | break; |
3272 | case SYNC_PREF_ASK: | 3271 | case SYNC_PREF_ASK: |
3273 | //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); | 3272 | //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); |
3274 | if ( lastSync > remoteMod ) | 3273 | if ( lastSync > remoteMod ) |
3275 | return 1; | 3274 | return 1; |
3276 | if ( lastSync > localMod ) | 3275 | if ( lastSync > localMod ) |
3277 | return 2; | 3276 | return 2; |
3278 | localIsNew = localMod >= remoteMod; | 3277 | localIsNew = localMod >= remoteMod; |
3279 | //qDebug("conflict! ************************************** "); | 3278 | //qDebug("conflict! ************************************** "); |
3280 | { | 3279 | { |
3281 | PwMDataItemChooser acd ( *local,*remote, localIsNew , 0/*this*/ ); | 3280 | PwMDataItemChooser acd ( *local,*remote, localIsNew , 0/*this*/ ); |
3282 | result = acd.executeD(localIsNew); | 3281 | result = acd.executeD(localIsNew); |
3283 | return result; | 3282 | return result; |
3284 | } | 3283 | } |
3285 | break; | 3284 | break; |
3286 | case SYNC_PREF_FORCE_LOCAL: | 3285 | case SYNC_PREF_FORCE_LOCAL: |
3287 | return 1; | 3286 | return 1; |
3288 | break; | 3287 | break; |