author | zautrix <zautrix> | 2004-10-04 22:10:20 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-10-04 22:10:20 (UTC) |
commit | c22811d11414872fc0525350a8a1afdae61be346 (patch) (unidiff) | |
tree | daafa0c4333022d44dafb2945ba36ff58d5c45d1 | |
parent | f53ef630b9299ceae666e64da8ce022813795ed6 (diff) | |
download | kdepimpi-c22811d11414872fc0525350a8a1afdae61be346.zip kdepimpi-c22811d11414872fc0525350a8a1afdae61be346.tar.gz kdepimpi-c22811d11414872fc0525350a8a1afdae61be346.tar.bz2 |
many sync fixes
-rw-r--r-- | korganizer/mainwindow.cpp | 98 | ||||
-rw-r--r-- | korganizer/mainwindow.h | 2 | ||||
-rw-r--r-- | libkdepim/ksyncprefsdialog.cpp | 6 |
3 files changed, 33 insertions, 73 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index bce2a54..fe7e6d3 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -683,595 +683,594 @@ void MainWindow::initActions() | |||
683 | action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this ); | 683 | action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this ); |
684 | action->addTo( importMenu ); | 684 | action->addTo( importMenu ); |
685 | connect( action, SIGNAL( activated() ), | 685 | connect( action, SIGNAL( activated() ), |
686 | this, SLOT( printSel() ) ); | 686 | this, SLOT( printSel() ) ); |
687 | #endif | 687 | #endif |
688 | importMenu->insertSeparator(); | 688 | importMenu->insertSeparator(); |
689 | action = new QAction( "beam all", i18n("Save"), 0, | 689 | action = new QAction( "beam all", i18n("Save"), 0, |
690 | this ); | 690 | this ); |
691 | action->addTo( importMenu ); | 691 | action->addTo( importMenu ); |
692 | connect( action, SIGNAL( activated() ), this, SLOT( save() ) ); | 692 | connect( action, SIGNAL( activated() ), this, SLOT( save() ) ); |
693 | action = new QAction( "beam all", i18n("Exit (+save)"), 0, | 693 | action = new QAction( "beam all", i18n("Exit (+save)"), 0, |
694 | this ); | 694 | this ); |
695 | action->addTo( importMenu ); | 695 | action->addTo( importMenu ); |
696 | connect( action, SIGNAL( activated() ), this, SLOT( close() ) ); | 696 | connect( action, SIGNAL( activated() ), this, SLOT( close() ) ); |
697 | 697 | ||
698 | //menuBar->insertItem( "Configure",configureMenu ); | 698 | //menuBar->insertItem( "Configure",configureMenu ); |
699 | //configureMenu->insertItem( "Toolbar",configureToolBarMenu ); | 699 | //configureMenu->insertItem( "Toolbar",configureToolBarMenu ); |
700 | icon = loadPixmap( "korganizer/korganizer" ); | 700 | icon = loadPixmap( "korganizer/korganizer" ); |
701 | action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this ); | 701 | action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this ); |
702 | action->addTo( helpMenu ); | 702 | action->addTo( helpMenu ); |
703 | connect( action, SIGNAL( activated() ), | 703 | connect( action, SIGNAL( activated() ), |
704 | SLOT( keyBindings() ) ); | 704 | SLOT( keyBindings() ) ); |
705 | action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this ); | 705 | action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this ); |
706 | action->addTo( helpMenu ); | 706 | action->addTo( helpMenu ); |
707 | connect( action, SIGNAL( activated() ), | 707 | connect( action, SIGNAL( activated() ), |
708 | SLOT( features() ) ); | 708 | SLOT( features() ) ); |
709 | action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this ); | 709 | action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this ); |
710 | action->addTo( helpMenu ); | 710 | action->addTo( helpMenu ); |
711 | connect( action, SIGNAL( activated() ), | 711 | connect( action, SIGNAL( activated() ), |
712 | SLOT( aboutAutoSaving() ) ); | 712 | SLOT( aboutAutoSaving() ) ); |
713 | action = new QAction( "Problemd", i18n("Known Problems..."), 0,this ); | 713 | action = new QAction( "Problemd", i18n("Known Problems..."), 0,this ); |
714 | action->addTo( helpMenu ); | 714 | action->addTo( helpMenu ); |
715 | connect( action, SIGNAL( activated() ), | 715 | connect( action, SIGNAL( activated() ), |
716 | SLOT( aboutKnownBugs() ) ); | 716 | SLOT( aboutKnownBugs() ) ); |
717 | action = new QAction( "Translate Howto", i18n("User translation..."), 0,this ); | 717 | action = new QAction( "Translate Howto", i18n("User translation..."), 0,this ); |
718 | action->addTo( helpMenu ); | 718 | action->addTo( helpMenu ); |
719 | connect( action, SIGNAL( activated() ), | 719 | connect( action, SIGNAL( activated() ), |
720 | SLOT( usertrans() ) ); | 720 | SLOT( usertrans() ) ); |
721 | action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this ); | 721 | action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this ); |
722 | action->addTo( helpMenu ); | 722 | action->addTo( helpMenu ); |
723 | connect( action, SIGNAL( activated() ), | 723 | connect( action, SIGNAL( activated() ), |
724 | SLOT( synchowto() ) ); | 724 | SLOT( synchowto() ) ); |
725 | action = new QAction( "Whats New", i18n("What's new?"), 0,this ); | 725 | action = new QAction( "Whats New", i18n("What's new?"), 0,this ); |
726 | action->addTo( helpMenu ); | 726 | action->addTo( helpMenu ); |
727 | connect( action, SIGNAL( activated() ), | 727 | connect( action, SIGNAL( activated() ), |
728 | SLOT( whatsNew() ) ); | 728 | SLOT( whatsNew() ) ); |
729 | action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this ); | 729 | action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this ); |
730 | action->addTo( helpMenu ); | 730 | action->addTo( helpMenu ); |
731 | connect( action, SIGNAL( activated() ), | 731 | connect( action, SIGNAL( activated() ), |
732 | SLOT( faq() ) ); | 732 | SLOT( faq() ) ); |
733 | 733 | ||
734 | 734 | ||
735 | action = new QAction( "about", i18n("About..."), 0, this ); | 735 | action = new QAction( "about", i18n("About..."), 0, this ); |
736 | action->addTo( helpMenu ); | 736 | action->addTo( helpMenu ); |
737 | connect( action, SIGNAL( activated() ), | 737 | connect( action, SIGNAL( activated() ), |
738 | SLOT( about() ) ); | 738 | SLOT( about() ) ); |
739 | action = new QAction( "licence", i18n("Licence..."), 0, this ); | 739 | action = new QAction( "licence", i18n("Licence..."), 0, this ); |
740 | action->addTo( helpMenu ); | 740 | action->addTo( helpMenu ); |
741 | connect( action, SIGNAL( activated() ), | 741 | connect( action, SIGNAL( activated() ), |
742 | SLOT( licence() ) ); | 742 | SLOT( licence() ) ); |
743 | //menuBar->insertSeparator(); | 743 | //menuBar->insertSeparator(); |
744 | 744 | ||
745 | // ****************************************************** | 745 | // ****************************************************** |
746 | // menubar icons | 746 | // menubar icons |
747 | 747 | ||
748 | 748 | ||
749 | iconToolBar->setHorizontalStretchable (true ); | 749 | iconToolBar->setHorizontalStretchable (true ); |
750 | //menuBar->insertItem( iconToolBar ); | 750 | //menuBar->insertItem( iconToolBar ); |
751 | //xdays_action | 751 | //xdays_action |
752 | if (p-> mShowIconNewEvent) | 752 | if (p-> mShowIconNewEvent) |
753 | ne_action->addTo( iconToolBar ); | 753 | ne_action->addTo( iconToolBar ); |
754 | if (p->mShowIconNewTodo ) | 754 | if (p->mShowIconNewTodo ) |
755 | nt_action->addTo( iconToolBar ); | 755 | nt_action->addTo( iconToolBar ); |
756 | if (p-> mShowIconSearch) | 756 | if (p-> mShowIconSearch) |
757 | search_action->addTo( iconToolBar ); | 757 | search_action->addTo( iconToolBar ); |
758 | if (p-> mShowIconNext) | 758 | if (p-> mShowIconNext) |
759 | whatsnext_action->addTo( iconToolBar ); | 759 | whatsnext_action->addTo( iconToolBar ); |
760 | if (p-> mShowIconNextDays) | 760 | if (p-> mShowIconNextDays) |
761 | xdays_action->addTo( iconToolBar ); | 761 | xdays_action->addTo( iconToolBar ); |
762 | if (p-> mShowIconList) | 762 | if (p-> mShowIconList) |
763 | showlist_action->addTo( iconToolBar ); | 763 | showlist_action->addTo( iconToolBar ); |
764 | if (p-> mShowIconDay1) | 764 | if (p-> mShowIconDay1) |
765 | day1_action->addTo( iconToolBar ); | 765 | day1_action->addTo( iconToolBar ); |
766 | if (p-> mShowIconDay5) | 766 | if (p-> mShowIconDay5) |
767 | day5_action->addTo( iconToolBar ); | 767 | day5_action->addTo( iconToolBar ); |
768 | if (p-> mShowIconDay7) | 768 | if (p-> mShowIconDay7) |
769 | day7_action->addTo( iconToolBar ); | 769 | day7_action->addTo( iconToolBar ); |
770 | if (p-> mShowIconMonth) | 770 | if (p-> mShowIconMonth) |
771 | month_action->addTo( iconToolBar ); | 771 | month_action->addTo( iconToolBar ); |
772 | if (p-> mShowIconTodoview) | 772 | if (p-> mShowIconTodoview) |
773 | todoview_action->addTo( iconToolBar ); | 773 | todoview_action->addTo( iconToolBar ); |
774 | if (p-> mShowIconJournal) | 774 | if (p-> mShowIconJournal) |
775 | viewjournal_action->addTo( iconToolBar ); | 775 | viewjournal_action->addTo( iconToolBar ); |
776 | icon = loadPixmap( pathString + "2leftarrowB" ); | 776 | icon = loadPixmap( pathString + "2leftarrowB" ); |
777 | configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14); | 777 | configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14); |
778 | if (p-> mShowIconBackFast) { | 778 | if (p-> mShowIconBackFast) { |
779 | action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this ); | 779 | action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this ); |
780 | connect( action, SIGNAL( activated() ), | 780 | connect( action, SIGNAL( activated() ), |
781 | mView, SLOT( goPreviousMonth() ) ); | 781 | mView, SLOT( goPreviousMonth() ) ); |
782 | action->addTo( iconToolBar ); | 782 | action->addTo( iconToolBar ); |
783 | } | 783 | } |
784 | icon = loadPixmap( pathString + "1leftarrowB" ); | 784 | icon = loadPixmap( pathString + "1leftarrowB" ); |
785 | configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15); | 785 | configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15); |
786 | if (p-> mShowIconBack) { | 786 | if (p-> mShowIconBack) { |
787 | action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this ); | 787 | action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this ); |
788 | connect( action, SIGNAL( activated() ), | 788 | connect( action, SIGNAL( activated() ), |
789 | mView, SLOT( goPrevious() ) ); | 789 | mView, SLOT( goPrevious() ) ); |
790 | action->addTo( iconToolBar ); | 790 | action->addTo( iconToolBar ); |
791 | } | 791 | } |
792 | if (p-> mShowIconToday) | 792 | if (p-> mShowIconToday) |
793 | today_action->addTo( iconToolBar ); | 793 | today_action->addTo( iconToolBar ); |
794 | icon = loadPixmap( pathString + "1rightarrowB" ); | 794 | icon = loadPixmap( pathString + "1rightarrowB" ); |
795 | configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220); | 795 | configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220); |
796 | if (p-> mShowIconForward) { | 796 | if (p-> mShowIconForward) { |
797 | action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this ); | 797 | action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this ); |
798 | connect( action, SIGNAL( activated() ), | 798 | connect( action, SIGNAL( activated() ), |
799 | mView, SLOT( goNext() ) ); | 799 | mView, SLOT( goNext() ) ); |
800 | action->addTo( iconToolBar ); | 800 | action->addTo( iconToolBar ); |
801 | } | 801 | } |
802 | icon = loadPixmap( pathString + "2rightarrowB" ); | 802 | icon = loadPixmap( pathString + "2rightarrowB" ); |
803 | configureToolBarMenu->insertItem(icon, i18n("Next month"), 230); | 803 | configureToolBarMenu->insertItem(icon, i18n("Next month"), 230); |
804 | if (p-> mShowIconForwardFast) { | 804 | if (p-> mShowIconForwardFast) { |
805 | action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this ); | 805 | action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this ); |
806 | connect( action, SIGNAL( activated() ), | 806 | connect( action, SIGNAL( activated() ), |
807 | mView, SLOT( goNextMonth() ) ); | 807 | mView, SLOT( goNextMonth() ) ); |
808 | action->addTo( iconToolBar ); | 808 | action->addTo( iconToolBar ); |
809 | } | 809 | } |
810 | 810 | ||
811 | 811 | ||
812 | configureToolBarMenu->insertItem(i18n("What's This?"), 300); | 812 | configureToolBarMenu->insertItem(i18n("What's This?"), 300); |
813 | 813 | ||
814 | if (p-> mShowIconNewEvent) | 814 | if (p-> mShowIconNewEvent) |
815 | configureToolBarMenu->setItemChecked( 10, true ); | 815 | configureToolBarMenu->setItemChecked( 10, true ); |
816 | if (p->mShowIconNewTodo ) | 816 | if (p->mShowIconNewTodo ) |
817 | configureToolBarMenu->setItemChecked( 20, true ); | 817 | configureToolBarMenu->setItemChecked( 20, true ); |
818 | if (p-> mShowIconSearch) | 818 | if (p-> mShowIconSearch) |
819 | configureToolBarMenu->setItemChecked( 120, true ); | 819 | configureToolBarMenu->setItemChecked( 120, true ); |
820 | if (p-> mShowIconList) | 820 | if (p-> mShowIconList) |
821 | configureToolBarMenu->setItemChecked( 30, true ); | 821 | configureToolBarMenu->setItemChecked( 30, true ); |
822 | if (p-> mShowIconDay1) | 822 | if (p-> mShowIconDay1) |
823 | configureToolBarMenu->setItemChecked( 40, true ); | 823 | configureToolBarMenu->setItemChecked( 40, true ); |
824 | if (p-> mShowIconDay5) | 824 | if (p-> mShowIconDay5) |
825 | configureToolBarMenu->setItemChecked( 50, true ); | 825 | configureToolBarMenu->setItemChecked( 50, true ); |
826 | if (p-> mShowIconDay7) | 826 | if (p-> mShowIconDay7) |
827 | configureToolBarMenu->setItemChecked( 60, true ); | 827 | configureToolBarMenu->setItemChecked( 60, true ); |
828 | if (p-> mShowIconMonth) | 828 | if (p-> mShowIconMonth) |
829 | configureToolBarMenu->setItemChecked( 70, true ); | 829 | configureToolBarMenu->setItemChecked( 70, true ); |
830 | if (p-> mShowIconTodoview) | 830 | if (p-> mShowIconTodoview) |
831 | configureToolBarMenu->setItemChecked( 80, true ); | 831 | configureToolBarMenu->setItemChecked( 80, true ); |
832 | if (p-> mShowIconBackFast) | 832 | if (p-> mShowIconBackFast) |
833 | configureToolBarMenu->setItemChecked( 200, true ); | 833 | configureToolBarMenu->setItemChecked( 200, true ); |
834 | if (p-> mShowIconBack) | 834 | if (p-> mShowIconBack) |
835 | configureToolBarMenu->setItemChecked( 210, true ); | 835 | configureToolBarMenu->setItemChecked( 210, true ); |
836 | if (p-> mShowIconToday) | 836 | if (p-> mShowIconToday) |
837 | configureToolBarMenu->setItemChecked( 130, true ); | 837 | configureToolBarMenu->setItemChecked( 130, true ); |
838 | if (p-> mShowIconForward) | 838 | if (p-> mShowIconForward) |
839 | configureToolBarMenu->setItemChecked( 220, true ); | 839 | configureToolBarMenu->setItemChecked( 220, true ); |
840 | if (p-> mShowIconForwardFast) | 840 | if (p-> mShowIconForwardFast) |
841 | configureToolBarMenu->setItemChecked( 230, true ); | 841 | configureToolBarMenu->setItemChecked( 230, true ); |
842 | if (p-> mShowIconNextDays) | 842 | if (p-> mShowIconNextDays) |
843 | configureToolBarMenu->setItemChecked( 100, true ); | 843 | configureToolBarMenu->setItemChecked( 100, true ); |
844 | if (p-> mShowIconNext) | 844 | if (p-> mShowIconNext) |
845 | configureToolBarMenu->setItemChecked( 110, true ); | 845 | configureToolBarMenu->setItemChecked( 110, true ); |
846 | if (p-> mShowIconJournal) | 846 | if (p-> mShowIconJournal) |
847 | configureToolBarMenu->setItemChecked( 90, true ); | 847 | configureToolBarMenu->setItemChecked( 90, true ); |
848 | if (p-> mShowIconWhatsThis) | 848 | if (p-> mShowIconWhatsThis) |
849 | configureToolBarMenu->setItemChecked( 300, true ); | 849 | configureToolBarMenu->setItemChecked( 300, true ); |
850 | 850 | ||
851 | QLabel* dummy = new QLabel( iconToolBar ); | 851 | QLabel* dummy = new QLabel( iconToolBar ); |
852 | dummy->setBackgroundColor( iconToolBar->backgroundColor() ); | 852 | dummy->setBackgroundColor( iconToolBar->backgroundColor() ); |
853 | if (!p-> mShowIconStretch) | 853 | if (!p-> mShowIconStretch) |
854 | iconToolBar->setStretchableWidget ( dummy ) ; | 854 | iconToolBar->setStretchableWidget ( dummy ) ; |
855 | else | 855 | else |
856 | configureToolBarMenu->setItemChecked( 5, true ); | 856 | configureToolBarMenu->setItemChecked( 5, true ); |
857 | if (p-> mShowIconWhatsThis) | 857 | if (p-> mShowIconWhatsThis) |
858 | QWhatsThis::whatsThisButton ( iconToolBar ); | 858 | QWhatsThis::whatsThisButton ( iconToolBar ); |
859 | connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) ); | 859 | connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) ); |
860 | configureAgenda( p->mHourSize ); | 860 | configureAgenda( p->mHourSize ); |
861 | connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); | 861 | connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); |
862 | } | 862 | } |
863 | void MainWindow::fillSyncMenu() | 863 | void MainWindow::fillSyncMenu() |
864 | { | 864 | { |
865 | if ( syncMenu->count() ) | 865 | if ( syncMenu->count() ) |
866 | syncMenu->clear(); | 866 | syncMenu->clear(); |
867 | syncMenu->insertItem( i18n("Configure..."), 0 ); | 867 | syncMenu->insertItem( i18n("Configure..."), 0 ); |
868 | syncMenu->insertSeparator(); | 868 | syncMenu->insertSeparator(); |
869 | if ( mServerSocket == 0 ) { | 869 | if ( mServerSocket == 0 ) { |
870 | syncMenu->insertItem( i18n("Enable Pi-Sync"), 2 ); | 870 | syncMenu->insertItem( i18n("Enable Pi-Sync"), 2 ); |
871 | } else { | 871 | } else { |
872 | syncMenu->insertItem( i18n("Disable Pi-Sync"), 3 ); | 872 | syncMenu->insertItem( i18n("Disable Pi-Sync"), 3 ); |
873 | } | 873 | } |
874 | syncMenu->insertSeparator(); | 874 | syncMenu->insertSeparator(); |
875 | syncMenu->insertItem( i18n("New Pi-Sync!"), 4 ); | ||
876 | syncMenu->insertItem( i18n("Quick Pi-Sync!"), 5 ); | ||
877 | syncMenu->insertSeparator(); | ||
878 | syncMenu->insertItem( i18n("Multiple sync"), 1 ); | 875 | syncMenu->insertItem( i18n("Multiple sync"), 1 ); |
879 | syncMenu->insertSeparator(); | 876 | syncMenu->insertSeparator(); |
880 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); | 877 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); |
881 | config.setGroup("General"); | 878 | config.setGroup("General"); |
882 | QStringList prof = config.readListEntry("SyncProfileNames"); | 879 | QStringList prof = config.readListEntry("SyncProfileNames"); |
883 | KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined"); | 880 | KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined"); |
884 | if ( prof.count() < 3 ) { | 881 | if ( prof.count() < 3 ) { |
885 | prof.clear(); | 882 | prof.clear(); |
886 | prof << i18n("Sharp_DTM"); | 883 | prof << i18n("Sharp_DTM"); |
887 | prof << i18n("Local_file"); | 884 | prof << i18n("Local_file"); |
888 | prof << i18n("Last_file"); | 885 | prof << i18n("Last_file"); |
889 | KSyncProfile* temp = new KSyncProfile (); | 886 | KSyncProfile* temp = new KSyncProfile (); |
890 | temp->setName( prof[0] ); | 887 | temp->setName( prof[0] ); |
891 | temp->writeConfig(&config); | 888 | temp->writeConfig(&config); |
892 | temp->setName( prof[1] ); | 889 | temp->setName( prof[1] ); |
893 | temp->writeConfig(&config); | 890 | temp->writeConfig(&config); |
894 | temp->setName( prof[2] ); | 891 | temp->setName( prof[2] ); |
895 | temp->writeConfig(&config); | 892 | temp->writeConfig(&config); |
896 | config.setGroup("General"); | 893 | config.setGroup("General"); |
897 | config.writeEntry("SyncProfileNames",prof); | 894 | config.writeEntry("SyncProfileNames",prof); |
898 | config.writeEntry("ExternSyncProfiles","Sharp_DTM"); | 895 | config.writeEntry("ExternSyncProfiles","Sharp_DTM"); |
899 | config.sync(); | 896 | config.sync(); |
900 | delete temp; | 897 | delete temp; |
901 | } | 898 | } |
902 | KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); | 899 | KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); |
903 | KOPrefs::instance()->mSyncProfileNames = prof; | 900 | KOPrefs::instance()->mSyncProfileNames = prof; |
904 | int i; | 901 | int i; |
905 | for ( i = 0; i < prof.count(); ++i ) { | 902 | for ( i = 0; i < prof.count(); ++i ) { |
906 | 903 | ||
907 | syncMenu->insertItem( prof[i], 1000+i ); | 904 | syncMenu->insertItem( prof[i], 1000+i ); |
908 | if ( i == 2 ) | 905 | if ( i == 2 ) |
909 | syncMenu->insertSeparator(); | 906 | syncMenu->insertSeparator(); |
910 | } | 907 | } |
911 | QDir app_dir; | 908 | QDir app_dir; |
912 | if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { | 909 | if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { |
913 | syncMenu->setItemEnabled( false , 1000 ); | 910 | syncMenu->setItemEnabled( false , 1000 ); |
914 | } | 911 | } |
915 | mView->setupExternSyncProfiles(); | 912 | mView->setupExternSyncProfiles(); |
916 | } | 913 | } |
917 | 914 | ||
918 | int MainWindow::ringSync() | 915 | int MainWindow::ringSync() |
919 | { | 916 | { |
920 | int syncedProfiles = 0; | 917 | int syncedProfiles = 0; |
921 | int i; | 918 | int i; |
922 | QTime timer; | 919 | QTime timer; |
923 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); | 920 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); |
924 | QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames; | 921 | QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames; |
925 | KSyncProfile* temp = new KSyncProfile (); | 922 | KSyncProfile* temp = new KSyncProfile (); |
926 | KOPrefs::instance()->mAskForPreferences = false; | 923 | KOPrefs::instance()->mAskForPreferences = false; |
927 | for ( i = 0; i < syncProfileNames.count(); ++i ) { | 924 | for ( i = 0; i < syncProfileNames.count(); ++i ) { |
928 | mCurrentSyncProfile = i; | 925 | mCurrentSyncProfile = i; |
929 | temp->setName(syncProfileNames[mCurrentSyncProfile]); | 926 | temp->setName(syncProfileNames[mCurrentSyncProfile]); |
930 | temp->readConfig(&config); | 927 | temp->readConfig(&config); |
931 | if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) { | 928 | if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) { |
932 | setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); | 929 | setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); |
933 | ++syncedProfiles; | 930 | ++syncedProfiles; |
934 | // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); | 931 | // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); |
935 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); | 932 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); |
936 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); | 933 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); |
937 | KOPrefs::instance()->mWriteBackInFuture = 0; | 934 | KOPrefs::instance()->mWriteBackInFuture = 0; |
938 | if ( temp->getWriteBackFuture() ) | 935 | if ( temp->getWriteBackFuture() ) |
939 | KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); | 936 | KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); |
940 | KOPrefs::instance()->mShowSyncSummary = false; | 937 | KOPrefs::instance()->mShowSyncSummary = false; |
941 | mView->setSyncDevice(syncProfileNames[i] ); | 938 | mView->setSyncDevice(syncProfileNames[i] ); |
942 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); | 939 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); |
943 | if ( i == 0 ) { | 940 | if ( i == 0 ) { |
944 | syncSharp(); | 941 | syncSharp(); |
945 | } else { | 942 | } else { |
946 | if ( temp->getIsLocalFileSync() ) { | 943 | if ( temp->getIsLocalFileSync() ) { |
947 | if ( syncWithFile( temp->getRemoteFileName( ), true ) ) | 944 | if ( syncWithFile( temp->getRemoteFileName( ), true ) ) |
948 | KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); | 945 | KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); |
949 | } else { | 946 | } else { |
950 | if ( temp->getIsPhoneSync() ) { | 947 | if ( temp->getIsPhoneSync() ) { |
951 | KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; | 948 | KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; |
952 | KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); | 949 | KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); |
953 | KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); | 950 | KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); |
954 | syncPhone(); | 951 | syncPhone(); |
955 | } else | 952 | } else if ( temp->getIsPiSync() ) { |
953 | mPassWordPiSync = temp->getRemotePw(); | ||
954 | KOPrefs::instance()->mActiveSyncPort = temp->getRemotePort(); | ||
955 | KOPrefs::instance()->mActiveSyncIP = temp->getRemoteIP(); | ||
956 | syncPi(); | ||
957 | } else | ||
956 | syncRemote( temp, false ); | 958 | syncRemote( temp, false ); |
957 | 959 | ||
958 | } | 960 | } |
959 | } | 961 | } |
960 | timer.start(); | 962 | timer.start(); |
961 | setCaption(i18n("Multiple sync in progress ... please wait!") ); | 963 | setCaption(i18n("Multiple sync in progress ... please wait!") ); |
962 | while ( timer.elapsed () < 2000 ) { | 964 | while ( timer.elapsed () < 2000 ) { |
963 | qApp->processEvents(); | 965 | qApp->processEvents(); |
964 | #ifndef _WIN32_ | 966 | #ifndef _WIN32_ |
965 | sleep (1); | 967 | sleep (1); |
966 | #endif | 968 | #endif |
967 | } | 969 | } |
968 | 970 | ||
969 | } | 971 | } |
970 | 972 | ||
971 | } | 973 | } |
972 | delete temp; | 974 | delete temp; |
973 | return syncedProfiles; | 975 | return syncedProfiles; |
974 | } | 976 | } |
975 | 977 | ||
976 | void MainWindow::multiSync( bool askforPrefs ) | 978 | void MainWindow::multiSync( bool askforPrefs ) |
977 | { | 979 | { |
978 | if (mBlockSaveFlag) | 980 | if (mBlockSaveFlag) |
979 | return; | 981 | return; |
980 | mBlockSaveFlag = true; | 982 | mBlockSaveFlag = true; |
981 | QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); | 983 | QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); |
982 | if ( QMessageBox::information( this, i18n("KO/Pi Sync"), | 984 | if ( QMessageBox::information( this, i18n("KO/Pi Sync"), |
983 | question, | 985 | question, |
984 | i18n("Yes"), i18n("No"), | 986 | i18n("Yes"), i18n("No"), |
985 | 0, 0 ) != 0 ) { | 987 | 0, 0 ) != 0 ) { |
986 | mBlockSaveFlag = false; | 988 | mBlockSaveFlag = false; |
987 | setCaption(i18n("Aborted! Nothing synced!")); | 989 | setCaption(i18n("Aborted! Nothing synced!")); |
988 | return; | 990 | return; |
989 | } | 991 | } |
990 | mView->setSyncDevice(i18n("Multiple profiles") ); | 992 | mView->setSyncDevice(i18n("Multiple profiles") ); |
991 | KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs; | 993 | KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs; |
992 | if ( askforPrefs ) { | 994 | if ( askforPrefs ) { |
993 | mView->edit_sync_options(); | 995 | mView->edit_sync_options(); |
994 | KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs; | 996 | KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs; |
995 | } | 997 | } |
996 | setCaption(i18n("Multiple sync started.") ); | 998 | setCaption(i18n("Multiple sync started.") ); |
997 | qApp->processEvents(); | 999 | qApp->processEvents(); |
998 | int num = ringSync() ; | 1000 | int num = ringSync() ; |
999 | if ( num > 1 ) | 1001 | if ( num > 1 ) |
1000 | ringSync(); | 1002 | ringSync(); |
1001 | mBlockSaveFlag = false; | 1003 | mBlockSaveFlag = false; |
1002 | if ( num ) | 1004 | if ( num ) |
1003 | save(); | 1005 | save(); |
1004 | if ( num ) | 1006 | if ( num ) |
1005 | setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); | 1007 | setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); |
1006 | else | 1008 | else |
1007 | setCaption(i18n("Nothing synced! No profiles defined for multisync!")); | 1009 | setCaption(i18n("Nothing synced! No profiles defined for multisync!")); |
1008 | return; | 1010 | return; |
1009 | } | 1011 | } |
1010 | void MainWindow::slotSyncMenu( int action ) | 1012 | void MainWindow::slotSyncMenu( int action ) |
1011 | { | 1013 | { |
1012 | qDebug("syncaction %d ", action); | 1014 | qDebug("syncaction %d ", action); |
1013 | if ( action == 0 ) { | 1015 | if ( action == 0 ) { |
1014 | 1016 | ||
1015 | // seems to be a Qt2 event handling bug | 1017 | // seems to be a Qt2 event handling bug |
1016 | // syncmenu.clear causes a segfault at first time | 1018 | // syncmenu.clear causes a segfault at first time |
1017 | // when we call it after the main event loop, it is ok | 1019 | // when we call it after the main event loop, it is ok |
1018 | // same behaviour when calling OM/Pi via QCOP for the first time | 1020 | // same behaviour when calling OM/Pi via QCOP for the first time |
1019 | QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); | 1021 | QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); |
1020 | //confSync(); | 1022 | //confSync(); |
1021 | 1023 | ||
1022 | return; | 1024 | return; |
1023 | } | 1025 | } |
1024 | if ( action == 1 ) { | 1026 | if ( action == 1 ) { |
1025 | multiSync( true ); | 1027 | multiSync( true ); |
1026 | return; | 1028 | return; |
1027 | } | 1029 | } |
1028 | if ( action == 2 ) { | 1030 | if ( action == 2 ) { |
1029 | enableQuick(); | 1031 | enableQuick(); |
1030 | QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); | 1032 | QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); |
1031 | return; | 1033 | return; |
1032 | } | 1034 | } |
1033 | if ( action == 3 ) { | 1035 | if ( action == 3 ) { |
1034 | delete mServerSocket; | 1036 | delete mServerSocket; |
1035 | mServerSocket = 0; | 1037 | mServerSocket = 0; |
1036 | QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); | 1038 | QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); |
1037 | return; | 1039 | return; |
1038 | } | 1040 | } |
1039 | if ( action == 4 ) { | ||
1040 | performQuick(); | ||
1041 | return; | ||
1042 | } | ||
1043 | if ( action == 5 ) { | ||
1044 | performQuickQuick(); | ||
1045 | return; | ||
1046 | } | ||
1047 | 1041 | ||
1048 | if (mBlockSaveFlag) | 1042 | if (mBlockSaveFlag) |
1049 | return; | 1043 | return; |
1050 | mBlockSaveFlag = true; | 1044 | mBlockSaveFlag = true; |
1051 | mCurrentSyncProfile = action - 1000 ; | 1045 | mCurrentSyncProfile = action - 1000 ; |
1052 | mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); | 1046 | mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); |
1053 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); | 1047 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); |
1054 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); | 1048 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); |
1055 | KSyncProfile* temp = new KSyncProfile (); | 1049 | KSyncProfile* temp = new KSyncProfile (); |
1056 | temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); | 1050 | temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); |
1057 | temp->readConfig(&config); | 1051 | temp->readConfig(&config); |
1058 | KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); | 1052 | KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); |
1059 | KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); | 1053 | KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); |
1060 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); | 1054 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); |
1061 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); | 1055 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); |
1062 | KOPrefs::instance()->mWriteBackInFuture = 0; | 1056 | KOPrefs::instance()->mWriteBackInFuture = 0; |
1063 | if ( temp->getWriteBackFuture() ) | 1057 | if ( temp->getWriteBackFuture() ) |
1064 | KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); | 1058 | KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); |
1065 | KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); | 1059 | KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); |
1066 | if ( action == 1000 ) { | 1060 | if ( action == 1000 ) { |
1067 | syncSharp(); | 1061 | syncSharp(); |
1068 | 1062 | ||
1069 | } else if ( action == 1001 ) { | 1063 | } else if ( action == 1001 ) { |
1070 | syncLocalFile(); | 1064 | syncLocalFile(); |
1071 | 1065 | ||
1072 | } else if ( action == 1002 ) { | 1066 | } else if ( action == 1002 ) { |
1073 | quickSyncLocalFile(); | 1067 | quickSyncLocalFile(); |
1074 | 1068 | ||
1075 | } else if ( action >= 1003 ) { | 1069 | } else if ( action >= 1003 ) { |
1076 | if ( temp->getIsLocalFileSync() ) { | 1070 | if ( temp->getIsLocalFileSync() ) { |
1077 | if ( syncWithFile( temp->getRemoteFileName( ), false ) ) | 1071 | if ( syncWithFile( temp->getRemoteFileName( ), false ) ) |
1078 | KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); | 1072 | KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); |
1079 | } else { | 1073 | } else { |
1080 | if ( temp->getIsPhoneSync() ) { | 1074 | if ( temp->getIsPhoneSync() ) { |
1081 | KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; | 1075 | KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; |
1082 | KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); | 1076 | KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); |
1083 | KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); | 1077 | KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); |
1084 | syncPhone(); | 1078 | syncPhone(); |
1085 | } else | 1079 | } else if ( temp->getIsPiSync() ) { |
1080 | mPassWordPiSync = temp->getRemotePw(); | ||
1081 | KOPrefs::instance()->mActiveSyncPort = temp->getRemotePort(); | ||
1082 | KOPrefs::instance()->mActiveSyncIP = temp->getRemoteIP(); | ||
1083 | syncPi(); | ||
1084 | } else | ||
1086 | syncRemote( temp ); | 1085 | syncRemote( temp ); |
1087 | 1086 | ||
1088 | } | 1087 | } |
1089 | } | 1088 | } |
1090 | delete temp; | 1089 | delete temp; |
1091 | mBlockSaveFlag = false; | 1090 | mBlockSaveFlag = false; |
1092 | } | 1091 | } |
1093 | void MainWindow::setDefaultPreferences() | 1092 | void MainWindow::setDefaultPreferences() |
1094 | { | 1093 | { |
1095 | KOPrefs *p = KOPrefs::instance(); | 1094 | KOPrefs *p = KOPrefs::instance(); |
1096 | 1095 | ||
1097 | p->mCompactDialogs = true; | 1096 | p->mCompactDialogs = true; |
1098 | p->mConfirm = true; | 1097 | p->mConfirm = true; |
1099 | // p->mEnableQuickTodo = false; | 1098 | // p->mEnableQuickTodo = false; |
1100 | } | 1099 | } |
1101 | 1100 | ||
1102 | QString MainWindow::resourcePath() | 1101 | QString MainWindow::resourcePath() |
1103 | { | 1102 | { |
1104 | return KGlobal::iconLoader()->iconPath(); | 1103 | return KGlobal::iconLoader()->iconPath(); |
1105 | } | 1104 | } |
1106 | 1105 | ||
1107 | void MainWindow::displayText( QString text ,QString cap ) | 1106 | void MainWindow::displayText( QString text ,QString cap ) |
1108 | { | 1107 | { |
1109 | QDialog dia( this, "name", true ); ; | 1108 | QDialog dia( this, "name", true ); ; |
1110 | dia.setCaption( cap ); | 1109 | dia.setCaption( cap ); |
1111 | QVBoxLayout* lay = new QVBoxLayout( &dia ); | 1110 | QVBoxLayout* lay = new QVBoxLayout( &dia ); |
1112 | lay->setSpacing( 3 ); | 1111 | lay->setSpacing( 3 ); |
1113 | lay->setMargin( 3 ); | 1112 | lay->setMargin( 3 ); |
1114 | QTextBrowser tb ( &dia ); | 1113 | QTextBrowser tb ( &dia ); |
1115 | lay->addWidget( &tb ); | 1114 | lay->addWidget( &tb ); |
1116 | tb.setText( text ); | 1115 | tb.setText( text ); |
1117 | #ifdef DESKTOP_VERSION | 1116 | #ifdef DESKTOP_VERSION |
1118 | dia.resize( 640, 480); | 1117 | dia.resize( 640, 480); |
1119 | #else | 1118 | #else |
1120 | dia.showMaximized(); | 1119 | dia.showMaximized(); |
1121 | #endif | 1120 | #endif |
1122 | dia.exec(); | 1121 | dia.exec(); |
1123 | } | 1122 | } |
1124 | void MainWindow::displayFile( QString fn, QString cap ) | 1123 | void MainWindow::displayFile( QString fn, QString cap ) |
1125 | { | 1124 | { |
1126 | QString fileName = resourcePath() + fn; | 1125 | QString fileName = resourcePath() + fn; |
1127 | QString text; | 1126 | QString text; |
1128 | QFile file( fileName ); | 1127 | QFile file( fileName ); |
1129 | if (!file.open( IO_ReadOnly ) ) { | 1128 | if (!file.open( IO_ReadOnly ) ) { |
1130 | return ; | 1129 | return ; |
1131 | 1130 | ||
1132 | } | 1131 | } |
1133 | QTextStream ts( &file ); | 1132 | QTextStream ts( &file ); |
1134 | text = ts.read(); | 1133 | text = ts.read(); |
1135 | file.close(); | 1134 | file.close(); |
1136 | displayText( text, cap); | 1135 | displayText( text, cap); |
1137 | } | 1136 | } |
1138 | void MainWindow::features() | 1137 | void MainWindow::features() |
1139 | { | 1138 | { |
1140 | 1139 | ||
1141 | displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") ); | 1140 | displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") ); |
1142 | } | 1141 | } |
1143 | 1142 | ||
1144 | void MainWindow::usertrans() | 1143 | void MainWindow::usertrans() |
1145 | { | 1144 | { |
1146 | 1145 | ||
1147 | displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") ); | 1146 | displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") ); |
1148 | } | 1147 | } |
1149 | 1148 | ||
1150 | void MainWindow::synchowto() | 1149 | void MainWindow::synchowto() |
1151 | { | 1150 | { |
1152 | #if 0 | 1151 | #if 0 |
1153 | QPtrList<Incidence> er = mCalendar->rawIncidences(); | 1152 | QPtrList<Incidence> er = mCalendar->rawIncidences(); |
1154 | Incidence* inR = er.first(); | 1153 | Incidence* inR = er.first(); |
1155 | VCalFormat vf; | 1154 | VCalFormat vf; |
1156 | QString strout; | 1155 | QString strout; |
1157 | while ( inR ) { | 1156 | while ( inR ) { |
1158 | if ( inR->type() == "Todo" ) | 1157 | if ( inR->type() == "Todo" ) |
1159 | strout = vf.todoToString( (Todo *) inR ); | 1158 | strout = vf.todoToString( (Todo *) inR ); |
1160 | if ( inR->type() == "Event" ) | 1159 | if ( inR->type() == "Event" ) |
1161 | strout = vf.eventToString( (Event *) inR ); | 1160 | strout = vf.eventToString( (Event *) inR ); |
1162 | qDebug("incidence: \n%s\n ente\n\n",strout.latin1() ); | 1161 | qDebug("incidence: \n%s\n ente\n\n",strout.latin1() ); |
1163 | inR = er.next(); | 1162 | inR = er.next(); |
1164 | } | 1163 | } |
1165 | #endif | 1164 | #endif |
1166 | displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") ); | 1165 | displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") ); |
1167 | } | 1166 | } |
1168 | void MainWindow::faq() | 1167 | void MainWindow::faq() |
1169 | { | 1168 | { |
1170 | displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") ); | 1169 | displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") ); |
1171 | 1170 | ||
1172 | } | 1171 | } |
1173 | void MainWindow::whatsNew() | 1172 | void MainWindow::whatsNew() |
1174 | { | 1173 | { |
1175 | displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") ); | 1174 | displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") ); |
1176 | 1175 | ||
1177 | } | 1176 | } |
1178 | void MainWindow::licence() | 1177 | void MainWindow::licence() |
1179 | { | 1178 | { |
1180 | KApplication::showLicence(); | 1179 | KApplication::showLicence(); |
1181 | 1180 | ||
1182 | } | 1181 | } |
1183 | void MainWindow::about() | 1182 | void MainWindow::about() |
1184 | { | 1183 | { |
1185 | QString version; | 1184 | QString version; |
1186 | #include <../version> | 1185 | #include <../version> |
1187 | QMessageBox::about( this, i18n("About KOrganizer/Pi"), | 1186 | QMessageBox::about( this, i18n("About KOrganizer/Pi"), |
1188 | i18n("KOrganizer/Platform-independent\n") + | 1187 | i18n("KOrganizer/Platform-independent\n") + |
1189 | "(KO/Pi) " + version + " - " + | 1188 | "(KO/Pi) " + version + " - " + |
1190 | 1189 | ||
1191 | #ifdef DESKTOP_VERSION | 1190 | #ifdef DESKTOP_VERSION |
1192 | i18n("Desktop Edition\n") + | 1191 | i18n("Desktop Edition\n") + |
1193 | #else | 1192 | #else |
1194 | i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") + | 1193 | i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") + |
1195 | #endif | 1194 | #endif |
1196 | i18n("(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n") ); | 1195 | i18n("(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n") ); |
1197 | } | 1196 | } |
1198 | void MainWindow::keyBindings() | 1197 | void MainWindow::keyBindings() |
1199 | { | 1198 | { |
1200 | QString cap = i18n("Key bindings KOrganizer/Pi"); | 1199 | QString cap = i18n("Key bindings KOrganizer/Pi"); |
1201 | QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + | 1200 | QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + |
1202 | i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ | 1201 | i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ |
1203 | i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + | 1202 | i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + |
1204 | i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ | 1203 | i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ |
1205 | i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+ | 1204 | i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+ |
1206 | i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ | 1205 | i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ |
1207 | i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ | 1206 | i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ |
1208 | i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+ | 1207 | i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+ |
1209 | i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ | 1208 | i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ |
1210 | i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ | 1209 | i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ |
1211 | i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ | 1210 | i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ |
1212 | i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ | 1211 | i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ |
1213 | i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ | 1212 | i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ |
1214 | i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+ | 1213 | i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+ |
1215 | i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ | 1214 | i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ |
1216 | i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ | 1215 | i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ |
1217 | i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ | 1216 | i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ |
1218 | i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ | 1217 | i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ |
1219 | i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ | 1218 | i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ |
1220 | i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ | 1219 | i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ |
1221 | i18n("<p><h3>In agenda view:</h3></p>\n") + | 1220 | i18n("<p><h3>In agenda view:</h3></p>\n") + |
1222 | i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ | 1221 | i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ |
1223 | i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ | 1222 | i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ |
1224 | i18n("<p><h3>In todo view:</h3></p>\n") + | 1223 | i18n("<p><h3>In todo view:</h3></p>\n") + |
1225 | i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ | 1224 | i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ |
1226 | i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ | 1225 | i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ |
1227 | i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ | 1226 | i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ |
1228 | i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ | 1227 | i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ |
1229 | i18n("<p><h3>In list view:</h3></p>\n") + | 1228 | i18n("<p><h3>In list view:</h3></p>\n") + |
1230 | i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ | 1229 | i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ |
1231 | i18n("<p><b>return</b>: Select item+one step down</p>\n")+ | 1230 | i18n("<p><b>return</b>: Select item+one step down</p>\n")+ |
1232 | i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ | 1231 | i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ |
1233 | i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ | 1232 | i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ |
1234 | i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ | 1233 | i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ |
1235 | i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ | 1234 | i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ |
1236 | i18n("<p><h3>In event/todo viewer:</h3></p>\n") + | 1235 | i18n("<p><h3>In event/todo viewer:</h3></p>\n") + |
1237 | i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ | 1236 | i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ |
1238 | i18n("<p><b>A</b>: Show agenda view.</p>\n")+ | 1237 | i18n("<p><b>A</b>: Show agenda view.</p>\n")+ |
1239 | i18n("<p><b>E</b>: Edit item</p>\n") + | 1238 | i18n("<p><b>E</b>: Edit item</p>\n") + |
1240 | i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + | 1239 | i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + |
1241 | i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + | 1240 | i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + |
1242 | i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ | 1241 | i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ |
1243 | i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ | 1242 | i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ |
1244 | i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ | 1243 | i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ |
1245 | i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ | 1244 | i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ |
1246 | i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ | 1245 | i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ |
1247 | i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + | 1246 | i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + |
1248 | i18n("<p><b>White</b>: Item readonly</p>\n"); | 1247 | i18n("<p><b>White</b>: Item readonly</p>\n"); |
1249 | displayText( text, cap); | 1248 | displayText( text, cap); |
1250 | 1249 | ||
1251 | } | 1250 | } |
1252 | void MainWindow::aboutAutoSaving() | 1251 | void MainWindow::aboutAutoSaving() |
1253 | { | 1252 | { |
1254 | QMessageBox* msg; | 1253 | QMessageBox* msg; |
1255 | msg = new QMessageBox( i18n("Auto Saving in KOrganizer/Pi"), | 1254 | msg = new QMessageBox( i18n("Auto Saving in KOrganizer/Pi"), |
1256 | i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configureable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n"), QMessageBox::NoIcon, | 1255 | i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configureable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n"), QMessageBox::NoIcon, |
1257 | QMessageBox::Ok, | 1256 | QMessageBox::Ok, |
1258 | QMessageBox::NoButton, | 1257 | QMessageBox::NoButton, |
1259 | QMessageBox::NoButton); | 1258 | QMessageBox::NoButton); |
1260 | msg->exec(); | 1259 | msg->exec(); |
1261 | delete msg; | 1260 | delete msg; |
1262 | 1261 | ||
1263 | 1262 | ||
1264 | } | 1263 | } |
1265 | void MainWindow::aboutKnownBugs() | 1264 | void MainWindow::aboutKnownBugs() |
1266 | { | 1265 | { |
1267 | QMessageBox* msg; | 1266 | QMessageBox* msg; |
1268 | msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), | 1267 | msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), |
1269 | i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+ | 1268 | i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+ |
1270 | i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ | 1269 | i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ |
1271 | i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") + | 1270 | i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") + |
1272 | i18n("\nor report them in the bugtracker on\n") + | 1271 | i18n("\nor report them in the bugtracker on\n") + |
1273 | i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), | 1272 | i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), |
1274 | QMessageBox::NoIcon, | 1273 | QMessageBox::NoIcon, |
1275 | QMessageBox::Ok, | 1274 | QMessageBox::Ok, |
1276 | QMessageBox::NoButton, | 1275 | QMessageBox::NoButton, |
1277 | QMessageBox::NoButton); | 1276 | QMessageBox::NoButton); |
@@ -1766,912 +1765,871 @@ void MainWindow::loadCalendar() | |||
1766 | i18n("Load!"), i18n("Cancel"), 0, | 1765 | i18n("Load!"), i18n("Cancel"), 0, |
1767 | 0, 1 ); | 1766 | 0, 1 ); |
1768 | if ( result != 0 ) { | 1767 | if ( result != 0 ) { |
1769 | loadbup = false; | 1768 | loadbup = false; |
1770 | } | 1769 | } |
1771 | } else { | 1770 | } else { |
1772 | QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 1771 | QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
1773 | i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0, | 1772 | i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0, |
1774 | 0, 1 ); | 1773 | 0, 1 ); |
1775 | 1774 | ||
1776 | return; | 1775 | return; |
1777 | } | 1776 | } |
1778 | if ( loadbup ) { | 1777 | if ( loadbup ) { |
1779 | mView->openCalendar( fn ); | 1778 | mView->openCalendar( fn ); |
1780 | KOPrefs::instance()->mLastLoadFile = fn; | 1779 | KOPrefs::instance()->mLastLoadFile = fn; |
1781 | mess = i18n("KO/Pi:Loaded %1").arg(fn) ; | 1780 | mess = i18n("KO/Pi:Loaded %1").arg(fn) ; |
1782 | setCaption(mess); | 1781 | setCaption(mess); |
1783 | } | 1782 | } |
1784 | 1783 | ||
1785 | } | 1784 | } |
1786 | void MainWindow::quickImportIcal() | 1785 | void MainWindow::quickImportIcal() |
1787 | { | 1786 | { |
1788 | importFile( KOPrefs::instance()->mLastImportFile, false ); | 1787 | importFile( KOPrefs::instance()->mLastImportFile, false ); |
1789 | } | 1788 | } |
1790 | void MainWindow::importFile( QString fn, bool quick ) | 1789 | void MainWindow::importFile( QString fn, bool quick ) |
1791 | { | 1790 | { |
1792 | QFileInfo info; | 1791 | QFileInfo info; |
1793 | info.setFile( fn ); | 1792 | info.setFile( fn ); |
1794 | QString mess; | 1793 | QString mess; |
1795 | bool loadbup = true; | 1794 | bool loadbup = true; |
1796 | if ( !info. exists() ) { | 1795 | if ( !info. exists() ) { |
1797 | mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30)); | 1796 | mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30)); |
1798 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 1797 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
1799 | mess ); | 1798 | mess ); |
1800 | return; | 1799 | return; |
1801 | } | 1800 | } |
1802 | int result = 0; | 1801 | int result = 0; |
1803 | if ( !quick ) { | 1802 | if ( !quick ) { |
1804 | mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); | 1803 | mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); |
1805 | result = QMessageBox::warning( this, "KO/Pi: Warning!", | 1804 | result = QMessageBox::warning( this, "KO/Pi: Warning!", |
1806 | mess, | 1805 | mess, |
1807 | "Import", "Cancel", 0, | 1806 | "Import", "Cancel", 0, |
1808 | 0, 1 ); | 1807 | 0, 1 ); |
1809 | } | 1808 | } |
1810 | if ( result == 0 ) { | 1809 | if ( result == 0 ) { |
1811 | if ( mView->openCalendar( fn, true )) { | 1810 | if ( mView->openCalendar( fn, true )) { |
1812 | KOPrefs::instance()->mLastImportFile = fn; | 1811 | KOPrefs::instance()->mLastImportFile = fn; |
1813 | setCaption(i18n("Imported file successfully")); | 1812 | setCaption(i18n("Imported file successfully")); |
1814 | } else { | 1813 | } else { |
1815 | setCaption(i18n("Error importing file")); | 1814 | setCaption(i18n("Error importing file")); |
1816 | } | 1815 | } |
1817 | } | 1816 | } |
1818 | } | 1817 | } |
1819 | 1818 | ||
1820 | void MainWindow::importIcal() | 1819 | void MainWindow::importIcal() |
1821 | { | 1820 | { |
1822 | 1821 | ||
1823 | QString fn =KOPrefs::instance()->mLastImportFile; | 1822 | QString fn =KOPrefs::instance()->mLastImportFile; |
1824 | 1823 | ||
1825 | fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); | 1824 | fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); |
1826 | if ( fn == "" ) | 1825 | if ( fn == "" ) |
1827 | return; | 1826 | return; |
1828 | importFile( fn, true ); | 1827 | importFile( fn, true ); |
1829 | 1828 | ||
1830 | } | 1829 | } |
1831 | 1830 | ||
1832 | void MainWindow::exportVCalendar() | 1831 | void MainWindow::exportVCalendar() |
1833 | { | 1832 | { |
1834 | QString fn = KOPrefs::instance()->mLastVcalFile; | 1833 | QString fn = KOPrefs::instance()->mLastVcalFile; |
1835 | fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); | 1834 | fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); |
1836 | if ( fn == "" ) | 1835 | if ( fn == "" ) |
1837 | return; | 1836 | return; |
1838 | QFileInfo info; | 1837 | QFileInfo info; |
1839 | info.setFile( fn ); | 1838 | info.setFile( fn ); |
1840 | QString mes; | 1839 | QString mes; |
1841 | bool createbup = true; | 1840 | bool createbup = true; |
1842 | if ( info. exists() ) { | 1841 | if ( info. exists() ) { |
1843 | mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); | 1842 | mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); |
1844 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, | 1843 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, |
1845 | i18n("Overwrite!"), i18n("Cancel"), 0, | 1844 | i18n("Overwrite!"), i18n("Cancel"), 0, |
1846 | 0, 1 ); | 1845 | 0, 1 ); |
1847 | if ( result != 0 ) { | 1846 | if ( result != 0 ) { |
1848 | createbup = false; | 1847 | createbup = false; |
1849 | } | 1848 | } |
1850 | } | 1849 | } |
1851 | if ( createbup ) { | 1850 | if ( createbup ) { |
1852 | if ( mView->exportVCalendar( fn ) ) { | 1851 | if ( mView->exportVCalendar( fn ) ) { |
1853 | KOPrefs::instance()->mLastVcalFile = fn; | 1852 | KOPrefs::instance()->mLastVcalFile = fn; |
1854 | if ( fn.length() > 20 ) | 1853 | if ( fn.length() > 20 ) |
1855 | mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; | 1854 | mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; |
1856 | else | 1855 | else |
1857 | mes = i18n("KO/Pi:Exported to %1").arg(fn ); | 1856 | mes = i18n("KO/Pi:Exported to %1").arg(fn ); |
1858 | setCaption(mes); | 1857 | setCaption(mes); |
1859 | } | 1858 | } |
1860 | } | 1859 | } |
1861 | 1860 | ||
1862 | } | 1861 | } |
1863 | QString MainWindow::getPassword( ) | 1862 | QString MainWindow::getPassword( ) |
1864 | { | 1863 | { |
1865 | QString retfile = ""; | 1864 | QString retfile = ""; |
1866 | QDialog dia ( this, "input-dialog", true ); | 1865 | QDialog dia ( this, "input-dialog", true ); |
1867 | QLineEdit lab ( &dia ); | 1866 | QLineEdit lab ( &dia ); |
1868 | lab.setEchoMode( QLineEdit::Password ); | 1867 | lab.setEchoMode( QLineEdit::Password ); |
1869 | QVBoxLayout lay( &dia ); | 1868 | QVBoxLayout lay( &dia ); |
1870 | lay.setMargin(7); | 1869 | lay.setMargin(7); |
1871 | lay.setSpacing(7); | 1870 | lay.setSpacing(7); |
1872 | lay.addWidget( &lab); | 1871 | lay.addWidget( &lab); |
1873 | dia.setFixedSize( 230,50 ); | 1872 | dia.setFixedSize( 230,50 ); |
1874 | dia.setCaption( i18n("Enter password") ); | 1873 | dia.setCaption( i18n("Enter password") ); |
1875 | QPushButton pb ( "OK", &dia); | 1874 | QPushButton pb ( "OK", &dia); |
1876 | lay.addWidget( &pb ); | 1875 | lay.addWidget( &pb ); |
1877 | connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); | 1876 | connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); |
1878 | dia.show(); | 1877 | dia.show(); |
1879 | int res = dia.exec(); | 1878 | int res = dia.exec(); |
1880 | if ( res ) | 1879 | if ( res ) |
1881 | retfile = lab.text(); | 1880 | retfile = lab.text(); |
1882 | dia.hide(); | 1881 | dia.hide(); |
1883 | qApp->processEvents(); | 1882 | qApp->processEvents(); |
1884 | return retfile; | 1883 | return retfile; |
1885 | 1884 | ||
1886 | } | 1885 | } |
1887 | 1886 | ||
1888 | void MainWindow::enableQuick() | 1887 | void MainWindow::enableQuick() |
1889 | { | 1888 | { |
1890 | QString passWordPiSync = "bhdrvmk"; | 1889 | QString passWordPiSync = "bhdrvmk"; |
1891 | QString retfile = ""; | 1890 | QString retfile = ""; |
1892 | QDialog dia ( this, "input-dialog", true ); | 1891 | QDialog dia ( this, "input-dialog", true ); |
1893 | QLineEdit lab ( &dia ); | 1892 | QLineEdit lab ( &dia ); |
1894 | QVBoxLayout lay( &dia ); | 1893 | QVBoxLayout lay( &dia ); |
1895 | lab.setText( KOPrefs::instance()->mPassiveSyncPort ); | 1894 | lab.setText( KOPrefs::instance()->mPassiveSyncPort ); |
1896 | lay.setMargin(7); | 1895 | lay.setMargin(7); |
1897 | lay.setSpacing(7); | 1896 | lay.setSpacing(7); |
1898 | QLabel label ( i18n("Port number (Default: 9197)"), &dia ); | 1897 | QLabel label ( i18n("Port number (Default: 9197)"), &dia ); |
1899 | lay.addWidget( &label); | 1898 | lay.addWidget( &label); |
1900 | lay.addWidget( &lab); | 1899 | lay.addWidget( &lab); |
1901 | 1900 | ||
1902 | QLineEdit lepw ( &dia ); | 1901 | QLineEdit lepw ( &dia ); |
1903 | lepw.setText( "abc" ); | 1902 | lepw.setText( "abc" ); |
1904 | QLabel label2 ( i18n("Password to enable\naccess from remote:"), &dia ); | 1903 | QLabel label2 ( i18n("Password to enable\naccess from remote:"), &dia ); |
1905 | lay.addWidget( &label2); | 1904 | lay.addWidget( &label2); |
1906 | lay.addWidget( &lepw); | 1905 | lay.addWidget( &lepw); |
1907 | dia.setFixedSize( 230,80 ); | 1906 | dia.setFixedSize( 230,80 ); |
1908 | dia.setCaption( i18n("Enter port for Pi-Sync") ); | 1907 | dia.setCaption( i18n("Enter port for Pi-Sync") ); |
1909 | QPushButton pb ( "OK", &dia); | 1908 | QPushButton pb ( "OK", &dia); |
1910 | lay.addWidget( &pb ); | 1909 | lay.addWidget( &pb ); |
1911 | connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); | 1910 | connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); |
1912 | dia.show(); | 1911 | dia.show(); |
1913 | int res = dia.exec(); | 1912 | int res = dia.exec(); |
1914 | if ( res ) | 1913 | if ( res ) |
1915 | retfile = lab.text(); | 1914 | retfile = lab.text(); |
1916 | else | 1915 | else |
1917 | return; | 1916 | return; |
1918 | dia.hide(); | 1917 | dia.hide(); |
1919 | passWordPiSync = lepw.text(); | 1918 | passWordPiSync = lepw.text(); |
1920 | qApp->processEvents(); | 1919 | qApp->processEvents(); |
1921 | KOPrefs::instance()->mPassiveSyncPort = retfile; | 1920 | KOPrefs::instance()->mPassiveSyncPort = retfile; |
1922 | bool ok; | 1921 | bool ok; |
1923 | Q_UINT16 port = retfile.toUInt(&ok); | 1922 | Q_UINT16 port = retfile.toUInt(&ok); |
1924 | if ( ! ok ) { | 1923 | if ( ! ok ) { |
1925 | KMessageBox::information( this, i18n("No valid port")); | 1924 | KMessageBox::information( this, i18n("No valid port")); |
1926 | return; | 1925 | return; |
1927 | } | 1926 | } |
1928 | qDebug("port %d ", port); | 1927 | qDebug("port %d ", port); |
1929 | mServerSocket = new KServerSocket ( passWordPiSync, port ,1 ); | 1928 | mServerSocket = new KServerSocket ( passWordPiSync, port ,1 ); |
1930 | mServerSocket->setFileName( defaultFileName() ); | 1929 | mServerSocket->setFileName( defaultFileName() ); |
1931 | qDebug("connected "); | 1930 | qDebug("connected "); |
1932 | if ( !mServerSocket->ok() ) { | 1931 | if ( !mServerSocket->ok() ) { |
1933 | qWarning("Failed to bind to port %d", port); | 1932 | qWarning("Failed to bind to port %d", port); |
1934 | delete mServerSocket; | 1933 | delete mServerSocket; |
1935 | mServerSocket = 0; | 1934 | mServerSocket = 0; |
1936 | return; | 1935 | return; |
1937 | } | 1936 | } |
1938 | connect( mServerSocket, SIGNAL ( saveFile() ), this, SLOT ( save() ) ); | 1937 | connect( mServerSocket, SIGNAL ( saveFile() ), this, SLOT ( save() ) ); |
1939 | connect( mServerSocket, SIGNAL ( file_received( bool ) ), this, SLOT ( getFile( bool ) ) ); | 1938 | connect( mServerSocket, SIGNAL ( file_received( bool ) ), this, SLOT ( getFile( bool ) ) ); |
1940 | // connect( mServerSocket, SIGNAL ( sendFile(QSocket*) ), this, SLOT ( sendFile(QSocket*) ) ); | 1939 | // connect( mServerSocket, SIGNAL ( sendFile(QSocket*) ), this, SLOT ( sendFile(QSocket*) ) ); |
1941 | //connect( mServerSocket, SIGNAL ( getFile(QSocket*) ), this, SLOT ( getFile(QSocket*) ) ); | 1940 | //connect( mServerSocket, SIGNAL ( getFile(QSocket*) ), this, SLOT ( getFile(QSocket*) ) ); |
1942 | } | 1941 | } |
1943 | 1942 | ||
1944 | void MainWindow::getFile( bool success ) | 1943 | void MainWindow::getFile( bool success ) |
1945 | { | 1944 | { |
1946 | if ( ! success ) { | 1945 | if ( ! success ) { |
1947 | setCaption( i18n("Error receiving file. Nothing changed!") ); | 1946 | setCaption( i18n("Error receiving file. Nothing changed!") ); |
1948 | return; | 1947 | return; |
1949 | } | 1948 | } |
1950 | // pending adjust time for watchSavedFile() | 1949 | // pending adjust time for watchSavedFile() |
1951 | //mView->watchSavedFile(); | 1950 | //mView->watchSavedFile(); |
1952 | mView->openCalendar( defaultFileName() ); | 1951 | mView->openCalendar( defaultFileName() ); |
1953 | setCaption( i18n("Pi-Sync successful!") ); | 1952 | setCaption( i18n("Pi-Sync successful!") ); |
1954 | 1953 | ||
1955 | } | 1954 | } |
1956 | 1955 | ||
1957 | 1956 | ||
1958 | void MainWindow::performQuick() | 1957 | void MainWindow::syncPi() |
1959 | { | 1958 | { |
1960 | |||
1961 | setCaption( i18n("Please input connection settings") ); | ||
1962 | QString retfile = ""; | ||
1963 | QDialog dia ( this, "input-dialog", true ); | ||
1964 | QLineEdit lab ( &dia ); | ||
1965 | QVBoxLayout lay( &dia ); | ||
1966 | QLabel label ( i18n("IP address\n(Example: 192.168.0.40)"), &dia ); | ||
1967 | lay.addWidget( &label); | ||
1968 | lab.setText( KOPrefs::instance()->mActiveSyncIP ); | ||
1969 | lay.setMargin(7); | ||
1970 | lay.setSpacing(7); | ||
1971 | lay.addWidget( &lab); | ||
1972 | QLabel label2 ( i18n("Port number (Default: 9197)"), &dia ); | ||
1973 | lay.addWidget( &label2); | ||
1974 | QLineEdit lab2 ( &dia ); | ||
1975 | lab2.setText( KOPrefs::instance()->mActiveSyncPort ); | ||
1976 | lay.addWidget( &lab2); | ||
1977 | |||
1978 | QLineEdit lepw ( &dia ); | ||
1979 | lepw.setText( mPassWordPiSync ); | ||
1980 | QLabel label3 ( i18n("Password to enable\naccess to remote:"), &dia ); | ||
1981 | lay.addWidget( &label3); | ||
1982 | lay.addWidget( &lepw); | ||
1983 | |||
1984 | dia.setFixedSize( 230,200 ); | ||
1985 | dia.setCaption( i18n("Enter port for Pi-Sync ") ); | ||
1986 | QPushButton pb ( "OK", &dia); | ||
1987 | lay.addWidget( &pb ); | ||
1988 | connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); | ||
1989 | dia.show(); | ||
1990 | int res = dia.exec(); | ||
1991 | if ( !res ) { | ||
1992 | setCaption( i18n("Syncing cancelled!") ); | ||
1993 | return; | ||
1994 | } | ||
1995 | mPassWordPiSync = lepw.text(); | ||
1996 | dia.hide(); | ||
1997 | KOPrefs::instance()->mActiveSyncPort = lab2.text(); | ||
1998 | KOPrefs::instance()->mActiveSyncIP = lab.text(); | ||
1999 | qApp->processEvents(); | 1959 | qApp->processEvents(); |
2000 | performQuickQuick(); | 1960 | performQuickQuick(); |
2001 | } | 1961 | } |
2002 | 1962 | ||
2003 | void MainWindow::performQuickQuick() | 1963 | void MainWindow::performQuickQuick() |
2004 | { | 1964 | { |
2005 | // setCaption( i18n("") ); | 1965 | // setCaption( i18n("") ); |
2006 | 1966 | ||
2007 | bool ok; | 1967 | bool ok; |
2008 | Q_UINT16 port = KOPrefs::instance()->mActiveSyncPort.toUInt(&ok); | 1968 | Q_UINT16 port = KOPrefs::instance()->mActiveSyncPort.toUInt(&ok); |
2009 | if ( ! ok ) { | 1969 | if ( ! ok ) { |
2010 | setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); | 1970 | setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); |
2011 | return; | 1971 | return; |
2012 | } | 1972 | } |
2013 | KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, KOPrefs::instance()->mActiveSyncIP, this ); | 1973 | KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, KOPrefs::instance()->mActiveSyncIP, this ); |
2014 | connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, bool )), this, SLOT(deleteCommandSocket(KCommandSocket*,bool)) ); | 1974 | connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, bool )), this, SLOT(deleteCommandSocket(KCommandSocket*,bool)) ); |
2015 | setCaption( i18n("Sending request for remote file ...") ); | 1975 | setCaption( i18n("Sending request for remote file ...") ); |
2016 | QString fileName; | 1976 | QString fileName; |
2017 | #ifdef _WIN32_ | 1977 | #ifdef _WIN32_ |
2018 | fileName = defaultFileName() +"sync"; | 1978 | fileName = defaultFileName() +"sync"; |
2019 | #else | 1979 | #else |
2020 | fileName = "/tmp/kopitempfile.ics"; | 1980 | fileName = "/tmp/kopitempfile.ics"; |
2021 | #endif | 1981 | #endif |
2022 | commandSocket->readFile( fileName ); | 1982 | commandSocket->readFile( fileName ); |
2023 | } | 1983 | } |
2024 | void MainWindow::deleteCommandSocket(KCommandSocket*s, bool success) | 1984 | void MainWindow::deleteCommandSocket(KCommandSocket*s, bool success) |
2025 | { | 1985 | { |
2026 | if ( ! success ) { | 1986 | if ( ! success ) { |
2027 | setCaption( i18n("ERROR:Receiving remote file failed.") ); | 1987 | setCaption( i18n("ERROR:Receiving remote file failed.") ); |
2028 | delete s; | 1988 | delete s; |
2029 | // pending : send stop | 1989 | // pending : send stop |
2030 | return; | 1990 | return; |
2031 | 1991 | ||
2032 | } | 1992 | } |
2033 | QTimer::singleShot( 1, this , SLOT ( readFileFromSocket())); | 1993 | QTimer::singleShot( 1, this , SLOT ( readFileFromSocket())); |
2034 | qDebug("MainWindow::deleteCommandSocket "); | 1994 | qDebug("MainWindow::deleteCommandSocket "); |
2035 | delete s; | 1995 | delete s; |
2036 | } | 1996 | } |
2037 | void MainWindow::deleteCommandSocketFinish(KCommandSocket* s, bool success ) | 1997 | void MainWindow::deleteCommandSocketFinish(KCommandSocket* s, bool success ) |
2038 | { | 1998 | { |
2039 | if ( ! success ) { | 1999 | if ( ! success ) { |
2040 | setCaption( i18n("ERROR:Writing back file failed.") ); | 2000 | setCaption( i18n("ERROR:Writing back file failed.") ); |
2041 | } else { | 2001 | } else { |
2042 | qDebug("Syncing succesful! "); | 2002 | qDebug("Syncing succesful! "); |
2043 | setCaption( i18n("Pi-Sync succesful!") ); | 2003 | setCaption( i18n("Pi-Sync succesful!") ); |
2044 | } | 2004 | } |
2045 | qDebug("MainWindow::deleteCommandSocketFinish "); | 2005 | qDebug("MainWindow::deleteCommandSocketFinish "); |
2046 | delete s; | 2006 | delete s; |
2047 | } | 2007 | } |
2048 | void MainWindow::readFileFromSocket() | 2008 | void MainWindow::readFileFromSocket() |
2049 | { | 2009 | { |
2050 | // mTimerCommandSocket->stop(); | 2010 | // mTimerCommandSocket->stop(); |
2051 | setCaption( i18n("Receiving remote file ...") ); | 2011 | setCaption( i18n("Receiving remote file ...") ); |
2052 | qDebug("MainWindow::readFileFromSocket() "); | 2012 | qDebug("MainWindow::readFileFromSocket() "); |
2053 | QString fileName; | 2013 | QString fileName; |
2054 | #ifdef _WIN32_ | 2014 | #ifdef _WIN32_ |
2055 | fileName = defaultFileName() +"sync"; | 2015 | fileName = defaultFileName() +"sync"; |
2056 | #else | 2016 | #else |
2057 | fileName = "/tmp/kopitempfile.ics"; | 2017 | fileName = "/tmp/kopitempfile.ics"; |
2058 | #endif | 2018 | #endif |
2059 | 2019 | ||
2060 | setCaption( i18n("Remote file saved to temp file.") ); | 2020 | setCaption( i18n("Remote file saved to temp file.") ); |
2061 | //mCommandSocket = 0; | 2021 | //mCommandSocket = 0; |
2062 | mCurrentSyncProfile = 2 ; // last file | 2022 | mCurrentSyncProfile = 2 ; // last file |
2063 | mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); | 2023 | mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); |
2064 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); | 2024 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); |
2065 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); | 2025 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); |
2066 | KSyncProfile* temp = new KSyncProfile (); | 2026 | KSyncProfile* temp = new KSyncProfile (); |
2067 | temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); | 2027 | temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); |
2068 | temp->readConfig(&config); | 2028 | temp->readConfig(&config); |
2069 | KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); | 2029 | KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); |
2070 | KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); | 2030 | KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); |
2071 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); | 2031 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); |
2072 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); | 2032 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); |
2073 | KOPrefs::instance()->mWriteBackInFuture = 0; | 2033 | KOPrefs::instance()->mWriteBackInFuture = 0; |
2074 | if ( temp->getWriteBackFuture() ) | 2034 | if ( temp->getWriteBackFuture() ) |
2075 | KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); | 2035 | KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); |
2076 | KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); | 2036 | KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); |
2077 | delete temp; | 2037 | delete temp; |
2078 | setCaption( i18n("Remote file saved to temp file.") ); | 2038 | setCaption( i18n("Remote file saved to temp file.") ); |
2079 | if ( ! syncWithFile( fileName , true ) ) { | 2039 | if ( ! syncWithFile( fileName , true ) ) { |
2080 | setCaption( i18n("Syncing failed.") ); | 2040 | setCaption( i18n("Syncing failed.") ); |
2081 | qDebug("Syncing failed "); | 2041 | qDebug("Syncing failed "); |
2082 | return; | 2042 | return; |
2083 | } | 2043 | } |
2084 | 2044 | ||
2085 | KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, KOPrefs::instance()->mActiveSyncPort.toUInt(), KOPrefs::instance()->mActiveSyncIP, this ); | 2045 | KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, KOPrefs::instance()->mActiveSyncPort.toUInt(), KOPrefs::instance()->mActiveSyncIP, this ); |
2086 | connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, bool )), this, SLOT(deleteCommandSocketFinish(KCommandSocket*,bool)) ); | 2046 | connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, bool )), this, SLOT(deleteCommandSocketFinish(KCommandSocket*,bool)) ); |
2087 | if ( KOPrefs::instance()->mWriteBackFile ) | 2047 | if ( KOPrefs::instance()->mWriteBackFile ) |
2088 | commandSocket->writeFile( fileName ); | 2048 | commandSocket->writeFile( fileName ); |
2089 | else | 2049 | else |
2090 | commandSocket->sendStop(); | 2050 | commandSocket->sendStop(); |
2091 | } | 2051 | } |
2092 | 2052 | ||
2093 | void MainWindow::syncLocalFile() | 2053 | void MainWindow::syncLocalFile() |
2094 | { | 2054 | { |
2095 | 2055 | ||
2096 | QString fn =KOPrefs::instance()->mLastSyncedLocalFile; | 2056 | QString fn =KOPrefs::instance()->mLastSyncedLocalFile; |
2097 | 2057 | ||
2098 | fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); | 2058 | fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); |
2099 | if ( fn == "" ) | 2059 | if ( fn == "" ) |
2100 | return; | 2060 | return; |
2101 | //mView->setSyncDevice("local-file" ); | 2061 | //mView->setSyncDevice("local-file" ); |
2102 | if ( syncWithFile( fn, false ) ) { | 2062 | if ( syncWithFile( fn, false ) ) { |
2103 | // Event* e = mView->getLastSyncEvent(); | 2063 | // Event* e = mView->getLastSyncEvent(); |
2104 | // e->setReadOnly( false ); | 2064 | // e->setReadOnly( false ); |
2105 | // e->setLocation( i18n("Local file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); | 2065 | // e->setLocation( i18n("Local file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); |
2106 | // e->setReadOnly( true ); | 2066 | // e->setReadOnly( true ); |
2107 | } | 2067 | } |
2108 | 2068 | ||
2109 | } | 2069 | } |
2110 | 2070 | ||
2111 | bool MainWindow::syncWithFile( QString fn , bool quick ) | 2071 | bool MainWindow::syncWithFile( QString fn , bool quick ) |
2112 | { | 2072 | { |
2113 | bool ret = false; | 2073 | bool ret = false; |
2114 | QFileInfo info; | 2074 | QFileInfo info; |
2115 | info.setFile( fn ); | 2075 | info.setFile( fn ); |
2116 | QString mess; | 2076 | QString mess; |
2117 | bool loadbup = true; | 2077 | bool loadbup = true; |
2118 | if ( !info. exists() ) { | 2078 | if ( !info. exists() ) { |
2119 | mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) ); | 2079 | mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) ); |
2120 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 2080 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
2121 | mess ); | 2081 | mess ); |
2122 | return ret; | 2082 | return ret; |
2123 | } | 2083 | } |
2124 | int result = 0; | 2084 | int result = 0; |
2125 | if ( !quick ) { | 2085 | if ( !quick ) { |
2126 | mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); | 2086 | mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); |
2127 | result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 2087 | result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
2128 | mess, | 2088 | mess, |
2129 | i18n("Sync"), i18n("Cancel"), 0, | 2089 | i18n("Sync"), i18n("Cancel"), 0, |
2130 | 0, 1 ); | 2090 | 0, 1 ); |
2131 | if ( result ) | 2091 | if ( result ) |
2132 | return false; | 2092 | return false; |
2133 | } | 2093 | } |
2134 | if ( KOPrefs::instance()->mAskForPreferences ) | 2094 | if ( KOPrefs::instance()->mAskForPreferences ) |
2135 | mView->edit_sync_options(); | 2095 | mView->edit_sync_options(); |
2136 | if ( result == 0 ) { | 2096 | if ( result == 0 ) { |
2137 | //qDebug("Now sycing ... "); | 2097 | //qDebug("Now sycing ... "); |
2138 | if ( ret = mView->syncCalendar( fn, KOPrefs::instance()->mSyncAlgoPrefs ) ) | 2098 | if ( ret = mView->syncCalendar( fn, KOPrefs::instance()->mSyncAlgoPrefs ) ) |
2139 | setCaption( i18n("Synchronization successful") ); | 2099 | setCaption( i18n("Synchronization successful") ); |
2140 | else | 2100 | else |
2141 | setCaption( i18n("Sync cancelled or failed. Nothing synced.") ); | 2101 | setCaption( i18n("Sync cancelled or failed. Nothing synced.") ); |
2142 | if ( ! quick ) | 2102 | if ( ! quick ) |
2143 | KOPrefs::instance()->mLastSyncedLocalFile = fn; | 2103 | KOPrefs::instance()->mLastSyncedLocalFile = fn; |
2144 | slotModifiedChanged( true ); | 2104 | slotModifiedChanged( true ); |
2145 | } | 2105 | } |
2146 | return ret; | 2106 | return ret; |
2147 | } | 2107 | } |
2148 | void MainWindow::quickSyncLocalFile() | 2108 | void MainWindow::quickSyncLocalFile() |
2149 | { | 2109 | { |
2150 | //mView->setSyncDevice("local-file" ); | 2110 | //mView->setSyncDevice("local-file" ); |
2151 | //qDebug("quickSyncLocalFile() "); | 2111 | //qDebug("quickSyncLocalFile() "); |
2152 | if ( syncWithFile( KOPrefs::instance()->mLastSyncedLocalFile, false ) ) { | 2112 | if ( syncWithFile( KOPrefs::instance()->mLastSyncedLocalFile, false ) ) { |
2153 | // Event* e = mView->getLastSyncEvent(); | 2113 | // Event* e = mView->getLastSyncEvent(); |
2154 | // e->setReadOnly( false ); | 2114 | // e->setReadOnly( false ); |
2155 | // e->setLocation( i18n("Quick with file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); | 2115 | // e->setLocation( i18n("Quick with file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); |
2156 | // e->setReadOnly( true ); | 2116 | // e->setReadOnly( true ); |
2157 | 2117 | ||
2158 | } | 2118 | } |
2159 | } | 2119 | } |
2160 | 2120 | ||
2161 | void MainWindow::confSync() | 2121 | void MainWindow::confSync() |
2162 | { | 2122 | { |
2163 | mView->confSync(); | 2123 | mView->confSync(); |
2164 | fillSyncMenu(); | 2124 | fillSyncMenu(); |
2165 | } | 2125 | } |
2166 | void MainWindow::syncRemote( KSyncProfile* prof, bool ask) | 2126 | void MainWindow::syncRemote( KSyncProfile* prof, bool ask) |
2167 | { | 2127 | { |
2168 | QString question; | 2128 | QString question; |
2169 | if ( ask ) { | 2129 | if ( ask ) { |
2170 | question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n"; | 2130 | question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n"; |
2171 | if ( QMessageBox::information( this, i18n("KO/Pi Sync"), | 2131 | if ( QMessageBox::information( this, i18n("KO/Pi Sync"), |
2172 | question, | 2132 | question, |
2173 | i18n("Yes"), i18n("No"), | 2133 | i18n("Yes"), i18n("No"), |
2174 | 0, 0 ) != 0 ) | 2134 | 0, 0 ) != 0 ) |
2175 | return; | 2135 | return; |
2176 | } | 2136 | } |
2177 | QString command = prof->getPreSyncCommand(); | 2137 | QString command = prof->getPreSyncCommand(); |
2178 | int fi; | 2138 | int fi; |
2179 | if ( (fi = command.find("$PWD$")) > 0 ) { | 2139 | if ( (fi = command.find("$PWD$")) > 0 ) { |
2180 | QString pwd = getPassword(); | 2140 | QString pwd = getPassword(); |
2181 | command = command.left( fi )+ pwd + command.mid( fi+5 ); | 2141 | command = command.left( fi )+ pwd + command.mid( fi+5 ); |
2182 | 2142 | ||
2183 | } | 2143 | } |
2184 | int maxlen = 30; | 2144 | int maxlen = 30; |
2185 | if ( QApplication::desktop()->width() > 320 ) | 2145 | if ( QApplication::desktop()->width() > 320 ) |
2186 | maxlen += 25; | 2146 | maxlen += 25; |
2187 | setCaption ( i18n( "Copy remote file to local machine..." ) ); | 2147 | setCaption ( i18n( "Copy remote file to local machine..." ) ); |
2188 | int fileSize = 0; | 2148 | int fileSize = 0; |
2189 | int result = system ( command ); | 2149 | int result = system ( command ); |
2190 | // 0 : okay | 2150 | // 0 : okay |
2191 | // 256: no such file or dir | 2151 | // 256: no such file or dir |
2192 | // | 2152 | // |
2193 | qDebug("KO: Remote copy result(0 = okay): %d ",result ); | 2153 | qDebug("KO: Remote copy result(0 = okay): %d ",result ); |
2194 | if ( result != 0 ) { | 2154 | if ( result != 0 ) { |
2195 | int len = maxlen; | 2155 | int len = maxlen; |
2196 | while ( len < command.length() ) { | 2156 | while ( len < command.length() ) { |
2197 | command.insert( len , "\n" ); | 2157 | command.insert( len , "\n" ); |
2198 | len += maxlen +2; | 2158 | len += maxlen +2; |
2199 | } | 2159 | } |
2200 | question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ; | 2160 | question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ; |
2201 | QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), | 2161 | QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), |
2202 | question, | 2162 | question, |
2203 | i18n("Okay!")) ; | 2163 | i18n("Okay!")) ; |
2204 | setCaption ("KO/Pi"); | 2164 | setCaption ("KO/Pi"); |
2205 | return; | 2165 | return; |
2206 | } | 2166 | } |
2207 | setCaption ( i18n( "Copying succeed." ) ); | 2167 | setCaption ( i18n( "Copying succeed." ) ); |
2208 | //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); | 2168 | //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); |
2209 | if ( syncWithFile( prof->getLocalTempFile(), true ) ) { | 2169 | if ( syncWithFile( prof->getLocalTempFile(), true ) ) { |
2210 | // Event* e = mView->getLastSyncEvent(); | 2170 | // Event* e = mView->getLastSyncEvent(); |
2211 | // e->setReadOnly( false ); | 2171 | // e->setReadOnly( false ); |
2212 | // e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); | 2172 | // e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); |
2213 | // e->setReadOnly( true ); | 2173 | // e->setReadOnly( true ); |
2214 | if ( KOPrefs::instance()->mWriteBackFile ) { | 2174 | if ( KOPrefs::instance()->mWriteBackFile ) { |
2215 | command = prof->getPostSyncCommand(); | 2175 | command = prof->getPostSyncCommand(); |
2216 | int fi; | 2176 | int fi; |
2217 | if ( (fi = command.find("$PWD$")) > 0 ) { | 2177 | if ( (fi = command.find("$PWD$")) > 0 ) { |
2218 | QString pwd = getPassword(); | 2178 | QString pwd = getPassword(); |
2219 | command = command.left( fi )+ pwd + command.mid( fi+5 ); | 2179 | command = command.left( fi )+ pwd + command.mid( fi+5 ); |
2220 | 2180 | ||
2221 | } | 2181 | } |
2222 | setCaption ( i18n( "Writing back file ..." ) ); | 2182 | setCaption ( i18n( "Writing back file ..." ) ); |
2223 | result = system ( command ); | 2183 | result = system ( command ); |
2224 | qDebug("KO: Writing back file result: %d ", result); | 2184 | qDebug("KO: Writing back file result: %d ", result); |
2225 | if ( result != 0 ) { | 2185 | if ( result != 0 ) { |
2226 | setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); | 2186 | setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); |
2227 | return; | 2187 | return; |
2228 | } else { | 2188 | } else { |
2229 | setCaption ( i18n( "Syncronization sucessfully completed" ) ); | 2189 | setCaption ( i18n( "Syncronization sucessfully completed" ) ); |
2230 | } | 2190 | } |
2231 | } | 2191 | } |
2232 | } | 2192 | } |
2233 | return; | 2193 | return; |
2234 | } | 2194 | } |
2235 | void MainWindow::syncSSH() | 2195 | void MainWindow::syncSSH() |
2236 | { | 2196 | { |
2237 | // not used anymore | 2197 | // not used anymore |
2238 | QTime timer; | 2198 | QTime timer; |
2239 | timer.start(); | 2199 | timer.start(); |
2240 | //qDebug("MainWindow::syncssh() "); | 2200 | //qDebug("MainWindow::syncssh() "); |
2241 | KOPrefs *p = KOPrefs::instance(); | 2201 | KOPrefs *p = KOPrefs::instance(); |
2242 | QString localFile = p->mLocalTempFile; | 2202 | QString localFile = p->mLocalTempFile; |
2243 | QString remoteIP = p->mRemoteIP; | 2203 | QString remoteIP = p->mRemoteIP; |
2244 | QString remoteUser = p->mRemoteUser; | 2204 | QString remoteUser = p->mRemoteUser; |
2245 | QString remoteFile = p->mRemoteFile; | 2205 | QString remoteFile = p->mRemoteFile; |
2246 | if ( p->mUsePassWd && p->mRemotePassWd.length() > 0 ) | 2206 | if ( p->mUsePassWd && p->mRemotePassWd.length() > 0 ) |
2247 | remoteUser += ":" + p->mRemotePassWd; | 2207 | remoteUser += ":" + p->mRemotePassWd; |
2248 | 2208 | ||
2249 | QString question = i18n("Do you really want\nto remote sync?\n \n") + | 2209 | QString question = i18n("Do you really want\nto remote sync?\n \n") + |
2250 | i18n("IP: " ) +remoteIP +"\n" + | 2210 | i18n("IP: " ) +remoteIP +"\n" + |
2251 | i18n("User: " ) + remoteUser +"\n" ; | 2211 | i18n("User: " ) + remoteUser +"\n" ; |
2252 | int maxlen = 30; | 2212 | int maxlen = 30; |
2253 | if ( QApplication::desktop()->width() > 320 ) | 2213 | if ( QApplication::desktop()->width() > 320 ) |
2254 | maxlen += 25; | 2214 | maxlen += 25; |
2255 | if ( remoteFile.length() > maxlen ) | 2215 | if ( remoteFile.length() > maxlen ) |
2256 | question += i18n("Remote file:\n..." ) + remoteFile.right(maxlen) +"\n"; | 2216 | question += i18n("Remote file:\n..." ) + remoteFile.right(maxlen) +"\n"; |
2257 | else | 2217 | else |
2258 | question += i18n("Remote file:\n " ) + remoteFile +"\n"; | 2218 | question += i18n("Remote file:\n " ) + remoteFile +"\n"; |
2259 | if ( localFile.length() > maxlen ) | 2219 | if ( localFile.length() > maxlen ) |
2260 | question += i18n("Local temp file:\n..." ) + localFile.right(maxlen) +"\n"; | 2220 | question += i18n("Local temp file:\n..." ) + localFile.right(maxlen) +"\n"; |
2261 | else | 2221 | else |
2262 | question += i18n("Local temp file:\n " ) + localFile +"\n"; | 2222 | question += i18n("Local temp file:\n " ) + localFile +"\n"; |
2263 | 2223 | ||
2264 | if ( QMessageBox::information( this, i18n("KO/Pi Sync"), | 2224 | if ( QMessageBox::information( this, i18n("KO/Pi Sync"), |
2265 | question, | 2225 | question, |
2266 | i18n("Yes"), i18n("No"), | 2226 | i18n("Yes"), i18n("No"), |
2267 | 0, 0 ) != 0 ) | 2227 | 0, 0 ) != 0 ) |
2268 | return; | 2228 | return; |
2269 | // if ( !p->mUsePassWd ) { | 2229 | // if ( !p->mUsePassWd ) { |
2270 | // QString pass = getPassword(); | 2230 | // QString pass = getPassword(); |
2271 | // if ( pass.length() > 0 ) | 2231 | // if ( pass.length() > 0 ) |
2272 | // remoteUser += ":" + pass; | 2232 | // remoteUser += ":" + pass; |
2273 | // } | 2233 | // } |
2274 | QString command = "scp " + remoteUser + "@" + remoteIP +":" + remoteFile +" " +localFile; | 2234 | QString command = "scp " + remoteUser + "@" + remoteIP +":" + remoteFile +" " +localFile; |
2275 | setCaption ( i18n( "Copy remote file to local machine..." ) ); | 2235 | setCaption ( i18n( "Copy remote file to local machine..." ) ); |
2276 | int fileSize = 0; | 2236 | int fileSize = 0; |
2277 | int result = system ( command ); | 2237 | int result = system ( command ); |
2278 | // 0 : okay | 2238 | // 0 : okay |
2279 | // 256: no such file or dir | 2239 | // 256: no such file or dir |
2280 | // | 2240 | // |
2281 | qDebug("KO: Remote copy result(0 = okay): %d ",result ); | 2241 | qDebug("KO: Remote copy result(0 = okay): %d ",result ); |
2282 | if ( result != 0 ) { | 2242 | if ( result != 0 ) { |
2283 | int len = maxlen; | 2243 | int len = maxlen; |
2284 | while ( len < command.length() ) { | 2244 | while ( len < command.length() ) { |
2285 | command.insert( len , "\n" ); | 2245 | command.insert( len , "\n" ); |
2286 | len += maxlen +2; | 2246 | len += maxlen +2; |
2287 | } | 2247 | } |
2288 | question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ; | 2248 | question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ; |
2289 | QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), | 2249 | QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), |
2290 | question, | 2250 | question, |
2291 | i18n("Okay!")) ; | 2251 | i18n("Okay!")) ; |
2292 | setCaption ("KO/Pi"); | 2252 | setCaption ("KO/Pi"); |
2293 | return; | 2253 | return; |
2294 | } | 2254 | } |
2295 | 2255 | ||
2296 | 2256 | ||
2297 | setCaption ( i18n( "Copying succeed." ) ); | 2257 | setCaption ( i18n( "Copying succeed." ) ); |
2298 | //mView->setSyncDevice("ssh-scp" ); | 2258 | //mView->setSyncDevice("ssh-scp" ); |
2299 | if ( syncWithFile(localFile , true ) ) { | 2259 | if ( syncWithFile(localFile , true ) ) { |
2300 | // Event* e = mView->getLastSyncEvent(); | 2260 | // Event* e = mView->getLastSyncEvent(); |
2301 | // e->setReadOnly( false ); | 2261 | // e->setReadOnly( false ); |
2302 | // e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); | 2262 | // e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); |
2303 | // e->setReadOnly( true ); | 2263 | // e->setReadOnly( true ); |
2304 | if ( KOPrefs::instance()->mWriteBackFile ) { | 2264 | if ( KOPrefs::instance()->mWriteBackFile ) { |
2305 | command = "scp " + localFile +" " +remoteUser + "@" + remoteIP +":" + remoteFile ; | 2265 | command = "scp " + localFile +" " +remoteUser + "@" + remoteIP +":" + remoteFile ; |
2306 | setCaption ( i18n( "Writing back file ..." ) ); | 2266 | setCaption ( i18n( "Writing back file ..." ) ); |
2307 | result = system ( command ); | 2267 | result = system ( command ); |
2308 | if ( result != 0 ) { | 2268 | if ( result != 0 ) { |
2309 | int len = maxlen; | 2269 | int len = maxlen; |
2310 | while ( len < command.length() ) { | 2270 | while ( len < command.length() ) { |
2311 | command.insert( len , "\n" ); | 2271 | command.insert( len , "\n" ); |
2312 | len += maxlen +2; | 2272 | len += maxlen +2; |
2313 | } | 2273 | } |
2314 | question = i18n("Sorry, the copy back command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ; | 2274 | question = i18n("Sorry, the copy back command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ; |
2315 | QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), | 2275 | QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), |
2316 | question, | 2276 | question, |
2317 | i18n("Okay!")) ; | 2277 | i18n("Okay!")) ; |
2318 | setCaption ("KO/Pi"); | 2278 | setCaption ("KO/Pi"); |
2319 | return; | 2279 | return; |
2320 | } else { | 2280 | } else { |
2321 | setCaption ( i18n( "Syncronization sucessfully completed" ) ); | 2281 | setCaption ( i18n( "Syncronization sucessfully completed" ) ); |
2322 | } | 2282 | } |
2323 | } | 2283 | } |
2324 | } | 2284 | } |
2325 | return; | 2285 | return; |
2326 | #if 0 | 2286 | #if 0 |
2327 | system ("scp zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics /home/polo/Applications/korganizer/z_sync.ics"); | 2287 | system ("scp zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics /home/polo/Applications/korganizer/z_sync.ics"); |
2328 | while ( timer.elapsed() < 5000 ) | 2288 | while ( timer.elapsed() < 5000 ) |
2329 | qApp->processEvents(); | 2289 | qApp->processEvents(); |
2330 | 2290 | ||
2331 | qDebug("MainWindow::merging) "); | 2291 | qDebug("MainWindow::merging) "); |
2332 | mView->syncCalendar( "/home/polo/Applications/korganizer/z_sync.ics", 0 ); | 2292 | mView->syncCalendar( "/home/polo/Applications/korganizer/z_sync.ics", 0 ); |
2333 | while ( mBlockSaveFlag ) | 2293 | while ( mBlockSaveFlag ) |
2334 | qApp->processEvents(); | 2294 | qApp->processEvents(); |
2335 | save(); | 2295 | save(); |
2336 | system ("scp /home/polo/Applications/korganizer/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics"); | 2296 | system ("scp /home/polo/Applications/korganizer/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics"); |
2337 | #endif | 2297 | #endif |
2338 | 2298 | ||
2339 | } | 2299 | } |
2340 | 2300 | ||
2341 | 2301 | ||
2342 | void MainWindow::syncSharp() | 2302 | void MainWindow::syncSharp() |
2343 | { | 2303 | { |
2344 | if ( mCalendarModifiedFlag ) | 2304 | if ( mCalendarModifiedFlag ) |
2345 | save(); | 2305 | save(); |
2346 | mView->syncSharp(); | 2306 | mView->syncSharp(); |
2347 | slotModifiedChanged( true ); | 2307 | slotModifiedChanged( true ); |
2348 | 2308 | ||
2349 | } | 2309 | } |
2350 | void MainWindow::syncPhone() | 2310 | void MainWindow::syncPhone() |
2351 | { | 2311 | { |
2352 | if ( mCalendarModifiedFlag ) | 2312 | if ( mCalendarModifiedFlag ) |
2353 | save(); | 2313 | save(); |
2354 | mView->syncPhone(); | 2314 | mView->syncPhone(); |
2355 | slotModifiedChanged( true ); | 2315 | slotModifiedChanged( true ); |
2356 | 2316 | ||
2357 | } | 2317 | } |
2358 | 2318 | ||
2359 | void MainWindow::printSel( ) | 2319 | void MainWindow::printSel( ) |
2360 | { | 2320 | { |
2361 | mView->viewManager()->agendaView()->agenda()->printSelection(); | 2321 | mView->viewManager()->agendaView()->agenda()->printSelection(); |
2362 | } | 2322 | } |
2363 | 2323 | ||
2364 | void MainWindow::printCal() | 2324 | void MainWindow::printCal() |
2365 | { | 2325 | { |
2366 | mView->print();//mCp->showDialog(); | 2326 | mView->print();//mCp->showDialog(); |
2367 | } | 2327 | } |
2368 | 2328 | ||
2369 | 2329 | ||
2370 | 2330 | ||
2371 | KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ) | 2331 | KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ) |
2372 | { | 2332 | { |
2373 | mPassWord = pw; | 2333 | mPassWord = pw; |
2374 | mSocket = 0; | 2334 | mSocket = 0; |
2375 | mSyncActionDialog = 0; | 2335 | mSyncActionDialog = 0; |
2376 | }; | 2336 | }; |
2377 | 2337 | ||
2378 | void KServerSocket::newConnection ( int socket ) | 2338 | void KServerSocket::newConnection ( int socket ) |
2379 | { | 2339 | { |
2380 | qDebug("KServerSocket:New connection %d ", socket); | 2340 | // qDebug("KServerSocket:New connection %d ", socket); |
2381 | if ( mSocket ) { | 2341 | if ( mSocket ) { |
2382 | qDebug("KServerSocket::newConnection Socket deleted! "); | 2342 | qDebug("KServerSocket::newConnection Socket deleted! "); |
2383 | delete mSocket; | 2343 | delete mSocket; |
2384 | mSocket = 0; | 2344 | mSocket = 0; |
2385 | } | 2345 | } |
2386 | mSocket = new QSocket( this ); | 2346 | mSocket = new QSocket( this ); |
2387 | connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) ); | 2347 | connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) ); |
2388 | connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) ); | 2348 | connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) ); |
2389 | mSocket->setSocket( socket ); | 2349 | mSocket->setSocket( socket ); |
2390 | } | 2350 | } |
2391 | 2351 | ||
2392 | void KServerSocket::discardClient() | 2352 | void KServerSocket::discardClient() |
2393 | { | 2353 | { |
2394 | qDebug(" KServerSocket::discardClient()"); | 2354 | //qDebug(" KServerSocket::discardClient()"); |
2395 | if ( mSocket ) { | 2355 | if ( mSocket ) { |
2396 | qDebug("delete "); | ||
2397 | delete mSocket; | 2356 | delete mSocket; |
2398 | mSocket = 0; | 2357 | mSocket = 0; |
2399 | } | 2358 | } |
2400 | //emit endConnect(); | 2359 | //emit endConnect(); |
2401 | } | 2360 | } |
2402 | void KServerSocket::readClient() | 2361 | void KServerSocket::readClient() |
2403 | { | 2362 | { |
2404 | if ( mSocket == 0 ) { | 2363 | if ( mSocket == 0 ) { |
2405 | qDebug("ERROR::KServerSocket::readClient(): mSocket == 0 "); | 2364 | qDebug("ERROR::KServerSocket::readClient(): mSocket == 0 "); |
2406 | return; | 2365 | return; |
2407 | } | 2366 | } |
2408 | qDebug("KServerSocket readClient()"); | 2367 | //qDebug("KServerSocket readClient()"); |
2409 | if ( mSocket->canReadLine() ) { | 2368 | if ( mSocket->canReadLine() ) { |
2410 | QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), mSocket->readLine() ); | 2369 | QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), mSocket->readLine() ); |
2411 | qDebug("KServerSocket socket->canReadLine()"); | ||
2412 | if ( tokens[0] == "GET" ) { | 2370 | if ( tokens[0] == "GET" ) { |
2413 | if ( tokens[1] == mPassWord ) | 2371 | if ( tokens[1] == mPassWord ) |
2414 | //emit sendFile( mSocket ); | 2372 | //emit sendFile( mSocket ); |
2415 | send_file(); | 2373 | send_file(); |
2416 | else { | 2374 | else { |
2417 | KMessageBox::information( 0, i18n("ERROR:\nGot send file request\nwith invalid password")); | 2375 | KMessageBox::information( 0, i18n("ERROR:\nGot send file request\nwith invalid password")); |
2418 | qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() ); | 2376 | qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() ); |
2419 | } | 2377 | } |
2420 | } | 2378 | } |
2421 | if ( tokens[0] == "PUT" ) { | 2379 | if ( tokens[0] == "PUT" ) { |
2422 | if ( tokens[1] == mPassWord ) | 2380 | if ( tokens[1] == mPassWord ) |
2423 | //emit getFile( mSocket ); | 2381 | //emit getFile( mSocket ); |
2424 | get_file(); | 2382 | get_file(); |
2425 | else { | 2383 | else { |
2426 | KMessageBox::information( 0, i18n("ERROR:\nGot receive file request\nwith invalid password")); | 2384 | KMessageBox::information( 0, i18n("ERROR:\nGot receive file request\nwith invalid password")); |
2427 | qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() ); | 2385 | qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() ); |
2428 | } | 2386 | } |
2429 | } | 2387 | } |
2430 | if ( tokens[0] == "STOP" ) { | 2388 | if ( tokens[0] == "STOP" ) { |
2431 | //emit endConnect(); | 2389 | //emit endConnect(); |
2432 | end_connect(); | 2390 | end_connect(); |
2433 | } | 2391 | } |
2434 | } | 2392 | } |
2435 | } | 2393 | } |
2436 | void KServerSocket::end_connect() | 2394 | void KServerSocket::end_connect() |
2437 | { | 2395 | { |
2438 | delete mSyncActionDialog; | 2396 | delete mSyncActionDialog; |
2439 | mSyncActionDialog = 0; | 2397 | mSyncActionDialog = 0; |
2440 | } | 2398 | } |
2441 | void KServerSocket::send_file() | 2399 | void KServerSocket::send_file() |
2442 | { | 2400 | { |
2443 | qDebug("MainWindow::sendFile(QSocket* s) "); | 2401 | //qDebug("MainWindow::sendFile(QSocket* s) "); |
2444 | if ( mSyncActionDialog ) | 2402 | if ( mSyncActionDialog ) |
2445 | delete mSyncActionDialog; | 2403 | delete mSyncActionDialog; |
2446 | mSyncActionDialog = new QDialog ( 0, "input-dialog", true ); | 2404 | mSyncActionDialog = new QDialog ( 0, "input-dialog", true ); |
2447 | mSyncActionDialog->setCaption(i18n("Received sync request")); | 2405 | mSyncActionDialog->setCaption(i18n("Received sync request")); |
2448 | QLabel* label = new QLabel( i18n("Synchronizing...\nDo not use this application!\n\nIf syncing fails you can close this dialog."), mSyncActionDialog ); | 2406 | QLabel* label = new QLabel( i18n("Synchronizing...\nDo not use this application!\n\nIf syncing fails you can close this dialog."), mSyncActionDialog ); |
2449 | QVBoxLayout* lay = new QVBoxLayout( mSyncActionDialog ); | 2407 | QVBoxLayout* lay = new QVBoxLayout( mSyncActionDialog ); |
2450 | lay->addWidget( label); | 2408 | lay->addWidget( label); |
2451 | lay->setMargin(7); | 2409 | lay->setMargin(7); |
2452 | lay->setSpacing(7); | 2410 | lay->setSpacing(7); |
2453 | mSyncActionDialog->setFixedSize( 230, 120); | 2411 | mSyncActionDialog->setFixedSize( 230, 120); |
2454 | mSyncActionDialog->show(); | 2412 | mSyncActionDialog->show(); |
2455 | qDebug("KSS::saving ... "); | 2413 | qDebug("KSS::saving ... "); |
2456 | emit saveFile(); | 2414 | emit saveFile(); |
2457 | qApp->processEvents(); | 2415 | qApp->processEvents(); |
2458 | QString fileName = mFileName; | 2416 | QString fileName = mFileName; |
2459 | QFile file( fileName ); | 2417 | QFile file( fileName ); |
2460 | if (!file.open( IO_ReadOnly ) ) { | 2418 | if (!file.open( IO_ReadOnly ) ) { |
2461 | delete mSyncActionDialog; | 2419 | delete mSyncActionDialog; |
2462 | mSyncActionDialog = 0; | 2420 | mSyncActionDialog = 0; |
2463 | qDebug("KSS::error open file "); | 2421 | qDebug("KSS::error open file "); |
2464 | mSocket->close(); | 2422 | mSocket->close(); |
2465 | if ( mSocket->state() == QSocket::Idle ) | 2423 | if ( mSocket->state() == QSocket::Idle ) |
2466 | QTimer::singleShot( 10, this , SLOT ( discardClient())); | 2424 | QTimer::singleShot( 10, this , SLOT ( discardClient())); |
2467 | return ; | 2425 | return ; |
2468 | 2426 | ||
2469 | } | 2427 | } |
2470 | mSyncActionDialog->setCaption( i18n("Sending file...") ); | 2428 | mSyncActionDialog->setCaption( i18n("Sending file...") ); |
2471 | QTextStream ts( &file ); | 2429 | QTextStream ts( &file ); |
2472 | ts.setCodec( QTextCodec::codecForName("utf8") ); | 2430 | ts.setCodec( QTextCodec::codecForName("utf8") ); |
2473 | QTextStream os( mSocket ); | 2431 | QTextStream os( mSocket ); |
2474 | os.setCodec( QTextCodec::codecForName("utf8") ); | 2432 | os.setCodec( QTextCodec::codecForName("utf8") ); |
2475 | //os.setEncoding( QTextStream::UnicodeUTF8 ); | 2433 | //os.setEncoding( QTextStream::UnicodeUTF8 ); |
2476 | while ( ! ts.atEnd() ) { | 2434 | while ( ! ts.atEnd() ) { |
2477 | os << ts.readLine() << "\n"; | 2435 | os << ts.readLine() << "\n"; |
2478 | } | 2436 | } |
2479 | //os << ts.read(); | 2437 | //os << ts.read(); |
2480 | file.close(); | 2438 | file.close(); |
2481 | mSyncActionDialog->setCaption( i18n("Waiting to get back synced file") ); | 2439 | mSyncActionDialog->setCaption( i18n("Waiting for synced file...") ); |
2482 | qDebug("file sent "); | ||
2483 | mSocket->close(); | 2440 | mSocket->close(); |
2484 | if ( mSocket->state() == QSocket::Idle ) | 2441 | if ( mSocket->state() == QSocket::Idle ) |
2485 | QTimer::singleShot( 10, this , SLOT ( discardClient())); | 2442 | QTimer::singleShot( 10, this , SLOT ( discardClient())); |
2486 | } | 2443 | } |
2487 | void KServerSocket::get_file() | 2444 | void KServerSocket::get_file() |
2488 | { | 2445 | { |
2489 | mSyncActionDialog->setCaption( i18n("Receiving synced file...") ); | 2446 | mSyncActionDialog->setCaption( i18n("Receiving synced file...") ); |
2490 | 2447 | ||
2491 | piTime.start(); | 2448 | piTime.start(); |
2492 | piFileString = ""; | 2449 | piFileString = ""; |
2493 | QTimer::singleShot( 1, this , SLOT (readBackFileFromSocket( ) )); | 2450 | QTimer::singleShot( 1, this , SLOT (readBackFileFromSocket( ) )); |
2494 | } | 2451 | } |
2495 | 2452 | ||
2496 | 2453 | ||
2497 | void KServerSocket::readBackFileFromSocket() | 2454 | void KServerSocket::readBackFileFromSocket() |
2498 | { | 2455 | { |
2499 | qDebug("readBackFileFromSocket() %d ", piTime.elapsed ()); | 2456 | //qDebug("readBackFileFromSocket() %d ", piTime.elapsed ()); |
2500 | while ( mSocket->canReadLine () ) { | 2457 | while ( mSocket->canReadLine () ) { |
2501 | piTime.restart(); | 2458 | piTime.restart(); |
2502 | QString line = mSocket->readLine (); | 2459 | QString line = mSocket->readLine (); |
2503 | piFileString += line; | 2460 | piFileString += line; |
2504 | qDebug("readline: %s ", line.latin1()); | 2461 | //qDebug("readline: %s ", line.latin1()); |
2505 | mSyncActionDialog->setCaption( i18n("Received %1 bytes").arg( piFileString.length() ) ); | 2462 | mSyncActionDialog->setCaption( i18n("Received %1 bytes").arg( piFileString.length() ) ); |
2506 | 2463 | ||
2507 | } | 2464 | } |
2508 | if ( piTime.elapsed () < 3000 ) { | 2465 | if ( piTime.elapsed () < 3000 ) { |
2509 | // wait for more | 2466 | // wait for more |
2510 | qDebug("waitformore "); | 2467 | //qDebug("waitformore "); |
2511 | QTimer::singleShot( 100, this , SLOT (readBackFileFromSocket( ) )); | 2468 | QTimer::singleShot( 100, this , SLOT (readBackFileFromSocket( ) )); |
2512 | return; | 2469 | return; |
2513 | } | 2470 | } |
2514 | QString fileName = mFileName; | 2471 | QString fileName = mFileName; |
2515 | QFile file ( fileName ); | 2472 | QFile file ( fileName ); |
2516 | if (!file.open( IO_WriteOnly ) ) { | 2473 | if (!file.open( IO_WriteOnly ) ) { |
2517 | delete mSyncActionDialog; | 2474 | delete mSyncActionDialog; |
2518 | mSyncActionDialog = 0; | 2475 | mSyncActionDialog = 0; |
2519 | qDebug("error open cal file "); | 2476 | qDebug("error open cal file "); |
2520 | piFileString = ""; | 2477 | piFileString = ""; |
2521 | emit file_received( false ); | 2478 | emit file_received( false ); |
2522 | return ; | 2479 | return ; |
2523 | 2480 | ||
2524 | } | 2481 | } |
2525 | 2482 | ||
2526 | // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); | 2483 | // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); |
2527 | QTextStream ts ( &file ); | 2484 | QTextStream ts ( &file ); |
2528 | ts.setCodec( QTextCodec::codecForName("utf8") ); | 2485 | ts.setCodec( QTextCodec::codecForName("utf8") ); |
2529 | qDebug("finish "); | ||
2530 | mSyncActionDialog->setCaption( i18n("Writing file to disk...") ); | 2486 | mSyncActionDialog->setCaption( i18n("Writing file to disk...") ); |
2531 | ts << piFileString; | 2487 | ts << piFileString; |
2532 | mSocket->close(); | 2488 | mSocket->close(); |
2533 | if ( mSocket->state() == QSocket::Idle ) | 2489 | if ( mSocket->state() == QSocket::Idle ) |
2534 | QTimer::singleShot( 10, this , SLOT ( discardClient())); | 2490 | QTimer::singleShot( 10, this , SLOT ( discardClient())); |
2535 | file.close(); | 2491 | file.close(); |
2536 | delete mSyncActionDialog; | 2492 | delete mSyncActionDialog; |
2537 | mSyncActionDialog = 0; | 2493 | mSyncActionDialog = 0; |
2538 | piFileString = ""; | 2494 | piFileString = ""; |
2539 | emit file_received( true ); | 2495 | emit file_received( true ); |
2540 | 2496 | ||
2541 | } | 2497 | } |
2542 | 2498 | ||
2543 | KCommandSocket::KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent, const char * name ): QObject( parent, name ) | 2499 | KCommandSocket::KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent, const char * name ): QObject( parent, name ) |
2544 | { | 2500 | { |
2545 | mPassWord = password; | 2501 | mPassWord = password; |
2546 | mSocket = 0; | 2502 | mSocket = 0; |
2547 | mPort = port; | 2503 | mPort = port; |
2548 | mHost = host; | 2504 | mHost = host; |
2549 | 2505 | ||
2550 | mRetVal = false; | 2506 | mRetVal = false; |
2551 | mTimerSocket = new QTimer ( this ); | 2507 | mTimerSocket = new QTimer ( this ); |
2552 | connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( deleteSocket() ) ); | 2508 | connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( deleteSocket() ) ); |
2553 | } | 2509 | } |
2554 | void KCommandSocket::readFile( QString fn ) | 2510 | void KCommandSocket::readFile( QString fn ) |
2555 | { | 2511 | { |
2556 | if ( !mSocket ) { | 2512 | if ( !mSocket ) { |
2557 | mSocket = new QSocket( this ); | 2513 | mSocket = new QSocket( this ); |
2558 | connect( mSocket, SIGNAL(readyRead()), this, SLOT(startReadFileFromSocket()) ); | 2514 | connect( mSocket, SIGNAL(readyRead()), this, SLOT(startReadFileFromSocket()) ); |
2559 | connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); | 2515 | connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); |
2560 | } | 2516 | } |
2561 | mFileString = ""; | 2517 | mFileString = ""; |
2562 | mFileName = fn; | 2518 | mFileName = fn; |
2563 | mFirst = true; | 2519 | mFirst = true; |
2564 | mSocket->connectToHost( mHost, mPort ); | 2520 | mSocket->connectToHost( mHost, mPort ); |
2565 | QTextStream os( mSocket ); | 2521 | QTextStream os( mSocket ); |
2566 | os.setEncoding( QTextStream::UnicodeUTF8 ); | 2522 | os.setEncoding( QTextStream::UnicodeUTF8 ); |
2567 | os << "GET " << mPassWord << "\r\n"; | 2523 | os << "GET " << mPassWord << "\r\n"; |
2568 | mTimerSocket->start( 10000 ); | 2524 | mTimerSocket->start( 10000 ); |
2569 | } | 2525 | } |
2570 | 2526 | ||
2571 | void KCommandSocket::writeFile( QString fileName ) | 2527 | void KCommandSocket::writeFile( QString fileName ) |
2572 | { | 2528 | { |
2573 | QFile file2( fileName ); | 2529 | QFile file2( fileName ); |
2574 | if (!file2.open( IO_ReadOnly ) ) { | 2530 | if (!file2.open( IO_ReadOnly ) ) { |
2575 | mRetVal= false; | 2531 | mRetVal= false; |
2576 | deleteSocket(); | 2532 | deleteSocket(); |
2577 | return ; | 2533 | return ; |
2578 | 2534 | ||
2579 | } | 2535 | } |
2580 | if ( !mSocket ) { | 2536 | if ( !mSocket ) { |
2581 | mSocket = new QSocket( this ); | 2537 | mSocket = new QSocket( this ); |
2582 | connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); | 2538 | connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); |
2583 | } | 2539 | } |
2540 | mSocket->connectToHost( mHost, mPort ); | ||
2584 | QTextStream ts2( &file2 ); | 2541 | QTextStream ts2( &file2 ); |
2585 | ts2.setCodec( QTextCodec::codecForName("utf8") ); | 2542 | ts2.setCodec( QTextCodec::codecForName("utf8") ); |
2586 | QTextStream os2( mSocket ); | 2543 | QTextStream os2( mSocket ); |
2587 | os2.setCodec( QTextCodec::codecForName("utf8") ); | 2544 | os2.setCodec( QTextCodec::codecForName("utf8") ); |
2588 | os2 << "PUT " << mPassWord << "\r\n";; | 2545 | os2 << "PUT " << mPassWord << "\r\n";; |
2589 | while ( ! ts2.atEnd() ) { | 2546 | while ( ! ts2.atEnd() ) { |
2590 | os2 << ts2.readLine() << "\n"; | 2547 | os2 << ts2.readLine() << "\n"; |
2591 | } | 2548 | } |
2549 | mRetVal= true; | ||
2592 | mSocket->close(); | 2550 | mSocket->close(); |
2593 | if ( mSocket->state() == QSocket::Idle ) | 2551 | if ( mSocket->state() == QSocket::Idle ) |
2594 | QTimer::singleShot( 10, this , SLOT ( deleteSocket())); | 2552 | QTimer::singleShot( 10, this , SLOT ( deleteSocket())); |
2595 | file2.close(); | 2553 | file2.close(); |
2596 | } | 2554 | } |
2597 | 2555 | ||
2598 | void KCommandSocket::sendStop() | 2556 | void KCommandSocket::sendStop() |
2599 | { | 2557 | { |
2600 | if ( !mSocket ) { | 2558 | if ( !mSocket ) { |
2601 | mSocket = new QSocket( this ); | 2559 | mSocket = new QSocket( this ); |
2602 | connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); | 2560 | connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); |
2603 | } | 2561 | } |
2562 | mSocket->connectToHost( mHost, mPort ); | ||
2604 | QTextStream os2( mSocket ); | 2563 | QTextStream os2( mSocket ); |
2605 | os2.setCodec( QTextCodec::codecForName("utf8") ); | 2564 | os2.setCodec( QTextCodec::codecForName("utf8") ); |
2606 | os2 << "STOP\r\n"; | 2565 | os2 << "STOP\r\n"; |
2607 | mRetVal= true; | 2566 | mRetVal= true; |
2608 | mSocket->close(); | 2567 | mSocket->close(); |
2609 | if ( mSocket->state() == QSocket::Idle ) | 2568 | if ( mSocket->state() == QSocket::Idle ) |
2610 | QTimer::singleShot( 10, this , SLOT ( deleteSocket())); | 2569 | QTimer::singleShot( 10, this , SLOT ( deleteSocket())); |
2611 | } | 2570 | } |
2612 | 2571 | ||
2613 | void KCommandSocket::startReadFileFromSocket() | 2572 | void KCommandSocket::startReadFileFromSocket() |
2614 | { | 2573 | { |
2615 | if ( ! mFirst ) | 2574 | if ( ! mFirst ) |
2616 | return; | 2575 | return; |
2617 | mFirst = false; | 2576 | mFirst = false; |
2618 | mTimerSocket->stop(); | 2577 | mTimerSocket->stop(); |
2619 | mFileString = ""; | 2578 | mFileString = ""; |
2620 | mTime.start(); | 2579 | mTime.start(); |
2621 | QTimer::singleShot( 1, this , SLOT (readFileFromSocket( ) )); | 2580 | QTimer::singleShot( 1, this , SLOT (readFileFromSocket( ) )); |
2622 | 2581 | ||
2623 | } | 2582 | } |
2624 | void KCommandSocket::readFileFromSocket() | 2583 | void KCommandSocket::readFileFromSocket() |
2625 | { | 2584 | { |
2626 | qDebug("readBackFileFromSocket() %d ", mTime.elapsed ()); | 2585 | //qDebug("readBackFileFromSocket() %d ", mTime.elapsed ()); |
2627 | while ( mSocket->canReadLine () ) { | 2586 | while ( mSocket->canReadLine () ) { |
2628 | mTime.restart(); | 2587 | mTime.restart(); |
2629 | QString line = mSocket->readLine (); | 2588 | QString line = mSocket->readLine (); |
2630 | mFileString += line; | 2589 | mFileString += line; |
2631 | qDebug("readline: %s ", line.latin1()); | 2590 | //qDebug("readline: %s ", line.latin1()); |
2632 | } | 2591 | } |
2633 | if ( mTime.elapsed () < 3000 ) { | 2592 | if ( mTime.elapsed () < 3000 ) { |
2634 | // wait for more | 2593 | // wait for more |
2635 | qDebug("waitformore "); | 2594 | //qDebug("waitformore "); |
2636 | QTimer::singleShot( 100, this , SLOT (readFileFromSocket( ) )); | 2595 | QTimer::singleShot( 100, this , SLOT (readFileFromSocket( ) )); |
2637 | return; | 2596 | return; |
2638 | } | 2597 | } |
2639 | QString fileName = mFileName; | 2598 | QString fileName = mFileName; |
2640 | QFile file ( fileName ); | 2599 | QFile file ( fileName ); |
2641 | if (!file.open( IO_WriteOnly ) ) { | 2600 | if (!file.open( IO_WriteOnly ) ) { |
2642 | mFileString = ""; | 2601 | mFileString = ""; |
2643 | mRetVal = false; | 2602 | mRetVal = false; |
2644 | qDebug("Error open temp calender file for writing: %s",fileName.latin1() ); | 2603 | qDebug("Error open temp calender file for writing: %s",fileName.latin1() ); |
2645 | deleteSocket(); | 2604 | deleteSocket(); |
2646 | return ; | 2605 | return ; |
2647 | 2606 | ||
2648 | } | 2607 | } |
2649 | // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); | 2608 | // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); |
2650 | QTextStream ts ( &file ); | 2609 | QTextStream ts ( &file ); |
2651 | ts.setCodec( QTextCodec::codecForName("utf8") ); | 2610 | ts.setCodec( QTextCodec::codecForName("utf8") ); |
2652 | qDebug("finish "); | ||
2653 | ts << mFileString; | 2611 | ts << mFileString; |
2654 | file.close(); | 2612 | file.close(); |
2655 | mFileString = ""; | 2613 | mFileString = ""; |
2656 | mRetVal = true; | 2614 | mRetVal = true; |
2657 | mSocket->close(); | 2615 | mSocket->close(); |
2658 | // if state is not idle, deleteSocket(); is called via | 2616 | // if state is not idle, deleteSocket(); is called via |
2659 | // connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); | 2617 | // connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); |
2660 | if ( mSocket->state() == QSocket::Idle ) | 2618 | if ( mSocket->state() == QSocket::Idle ) |
2661 | deleteSocket(); | 2619 | deleteSocket(); |
2662 | } | 2620 | } |
2663 | 2621 | ||
2664 | void KCommandSocket::deleteSocket() | 2622 | void KCommandSocket::deleteSocket() |
2665 | { | 2623 | { |
2666 | if ( mTimerSocket->isActive () ) { | 2624 | if ( mTimerSocket->isActive () ) { |
2667 | mTimerSocket->stop(); | 2625 | mTimerSocket->stop(); |
2668 | KMessageBox::information( 0, i18n("ERROR:\nConnection to remote host timed out!\nDid you forgot to enable\nsyncing on remote host? ")); | 2626 | KMessageBox::information( 0, i18n("ERROR:\nConnection to remote host timed out!\nDid you forgot to enable\nsyncing on remote host? ")); |
2669 | mRetVal = false; | 2627 | mRetVal = false; |
2670 | } | 2628 | } |
2671 | qDebug("KCommandSocket::deleteSocket() %d", mRetVal ); | 2629 | //qDebug("KCommandSocket::deleteSocket() %d", mRetVal ); |
2672 | if ( mSocket) | 2630 | if ( mSocket) |
2673 | delete mSocket; | 2631 | delete mSocket; |
2674 | mSocket = 0; | 2632 | mSocket = 0; |
2675 | emit commandFinished( this, mRetVal ); | 2633 | emit commandFinished( this, mRetVal ); |
2676 | } | 2634 | } |
2677 | 2635 | ||
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h index 5a67765..f8b2334 100644 --- a/korganizer/mainwindow.h +++ b/korganizer/mainwindow.h | |||
@@ -1,209 +1,209 @@ | |||
1 | #ifndef KORGE_MAINWINDOW_H | 1 | #ifndef KORGE_MAINWINDOW_H |
2 | #define KORGE_MAINWINDOW_H | 2 | #define KORGE_MAINWINDOW_H |
3 | 3 | ||
4 | #include <qmainwindow.h> | 4 | #include <qmainwindow.h> |
5 | #include <qtimer.h> | 5 | #include <qtimer.h> |
6 | #include <qdict.h> | 6 | #include <qdict.h> |
7 | #include <qfile.h> | 7 | #include <qfile.h> |
8 | #include <qsocket.h> | 8 | #include <qsocket.h> |
9 | #include <qtextstream.h> | 9 | #include <qtextstream.h> |
10 | #include <qregexp.h> | 10 | #include <qregexp.h> |
11 | 11 | ||
12 | #include <libkcal/incidence.h> | 12 | #include <libkcal/incidence.h> |
13 | #include "simplealarmclient.h" | 13 | #include "simplealarmclient.h" |
14 | 14 | ||
15 | class QAction; | 15 | class QAction; |
16 | class CalendarView; | 16 | class CalendarView; |
17 | class KSyncProfile; | 17 | class KSyncProfile; |
18 | #ifdef DESKTOP_VERSION | 18 | #ifdef DESKTOP_VERSION |
19 | 19 | ||
20 | #define QPEToolBar QToolBar | 20 | #define QPEToolBar QToolBar |
21 | #define QPEMenuBar QMenuBar | 21 | #define QPEMenuBar QMenuBar |
22 | #endif | 22 | #endif |
23 | class QPEToolBar; | 23 | class QPEToolBar; |
24 | #include <qserversocket.h> | 24 | #include <qserversocket.h> |
25 | #include <qsocket.h> | 25 | #include <qsocket.h> |
26 | #include <qnetworkprotocol.h> | 26 | #include <qnetworkprotocol.h> |
27 | 27 | ||
28 | class KServerSocket : public QServerSocket | 28 | class KServerSocket : public QServerSocket |
29 | { | 29 | { |
30 | Q_OBJECT | 30 | Q_OBJECT |
31 | 31 | ||
32 | public: | 32 | public: |
33 | KServerSocket ( QString password, Q_UINT16 port, int backlog = 0, QObject * parent=0, const char * name=0 ); | 33 | KServerSocket ( QString password, Q_UINT16 port, int backlog = 0, QObject * parent=0, const char * name=0 ); |
34 | 34 | ||
35 | void newConnection ( int socket ) ; | 35 | void newConnection ( int socket ) ; |
36 | void setFileName( QString fn ) {mFileName = fn;}; | 36 | void setFileName( QString fn ) {mFileName = fn;}; |
37 | 37 | ||
38 | signals: | 38 | signals: |
39 | //void sendFile(QSocket*); | 39 | //void sendFile(QSocket*); |
40 | //void getFile(QSocket*); | 40 | //void getFile(QSocket*); |
41 | void file_received( bool ); | 41 | void file_received( bool ); |
42 | //void file_sent(); | 42 | //void file_sent(); |
43 | void saveFile(); | 43 | void saveFile(); |
44 | void endConnect(); | 44 | void endConnect(); |
45 | private slots: | 45 | private slots: |
46 | void discardClient(); | 46 | void discardClient(); |
47 | void readClient(); | 47 | void readClient(); |
48 | void readBackFileFromSocket(); | 48 | void readBackFileFromSocket(); |
49 | private : | 49 | private : |
50 | void send_file(); | 50 | void send_file(); |
51 | void get_file(); | 51 | void get_file(); |
52 | void end_connect(); | 52 | void end_connect(); |
53 | QDialog* mSyncActionDialog; | 53 | QDialog* mSyncActionDialog; |
54 | QSocket* mSocket; | 54 | QSocket* mSocket; |
55 | QString mPassWord; | 55 | QString mPassWord; |
56 | QString mFileName; | 56 | QString mFileName; |
57 | QTime piTime; | 57 | QTime piTime; |
58 | QString piFileString; | 58 | QString piFileString; |
59 | }; | 59 | }; |
60 | 60 | ||
61 | class KCommandSocket : public QObject | 61 | class KCommandSocket : public QObject |
62 | { | 62 | { |
63 | Q_OBJECT | 63 | Q_OBJECT |
64 | 64 | ||
65 | public: | 65 | public: |
66 | KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent=0, const char * name=0 ); | 66 | KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent=0, const char * name=0 ); |
67 | void readFile( QString ); | 67 | void readFile( QString ); |
68 | void writeFile( QString ); | 68 | void writeFile( QString ); |
69 | void sendStop(); | 69 | void sendStop(); |
70 | 70 | ||
71 | 71 | ||
72 | signals: | 72 | signals: |
73 | void commandFinished( KCommandSocket*, bool ); | 73 | void commandFinished( KCommandSocket*, bool ); |
74 | private slots: | 74 | private slots: |
75 | void startReadFileFromSocket(); | 75 | void startReadFileFromSocket(); |
76 | void readFileFromSocket(); | 76 | void readFileFromSocket(); |
77 | void deleteSocket(); | 77 | void deleteSocket(); |
78 | private : | 78 | private : |
79 | QSocket* mSocket; | 79 | QSocket* mSocket; |
80 | QString mPassWord; | 80 | QString mPassWord; |
81 | Q_UINT16 mPort; | 81 | Q_UINT16 mPort; |
82 | QString mHost; | 82 | QString mHost; |
83 | QString mFileName; | 83 | QString mFileName; |
84 | QTimer* mTimerSocket; | 84 | QTimer* mTimerSocket; |
85 | bool mRetVal; | 85 | bool mRetVal; |
86 | QTime mTime; | 86 | QTime mTime; |
87 | QString mFileString; | 87 | QString mFileString; |
88 | bool mFirst; | 88 | bool mFirst; |
89 | }; | 89 | }; |
90 | 90 | ||
91 | namespace KCal { | 91 | namespace KCal { |
92 | class CalendarLocal; | 92 | class CalendarLocal; |
93 | } | 93 | } |
94 | 94 | ||
95 | using namespace KCal; | 95 | using namespace KCal; |
96 | 96 | ||
97 | class MainWindow : public QMainWindow | 97 | class MainWindow : public QMainWindow |
98 | { | 98 | { |
99 | Q_OBJECT | 99 | Q_OBJECT |
100 | public: | 100 | public: |
101 | MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); | 101 | MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); |
102 | ~MainWindow(); | 102 | ~MainWindow(); |
103 | public slots: | 103 | public slots: |
104 | virtual void showMaximized (); | 104 | virtual void showMaximized (); |
105 | void configureAgenda( int ); | 105 | void configureAgenda( int ); |
106 | void recieve( const QCString& msg, const QByteArray& data ); | 106 | void recieve( const QCString& msg, const QByteArray& data ); |
107 | static QString defaultFileName(); | 107 | static QString defaultFileName(); |
108 | static QString resourcePath(); | 108 | static QString resourcePath(); |
109 | protected slots: | 109 | protected slots: |
110 | void setCaptionToDates(); | 110 | void setCaptionToDates(); |
111 | int ringSync(); | 111 | int ringSync(); |
112 | void multiSync( bool askforPrefs = false ); | 112 | void multiSync( bool askforPrefs = false ); |
113 | void about(); | 113 | void about(); |
114 | void licence(); | 114 | void licence(); |
115 | void faq(); | 115 | void faq(); |
116 | void usertrans(); | 116 | void usertrans(); |
117 | void features(); | 117 | void features(); |
118 | void synchowto(); | 118 | void synchowto(); |
119 | void whatsNew(); | 119 | void whatsNew(); |
120 | void keyBindings(); | 120 | void keyBindings(); |
121 | void aboutAutoSaving();; | 121 | void aboutAutoSaving();; |
122 | void aboutKnownBugs(); | 122 | void aboutKnownBugs(); |
123 | 123 | ||
124 | void processIncidenceSelection( Incidence * ); | 124 | void processIncidenceSelection( Incidence * ); |
125 | 125 | ||
126 | void importQtopia(); | 126 | void importQtopia(); |
127 | void importBday(); | 127 | void importBday(); |
128 | void importOL(); | 128 | void importOL(); |
129 | void importIcal(); | 129 | void importIcal(); |
130 | void importFile( QString, bool ); | 130 | void importFile( QString, bool ); |
131 | void quickImportIcal(); | 131 | void quickImportIcal(); |
132 | 132 | ||
133 | void slotModifiedChanged( bool ); | 133 | void slotModifiedChanged( bool ); |
134 | 134 | ||
135 | void save(); | 135 | void save(); |
136 | void configureToolBar( int ); | 136 | void configureToolBar( int ); |
137 | void printSel(); | 137 | void printSel(); |
138 | void printCal(); | 138 | void printCal(); |
139 | void saveCalendar(); | 139 | void saveCalendar(); |
140 | void loadCalendar(); | 140 | void loadCalendar(); |
141 | void exportVCalendar(); | 141 | void exportVCalendar(); |
142 | void fillFilterMenu(); | 142 | void fillFilterMenu(); |
143 | void selectFilter( int ); | 143 | void selectFilter( int ); |
144 | 144 | ||
145 | void slotSyncMenu( int ); | 145 | void slotSyncMenu( int ); |
146 | void syncSSH(); | 146 | void syncSSH(); |
147 | void confSync(); | 147 | void confSync(); |
148 | void syncSharp(); | 148 | void syncSharp(); |
149 | void syncPhone(); | 149 | void syncPhone(); |
150 | void syncPi(); | ||
150 | void syncLocalFile(); | 151 | void syncLocalFile(); |
151 | bool syncWithFile( QString, bool ); | 152 | bool syncWithFile( QString, bool ); |
152 | void quickSyncLocalFile(); | 153 | void quickSyncLocalFile(); |
153 | 154 | ||
154 | 155 | ||
155 | protected: | 156 | protected: |
156 | void displayText( QString, QString); | 157 | void displayText( QString, QString); |
157 | void displayFile( QString, QString); | 158 | void displayFile( QString, QString); |
158 | 159 | ||
159 | void enableIncidenceActions( bool ); | 160 | void enableIncidenceActions( bool ); |
160 | 161 | ||
161 | private slots: | 162 | private slots: |
162 | QSocket* piSocket; | 163 | QSocket* piSocket; |
163 | QString piFileString; | 164 | QString piFileString; |
164 | QTime piTime; | 165 | QTime piTime; |
165 | void deleteCommandSocket(KCommandSocket* s, bool success); | 166 | void deleteCommandSocket(KCommandSocket* s, bool success); |
166 | void deleteCommandSocketFinish(KCommandSocket* s, bool success); | 167 | void deleteCommandSocketFinish(KCommandSocket* s, bool success); |
167 | void fillSyncMenu(); | 168 | void fillSyncMenu(); |
168 | void getFile( bool ); | 169 | void getFile( bool ); |
169 | void readFileFromSocket(); | 170 | void readFileFromSocket(); |
170 | private: | 171 | private: |
171 | //QTimer* mTimerCommandSocket; | 172 | //QTimer* mTimerCommandSocket; |
172 | QString mPassWordPiSync; | 173 | QString mPassWordPiSync; |
173 | KServerSocket * mServerSocket; | 174 | KServerSocket * mServerSocket; |
174 | bool mClosed; | 175 | bool mClosed; |
175 | void saveOnClose(); | 176 | void saveOnClose(); |
176 | int mCurrentSyncProfile; | 177 | int mCurrentSyncProfile; |
177 | void enableQuick(); | 178 | void enableQuick(); |
178 | void performQuick(); | ||
179 | void performQuickQuick(); | 179 | void performQuickQuick(); |
180 | void syncRemote( KSyncProfile* , bool ask = true); | 180 | void syncRemote( KSyncProfile* , bool ask = true); |
181 | bool mFlagKeyPressed; | 181 | bool mFlagKeyPressed; |
182 | bool mBlockAtStartup; | 182 | bool mBlockAtStartup; |
183 | QPEToolBar *iconToolBar; | 183 | QPEToolBar *iconToolBar; |
184 | void initActions(); | 184 | void initActions(); |
185 | void setDefaultPreferences(); | 185 | void setDefaultPreferences(); |
186 | void keyPressEvent ( QKeyEvent * ) ; | 186 | void keyPressEvent ( QKeyEvent * ) ; |
187 | void keyReleaseEvent ( QKeyEvent * ) ; | 187 | void keyReleaseEvent ( QKeyEvent * ) ; |
188 | QPopupMenu *configureToolBarMenu; | 188 | QPopupMenu *configureToolBarMenu; |
189 | QPopupMenu *selectFilterMenu; | 189 | QPopupMenu *selectFilterMenu; |
190 | QPopupMenu *configureAgendaMenu, *syncMenu; | 190 | QPopupMenu *configureAgendaMenu, *syncMenu; |
191 | CalendarLocal *mCalendar; | 191 | CalendarLocal *mCalendar; |
192 | CalendarView *mView; | 192 | CalendarView *mView; |
193 | QString getPassword(); | 193 | QString getPassword(); |
194 | QAction *mNewSubTodoAction; | 194 | QAction *mNewSubTodoAction; |
195 | 195 | ||
196 | QAction *mShowAction; | 196 | QAction *mShowAction; |
197 | QAction *mEditAction; | 197 | QAction *mEditAction; |
198 | QAction *mDeleteAction; | 198 | QAction *mDeleteAction; |
199 | void closeEvent( QCloseEvent* ce ); | 199 | void closeEvent( QCloseEvent* ce ); |
200 | SimpleAlarmClient mAlarmClient; | 200 | SimpleAlarmClient mAlarmClient; |
201 | QTimer mSaveTimer; | 201 | QTimer mSaveTimer; |
202 | bool mBlockSaveFlag; | 202 | bool mBlockSaveFlag; |
203 | bool mCalendarModifiedFlag; | 203 | bool mCalendarModifiedFlag; |
204 | QPixmap loadPixmap( QString ); | 204 | QPixmap loadPixmap( QString ); |
205 | QDialog * mSyncActionDialog; | 205 | QDialog * mSyncActionDialog; |
206 | }; | 206 | }; |
207 | 207 | ||
208 | 208 | ||
209 | #endif | 209 | #endif |
diff --git a/libkdepim/ksyncprefsdialog.cpp b/libkdepim/ksyncprefsdialog.cpp index f05c846..0caa27e 100644 --- a/libkdepim/ksyncprefsdialog.cpp +++ b/libkdepim/ksyncprefsdialog.cpp | |||
@@ -1,730 +1,732 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KOrganizer. | 2 | This file is part of KOrganizer. |
3 | Copyright (c) 2004 Lutz Rogowski <rogowski@kde.org> | 3 | Copyright (c) 2004 Lutz Rogowski <rogowski@kde.org> |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify | 5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or | 7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | This program is distributed in the hope that it will be useful, | 10 | This program is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 | 18 | ||
19 | As a special exception, permission is given to link this program | 19 | As a special exception, permission is given to link this program |
20 | with any edition of Qt, and distribute the resulting executable, | 20 | with any edition of Qt, and distribute the resulting executable, |
21 | without including the source code for Qt in the source distribution. | 21 | without including the source code for Qt in the source distribution. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <qlayout.h> | 24 | #include <qlayout.h> |
25 | #include <qlabel.h> | 25 | #include <qlabel.h> |
26 | #include <qgroupbox.h> | 26 | #include <qgroupbox.h> |
27 | #include <qbuttongroup.h> | 27 | #include <qbuttongroup.h> |
28 | #include <qlineedit.h> | 28 | #include <qlineedit.h> |
29 | #include <qfont.h> | 29 | #include <qfont.h> |
30 | #include <qslider.h> | 30 | #include <qslider.h> |
31 | #include <qfile.h> | 31 | #include <qfile.h> |
32 | #include <qdir.h> | 32 | #include <qdir.h> |
33 | #include <qtextstream.h> | 33 | #include <qtextstream.h> |
34 | #include <qcombobox.h> | 34 | #include <qcombobox.h> |
35 | #include <qvbox.h> | 35 | #include <qvbox.h> |
36 | #include <qhbox.h> | 36 | #include <qhbox.h> |
37 | #include <qspinbox.h> | 37 | #include <qspinbox.h> |
38 | #include <qdatetime.h> | 38 | #include <qdatetime.h> |
39 | #include <qcheckbox.h> | 39 | #include <qcheckbox.h> |
40 | #include <qradiobutton.h> | 40 | #include <qradiobutton.h> |
41 | #include <qpushbutton.h> | 41 | #include <qpushbutton.h> |
42 | #include <qstrlist.h> | 42 | #include <qstrlist.h> |
43 | #include <qapplication.h> | 43 | #include <qapplication.h> |
44 | #include <qlayout.h> | 44 | #include <qlayout.h> |
45 | #include <qscrollview.h> | 45 | #include <qscrollview.h> |
46 | 46 | ||
47 | #include <kcolorbutton.h> | 47 | #include <kcolorbutton.h> |
48 | #include <kdebug.h> | 48 | #include <kdebug.h> |
49 | #include <klocale.h> | 49 | #include <klocale.h> |
50 | #include <kglobal.h> | 50 | #include <kglobal.h> |
51 | #include <kfontdialog.h> | 51 | #include <kfontdialog.h> |
52 | #include <kmessagebox.h> | 52 | #include <kmessagebox.h> |
53 | #include <kcolordialog.h> | 53 | #include <kcolordialog.h> |
54 | #include <kiconloader.h> | 54 | #include <kiconloader.h> |
55 | #include <kemailsettings.h> | 55 | #include <kemailsettings.h> |
56 | #include <kstandarddirs.h> | 56 | #include <kstandarddirs.h> |
57 | #include <kfiledialog.h> | 57 | #include <kfiledialog.h> |
58 | #include <kmessagebox.h> | 58 | #include <kmessagebox.h> |
59 | 59 | ||
60 | //#include <kurlrequester.h> | 60 | //#include <kurlrequester.h> |
61 | #include <klineedit.h> | 61 | #include <klineedit.h> |
62 | #include "ksyncprofile.h" | 62 | #include "ksyncprofile.h" |
63 | 63 | ||
64 | 64 | ||
65 | //#include "koprefs.h" | 65 | //#include "koprefs.h" |
66 | 66 | ||
67 | #include "ksyncprefsdialog.h" | 67 | #include "ksyncprefsdialog.h" |
68 | //#include "koglobals.h" | 68 | //#include "koglobals.h" |
69 | 69 | ||
70 | 70 | ||
71 | KSyncPrefsDialog::KSyncPrefsDialog(QWidget *parent, char *name, bool modal) : | 71 | KSyncPrefsDialog::KSyncPrefsDialog(QWidget *parent, char *name, bool modal) : |
72 | KDialog(parent,name,true) | 72 | KDialog(parent,name,true) |
73 | { | 73 | { |
74 | 74 | ||
75 | setCaption( i18n("Synchronization Preferences")); | 75 | setCaption( i18n("Synchronization Preferences")); |
76 | 76 | ||
77 | mSyncProfiles.setAutoDelete( true ); | 77 | mSyncProfiles.setAutoDelete( true ); |
78 | setupSyncAlgTab(); | 78 | setupSyncAlgTab(); |
79 | } | 79 | } |
80 | 80 | ||
81 | 81 | ||
82 | KSyncPrefsDialog::~KSyncPrefsDialog() | 82 | KSyncPrefsDialog::~KSyncPrefsDialog() |
83 | { | 83 | { |
84 | } | 84 | } |
85 | 85 | ||
86 | void KSyncPrefsDialog::setupSyncAlgTab() | 86 | void KSyncPrefsDialog::setupSyncAlgTab() |
87 | { | 87 | { |
88 | QLabel * lab; | 88 | QLabel * lab; |
89 | //QFrame *page = addPage(i18n("Sync Prefs"),0,0); | 89 | //QFrame *page = addPage(i18n("Sync Prefs"),0,0); |
90 | QVBox * mainbox = new QVBox( this ); | 90 | QVBox * mainbox = new QVBox( this ); |
91 | QScrollView* sv = new QScrollView( mainbox ); | 91 | QScrollView* sv = new QScrollView( mainbox ); |
92 | QHBoxLayout * lay = new QHBoxLayout( this ); | 92 | QHBoxLayout * lay = new QHBoxLayout( this ); |
93 | lay->addWidget( mainbox ); | 93 | lay->addWidget( mainbox ); |
94 | QHBox * b_box = new QHBox( mainbox ); | 94 | QHBox * b_box = new QHBox( mainbox ); |
95 | 95 | ||
96 | QPushButton* button = new QPushButton( i18n("Ok"), b_box ); | 96 | QPushButton* button = new QPushButton( i18n("Ok"), b_box ); |
97 | connect ( button, SIGNAL( clicked()), this, SLOT (slotOK() ) ); | 97 | connect ( button, SIGNAL( clicked()), this, SLOT (slotOK() ) ); |
98 | button = new QPushButton( i18n("Cancel"), b_box ); | 98 | button = new QPushButton( i18n("Cancel"), b_box ); |
99 | connect ( button, SIGNAL( clicked()), this, SLOT (reject() ) ); | 99 | connect ( button, SIGNAL( clicked()), this, SLOT (reject() ) ); |
100 | //QBoxLayout * sl = new QVBoxLayout(this ); | 100 | //QBoxLayout * sl = new QVBoxLayout(this ); |
101 | //sl->addWidget ( sv ); | 101 | //sl->addWidget ( sv ); |
102 | sv->setResizePolicy ( QScrollView::AutoOneFit ); | 102 | sv->setResizePolicy ( QScrollView::AutoOneFit ); |
103 | QFrame *topFrame = new QFrame ( sv ); | 103 | QFrame *topFrame = new QFrame ( sv ); |
104 | sv->addChild( topFrame ); | 104 | sv->addChild( topFrame ); |
105 | mSetupSyncAlgTab = topFrame; | 105 | mSetupSyncAlgTab = topFrame; |
106 | QGridLayout *topLayout = new QGridLayout(topFrame,6,2); | 106 | QGridLayout *topLayout = new QGridLayout(topFrame,6,2); |
107 | topLayout->setSpacing(spacingHint()); | 107 | topLayout->setSpacing(spacingHint()); |
108 | topLayout->setMargin(marginHint()); | 108 | topLayout->setMargin(marginHint()); |
109 | 109 | ||
110 | //lab = new QLabel(i18n("Sync settings not yet implemented. DO NOT USE!"), topFrame); | 110 | //lab = new QLabel(i18n("Sync settings not yet implemented. DO NOT USE!"), topFrame); |
111 | int iii = 0; | 111 | int iii = 0; |
112 | //topLayout->addMultiCellWidget(lab , iii,iii,0,1); | 112 | //topLayout->addMultiCellWidget(lab , iii,iii,0,1); |
113 | //++iii; | 113 | //++iii; |
114 | 114 | ||
115 | mMyMachineName = new QLineEdit(topFrame); | 115 | mMyMachineName = new QLineEdit(topFrame); |
116 | lab = new QLabel(mMyMachineName, i18n("Local device name:"), topFrame); | 116 | lab = new QLabel(mMyMachineName, i18n("Local device name:"), topFrame); |
117 | topLayout->addWidget(lab ,iii,0); | 117 | topLayout->addWidget(lab ,iii,0); |
118 | topLayout->addWidget(mMyMachineName,iii,1); | 118 | topLayout->addWidget(mMyMachineName,iii,1); |
119 | ++iii; | 119 | ++iii; |
120 | 120 | ||
121 | QHBox* buttonbox = new QHBox( topFrame); | 121 | QHBox* buttonbox = new QHBox( topFrame); |
122 | topLayout->addMultiCellWidget(buttonbox, iii,iii,0,1); | 122 | topLayout->addMultiCellWidget(buttonbox, iii,iii,0,1); |
123 | ++iii; | 123 | ++iii; |
124 | button = new QPushButton( i18n("New profile"), buttonbox ); | 124 | button = new QPushButton( i18n("New profile"), buttonbox ); |
125 | connect ( button, SIGNAL( clicked()), this, SLOT (newProfile() ) ); | 125 | connect ( button, SIGNAL( clicked()), this, SLOT (newProfile() ) ); |
126 | 126 | ||
127 | button = new QPushButton( i18n("Clone profile"), buttonbox ); | 127 | button = new QPushButton( i18n("Clone profile"), buttonbox ); |
128 | connect ( button, SIGNAL( clicked()), this, SLOT ( cloneProfile() ) ); | 128 | connect ( button, SIGNAL( clicked()), this, SLOT ( cloneProfile() ) ); |
129 | 129 | ||
130 | button = new QPushButton( i18n("Delete profile"), buttonbox ); | 130 | button = new QPushButton( i18n("Delete profile"), buttonbox ); |
131 | connect ( button, SIGNAL( clicked()), this, SLOT (deleteProfile() ) ); | 131 | connect ( button, SIGNAL( clicked()), this, SLOT (deleteProfile() ) ); |
132 | 132 | ||
133 | mProfileBox = new QComboBox(topFrame); | 133 | mProfileBox = new QComboBox(topFrame); |
134 | mProfileBox->setEditable ( true ); | 134 | mProfileBox->setEditable ( true ); |
135 | mProfileBox->setInsertionPolicy(QComboBox::NoInsertion); | 135 | mProfileBox->setInsertionPolicy(QComboBox::NoInsertion); |
136 | connect ( mProfileBox, SIGNAL(activated ( int ) ), this, SLOT (profileChanged( int ) ) ); | 136 | connect ( mProfileBox, SIGNAL(activated ( int ) ), this, SLOT (profileChanged( int ) ) ); |
137 | connect ( mProfileBox, SIGNAL( textChanged ( const QString & ) ), this, SLOT (textChanged( const QString & ) ) ); | 137 | connect ( mProfileBox, SIGNAL( textChanged ( const QString & ) ), this, SLOT (textChanged( const QString & ) ) ); |
138 | 138 | ||
139 | lab = new QLabel(mProfileBox, i18n("Profile:"), topFrame); | 139 | lab = new QLabel(mProfileBox, i18n("Profile:"), topFrame); |
140 | topLayout->addWidget(lab ,iii,0); | 140 | topLayout->addWidget(lab ,iii,0); |
141 | topLayout->addWidget(mProfileBox, iii,1); | 141 | topLayout->addWidget(mProfileBox, iii,1); |
142 | ++iii; | 142 | ++iii; |
143 | 143 | ||
144 | mIncludeInRing = new QCheckBox( i18n("Include in multiple calendar sync"), topFrame ); | 144 | mIncludeInRing = new QCheckBox( i18n("Include in multiple calendar sync"), topFrame ); |
145 | topLayout->addMultiCellWidget(mIncludeInRing, iii,iii,0,1); | 145 | topLayout->addMultiCellWidget(mIncludeInRing, iii,iii,0,1); |
146 | ++iii; | 146 | ++iii; |
147 | mIncludeInRingAB = new QCheckBox( i18n("Include in multiple addressbook sync"), topFrame ); | 147 | mIncludeInRingAB = new QCheckBox( i18n("Include in multiple addressbook sync"), topFrame ); |
148 | topLayout->addMultiCellWidget(mIncludeInRingAB, iii,iii,0,1); | 148 | topLayout->addMultiCellWidget(mIncludeInRingAB, iii,iii,0,1); |
149 | ++iii; | 149 | ++iii; |
150 | mIncludeInRingPWM = new QCheckBox( i18n("Include in multiple pwmanager sync"), topFrame ); | 150 | mIncludeInRingPWM = new QCheckBox( i18n("Include in multiple pwmanager sync"), topFrame ); |
151 | topLayout->addMultiCellWidget(mIncludeInRingPWM, iii,iii,0,1); | 151 | topLayout->addMultiCellWidget(mIncludeInRingPWM, iii,iii,0,1); |
152 | ++iii; | 152 | ++iii; |
153 | 153 | ||
154 | mAskForPreferences = new QCheckBox( i18n("Ask for preferences before sync"), topFrame ); | 154 | mAskForPreferences = new QCheckBox( i18n("Ask for preferences before sync"), topFrame ); |
155 | topLayout->addMultiCellWidget(mAskForPreferences, iii,iii,0,1); | 155 | topLayout->addMultiCellWidget(mAskForPreferences, iii,iii,0,1); |
156 | ++iii; | 156 | ++iii; |
157 | QButtonGroup* gr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Sync preferences"), topFrame); | 157 | QButtonGroup* gr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Sync preferences"), topFrame); |
158 | topLayout->addMultiCellWidget(gr, iii,iii,0,1); | 158 | topLayout->addMultiCellWidget(gr, iii,iii,0,1); |
159 | ++iii; | 159 | ++iii; |
160 | loc = new QRadioButton ( i18n("Take local entry on conflict"), gr ); | 160 | loc = new QRadioButton ( i18n("Take local entry on conflict"), gr ); |
161 | rem = new QRadioButton ( i18n("Take remote entry on conflict"), gr ); | 161 | rem = new QRadioButton ( i18n("Take remote entry on conflict"), gr ); |
162 | newest = new QRadioButton ( i18n("Take newest entry on conflict"), gr ); | 162 | newest = new QRadioButton ( i18n("Take newest entry on conflict"), gr ); |
163 | ask = new QRadioButton ( i18n("Ask for every entry on conflict"), gr ); | 163 | ask = new QRadioButton ( i18n("Ask for every entry on conflict"), gr ); |
164 | f_loc= new QRadioButton ( i18n("Force: Take local entry always"), gr ); | 164 | f_loc= new QRadioButton ( i18n("Force: Take local entry always"), gr ); |
165 | f_rem = new QRadioButton ( i18n("Force: Take remote entry always"), gr ); | 165 | f_rem = new QRadioButton ( i18n("Force: Take remote entry always"), gr ); |
166 | // both = new QRadioButton ( i18n("Take both on conflict"), gr ); | 166 | // both = new QRadioButton ( i18n("Take both on conflict"), gr ); |
167 | 167 | ||
168 | mShowSummaryAfterSync = new QCheckBox( i18n("Show summary after sync"), topFrame ); | 168 | mShowSummaryAfterSync = new QCheckBox( i18n("Show summary after sync"), topFrame ); |
169 | topLayout->addMultiCellWidget(mShowSummaryAfterSync, iii,iii,0,1); | 169 | topLayout->addMultiCellWidget(mShowSummaryAfterSync, iii,iii,0,1); |
170 | ++iii; | 170 | ++iii; |
171 | 171 | ||
172 | mWriteBackFile = new QCheckBox( i18n("Write back synced data"), topFrame ); | 172 | mWriteBackFile = new QCheckBox( i18n("Write back synced data"), topFrame ); |
173 | topLayout->addMultiCellWidget(mWriteBackFile, iii,iii,0,1); | 173 | topLayout->addMultiCellWidget(mWriteBackFile, iii,iii,0,1); |
174 | ++iii; | 174 | ++iii; |
175 | 175 | ||
176 | mWriteBackExisting= new QCheckBox( i18n("-- Write back (on remote) existing entries only"), topFrame ); | 176 | mWriteBackExisting= new QCheckBox( i18n("-- Write back (on remote) existing entries only"), topFrame ); |
177 | topLayout->addMultiCellWidget(mWriteBackExisting, iii,iii,0,1); | 177 | topLayout->addMultiCellWidget(mWriteBackExisting, iii,iii,0,1); |
178 | ++iii; | 178 | ++iii; |
179 | 179 | ||
180 | mWriteBackFuture= new QCheckBox( i18n("-- Write back (calendar) entries in future only"), topFrame ); | 180 | mWriteBackFuture= new QCheckBox( i18n("-- Write back (calendar) entries in future only"), topFrame ); |
181 | topLayout->addMultiCellWidget(mWriteBackFuture, iii,iii,0,1); | 181 | topLayout->addMultiCellWidget(mWriteBackFuture, iii,iii,0,1); |
182 | ++iii; | 182 | ++iii; |
183 | topLayout->addMultiCellWidget(new QLabel( i18n("---- Max. weeks in future: ") , topFrame ), iii,iii,0,0); | 183 | topLayout->addMultiCellWidget(new QLabel( i18n("---- Max. weeks in future: ") , topFrame ), iii,iii,0,0); |
184 | mWriteBackFutureWeeks= new QSpinBox(1,104, 1, topFrame); | 184 | mWriteBackFutureWeeks= new QSpinBox(1,104, 1, topFrame); |
185 | topLayout->addMultiCellWidget(mWriteBackFutureWeeks, iii,iii,1,1); | 185 | topLayout->addMultiCellWidget(mWriteBackFutureWeeks, iii,iii,1,1); |
186 | ++iii; | 186 | ++iii; |
187 | 187 | ||
188 | proGr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Profile kind"), topFrame); | 188 | proGr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Profile kind"), topFrame); |
189 | gr = proGr; | 189 | gr = proGr; |
190 | topLayout->addMultiCellWidget(gr, iii,iii,0,1); | 190 | topLayout->addMultiCellWidget(gr, iii,iii,0,1); |
191 | ++iii; | 191 | ++iii; |
192 | mIsLocal = new QRadioButton ( i18n("Local file"), gr ); | 192 | mIsLocal = new QRadioButton ( i18n("Local file"), gr ); |
193 | mIsPi = new QRadioButton ( i18n("Quick Pi-Sync"), gr ); | 193 | mIsPi = new QRadioButton ( i18n("Pi-Sync ( direct Kx/Pi to Kx/Pi sync )"), gr ); |
194 | connect (mIsPi, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); | 194 | connect (mIsPi, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); |
195 | mIsNotLocal = new QRadioButton ( i18n("Remote file (w down/upload command)"), gr ); | 195 | mIsNotLocal = new QRadioButton ( i18n("Remote file (w down/upload command)"), gr ); |
196 | connect (mIsLocal, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); | 196 | connect (mIsLocal, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); |
197 | mIsPhone = new QRadioButton ( i18n("Mobile device (cell phone)"), gr ); | 197 | mIsPhone = new QRadioButton ( i18n("Mobile device (cell phone)"), gr ); |
198 | connect (mIsPhone, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); | 198 | connect (mIsPhone, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); |
199 | 199 | ||
200 | 200 | ||
201 | phoneWidget = new QVBox( topFrame); | 201 | phoneWidget = new QVBox( topFrame); |
202 | topLayout->addMultiCellWidget(phoneWidget, iii,iii,0,1); | 202 | topLayout->addMultiCellWidget(phoneWidget, iii,iii,0,1); |
203 | ++iii; | 203 | ++iii; |
204 | mWriteContactToSIM= new QCheckBox( i18n("Sync contacts with phone SIM card (If not, sync with phone memory)"), phoneWidget ); | 204 | mWriteContactToSIM= new QCheckBox( i18n("Sync contacts with phone SIM card (If not, sync with phone memory)"), phoneWidget ); |
205 | QHBox* temphb = new QHBox( phoneWidget ); | 205 | QHBox* temphb = new QHBox( phoneWidget ); |
206 | new QLabel( i18n("I/O device: "), temphb ); | 206 | new QLabel( i18n("I/O device: "), temphb ); |
207 | mPhoneDevice = new QLineEdit( temphb); | 207 | mPhoneDevice = new QLineEdit( temphb); |
208 | button = new QPushButton( i18n("Help..."), temphb ); | 208 | button = new QPushButton( i18n("Help..."), temphb ); |
209 | connect ( button, SIGNAL( clicked()), this, SLOT ( helpDevice() ) ); | 209 | connect ( button, SIGNAL( clicked()), this, SLOT ( helpDevice() ) ); |
210 | 210 | ||
211 | 211 | ||
212 | temphb = new QHBox( phoneWidget ); | 212 | temphb = new QHBox( phoneWidget ); |
213 | new QLabel( i18n("Connection: "), temphb ); | 213 | new QLabel( i18n("Connection: "), temphb ); |
214 | mPhoneConnection = new QLineEdit( temphb); | 214 | mPhoneConnection = new QLineEdit( temphb); |
215 | button = new QPushButton( i18n("Help..."), temphb ); | 215 | button = new QPushButton( i18n("Help..."), temphb ); |
216 | connect ( button, SIGNAL( clicked()), this, SLOT ( helpConnection() ) ); | 216 | connect ( button, SIGNAL( clicked()), this, SLOT ( helpConnection() ) ); |
217 | 217 | ||
218 | 218 | ||
219 | temphb = new QHBox( phoneWidget ); | 219 | temphb = new QHBox( phoneWidget ); |
220 | new QLabel( i18n("Model(opt.): "), temphb ); | 220 | new QLabel( i18n("Model(opt.): "), temphb ); |
221 | mPhoneModel = new QLineEdit( temphb); | 221 | mPhoneModel = new QLineEdit( temphb); |
222 | button = new QPushButton( i18n("Help..."), temphb ); | 222 | button = new QPushButton( i18n("Help..."), temphb ); |
223 | connect ( button, SIGNAL( clicked()), this, SLOT ( helpModel() ) ); | 223 | connect ( button, SIGNAL( clicked()), this, SLOT ( helpModel() ) ); |
224 | 224 | ||
225 | // *** local | 225 | // *** local |
226 | localFileWidget = new QVBox( topFrame); | 226 | localFileWidget = new QVBox( topFrame); |
227 | topLayout->addMultiCellWidget(localFileWidget, iii,iii,0,1); | 227 | topLayout->addMultiCellWidget(localFileWidget, iii,iii,0,1); |
228 | ++iii; | 228 | ++iii; |
229 | temphb = new QHBox( localFileWidget ); | 229 | temphb = new QHBox( localFileWidget ); |
230 | 230 | ||
231 | lab = new QLabel( i18n("Local file Cal:"), temphb ); | 231 | lab = new QLabel( i18n("Local file Cal:"), temphb ); |
232 | lab = new QLabel( i18n("Local file ABook:"), temphb ); | 232 | lab = new QLabel( i18n("Local file ABook:"), temphb ); |
233 | lab = new QLabel( i18n("Local file PWMgr:"), temphb ); | 233 | lab = new QLabel( i18n("Local file PWMgr:"), temphb ); |
234 | temphb = new QHBox( localFileWidget ); | 234 | temphb = new QHBox( localFileWidget ); |
235 | button = new QPushButton( i18n("Choose..."), temphb ); | 235 | button = new QPushButton( i18n("Choose..."), temphb ); |
236 | connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFile() ) ); | 236 | connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFile() ) ); |
237 | button = new QPushButton( i18n("Choose..."), temphb ); | 237 | button = new QPushButton( i18n("Choose..."), temphb ); |
238 | connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFileAB() ) ); | 238 | connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFileAB() ) ); |
239 | button = new QPushButton( i18n("Choose..."), temphb ); | 239 | button = new QPushButton( i18n("Choose..."), temphb ); |
240 | connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFilePWM() ) ); | 240 | connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFilePWM() ) ); |
241 | temphb = new QHBox( localFileWidget ); | 241 | temphb = new QHBox( localFileWidget ); |
242 | 242 | ||
243 | mRemoteFile = new QLineEdit( temphb); | 243 | mRemoteFile = new QLineEdit( temphb); |
244 | mRemoteFileAB = new QLineEdit( temphb); | 244 | mRemoteFileAB = new QLineEdit( temphb); |
245 | mRemoteFilePWM = new QLineEdit( temphb); | 245 | mRemoteFilePWM = new QLineEdit( temphb); |
246 | 246 | ||
247 | // *** remote | 247 | // *** remote |
248 | remoteFileWidget = new QVBox( topFrame); | 248 | remoteFileWidget = new QVBox( topFrame); |
249 | topLayout->addMultiCellWidget(remoteFileWidget, iii,iii,0,1); | 249 | topLayout->addMultiCellWidget(remoteFileWidget, iii,iii,0,1); |
250 | ++iii; | 250 | ++iii; |
251 | temphb = new QHBox( remoteFileWidget ); | 251 | temphb = new QHBox( remoteFileWidget ); |
252 | new QLabel( i18n("Calendar:"), temphb); | 252 | new QLabel( i18n("Calendar:"), temphb); |
253 | new QLabel( i18n("AddressBook:"), temphb); | 253 | new QLabel( i18n("AddressBook:"), temphb); |
254 | new QLabel( i18n("PWManager:"), temphb); | 254 | new QLabel( i18n("PWManager:"), temphb); |
255 | 255 | ||
256 | lab = new QLabel( i18n("Pre sync (download) command:"), remoteFileWidget); | 256 | lab = new QLabel( i18n("Pre sync (download) command:"), remoteFileWidget); |
257 | temphb = new QHBox( remoteFileWidget ); | 257 | temphb = new QHBox( remoteFileWidget ); |
258 | mRemotePrecommand = new QLineEdit(temphb); | 258 | mRemotePrecommand = new QLineEdit(temphb); |
259 | mRemotePrecommandAB = new QLineEdit(temphb); | 259 | mRemotePrecommandAB = new QLineEdit(temphb); |
260 | mRemotePrecommandPWM = new QLineEdit(temphb); | 260 | mRemotePrecommandPWM = new QLineEdit(temphb); |
261 | 261 | ||
262 | lab = new QLabel( i18n("Local temp file:"), remoteFileWidget); | 262 | lab = new QLabel( i18n("Local temp file:"), remoteFileWidget); |
263 | temphb = new QHBox( remoteFileWidget ); | 263 | temphb = new QHBox( remoteFileWidget ); |
264 | mLocalTempFile = new QLineEdit(temphb); | 264 | mLocalTempFile = new QLineEdit(temphb); |
265 | mLocalTempFileAB = new QLineEdit(temphb); | 265 | mLocalTempFileAB = new QLineEdit(temphb); |
266 | mLocalTempFilePWM = new QLineEdit(temphb); | 266 | mLocalTempFilePWM = new QLineEdit(temphb); |
267 | 267 | ||
268 | lab = new QLabel( i18n("Post sync (upload) command:"), remoteFileWidget); | 268 | lab = new QLabel( i18n("Post sync (upload) command:"), remoteFileWidget); |
269 | temphb = new QHBox( remoteFileWidget ); | 269 | temphb = new QHBox( remoteFileWidget ); |
270 | mRemotePostcommand = new QLineEdit(temphb ); | 270 | mRemotePostcommand = new QLineEdit(temphb ); |
271 | mRemotePostcommandAB = new QLineEdit(temphb ); | 271 | mRemotePostcommandAB = new QLineEdit(temphb ); |
272 | mRemotePostcommandPWM = new QLineEdit(temphb ); | 272 | mRemotePostcommandPWM = new QLineEdit(temphb ); |
273 | 273 | ||
274 | lab = new QLabel( i18n("Fill in default values for:"), remoteFileWidget); | 274 | lab = new QLabel( i18n("Fill in default values for:"), remoteFileWidget); |
275 | temphb = new QHBox( remoteFileWidget ); | 275 | temphb = new QHBox( remoteFileWidget ); |
276 | button = new QPushButton( i18n("ssh/scp"), temphb ); | 276 | button = new QPushButton( i18n("ssh/scp"), temphb ); |
277 | connect ( button, SIGNAL( clicked()), this, SLOT (fillSSH() ) ); | 277 | connect ( button, SIGNAL( clicked()), this, SLOT (fillSSH() ) ); |
278 | button = new QPushButton( i18n("ftp"), temphb ); | 278 | button = new QPushButton( i18n("ftp"), temphb ); |
279 | connect ( button, SIGNAL( clicked()), this, SLOT (fillFTP() ) ); | 279 | connect ( button, SIGNAL( clicked()), this, SLOT (fillFTP() ) ); |
280 | lab = new QLabel( i18n("Hint: Use $PWD$ for placeholder of password!"), remoteFileWidget); | 280 | lab = new QLabel( i18n("Hint: Use $PWD$ for placeholder of password!"), remoteFileWidget); |
281 | 281 | ||
282 | // *** pi-sync | 282 | // *** pi-sync |
283 | piWidget = new QVBox( topFrame); | 283 | piWidget = new QVBox( topFrame); |
284 | topLayout->addMultiCellWidget(piWidget, iii,iii,0,1); | 284 | topLayout->addMultiCellWidget(piWidget, iii,iii,0,1); |
285 | ++iii; | 285 | ++iii; |
286 | temphb = new QHBox( piWidget ); | 286 | temphb = new QHBox( piWidget ); |
287 | new QLabel( i18n("Calendar:"), temphb); | 287 | new QLabel( i18n("Calendar:"), temphb); |
288 | new QLabel( i18n("AddressBook:"), temphb); | 288 | new QLabel( i18n("AddressBook:"), temphb); |
289 | new QLabel( i18n("PWManager:"), temphb); | 289 | new QLabel( i18n("PWManager:"), temphb); |
290 | 290 | ||
291 | lab = new QLabel( i18n("Password for remote access:"), piWidget); | 291 | lab = new QLabel( i18n("Password for remote access:"), piWidget); |
292 | temphb = new QHBox( piWidget ); | 292 | temphb = new QHBox( piWidget ); |
293 | mRemotePw = new QLineEdit(temphb); | 293 | mRemotePw = new QLineEdit(temphb); |
294 | mRemotePwAB = new QLineEdit(temphb); | 294 | mRemotePwAB = new QLineEdit(temphb); |
295 | mRemotePwPWM = new QLineEdit(temphb); | 295 | mRemotePwPWM = new QLineEdit(temphb); |
296 | 296 | ||
297 | lab = new QLabel( i18n("Remote IP address:"), piWidget); | 297 | lab = new QLabel( i18n("Remote IP address:"), piWidget); |
298 | temphb = new QHBox( piWidget ); | 298 | temphb = new QHBox( piWidget ); |
299 | mRemoteIP = new QLineEdit(temphb); | 299 | mRemoteIP = new QLineEdit(temphb); |
300 | mRemoteIPAB = new QLineEdit(temphb); | 300 | mRemoteIPAB = new QLineEdit(temphb); |
301 | mRemoteIPPWM = new QLineEdit(temphb); | 301 | mRemoteIPPWM = new QLineEdit(temphb); |
302 | 302 | ||
303 | lab = new QLabel( i18n("Remote port number:"), piWidget); | 303 | lab = new QLabel( i18n("Remote port number:"), piWidget); |
304 | temphb = new QHBox( piWidget ); | 304 | temphb = new QHBox( piWidget ); |
305 | mRemotePort = new QLineEdit(temphb); | 305 | mRemotePort = new QLineEdit(temphb); |
306 | mRemotePortAB = new QLineEdit(temphb); | 306 | mRemotePortAB = new QLineEdit(temphb); |
307 | mRemotePortPWM = new QLineEdit(temphb); | 307 | mRemotePortPWM = new QLineEdit(temphb); |
308 | 308 | ||
309 | } | 309 | } |
310 | 310 | ||
311 | 311 | ||
312 | 312 | ||
313 | 313 | ||
314 | 314 | ||
315 | void KSyncPrefsDialog::slotOK() | 315 | void KSyncPrefsDialog::slotOK() |
316 | { | 316 | { |
317 | if ( mMyMachineName->text() == "undefined" ) { | 317 | if ( mMyMachineName->text() == "undefined" ) { |
318 | KMessageBox::error(this,i18n("Local device name undefined!\nPlease define device name!"),i18n("KO/Pi config error")); | 318 | KMessageBox::error(this,i18n("Local device name undefined!\nPlease define device name!"),i18n("KO/Pi config error")); |
319 | return; | 319 | return; |
320 | } | 320 | } |
321 | int i; | 321 | int i; |
322 | for (i = 0; i < mSyncProfileNames.count(); ++ i) { | 322 | for (i = 0; i < mSyncProfileNames.count(); ++ i) { |
323 | if ( mSyncProfileNames.contains( mSyncProfileNames[i]) > 1 ) { | 323 | if ( mSyncProfileNames.contains( mSyncProfileNames[i]) > 1 ) { |
324 | KMessageBox::error(this,i18n("Multiple profiles with same name!\nPlease use unique profile names!"),i18n("KO/Pi config error")); | 324 | KMessageBox::error(this,i18n("Multiple profiles with same name!\nPlease use unique profile names!"),i18n("KO/Pi config error")); |
325 | return; | 325 | return; |
326 | } | 326 | } |
327 | } | 327 | } |
328 | usrWriteConfig(); | 328 | usrWriteConfig(); |
329 | QDialog::accept(); | 329 | QDialog::accept(); |
330 | } | 330 | } |
331 | void KSyncPrefsDialog::accept() | 331 | void KSyncPrefsDialog::accept() |
332 | { | 332 | { |
333 | slotOK(); | 333 | slotOK(); |
334 | } | 334 | } |
335 | void KSyncPrefsDialog::chooseFile() | 335 | void KSyncPrefsDialog::chooseFile() |
336 | { | 336 | { |
337 | QString fn = QDir::homeDirPath(); | 337 | QString fn = QDir::homeDirPath(); |
338 | 338 | ||
339 | fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); | 339 | fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); |
340 | if ( fn == "" ) | 340 | if ( fn == "" ) |
341 | return; | 341 | return; |
342 | mRemoteFile->setText( fn ); | 342 | mRemoteFile->setText( fn ); |
343 | } | 343 | } |
344 | 344 | ||
345 | void KSyncPrefsDialog::chooseFileAB() | 345 | void KSyncPrefsDialog::chooseFileAB() |
346 | { | 346 | { |
347 | QString fn = QDir::homeDirPath(); | 347 | QString fn = QDir::homeDirPath(); |
348 | 348 | ||
349 | fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.vcf)"), this ); | 349 | fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.vcf)"), this ); |
350 | if ( fn == "" ) | 350 | if ( fn == "" ) |
351 | return; | 351 | return; |
352 | mRemoteFileAB->setText( fn ); | 352 | mRemoteFileAB->setText( fn ); |
353 | } | 353 | } |
354 | 354 | ||
355 | void KSyncPrefsDialog::chooseFilePWM() | 355 | void KSyncPrefsDialog::chooseFilePWM() |
356 | { | 356 | { |
357 | QString fn = QDir::homeDirPath(); | 357 | QString fn = QDir::homeDirPath(); |
358 | 358 | ||
359 | fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.pwm)"), this ); | 359 | fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.pwm)"), this ); |
360 | if ( fn == "" ) | 360 | if ( fn == "" ) |
361 | return; | 361 | return; |
362 | mRemoteFilePWM->setText( fn ); | 362 | mRemoteFilePWM->setText( fn ); |
363 | } | 363 | } |
364 | 364 | ||
365 | void KSyncPrefsDialog::textChanged( const QString & s ) | 365 | void KSyncPrefsDialog::textChanged( const QString & s ) |
366 | { | 366 | { |
367 | if ( mProfileBox->count() == 0 ) | 367 | if ( mProfileBox->count() == 0 ) |
368 | return; | 368 | return; |
369 | if ( currentSelection < 3 ) { | 369 | if ( currentSelection < 3 ) { |
370 | //KMessageBox::error(this,i18n("This profil name\ncannot be edited!\n"),i18n("KO/Pi config error")); | 370 | //KMessageBox::error(this,i18n("This profil name\ncannot be edited!\n"),i18n("KO/Pi config error")); |
371 | mProfileBox->blockSignals( true ); | 371 | mProfileBox->blockSignals( true ); |
372 | mProfileBox->setCurrentItem(mProfileBox-> currentItem ()); | 372 | mProfileBox->setCurrentItem(mProfileBox-> currentItem ()); |
373 | mProfileBox->blockSignals( false ); | 373 | mProfileBox->blockSignals( false ); |
374 | return; | 374 | return; |
375 | } | 375 | } |
376 | //qDebug("cur i %d ",mProfileBox-> currentItem () ); | 376 | //qDebug("cur i %d ",mProfileBox-> currentItem () ); |
377 | mProfileBox->changeItem ( s, mProfileBox-> currentItem () ) ; | 377 | mProfileBox->changeItem ( s, mProfileBox-> currentItem () ) ; |
378 | KSyncProfile* prof = mSyncProfiles.at(mProfileBox-> currentItem ()) ; | 378 | KSyncProfile* prof = mSyncProfiles.at(mProfileBox-> currentItem ()) ; |
379 | prof->setName( s ); | 379 | prof->setName( s ); |
380 | mSyncProfileNames[mProfileBox-> currentItem ()] = s; | 380 | mSyncProfileNames[mProfileBox-> currentItem ()] = s; |
381 | } | 381 | } |
382 | void KSyncPrefsDialog::profileChanged( int item ) | 382 | void KSyncPrefsDialog::profileChanged( int item ) |
383 | { | 383 | { |
384 | //qDebug("KSyncPrefsDialog::profileChanged before %d, count %d ", item, mProfileBox->count() ); | 384 | //qDebug("KSyncPrefsDialog::profileChanged before %d, count %d ", item, mProfileBox->count() ); |
385 | KSyncProfile* prof; | 385 | KSyncProfile* prof; |
386 | saveProfile(); | 386 | saveProfile(); |
387 | currentSelection = item; | 387 | currentSelection = item; |
388 | prof = mSyncProfiles.at(item) ; | 388 | prof = mSyncProfiles.at(item) ; |
389 | 389 | ||
390 | mRemotePw->setText(prof->getRemotePw()); | 390 | mRemotePw->setText(prof->getRemotePw()); |
391 | mRemoteIP->setText(prof->getRemoteIP()); | 391 | mRemoteIP->setText(prof->getRemoteIP()); |
392 | mRemotePort->setText(prof->getRemotePort()); | 392 | mRemotePort->setText(prof->getRemotePort()); |
393 | 393 | ||
394 | mRemotePwAB->setText(prof->getRemotePwAB()); | 394 | mRemotePwAB->setText(prof->getRemotePwAB()); |
395 | mRemoteIPAB->setText(prof->getRemoteIPAB()); | 395 | mRemoteIPAB->setText(prof->getRemoteIPAB()); |
396 | mRemotePortAB->setText(prof->getRemotePortAB()); | 396 | mRemotePortAB->setText(prof->getRemotePortAB()); |
397 | 397 | ||
398 | mRemotePwPWM->setText(prof->getRemotePwPWM()); | 398 | mRemotePwPWM->setText(prof->getRemotePwPWM()); |
399 | mRemoteIPPWM->setText(prof->getRemoteIPPWM()); | 399 | mRemoteIPPWM->setText(prof->getRemoteIPPWM()); |
400 | mRemotePortPWM->setText(prof->getRemotePortPWM()); | 400 | mRemotePortPWM->setText(prof->getRemotePortPWM()); |
401 | 401 | ||
402 | mRemotePrecommand->setText(prof->getPreSyncCommand()); | 402 | mRemotePrecommand->setText(prof->getPreSyncCommand()); |
403 | mRemotePostcommand->setText(prof->getPostSyncCommand()); | 403 | mRemotePostcommand->setText(prof->getPostSyncCommand()); |
404 | mLocalTempFile->setText(prof->getLocalTempFile()); | 404 | mLocalTempFile->setText(prof->getLocalTempFile()); |
405 | mRemoteFile->setText(prof->getRemoteFileName()) ; | 405 | mRemoteFile->setText(prof->getRemoteFileName()) ; |
406 | 406 | ||
407 | mRemotePrecommandAB->setText(prof->getPreSyncCommandAB()); | 407 | mRemotePrecommandAB->setText(prof->getPreSyncCommandAB()); |
408 | mRemotePostcommandAB->setText(prof->getPostSyncCommandAB()); | 408 | mRemotePostcommandAB->setText(prof->getPostSyncCommandAB()); |
409 | mLocalTempFileAB->setText(prof->getLocalTempFileAB()); | 409 | mLocalTempFileAB->setText(prof->getLocalTempFileAB()); |
410 | mRemoteFileAB->setText(prof->getRemoteFileNameAB()) ; | 410 | mRemoteFileAB->setText(prof->getRemoteFileNameAB()) ; |
411 | 411 | ||
412 | mRemotePrecommandPWM->setText(prof->getPreSyncCommandPWM()); | 412 | mRemotePrecommandPWM->setText(prof->getPreSyncCommandPWM()); |
413 | mRemotePostcommandPWM->setText(prof->getPostSyncCommandPWM()); | 413 | mRemotePostcommandPWM->setText(prof->getPostSyncCommandPWM()); |
414 | mLocalTempFilePWM->setText(prof->getLocalTempFilePWM()); | 414 | mLocalTempFilePWM->setText(prof->getLocalTempFilePWM()); |
415 | mRemoteFilePWM->setText(prof->getRemoteFileNamePWM()) ; | 415 | mRemoteFilePWM->setText(prof->getRemoteFileNamePWM()) ; |
416 | 416 | ||
417 | mWriteContactToSIM->setChecked( prof->getWriteContactToSIM()); | 417 | mWriteContactToSIM->setChecked( prof->getWriteContactToSIM()); |
418 | mPhoneDevice->setText(prof->getPhoneDevice()); | 418 | mPhoneDevice->setText(prof->getPhoneDevice()); |
419 | mPhoneConnection->setText(prof->getPhoneConnection()); | 419 | mPhoneConnection->setText(prof->getPhoneConnection()); |
420 | mPhoneModel->setText(prof->getPhoneModel()); | 420 | mPhoneModel->setText(prof->getPhoneModel()); |
421 | 421 | ||
422 | mShowSummaryAfterSync->setChecked( prof->getShowSummaryAfterSync()); | 422 | mShowSummaryAfterSync->setChecked( prof->getShowSummaryAfterSync()); |
423 | mAskForPreferences->setChecked( prof->getAskForPreferences()); | 423 | mAskForPreferences->setChecked( prof->getAskForPreferences()); |
424 | mWriteBackExisting->setChecked( prof->getWriteBackExisting() ); | 424 | mWriteBackExisting->setChecked( prof->getWriteBackExisting() ); |
425 | mWriteBackFile->setChecked( prof->getWriteBackFile()); | 425 | mWriteBackFile->setChecked( prof->getWriteBackFile()); |
426 | mIncludeInRing->setChecked( prof->getIncludeInRingSync() ); | 426 | mIncludeInRing->setChecked( prof->getIncludeInRingSync() ); |
427 | mIncludeInRingAB->setChecked( prof->getIncludeInRingSyncAB() ); | 427 | mIncludeInRingAB->setChecked( prof->getIncludeInRingSyncAB() ); |
428 | mIncludeInRingPWM->setChecked( prof->getIncludeInRingSyncPWM() ); | 428 | mIncludeInRingPWM->setChecked( prof->getIncludeInRingSyncPWM() ); |
429 | mWriteBackFuture->setChecked( prof->getWriteBackFuture()); | 429 | mWriteBackFuture->setChecked( prof->getWriteBackFuture()); |
430 | mWriteBackFutureWeeks->setValue( prof->getWriteBackFutureWeeks() ); | 430 | mWriteBackFutureWeeks->setValue( prof->getWriteBackFutureWeeks() ); |
431 | 431 | ||
432 | switch ( prof->getSyncPrefs() ) { | 432 | switch ( prof->getSyncPrefs() ) { |
433 | case 0: | 433 | case 0: |
434 | loc->setChecked( true); | 434 | loc->setChecked( true); |
435 | break; | 435 | break; |
436 | case 1: | 436 | case 1: |
437 | rem->setChecked( true ); | 437 | rem->setChecked( true ); |
438 | break; | 438 | break; |
439 | case 2: | 439 | case 2: |
440 | newest->setChecked( true); | 440 | newest->setChecked( true); |
441 | break; | 441 | break; |
442 | case 3: | 442 | case 3: |
443 | ask->setChecked( true); | 443 | ask->setChecked( true); |
444 | break; | 444 | break; |
445 | case 4: | 445 | case 4: |
446 | f_loc->setChecked( true); | 446 | f_loc->setChecked( true); |
447 | break; | 447 | break; |
448 | case 5: | 448 | case 5: |
449 | f_rem->setChecked( true); | 449 | f_rem->setChecked( true); |
450 | break; | 450 | break; |
451 | case 6: | 451 | case 6: |
452 | //both->setChecked( true); | 452 | //both->setChecked( true); |
453 | break; | 453 | break; |
454 | default: | 454 | default: |
455 | break; | 455 | break; |
456 | } | 456 | } |
457 | mIsLocal->setChecked(prof->getIsLocalFileSync()) ; | 457 | mIsLocal->setChecked(prof->getIsLocalFileSync()) ; |
458 | mIsPhone->setChecked(prof->getIsPhoneSync()) ; | 458 | mIsPhone->setChecked(prof->getIsPhoneSync()) ; |
459 | mIsNotLocal->setChecked(!prof->getIsLocalFileSync() && !prof->getIsPhoneSync() ); | 459 | mIsPi->setChecked(prof->getIsPiSync()) ; |
460 | mIsNotLocal->setChecked(!prof->getIsLocalFileSync() && !prof->getIsPhoneSync() &&!prof->getIsPiSync() ); | ||
460 | proGr->setEnabled( item > 2 ); | 461 | proGr->setEnabled( item > 2 ); |
461 | if ( item < 3 ) { | 462 | if ( item < 3 ) { |
462 | localFileWidget->hide(); | 463 | localFileWidget->hide(); |
463 | remoteFileWidget->hide(); | 464 | remoteFileWidget->hide(); |
464 | phoneWidget->hide(); | 465 | phoneWidget->hide(); |
465 | piWidget->hide(); | 466 | piWidget->hide(); |
466 | 467 | ||
467 | } else | 468 | } else |
468 | kindChanged( prof->getIsLocalFileSync() ); | 469 | kindChanged( prof->getIsLocalFileSync() ); |
469 | } | 470 | } |
470 | 471 | ||
471 | void KSyncPrefsDialog::fillSSH() | 472 | void KSyncPrefsDialog::fillSSH() |
472 | { | 473 | { |
473 | mRemotePrecommand->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" ); | 474 | mRemotePrecommand->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" ); |
474 | mLocalTempFile->setText("/tmp/mycalendar.ics" ); | 475 | mLocalTempFile->setText("/tmp/mycalendar.ics" ); |
475 | mRemotePostcommand->setText("scp /tmp/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics" ); | 476 | mRemotePostcommand->setText("scp /tmp/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics" ); |
476 | mRemotePrecommandAB->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/kabc/std.vcf /tmp/std.vcf" ); | 477 | mRemotePrecommandAB->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/kabc/std.vcf /tmp/std.vcf" ); |
477 | mLocalTempFileAB->setText("/tmp/std.vcf" ); | 478 | mLocalTempFileAB->setText("/tmp/std.vcf" ); |
478 | mRemotePostcommandAB->setText("scp /tmp/std.vcf zaurus@192.168.0.65:/home/zaurus/kdepim/apps/kabc/std.vcf" ); | 479 | mRemotePostcommandAB->setText("scp /tmp/std.vcf zaurus@192.168.0.65:/home/zaurus/kdepim/apps/kabc/std.vcf" ); |
479 | mRemotePrecommandPWM->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/pwmanager/passwords.pwm /tmp/passwords.pwm" ); | 480 | mRemotePrecommandPWM->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/pwmanager/passwords.pwm /tmp/passwords.pwm" ); |
480 | mLocalTempFilePWM->setText("/tmp/passwords.pwm" ); | 481 | mLocalTempFilePWM->setText("/tmp/passwords.pwm" ); |
481 | mRemotePostcommandPWM->setText("scp /tmp/passwords.pwm zaurus@192.168.0.65:/home/zaurus/kdepim/apps/pwmanager/pwmanager.pwm" ); | 482 | mRemotePostcommandPWM->setText("scp /tmp/passwords.pwm zaurus@192.168.0.65:/home/zaurus/kdepim/apps/pwmanager/pwmanager.pwm" ); |
482 | } | 483 | } |
483 | void KSyncPrefsDialog::fillFTP() | 484 | void KSyncPrefsDialog::fillFTP() |
484 | { | 485 | { |
485 | mRemotePrecommand->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics" ); | 486 | mRemotePrecommand->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics" ); |
486 | mLocalTempFile->setText("/tmp/mycalendar.ics" ); | 487 | mLocalTempFile->setText("/tmp/mycalendar.ics" ); |
487 | mRemotePostcommand->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" ); | 488 | mRemotePostcommand->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" ); |
488 | mRemotePrecommandAB->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/kabc/std.vcf" ); | 489 | mRemotePrecommandAB->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/kabc/std.vcf" ); |
489 | mLocalTempFileAB->setText("/tmp/std.vcf" ); | 490 | mLocalTempFileAB->setText("/tmp/std.vcf" ); |
490 | mRemotePostcommandAB->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/kabc/std.vcf /tmp/std.vcf" ); | 491 | mRemotePostcommandAB->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/kabc/std.vcf /tmp/std.vcf" ); |
491 | 492 | ||
492 | mRemotePrecommandPWM->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/pwmanager/passwords.pwm" ); | 493 | mRemotePrecommandPWM->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/pwmanager/passwords.pwm" ); |
493 | mLocalTempFilePWM->setText("/tmp/passwords.pwm" ); | 494 | mLocalTempFilePWM->setText("/tmp/passwords.pwm" ); |
494 | mRemotePostcommandPWM->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/pwmanager/passwords.pwm /tmp/passwords.pwm" ); | 495 | mRemotePostcommandPWM->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/pwmanager/passwords.pwm /tmp/passwords.pwm" ); |
495 | 496 | ||
496 | } | 497 | } |
497 | void KSyncPrefsDialog::kindChanged( bool b ) | 498 | void KSyncPrefsDialog::kindChanged( bool b ) |
498 | { | 499 | { |
499 | 500 | ||
500 | if ( mIsLocal->isChecked () ) | 501 | if ( mIsLocal->isChecked () ) |
501 | localFileWidget->show(); | 502 | localFileWidget->show(); |
502 | else | 503 | else |
503 | localFileWidget->hide(); | 504 | localFileWidget->hide(); |
504 | 505 | ||
505 | if ( mIsNotLocal->isChecked () ) | 506 | if ( mIsNotLocal->isChecked () ) |
506 | remoteFileWidget->show(); | 507 | remoteFileWidget->show(); |
507 | else | 508 | else |
508 | remoteFileWidget->hide(); | 509 | remoteFileWidget->hide(); |
509 | 510 | ||
510 | if ( mIsPhone->isChecked () ) { | 511 | if ( mIsPhone->isChecked () ) { |
511 | phoneWidget->show(); | 512 | phoneWidget->show(); |
512 | } | 513 | } |
513 | else { | 514 | else { |
514 | phoneWidget->hide(); | 515 | phoneWidget->hide(); |
515 | } | 516 | } |
516 | if ( mIsPi->isChecked () ) { | 517 | if ( mIsPi->isChecked () ) { |
517 | piWidget->show(); | 518 | piWidget->show(); |
518 | } | 519 | } |
519 | else { | 520 | else { |
520 | piWidget->hide(); | 521 | piWidget->hide(); |
521 | } | 522 | } |
522 | 523 | ||
523 | } | 524 | } |
524 | void KSyncPrefsDialog::deleteProfile() | 525 | void KSyncPrefsDialog::deleteProfile() |
525 | { | 526 | { |
526 | //qDebug("KSyncPrefsDialog::deleteProfile() "); | 527 | //qDebug("KSyncPrefsDialog::deleteProfile() "); |
527 | if ( currentSelection >= 0 ) { | 528 | if ( currentSelection >= 0 ) { |
528 | if ( currentSelection < 3 ) { | 529 | if ( currentSelection < 3 ) { |
529 | KMessageBox::error(this,i18n("This profil cannot be deleted!\n"),i18n("KO/Pi config error")); | 530 | KMessageBox::error(this,i18n("This profil cannot be deleted!\n"),i18n("KO/Pi config error")); |
530 | return; | 531 | return; |
531 | } | 532 | } |
532 | KSyncProfile* temp = mSyncProfiles.at(currentSelection); | 533 | KSyncProfile* temp = mSyncProfiles.at(currentSelection); |
533 | mSyncProfiles.remove( temp ); | 534 | mSyncProfiles.remove( temp ); |
534 | mSyncProfileNames.remove( mSyncProfileNames.at( currentSelection )); | 535 | mSyncProfileNames.remove( mSyncProfileNames.at( currentSelection )); |
535 | insertProfiles(); | 536 | insertProfiles(); |
536 | } | 537 | } |
537 | } | 538 | } |
538 | 539 | ||
539 | void KSyncPrefsDialog::saveProfile() | 540 | void KSyncPrefsDialog::saveProfile() |
540 | { | 541 | { |
541 | KSyncProfile* prof; | 542 | KSyncProfile* prof; |
542 | if ( currentSelection >= 0 ) { | 543 | if ( currentSelection >= 0 ) { |
543 | prof = mSyncProfiles.at(currentSelection) ; | 544 | prof = mSyncProfiles.at(currentSelection) ; |
544 | 545 | ||
545 | prof->setRemotePw( mRemotePw->text()); | 546 | prof->setRemotePw( mRemotePw->text()); |
546 | prof->setRemoteIP( mRemoteIP->text()); | 547 | prof->setRemoteIP( mRemoteIP->text()); |
547 | prof->setRemotePort( mRemotePort->text()); | 548 | prof->setRemotePort( mRemotePort->text()); |
548 | 549 | ||
549 | prof->setRemotePwAB( mRemotePwAB->text()); | 550 | prof->setRemotePwAB( mRemotePwAB->text()); |
550 | prof->setRemoteIPAB( mRemoteIPAB->text()); | 551 | prof->setRemoteIPAB( mRemoteIPAB->text()); |
551 | prof->setRemotePortAB( mRemotePortAB->text()); | 552 | prof->setRemotePortAB( mRemotePortAB->text()); |
552 | 553 | ||
553 | prof->setRemotePwPWM( mRemotePwPWM->text()); | 554 | prof->setRemotePwPWM( mRemotePwPWM->text()); |
554 | prof->setRemoteIPPWM( mRemoteIPPWM->text()); | 555 | prof->setRemoteIPPWM( mRemoteIPPWM->text()); |
555 | prof->setRemotePortPWM( mRemotePortPWM->text()); | 556 | prof->setRemotePortPWM( mRemotePortPWM->text()); |
556 | 557 | ||
557 | prof->setPreSyncCommand( mRemotePrecommand->text()); | 558 | prof->setPreSyncCommand( mRemotePrecommand->text()); |
558 | prof->setPostSyncCommand( mRemotePostcommand->text() ); | 559 | prof->setPostSyncCommand( mRemotePostcommand->text() ); |
559 | prof->setLocalTempFile( mLocalTempFile->text()); | 560 | prof->setLocalTempFile( mLocalTempFile->text()); |
560 | prof->setRemoteFileName( mRemoteFile->text() ); | 561 | prof->setRemoteFileName( mRemoteFile->text() ); |
561 | prof->setPreSyncCommandAB( mRemotePrecommandAB->text()); | 562 | prof->setPreSyncCommandAB( mRemotePrecommandAB->text()); |
562 | prof->setPostSyncCommandAB( mRemotePostcommandAB->text() ); | 563 | prof->setPostSyncCommandAB( mRemotePostcommandAB->text() ); |
563 | prof->setLocalTempFileAB( mLocalTempFileAB->text()); | 564 | prof->setLocalTempFileAB( mLocalTempFileAB->text()); |
564 | prof->setRemoteFileNameAB( mRemoteFileAB->text() ); | 565 | prof->setRemoteFileNameAB( mRemoteFileAB->text() ); |
565 | prof->setPreSyncCommandPWM( mRemotePrecommandPWM->text()); | 566 | prof->setPreSyncCommandPWM( mRemotePrecommandPWM->text()); |
566 | prof->setPostSyncCommandPWM( mRemotePostcommandPWM->text() ); | 567 | prof->setPostSyncCommandPWM( mRemotePostcommandPWM->text() ); |
567 | prof->setLocalTempFilePWM( mLocalTempFilePWM->text()); | 568 | prof->setLocalTempFilePWM( mLocalTempFilePWM->text()); |
568 | prof->setRemoteFileNamePWM( mRemoteFilePWM->text() ); | 569 | prof->setRemoteFileNamePWM( mRemoteFilePWM->text() ); |
569 | prof->setShowSummaryAfterSync( mShowSummaryAfterSync->isChecked() ); | 570 | prof->setShowSummaryAfterSync( mShowSummaryAfterSync->isChecked() ); |
570 | prof->setAskForPreferences( mAskForPreferences->isChecked()); | 571 | prof->setAskForPreferences( mAskForPreferences->isChecked()); |
571 | prof->setWriteBackExisting(mWriteBackExisting->isChecked() ); | 572 | prof->setWriteBackExisting(mWriteBackExisting->isChecked() ); |
572 | prof->setWriteBackFile( mWriteBackFile->isChecked()); | 573 | prof->setWriteBackFile( mWriteBackFile->isChecked()); |
573 | prof->setIncludeInRingSync( mIncludeInRing->isChecked() ); | 574 | prof->setIncludeInRingSync( mIncludeInRing->isChecked() ); |
574 | prof->setIncludeInRingSyncAB( mIncludeInRingAB->isChecked() ); | 575 | prof->setIncludeInRingSyncAB( mIncludeInRingAB->isChecked() ); |
575 | prof->setIncludeInRingSyncPWM( mIncludeInRingPWM->isChecked() ); | 576 | prof->setIncludeInRingSyncPWM( mIncludeInRingPWM->isChecked() ); |
576 | int syncprefs = rem->isChecked()*1+newest->isChecked()*2+ ask->isChecked()*3+ f_loc->isChecked()*4+ f_rem->isChecked()*5 ;//+ both->isChecked()*6 ; | 577 | int syncprefs = rem->isChecked()*1+newest->isChecked()*2+ ask->isChecked()*3+ f_loc->isChecked()*4+ f_rem->isChecked()*5 ;//+ both->isChecked()*6 ; |
577 | prof->setSyncPrefs( syncprefs); | 578 | prof->setSyncPrefs( syncprefs); |
578 | prof->setIsLocalFileSync( mIsLocal->isChecked() ); | 579 | prof->setIsLocalFileSync( mIsLocal->isChecked() ); |
579 | prof->setIsPhoneSync( mIsPhone->isChecked() ); | 580 | prof->setIsPhoneSync( mIsPhone->isChecked() ); |
581 | prof->setIsPiSync( mIsPi->isChecked() ); | ||
580 | prof->setWriteBackFuture(mWriteBackFuture->isChecked()); | 582 | prof->setWriteBackFuture(mWriteBackFuture->isChecked()); |
581 | prof->setWriteBackFutureWeeks(mWriteBackFutureWeeks->value()); | 583 | prof->setWriteBackFutureWeeks(mWriteBackFutureWeeks->value()); |
582 | 584 | ||
583 | prof->setWriteContactToSIM(mWriteContactToSIM->isChecked()); | 585 | prof->setWriteContactToSIM(mWriteContactToSIM->isChecked()); |
584 | prof->setPhoneDevice( mPhoneDevice->text() ); | 586 | prof->setPhoneDevice( mPhoneDevice->text() ); |
585 | prof->setPhoneConnection( mPhoneConnection->text() ); | 587 | prof->setPhoneConnection( mPhoneConnection->text() ); |
586 | prof->setPhoneModel( mPhoneModel->text() ); | 588 | prof->setPhoneModel( mPhoneModel->text() ); |
587 | 589 | ||
588 | } | 590 | } |
589 | 591 | ||
590 | } | 592 | } |
591 | 593 | ||
592 | void KSyncPrefsDialog::insertProfiles() | 594 | void KSyncPrefsDialog::insertProfiles() |
593 | { | 595 | { |
594 | int curItem = mProfileBox->currentItem(); | 596 | int curItem = mProfileBox->currentItem(); |
595 | mProfileBox->blockSignals( true ); | 597 | mProfileBox->blockSignals( true ); |
596 | mProfileBox->clear(); | 598 | mProfileBox->clear(); |
597 | mProfileBox->insertStringList (mSyncProfileNames ); | 599 | mProfileBox->insertStringList (mSyncProfileNames ); |
598 | int item = mSyncProfileNames.count() -1; | 600 | int item = mSyncProfileNames.count() -1; |
599 | if ( curItem >= 0 && mSyncProfileNames.count() > 0 && curItem < mSyncProfileNames.count() ) | 601 | if ( curItem >= 0 && mSyncProfileNames.count() > 0 && curItem < mSyncProfileNames.count() ) |
600 | mProfileBox->setCurrentItem( curItem ); | 602 | mProfileBox->setCurrentItem( curItem ); |
601 | else if ( item >= 0 ) { | 603 | else if ( item >= 0 ) { |
602 | mProfileBox->setCurrentItem( item ); | 604 | mProfileBox->setCurrentItem( item ); |
603 | } | 605 | } |
604 | currentSelection = -1; | 606 | currentSelection = -1; |
605 | if ( mSyncProfileNames.count() > 0 ) { | 607 | if ( mSyncProfileNames.count() > 0 ) { |
606 | //qDebug(" profileChanged( mProfileBox->currentItem() "); | 608 | //qDebug(" profileChanged( mProfileBox->currentItem() "); |
607 | profileChanged( mProfileBox->currentItem() ); | 609 | profileChanged( mProfileBox->currentItem() ); |
608 | currentSelection = mProfileBox->currentItem(); | 610 | currentSelection = mProfileBox->currentItem(); |
609 | } | 611 | } |
610 | mProfileBox->blockSignals( false ); | 612 | mProfileBox->blockSignals( false ); |
611 | } | 613 | } |
612 | 614 | ||
613 | void KSyncPrefsDialog::addProfile ( KSyncProfile* temp ) | 615 | void KSyncPrefsDialog::addProfile ( KSyncProfile* temp ) |
614 | { | 616 | { |
615 | saveProfile(); | 617 | saveProfile(); |
616 | mSyncProfiles.append( temp ); | 618 | mSyncProfiles.append( temp ); |
617 | mSyncProfileNames << temp->getName(); | 619 | mSyncProfileNames << temp->getName(); |
618 | insertProfiles(); | 620 | insertProfiles(); |
619 | int last = mProfileBox->count() -1; | 621 | int last = mProfileBox->count() -1; |
620 | mProfileBox->blockSignals( true ); | 622 | mProfileBox->blockSignals( true ); |
621 | mProfileBox->setCurrentItem( last ); | 623 | mProfileBox->setCurrentItem( last ); |
622 | mProfileBox->blockSignals( false ); | 624 | mProfileBox->blockSignals( false ); |
623 | profileChanged(last); | 625 | profileChanged(last); |
624 | } | 626 | } |
625 | void KSyncPrefsDialog::newProfile() | 627 | void KSyncPrefsDialog::newProfile() |
626 | { | 628 | { |
627 | addProfile ( new KSyncProfile () ); | 629 | addProfile ( new KSyncProfile () ); |
628 | } | 630 | } |
629 | 631 | ||
630 | void KSyncPrefsDialog::cloneProfile() | 632 | void KSyncPrefsDialog::cloneProfile() |
631 | { | 633 | { |
632 | if ( currentSelection >= 0 ) | 634 | if ( currentSelection >= 0 ) |
633 | addProfile (mSyncProfiles.at(currentSelection)->clone()) ; | 635 | addProfile (mSyncProfiles.at(currentSelection)->clone()) ; |
634 | else | 636 | else |
635 | newProfile(); | 637 | newProfile(); |
636 | } | 638 | } |
637 | 639 | ||
638 | void KSyncPrefsDialog::setLocalMachineName ( const QString& name ) | 640 | void KSyncPrefsDialog::setLocalMachineName ( const QString& name ) |
639 | { | 641 | { |
640 | mMyMachineName->setText( name ); | 642 | mMyMachineName->setText( name ); |
641 | 643 | ||
642 | } | 644 | } |
643 | QString KSyncPrefsDialog::getLocalMachineName ( ) | 645 | QString KSyncPrefsDialog::getLocalMachineName ( ) |
644 | { | 646 | { |
645 | return mMyMachineName->text(); | 647 | return mMyMachineName->text(); |
646 | } | 648 | } |
647 | 649 | ||
648 | QStringList KSyncPrefsDialog::getSyncProfileNames() | 650 | QStringList KSyncPrefsDialog::getSyncProfileNames() |
649 | { | 651 | { |
650 | return mSyncProfileNames; | 652 | return mSyncProfileNames; |
651 | } | 653 | } |
652 | void KSyncPrefsDialog::usrReadConfig() | 654 | void KSyncPrefsDialog::usrReadConfig() |
653 | { | 655 | { |
654 | //KConfig *config = KOGlobals::config(); | 656 | //KConfig *config = KOGlobals::config(); |
655 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); | 657 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); |
656 | config.setGroup("General"); | 658 | config.setGroup("General"); |
657 | mSyncProfileNames =config.readListEntry("SyncProfileNames"); | 659 | mSyncProfileNames =config.readListEntry("SyncProfileNames"); |
658 | mMyMachineName->setText(config.readEntry("LocalMachineName","undefined")); | 660 | mMyMachineName->setText(config.readEntry("LocalMachineName","undefined")); |
659 | int i; | 661 | int i; |
660 | KSyncProfile* temp ; | 662 | KSyncProfile* temp ; |
661 | mSyncProfiles.clear(); | 663 | mSyncProfiles.clear(); |
662 | for ( i = 0; i < mSyncProfileNames.count();++i ) { | 664 | for ( i = 0; i < mSyncProfileNames.count();++i ) { |
663 | temp = new KSyncProfile (); | 665 | temp = new KSyncProfile (); |
664 | temp->setName( mSyncProfileNames[i] ); | 666 | temp->setName( mSyncProfileNames[i] ); |
665 | temp->readConfig( &config ); | 667 | temp->readConfig( &config ); |
666 | mSyncProfiles.append( temp ); | 668 | mSyncProfiles.append( temp ); |
667 | } | 669 | } |
668 | insertProfiles(); | 670 | insertProfiles(); |
669 | //mMyMachineName->setText(KOPrefs::instance()->mLocalMachineName ); | 671 | //mMyMachineName->setText(KOPrefs::instance()->mLocalMachineName ); |
670 | } | 672 | } |
671 | 673 | ||
672 | 674 | ||
673 | void KSyncPrefsDialog::usrWriteConfig() | 675 | void KSyncPrefsDialog::usrWriteConfig() |
674 | { | 676 | { |
675 | saveProfile(); | 677 | saveProfile(); |
676 | if ( currentSelection >= 0 ) | 678 | if ( currentSelection >= 0 ) |
677 | profileChanged(currentSelection); | 679 | profileChanged(currentSelection); |
678 | //KConfig *config = KOGlobals::config(); | 680 | //KConfig *config = KOGlobals::config(); |
679 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); | 681 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); |
680 | KSyncProfile* prof = mSyncProfiles.first(); | 682 | KSyncProfile* prof = mSyncProfiles.first(); |
681 | QStringList externalSyncProfileNames; | 683 | QStringList externalSyncProfileNames; |
682 | externalSyncProfileNames.append("Sharp_DTM");; | 684 | externalSyncProfileNames.append("Sharp_DTM");; |
683 | while ( prof ) { | 685 | while ( prof ) { |
684 | prof->writeConfig(&config); | 686 | prof->writeConfig(&config); |
685 | if ( prof->getIsPhoneSync( ) ) | 687 | if ( prof->getIsPhoneSync( ) ) |
686 | externalSyncProfileNames.append(prof->getName( ) ); | 688 | externalSyncProfileNames.append(prof->getName( ) ); |
687 | prof = mSyncProfiles.next(); | 689 | prof = mSyncProfiles.next(); |
688 | } | 690 | } |
689 | //KOPrefs::instance()->mSyncProfileNames = mSyncProfileNames; | 691 | //KOPrefs::instance()->mSyncProfileNames = mSyncProfileNames; |
690 | //KOPrefs::instance()->mLocalMachineName = mMyMachineName->text(); | 692 | //KOPrefs::instance()->mLocalMachineName = mMyMachineName->text(); |
691 | config.setGroup("General"); | 693 | config.setGroup("General"); |
692 | config.writeEntry("SyncProfileNames",mSyncProfileNames); | 694 | config.writeEntry("SyncProfileNames",mSyncProfileNames); |
693 | config.writeEntry("ExternSyncProfiles",externalSyncProfileNames); | 695 | config.writeEntry("ExternSyncProfiles",externalSyncProfileNames); |
694 | config.writeEntry("LocalMachineName",mMyMachineName->text()); | 696 | config.writeEntry("LocalMachineName",mMyMachineName->text()); |
695 | config.sync(); | 697 | config.sync(); |
696 | } | 698 | } |
697 | 699 | ||
698 | void KSyncPrefsDialog::helpDevice() | 700 | void KSyncPrefsDialog::helpDevice() |
699 | { | 701 | { |
700 | QString hint = i18n("Insert device where\nphone is connected. E.g.:\n"); | 702 | QString hint = i18n("Insert device where\nphone is connected. E.g.:\n"); |
701 | #ifdef _WIN32_ | 703 | #ifdef _WIN32_ |
702 | hint += "Leave empty for Irda.\n" | 704 | hint += "Leave empty for Irda.\n" |
703 | "com1:\n(first serial port)\n" | 705 | "com1:\n(first serial port)\n" |
704 | "usb not supported\n" | 706 | "usb not supported\n" |
705 | "???\n(bluetooth device address)\n"; | 707 | "???\n(bluetooth device address)\n"; |
706 | 708 | ||
707 | #else | 709 | #else |
708 | hint += "/dev/ircomm\n(Irda)\n" | 710 | hint += "/dev/ircomm\n(Irda)\n" |
709 | "/dev/ttyS0\n(first serial port)\n" | 711 | "/dev/ttyS0\n(first serial port)\n" |
710 | "/dev/ttyUSB0\n(first device usb port)\n" | 712 | "/dev/ttyUSB0\n(first device usb port)\n" |
711 | "???\n(bluetooth device address)\n"; | 713 | "???\n(bluetooth device address)\n"; |
712 | #endif | 714 | #endif |
713 | KMessageBox::information(this,hint,i18n("KDE-Pim sync config")); | 715 | KMessageBox::information(this,hint,i18n("KDE-Pim sync config")); |
714 | } | 716 | } |
715 | void KSyncPrefsDialog::helpModel() | 717 | void KSyncPrefsDialog::helpModel() |
716 | { | 718 | { |
717 | QString hint = i18n("Leave empty or\ninsert name of phone model:\n"); | 719 | QString hint = i18n("Leave empty or\ninsert name of phone model:\n"); |
718 | hint += "E.g. for Nokia 6310i:\n6310i\nAlso possible:\nobex\nfor Obex connection"; | 720 | hint += "E.g. for Nokia 6310i:\n6310i\nAlso possible:\nobex\nfor Obex connection"; |
719 | KMessageBox::information(this,hint,i18n("KDE-Pim sync config")); | 721 | KMessageBox::information(this,hint,i18n("KDE-Pim sync config")); |
720 | 722 | ||
721 | } | 723 | } |
722 | void KSyncPrefsDialog::helpConnection() | 724 | void KSyncPrefsDialog::helpConnection() |
723 | { | 725 | { |
724 | QString hint = i18n("Insert kind of connection,e.g.:\n"); | 726 | QString hint = i18n("Insert kind of connection,e.g.:\n"); |
725 | hint += "irda | Nokia FBUS over infrared\n" | 727 | hint += "irda | Nokia FBUS over infrared\n" |
726 | "irdaat | AT commands infrared\n(for Siemens/Sony-Erricsson)\n" | 728 | "irdaat | AT commands infrared\n(for Siemens/Sony-Erricsson)\n" |
727 | "irdaobex | set also model as obex\n" | 729 | "irdaobex | set also model as obex\n" |
728 | "fbus | Nokia FBUS2 serial\n"; | 730 | "fbus | Nokia FBUS2 serial\n"; |
729 | KMessageBox::information(this,hint,i18n("KDE-Pim sync config")); | 731 | KMessageBox::information(this,hint,i18n("KDE-Pim sync config")); |
730 | } | 732 | } |