summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-09-12 00:04:54 (UTC)
committer zautrix <zautrix>2004-09-12 00:04:54 (UTC)
commitd03369e14779dcbedb1e6a8882859664f818f588 (patch) (unidiff)
treedbd76c26ae1b134ebb3497b6b4bdb695ec867be2
parent0a2900e71fd3d80393d67c81aab3aae19d2d680c (diff)
downloadkdepimpi-d03369e14779dcbedb1e6a8882859664f818f588.zip
kdepimpi-d03369e14779dcbedb1e6a8882859664f818f588.tar.gz
kdepimpi-d03369e14779dcbedb1e6a8882859664f818f588.tar.bz2
Fixed seqfault after sync config
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/mainwindow.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 9e326a1..d8aa43a 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -726,394 +726,400 @@ void MainWindow::initActions()
726 connect( action, SIGNAL( activated() ), 726 connect( action, SIGNAL( activated() ),
727 SLOT( about() ) ); 727 SLOT( about() ) );
728 action = new QAction( "licence", i18n("Licence..."), 0, this ); 728 action = new QAction( "licence", i18n("Licence..."), 0, this );
729 action->addTo( helpMenu ); 729 action->addTo( helpMenu );
730 connect( action, SIGNAL( activated() ), 730 connect( action, SIGNAL( activated() ),
731 SLOT( licence() ) ); 731 SLOT( licence() ) );
732 //menuBar->insertSeparator(); 732 //menuBar->insertSeparator();
733 733
734 // ****************************************************** 734 // ******************************************************
735 // menubar icons 735 // menubar icons
736 736
737 737
738 iconToolBar->setHorizontalStretchable (true ); 738 iconToolBar->setHorizontalStretchable (true );
739 //menuBar->insertItem( iconToolBar ); 739 //menuBar->insertItem( iconToolBar );
740 //xdays_action 740 //xdays_action
741 if (p-> mShowIconNewEvent) 741 if (p-> mShowIconNewEvent)
742 ne_action->addTo( iconToolBar ); 742 ne_action->addTo( iconToolBar );
743 if (p->mShowIconNewTodo ) 743 if (p->mShowIconNewTodo )
744 nt_action->addTo( iconToolBar ); 744 nt_action->addTo( iconToolBar );
745 if (p-> mShowIconSearch) 745 if (p-> mShowIconSearch)
746 search_action->addTo( iconToolBar ); 746 search_action->addTo( iconToolBar );
747 if (p-> mShowIconNext) 747 if (p-> mShowIconNext)
748 whatsnext_action->addTo( iconToolBar ); 748 whatsnext_action->addTo( iconToolBar );
749 if (p-> mShowIconNextDays) 749 if (p-> mShowIconNextDays)
750 xdays_action->addTo( iconToolBar ); 750 xdays_action->addTo( iconToolBar );
751 if (p-> mShowIconList) 751 if (p-> mShowIconList)
752 showlist_action->addTo( iconToolBar ); 752 showlist_action->addTo( iconToolBar );
753 if (p-> mShowIconDay1) 753 if (p-> mShowIconDay1)
754 day1_action->addTo( iconToolBar ); 754 day1_action->addTo( iconToolBar );
755 if (p-> mShowIconDay5) 755 if (p-> mShowIconDay5)
756 day5_action->addTo( iconToolBar ); 756 day5_action->addTo( iconToolBar );
757 if (p-> mShowIconDay7) 757 if (p-> mShowIconDay7)
758 day7_action->addTo( iconToolBar ); 758 day7_action->addTo( iconToolBar );
759 if (p-> mShowIconMonth) 759 if (p-> mShowIconMonth)
760 month_action->addTo( iconToolBar ); 760 month_action->addTo( iconToolBar );
761 if (p-> mShowIconTodoview) 761 if (p-> mShowIconTodoview)
762 todoview_action->addTo( iconToolBar ); 762 todoview_action->addTo( iconToolBar );
763 if (p-> mShowIconJournal) 763 if (p-> mShowIconJournal)
764 viewjournal_action->addTo( iconToolBar ); 764 viewjournal_action->addTo( iconToolBar );
765 icon = loadPixmap( pathString + "2leftarrowB" ); 765 icon = loadPixmap( pathString + "2leftarrowB" );
766 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14); 766 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14);
767 if (p-> mShowIconBackFast) { 767 if (p-> mShowIconBackFast) {
768 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this ); 768 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this );
769 connect( action, SIGNAL( activated() ), 769 connect( action, SIGNAL( activated() ),
770 mView, SLOT( goPreviousMonth() ) ); 770 mView, SLOT( goPreviousMonth() ) );
771 action->addTo( iconToolBar ); 771 action->addTo( iconToolBar );
772 } 772 }
773 icon = loadPixmap( pathString + "1leftarrowB" ); 773 icon = loadPixmap( pathString + "1leftarrowB" );
774 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15); 774 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15);
775 if (p-> mShowIconBack) { 775 if (p-> mShowIconBack) {
776 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this ); 776 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this );
777 connect( action, SIGNAL( activated() ), 777 connect( action, SIGNAL( activated() ),
778 mView, SLOT( goPrevious() ) ); 778 mView, SLOT( goPrevious() ) );
779 action->addTo( iconToolBar ); 779 action->addTo( iconToolBar );
780 } 780 }
781 if (p-> mShowIconToday) 781 if (p-> mShowIconToday)
782 today_action->addTo( iconToolBar ); 782 today_action->addTo( iconToolBar );
783 icon = loadPixmap( pathString + "1rightarrowB" ); 783 icon = loadPixmap( pathString + "1rightarrowB" );
784 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220); 784 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220);
785 if (p-> mShowIconForward) { 785 if (p-> mShowIconForward) {
786 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this ); 786 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this );
787 connect( action, SIGNAL( activated() ), 787 connect( action, SIGNAL( activated() ),
788 mView, SLOT( goNext() ) ); 788 mView, SLOT( goNext() ) );
789 action->addTo( iconToolBar ); 789 action->addTo( iconToolBar );
790 } 790 }
791 icon = loadPixmap( pathString + "2rightarrowB" ); 791 icon = loadPixmap( pathString + "2rightarrowB" );
792 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230); 792 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230);
793 if (p-> mShowIconForwardFast) { 793 if (p-> mShowIconForwardFast) {
794 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this ); 794 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this );
795 connect( action, SIGNAL( activated() ), 795 connect( action, SIGNAL( activated() ),
796 mView, SLOT( goNextMonth() ) ); 796 mView, SLOT( goNextMonth() ) );
797 action->addTo( iconToolBar ); 797 action->addTo( iconToolBar );
798 } 798 }
799 799
800 800
801 configureToolBarMenu->insertItem(i18n("What's This?"), 300); 801 configureToolBarMenu->insertItem(i18n("What's This?"), 300);
802 802
803 if (p-> mShowIconNewEvent) 803 if (p-> mShowIconNewEvent)
804 configureToolBarMenu->setItemChecked( 10, true ); 804 configureToolBarMenu->setItemChecked( 10, true );
805 if (p->mShowIconNewTodo ) 805 if (p->mShowIconNewTodo )
806 configureToolBarMenu->setItemChecked( 20, true ); 806 configureToolBarMenu->setItemChecked( 20, true );
807 if (p-> mShowIconSearch) 807 if (p-> mShowIconSearch)
808 configureToolBarMenu->setItemChecked( 120, true ); 808 configureToolBarMenu->setItemChecked( 120, true );
809 if (p-> mShowIconList) 809 if (p-> mShowIconList)
810 configureToolBarMenu->setItemChecked( 30, true ); 810 configureToolBarMenu->setItemChecked( 30, true );
811 if (p-> mShowIconDay1) 811 if (p-> mShowIconDay1)
812 configureToolBarMenu->setItemChecked( 40, true ); 812 configureToolBarMenu->setItemChecked( 40, true );
813 if (p-> mShowIconDay5) 813 if (p-> mShowIconDay5)
814 configureToolBarMenu->setItemChecked( 50, true ); 814 configureToolBarMenu->setItemChecked( 50, true );
815 if (p-> mShowIconDay7) 815 if (p-> mShowIconDay7)
816 configureToolBarMenu->setItemChecked( 60, true ); 816 configureToolBarMenu->setItemChecked( 60, true );
817 if (p-> mShowIconMonth) 817 if (p-> mShowIconMonth)
818 configureToolBarMenu->setItemChecked( 70, true ); 818 configureToolBarMenu->setItemChecked( 70, true );
819 if (p-> mShowIconTodoview) 819 if (p-> mShowIconTodoview)
820 configureToolBarMenu->setItemChecked( 80, true ); 820 configureToolBarMenu->setItemChecked( 80, true );
821 if (p-> mShowIconBackFast) 821 if (p-> mShowIconBackFast)
822 configureToolBarMenu->setItemChecked( 200, true ); 822 configureToolBarMenu->setItemChecked( 200, true );
823 if (p-> mShowIconBack) 823 if (p-> mShowIconBack)
824 configureToolBarMenu->setItemChecked( 210, true ); 824 configureToolBarMenu->setItemChecked( 210, true );
825 if (p-> mShowIconToday) 825 if (p-> mShowIconToday)
826 configureToolBarMenu->setItemChecked( 130, true ); 826 configureToolBarMenu->setItemChecked( 130, true );
827 if (p-> mShowIconForward) 827 if (p-> mShowIconForward)
828 configureToolBarMenu->setItemChecked( 220, true ); 828 configureToolBarMenu->setItemChecked( 220, true );
829 if (p-> mShowIconForwardFast) 829 if (p-> mShowIconForwardFast)
830 configureToolBarMenu->setItemChecked( 230, true ); 830 configureToolBarMenu->setItemChecked( 230, true );
831 if (p-> mShowIconNextDays) 831 if (p-> mShowIconNextDays)
832 configureToolBarMenu->setItemChecked( 100, true ); 832 configureToolBarMenu->setItemChecked( 100, true );
833 if (p-> mShowIconNext) 833 if (p-> mShowIconNext)
834 configureToolBarMenu->setItemChecked( 110, true ); 834 configureToolBarMenu->setItemChecked( 110, true );
835 if (p-> mShowIconJournal) 835 if (p-> mShowIconJournal)
836 configureToolBarMenu->setItemChecked( 90, true ); 836 configureToolBarMenu->setItemChecked( 90, true );
837 if (p-> mShowIconWhatsThis) 837 if (p-> mShowIconWhatsThis)
838 configureToolBarMenu->setItemChecked( 300, true ); 838 configureToolBarMenu->setItemChecked( 300, true );
839 839
840 QLabel* dummy = new QLabel( iconToolBar ); 840 QLabel* dummy = new QLabel( iconToolBar );
841 dummy->setBackgroundColor( iconToolBar->backgroundColor() ); 841 dummy->setBackgroundColor( iconToolBar->backgroundColor() );
842 if (!p-> mShowIconStretch) 842 if (!p-> mShowIconStretch)
843 iconToolBar->setStretchableWidget ( dummy ) ; 843 iconToolBar->setStretchableWidget ( dummy ) ;
844 else 844 else
845 configureToolBarMenu->setItemChecked( 5, true ); 845 configureToolBarMenu->setItemChecked( 5, true );
846 if (p-> mShowIconWhatsThis) 846 if (p-> mShowIconWhatsThis)
847 QWhatsThis::whatsThisButton ( iconToolBar ); 847 QWhatsThis::whatsThisButton ( iconToolBar );
848 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) ); 848 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) );
849 configureAgenda( p->mHourSize ); 849 configureAgenda( p->mHourSize );
850 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); 850 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) );
851} 851}
852void MainWindow::fillSyncMenu() 852void MainWindow::fillSyncMenu()
853{ 853{
854 syncMenu->clear(); 854 if ( syncMenu->count() )
855 syncMenu->clear();
855 syncMenu->insertItem( i18n("Configure..."), 0 ); 856 syncMenu->insertItem( i18n("Configure..."), 0 );
856 syncMenu->insertSeparator(); 857 syncMenu->insertSeparator();
857 syncMenu->insertItem( i18n("Multiple sync"), 1 ); 858 syncMenu->insertItem( i18n("Multiple sync"), 1 );
858 syncMenu->insertSeparator(); 859 syncMenu->insertSeparator();
859 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 860 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
860 config.setGroup("General"); 861 config.setGroup("General");
861 QStringList prof = config.readListEntry("SyncProfileNames"); 862 QStringList prof = config.readListEntry("SyncProfileNames");
862 KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined"); 863 KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined");
863 if ( prof.count() < 3 ) { 864 if ( prof.count() < 3 ) {
864 prof.clear(); 865 prof.clear();
865 prof << i18n("Sharp_DTM"); 866 prof << i18n("Sharp_DTM");
866 prof << i18n("Local_file"); 867 prof << i18n("Local_file");
867 prof << i18n("Last_file"); 868 prof << i18n("Last_file");
868 KSyncProfile* temp = new KSyncProfile (); 869 KSyncProfile* temp = new KSyncProfile ();
869 temp->setName( prof[0] ); 870 temp->setName( prof[0] );
870 temp->writeConfig(&config); 871 temp->writeConfig(&config);
871 temp->setName( prof[1] ); 872 temp->setName( prof[1] );
872 temp->writeConfig(&config); 873 temp->writeConfig(&config);
873 temp->setName( prof[2] ); 874 temp->setName( prof[2] );
874 temp->writeConfig(&config); 875 temp->writeConfig(&config);
875 config.setGroup("General"); 876 config.setGroup("General");
876 config.writeEntry("SyncProfileNames",prof); 877 config.writeEntry("SyncProfileNames",prof);
877 config.writeEntry("ExternSyncProfiles","Sharp_DTM"); 878 config.writeEntry("ExternSyncProfiles","Sharp_DTM");
878 config.sync(); 879 config.sync();
879 delete temp; 880 delete temp;
880 } 881 }
881 KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); 882 KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles");
882 KOPrefs::instance()->mSyncProfileNames = prof; 883 KOPrefs::instance()->mSyncProfileNames = prof;
883 int i; 884 int i;
884 for ( i = 0; i < prof.count(); ++i ) { 885 for ( i = 0; i < prof.count(); ++i ) {
885 886
886 syncMenu->insertItem( prof[i], 1000+i ); 887 syncMenu->insertItem( prof[i], 1000+i );
887 if ( i == 2 ) 888 if ( i == 2 )
888 syncMenu->insertSeparator(); 889 syncMenu->insertSeparator();
889 } 890 }
890 QDir app_dir; 891 QDir app_dir;
891 if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { 892 if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) {
892 syncMenu->setItemEnabled( false , 1000 ); 893 syncMenu->setItemEnabled( false , 1000 );
893 } 894 }
894 mView->setupExternSyncProfiles(); 895 mView->setupExternSyncProfiles();
895} 896}
896 897
897int MainWindow::ringSync() 898int MainWindow::ringSync()
898{ 899{
899 int syncedProfiles = 0; 900 int syncedProfiles = 0;
900 int i; 901 int i;
901 QTime timer; 902 QTime timer;
902 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 903 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
903 QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames; 904 QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames;
904 KSyncProfile* temp = new KSyncProfile (); 905 KSyncProfile* temp = new KSyncProfile ();
905 KOPrefs::instance()->mAskForPreferences = false; 906 KOPrefs::instance()->mAskForPreferences = false;
906 for ( i = 0; i < syncProfileNames.count(); ++i ) { 907 for ( i = 0; i < syncProfileNames.count(); ++i ) {
907 mCurrentSyncProfile = i; 908 mCurrentSyncProfile = i;
908 temp->setName(syncProfileNames[mCurrentSyncProfile]); 909 temp->setName(syncProfileNames[mCurrentSyncProfile]);
909 temp->readConfig(&config); 910 temp->readConfig(&config);
910 if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) { 911 if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) {
911 setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); 912 setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... "));
912 ++syncedProfiles; 913 ++syncedProfiles;
913 // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 914 // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
914 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 915 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
915 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 916 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
916 KOPrefs::instance()->mShowSyncSummary = false; 917 KOPrefs::instance()->mShowSyncSummary = false;
917 mView->setSyncDevice(syncProfileNames[i] ); 918 mView->setSyncDevice(syncProfileNames[i] );
918 mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); 919 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
919 if ( i == 0 ) { 920 if ( i == 0 ) {
920 syncSharp(); 921 syncSharp();
921 } else { 922 } else {
922 if ( temp->getIsLocalFileSync() ) { 923 if ( temp->getIsLocalFileSync() ) {
923 if ( syncWithFile( temp->getRemoteFileName( ), true ) ) 924 if ( syncWithFile( temp->getRemoteFileName( ), true ) )
924 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); 925 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName();
925 } else { 926 } else {
926 if ( temp->getIsPhoneSync() ) { 927 if ( temp->getIsPhoneSync() ) {
927 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; 928 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ;
928 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); 929 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( );
929 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); 930 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( );
930 syncPhone(); 931 syncPhone();
931 } else 932 } else
932 syncRemote( temp, false ); 933 syncRemote( temp, false );
933 934
934 } 935 }
935 } 936 }
936 timer.start(); 937 timer.start();
937 setCaption(i18n("Multiple sync in progress ... please wait!") ); 938 setCaption(i18n("Multiple sync in progress ... please wait!") );
938 while ( timer.elapsed () < 2000 ) { 939 while ( timer.elapsed () < 2000 ) {
939 qApp->processEvents(); 940 qApp->processEvents();
940#ifndef _WIN32_ 941#ifndef _WIN32_
941 sleep (1); 942 sleep (1);
942#endif 943#endif
943 } 944 }
944 945
945 } 946 }
946 947
947 } 948 }
948 delete temp; 949 delete temp;
949 return syncedProfiles; 950 return syncedProfiles;
950} 951}
951 952
952void MainWindow::multiSync( bool askforPrefs ) 953void MainWindow::multiSync( bool askforPrefs )
953{ 954{
954 if (mBlockSaveFlag) 955 if (mBlockSaveFlag)
955 return; 956 return;
956 mBlockSaveFlag = true; 957 mBlockSaveFlag = true;
957 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); 958 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!");
958 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 959 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
959 question, 960 question,
960 i18n("Yes"), i18n("No"), 961 i18n("Yes"), i18n("No"),
961 0, 0 ) != 0 ) { 962 0, 0 ) != 0 ) {
962 mBlockSaveFlag = false; 963 mBlockSaveFlag = false;
963 setCaption(i18n("Aborted! Nothing synced!")); 964 setCaption(i18n("Aborted! Nothing synced!"));
964 return; 965 return;
965 } 966 }
966 mView->setSyncDevice(i18n("Multiple profiles") ); 967 mView->setSyncDevice(i18n("Multiple profiles") );
967 KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs; 968 KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs;
968 if ( askforPrefs ) { 969 if ( askforPrefs ) {
969 mView->edit_sync_options(); 970 mView->edit_sync_options();
970 KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs; 971 KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs;
971 } 972 }
972 setCaption(i18n("Multiple sync started.") ); 973 setCaption(i18n("Multiple sync started.") );
973 qApp->processEvents(); 974 qApp->processEvents();
974 int num = ringSync() ; 975 int num = ringSync() ;
975 if ( num > 1 ) 976 if ( num > 1 )
976 ringSync(); 977 ringSync();
977 mBlockSaveFlag = false; 978 mBlockSaveFlag = false;
978 if ( num ) 979 if ( num )
979 save(); 980 save();
980 if ( num ) 981 if ( num )
981 setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); 982 setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) );
982 else 983 else
983 setCaption(i18n("Nothing synced! No profiles defined for multisync!")); 984 setCaption(i18n("Nothing synced! No profiles defined for multisync!"));
984 return; 985 return;
985} 986}
986void MainWindow::slotSyncMenu( int action ) 987void MainWindow::slotSyncMenu( int action )
987{ 988{
988 //qDebug("syncaction %d ", action); 989 //qDebug("syncaction %d ", action);
989 if ( action == 0 ) { 990 if ( action == 0 ) {
990 991
991 confSync(); 992 // seems to be a Qt2 event handling bug
993 // syncmenu.clear causes a segfault at first time
994 // when we call it after the main event loop, it is ok
995 // same behaviour when calling OM/Pi via QCOP for the first time
996 QTimer::singleShot ( 1, this, SLOT ( confSync() ) );
997 //confSync();
992 998
993 return; 999 return;
994 } 1000 }
995 if ( action == 1 ) { 1001 if ( action == 1 ) {
996 multiSync( true ); 1002 multiSync( true );
997 return; 1003 return;
998 } 1004 }
999 1005
1000 if (mBlockSaveFlag) 1006 if (mBlockSaveFlag)
1001 return; 1007 return;
1002 mBlockSaveFlag = true; 1008 mBlockSaveFlag = true;
1003 mCurrentSyncProfile = action - 1000 ; 1009 mCurrentSyncProfile = action - 1000 ;
1004 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); 1010 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] );
1005 mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); 1011 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
1006 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 1012 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
1007 KSyncProfile* temp = new KSyncProfile (); 1013 KSyncProfile* temp = new KSyncProfile ();
1008 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 1014 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
1009 temp->readConfig(&config); 1015 temp->readConfig(&config);
1010 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 1016 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
1011 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); 1017 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs();
1012 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 1018 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
1013 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 1019 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
1014 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); 1020 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync();
1015 if ( action == 1000 ) { 1021 if ( action == 1000 ) {
1016 syncSharp(); 1022 syncSharp();
1017 1023
1018 } else if ( action == 1001 ) { 1024 } else if ( action == 1001 ) {
1019 syncLocalFile(); 1025 syncLocalFile();
1020 1026
1021 } else if ( action == 1002 ) { 1027 } else if ( action == 1002 ) {
1022 quickSyncLocalFile(); 1028 quickSyncLocalFile();
1023 1029
1024 } else if ( action >= 1003 ) { 1030 } else if ( action >= 1003 ) {
1025 if ( temp->getIsLocalFileSync() ) { 1031 if ( temp->getIsLocalFileSync() ) {
1026 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 1032 if ( syncWithFile( temp->getRemoteFileName( ), false ) )
1027 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); 1033 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName();
1028 } else { 1034 } else {
1029 if ( temp->getIsPhoneSync() ) { 1035 if ( temp->getIsPhoneSync() ) {
1030 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; 1036 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ;
1031 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); 1037 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( );
1032 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); 1038 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( );
1033 syncPhone(); 1039 syncPhone();
1034 } else 1040 } else
1035 syncRemote( temp ); 1041 syncRemote( temp );
1036 1042
1037 } 1043 }
1038 } 1044 }
1039 delete temp; 1045 delete temp;
1040 mBlockSaveFlag = false; 1046 mBlockSaveFlag = false;
1041} 1047}
1042void MainWindow::setDefaultPreferences() 1048void MainWindow::setDefaultPreferences()
1043{ 1049{
1044 KOPrefs *p = KOPrefs::instance(); 1050 KOPrefs *p = KOPrefs::instance();
1045 1051
1046 p->mCompactDialogs = true; 1052 p->mCompactDialogs = true;
1047 p->mConfirm = true; 1053 p->mConfirm = true;
1048 // p->mEnableQuickTodo = false; 1054 // p->mEnableQuickTodo = false;
1049} 1055}
1050 1056
1051QString MainWindow::resourcePath() 1057QString MainWindow::resourcePath()
1052{ 1058{
1053 return KGlobal::iconLoader()->iconPath(); 1059 return KGlobal::iconLoader()->iconPath();
1054} 1060}
1055 1061
1056void MainWindow::displayText( QString text ,QString cap ) 1062void MainWindow::displayText( QString text ,QString cap )
1057{ 1063{
1058 QDialog dia( this, "name", true ); ; 1064 QDialog dia( this, "name", true ); ;
1059 dia.setCaption( cap ); 1065 dia.setCaption( cap );
1060 QVBoxLayout* lay = new QVBoxLayout( &dia ); 1066 QVBoxLayout* lay = new QVBoxLayout( &dia );
1061 lay->setSpacing( 3 ); 1067 lay->setSpacing( 3 );
1062 lay->setMargin( 3 ); 1068 lay->setMargin( 3 );
1063 QTextBrowser tb ( &dia ); 1069 QTextBrowser tb ( &dia );
1064 lay->addWidget( &tb ); 1070 lay->addWidget( &tb );
1065 tb.setText( text ); 1071 tb.setText( text );
1066#ifdef DESKTOP_VERSION 1072#ifdef DESKTOP_VERSION
1067 dia.resize( 640, 480); 1073 dia.resize( 640, 480);
1068#else 1074#else
1069 dia.showMaximized(); 1075 dia.showMaximized();
1070#endif 1076#endif
1071 dia.exec(); 1077 dia.exec();
1072} 1078}
1073void MainWindow::displayFile( QString fn, QString cap ) 1079void MainWindow::displayFile( QString fn, QString cap )
1074{ 1080{
1075 QString fileName = resourcePath() + fn; 1081 QString fileName = resourcePath() + fn;
1076 QString text; 1082 QString text;
1077 QFile file( fileName ); 1083 QFile file( fileName );
1078 if (!file.open( IO_ReadOnly ) ) { 1084 if (!file.open( IO_ReadOnly ) ) {
1079 return ; 1085 return ;
1080 1086
1081 } 1087 }
1082 QTextStream ts( &file ); 1088 QTextStream ts( &file );
1083 text = ts.read(); 1089 text = ts.read();
1084 file.close(); 1090 file.close();
1085 displayText( text, cap); 1091 displayText( text, cap);
1086} 1092}
1087void MainWindow::features() 1093void MainWindow::features()
1088{ 1094{
1089 1095
1090 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") ); 1096 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") );
1091} 1097}
1092 1098
1093void MainWindow::usertrans() 1099void MainWindow::usertrans()
1094{ 1100{
1095 1101
1096 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") ); 1102 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") );
1097} 1103}
1098#if 0 1104#if 0
1099#include <libkcal/vcalformat.h> 1105#include <libkcal/vcalformat.h>
1100#include <libkcal/event.h> 1106#include <libkcal/event.h>
1101#include <libkcal/todo.h> 1107#include <libkcal/todo.h>
1102#include <libkcal/incidence.h> 1108#include <libkcal/incidence.h>
1103#endif 1109#endif
1104void MainWindow::synchowto() 1110void MainWindow::synchowto()
1105{ 1111{
1106#if 0 1112#if 0
1107 QPtrList<Incidence> er = mCalendar->rawIncidences(); 1113 QPtrList<Incidence> er = mCalendar->rawIncidences();
1108 Incidence* inR = er.first(); 1114 Incidence* inR = er.first();
1109 VCalFormat vf; 1115 VCalFormat vf;
1110 QString strout; 1116 QString strout;
1111 while ( inR ) { 1117 while ( inR ) {
1112 if ( inR->type() == "Todo" ) 1118 if ( inR->type() == "Todo" )
1113 strout = vf.todoToString( (Todo *) inR ); 1119 strout = vf.todoToString( (Todo *) inR );
1114 if ( inR->type() == "Event" ) 1120 if ( inR->type() == "Event" )
1115 strout = vf.eventToString( (Event *) inR ); 1121 strout = vf.eventToString( (Event *) inR );
1116 qDebug("incidence: \n%s\n ente\n\n",strout.latin1() ); 1122 qDebug("incidence: \n%s\n ente\n\n",strout.latin1() );
1117 inR = er.next(); 1123 inR = er.next();
1118 } 1124 }
1119#endif 1125#endif
@@ -1787,259 +1793,256 @@ void MainWindow::exportVCalendar()
1787{ 1793{
1788 QString fn = KOPrefs::instance()->mLastVcalFile; 1794 QString fn = KOPrefs::instance()->mLastVcalFile;
1789 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); 1795 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this );
1790 if ( fn == "" ) 1796 if ( fn == "" )
1791 return; 1797 return;
1792 QFileInfo info; 1798 QFileInfo info;
1793 info.setFile( fn ); 1799 info.setFile( fn );
1794 QString mes; 1800 QString mes;
1795 bool createbup = true; 1801 bool createbup = true;
1796 if ( info. exists() ) { 1802 if ( info. exists() ) {
1797 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); 1803 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) );
1798 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 1804 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
1799 i18n("Overwrite!"), i18n("Cancel"), 0, 1805 i18n("Overwrite!"), i18n("Cancel"), 0,
1800 0, 1 ); 1806 0, 1 );
1801 if ( result != 0 ) { 1807 if ( result != 0 ) {
1802 createbup = false; 1808 createbup = false;
1803 } 1809 }
1804 } 1810 }
1805 if ( createbup ) { 1811 if ( createbup ) {
1806 if ( mView->exportVCalendar( fn ) ) { 1812 if ( mView->exportVCalendar( fn ) ) {
1807 KOPrefs::instance()->mLastVcalFile = fn; 1813 KOPrefs::instance()->mLastVcalFile = fn;
1808 if ( fn.length() > 20 ) 1814 if ( fn.length() > 20 )
1809 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; 1815 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ;
1810 else 1816 else
1811 mes = i18n("KO/Pi:Exported to %1").arg(fn ); 1817 mes = i18n("KO/Pi:Exported to %1").arg(fn );
1812 setCaption(mes); 1818 setCaption(mes);
1813 } 1819 }
1814 } 1820 }
1815 1821
1816} 1822}
1817#include <qpushbutton.h> 1823#include <qpushbutton.h>
1818QString MainWindow::getPassword( ) 1824QString MainWindow::getPassword( )
1819{ 1825{
1820 QString retfile = ""; 1826 QString retfile = "";
1821 QDialog dia ( this, "input-dialog", true ); 1827 QDialog dia ( this, "input-dialog", true );
1822 QLineEdit lab ( &dia ); 1828 QLineEdit lab ( &dia );
1823 lab.setEchoMode( QLineEdit::Password ); 1829 lab.setEchoMode( QLineEdit::Password );
1824 QVBoxLayout lay( &dia ); 1830 QVBoxLayout lay( &dia );
1825 lay.setMargin(7); 1831 lay.setMargin(7);
1826 lay.setSpacing(7); 1832 lay.setSpacing(7);
1827 lay.addWidget( &lab); 1833 lay.addWidget( &lab);
1828 dia.setFixedSize( 230,50 ); 1834 dia.setFixedSize( 230,50 );
1829 dia.setCaption( i18n("Enter password") ); 1835 dia.setCaption( i18n("Enter password") );
1830 QPushButton pb ( "OK", &dia); 1836 QPushButton pb ( "OK", &dia);
1831 lay.addWidget( &pb ); 1837 lay.addWidget( &pb );
1832 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 1838 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
1833 dia.show(); 1839 dia.show();
1834 int res = dia.exec(); 1840 int res = dia.exec();
1835 if ( res ) 1841 if ( res )
1836 retfile = lab.text(); 1842 retfile = lab.text();
1837 dia.hide(); 1843 dia.hide();
1838 qApp->processEvents(); 1844 qApp->processEvents();
1839 return retfile; 1845 return retfile;
1840 1846
1841} 1847}
1842 1848
1843void MainWindow::syncLocalFile() 1849void MainWindow::syncLocalFile()
1844{ 1850{
1845 1851
1846 QString fn =KOPrefs::instance()->mLastSyncedLocalFile; 1852 QString fn =KOPrefs::instance()->mLastSyncedLocalFile;
1847 1853
1848 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); 1854 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this );
1849 if ( fn == "" ) 1855 if ( fn == "" )
1850 return; 1856 return;
1851 //mView->setSyncDevice("local-file" ); 1857 //mView->setSyncDevice("local-file" );
1852 if ( syncWithFile( fn, false ) ) { 1858 if ( syncWithFile( fn, false ) ) {
1853 // Event* e = mView->getLastSyncEvent(); 1859 // Event* e = mView->getLastSyncEvent();
1854// e->setReadOnly( false ); 1860// e->setReadOnly( false );
1855// e->setLocation( i18n("Local file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); 1861// e->setLocation( i18n("Local file: ")+ KOPrefs::instance()->mLastSyncedLocalFile);
1856// e->setReadOnly( true ); 1862// e->setReadOnly( true );
1857 } 1863 }
1858 1864
1859} 1865}
1860 1866
1861bool MainWindow::syncWithFile( QString fn , bool quick ) 1867bool MainWindow::syncWithFile( QString fn , bool quick )
1862{ 1868{
1863 bool ret = false; 1869 bool ret = false;
1864 QFileInfo info; 1870 QFileInfo info;
1865 info.setFile( fn ); 1871 info.setFile( fn );
1866 QString mess; 1872 QString mess;
1867 bool loadbup = true; 1873 bool loadbup = true;
1868 if ( !info. exists() ) { 1874 if ( !info. exists() ) {
1869 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) ); 1875 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) );
1870 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1876 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1871 mess ); 1877 mess );
1872 return ret; 1878 return ret;
1873 } 1879 }
1874 int result = 0; 1880 int result = 0;
1875 if ( !quick ) { 1881 if ( !quick ) {
1876 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 1882 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
1877 result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1883 result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1878 mess, 1884 mess,
1879 i18n("Sync"), i18n("Cancel"), 0, 1885 i18n("Sync"), i18n("Cancel"), 0,
1880 0, 1 ); 1886 0, 1 );
1881 if ( result ) 1887 if ( result )
1882 return false; 1888 return false;
1883 } 1889 }
1884 if ( KOPrefs::instance()->mAskForPreferences ) 1890 if ( KOPrefs::instance()->mAskForPreferences )
1885 mView->edit_sync_options(); 1891 mView->edit_sync_options();
1886 if ( result == 0 ) { 1892 if ( result == 0 ) {
1887 //qDebug("Now sycing ... "); 1893 //qDebug("Now sycing ... ");
1888 if ( ret = mView->syncCalendar( fn, KOPrefs::instance()->mSyncAlgoPrefs ) ) 1894 if ( ret = mView->syncCalendar( fn, KOPrefs::instance()->mSyncAlgoPrefs ) )
1889 setCaption( i18n("Synchronization successful") ); 1895 setCaption( i18n("Synchronization successful") );
1890 else 1896 else
1891 setCaption( i18n("Sync cancelled or failed. Nothing synced.") ); 1897 setCaption( i18n("Sync cancelled or failed. Nothing synced.") );
1892 if ( ! quick ) 1898 if ( ! quick )
1893 KOPrefs::instance()->mLastSyncedLocalFile = fn; 1899 KOPrefs::instance()->mLastSyncedLocalFile = fn;
1894 slotModifiedChanged( true ); 1900 slotModifiedChanged( true );
1895 } 1901 }
1896 return ret; 1902 return ret;
1897} 1903}
1898void MainWindow::quickSyncLocalFile() 1904void MainWindow::quickSyncLocalFile()
1899{ 1905{
1900 //mView->setSyncDevice("local-file" ); 1906 //mView->setSyncDevice("local-file" );
1901 //qDebug("quickSyncLocalFile() "); 1907 //qDebug("quickSyncLocalFile() ");
1902 if ( syncWithFile( KOPrefs::instance()->mLastSyncedLocalFile, false ) ) { 1908 if ( syncWithFile( KOPrefs::instance()->mLastSyncedLocalFile, false ) ) {
1903 // Event* e = mView->getLastSyncEvent(); 1909 // Event* e = mView->getLastSyncEvent();
1904// e->setReadOnly( false ); 1910// e->setReadOnly( false );
1905// e->setLocation( i18n("Quick with file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); 1911// e->setLocation( i18n("Quick with file: ")+ KOPrefs::instance()->mLastSyncedLocalFile);
1906// e->setReadOnly( true ); 1912// e->setReadOnly( true );
1907 1913
1908 } 1914 }
1909} 1915}
1910 1916
1911void MainWindow::confSync() 1917void MainWindow::confSync()
1912{ 1918{
1913 mView->confSync(); 1919 mView->confSync();
1914 fillSyncMenu(); 1920 fillSyncMenu();
1915 //mView->writeSettings();
1916
1917
1918} 1921}
1919void MainWindow::syncRemote( KSyncProfile* prof, bool ask) 1922void MainWindow::syncRemote( KSyncProfile* prof, bool ask)
1920{ 1923{
1921 QString question; 1924 QString question;
1922 if ( ask ) { 1925 if ( ask ) {
1923 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n"; 1926 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n";
1924 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 1927 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
1925 question, 1928 question,
1926 i18n("Yes"), i18n("No"), 1929 i18n("Yes"), i18n("No"),
1927 0, 0 ) != 0 ) 1930 0, 0 ) != 0 )
1928 return; 1931 return;
1929 } 1932 }
1930 QString command = prof->getPreSyncCommand(); 1933 QString command = prof->getPreSyncCommand();
1931 int fi; 1934 int fi;
1932 if ( (fi = command.find("$PWD$")) > 0 ) { 1935 if ( (fi = command.find("$PWD$")) > 0 ) {
1933 QString pwd = getPassword(); 1936 QString pwd = getPassword();
1934 command = command.left( fi )+ pwd + command.mid( fi+5 ); 1937 command = command.left( fi )+ pwd + command.mid( fi+5 );
1935 1938
1936 } 1939 }
1937 int maxlen = 30; 1940 int maxlen = 30;
1938 if ( QApplication::desktop()->width() > 320 ) 1941 if ( QApplication::desktop()->width() > 320 )
1939 maxlen += 25; 1942 maxlen += 25;
1940 setCaption ( i18n( "Copy remote file to local machine..." ) ); 1943 setCaption ( i18n( "Copy remote file to local machine..." ) );
1941 int fileSize = 0; 1944 int fileSize = 0;
1942 int result = system ( command ); 1945 int result = system ( command );
1943 // 0 : okay 1946 // 0 : okay
1944 // 256: no such file or dir 1947 // 256: no such file or dir
1945 // 1948 //
1946 qDebug("KO: Remote copy result(0 = okay): %d ",result ); 1949 qDebug("KO: Remote copy result(0 = okay): %d ",result );
1947 if ( result != 0 ) { 1950 if ( result != 0 ) {
1948 int len = maxlen; 1951 int len = maxlen;
1949 while ( len < command.length() ) { 1952 while ( len < command.length() ) {
1950 command.insert( len , "\n" ); 1953 command.insert( len , "\n" );
1951 len += maxlen +2; 1954 len += maxlen +2;
1952 } 1955 }
1953 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) ; 1956 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) ;
1954 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), 1957 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"),
1955 question, 1958 question,
1956 i18n("Okay!")) ; 1959 i18n("Okay!")) ;
1957 setCaption ("KO/Pi"); 1960 setCaption ("KO/Pi");
1958 return; 1961 return;
1959 } 1962 }
1960 setCaption ( i18n( "Copying succeed." ) ); 1963 setCaption ( i18n( "Copying succeed." ) );
1961 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); 1964 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() );
1962 if ( syncWithFile( prof->getLocalTempFile(), true ) ) { 1965 if ( syncWithFile( prof->getLocalTempFile(), true ) ) {
1963// Event* e = mView->getLastSyncEvent(); 1966// Event* e = mView->getLastSyncEvent();
1964// e->setReadOnly( false ); 1967// e->setReadOnly( false );
1965// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 1968// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
1966// e->setReadOnly( true ); 1969// e->setReadOnly( true );
1967 if ( KOPrefs::instance()->mWriteBackFile ) { 1970 if ( KOPrefs::instance()->mWriteBackFile ) {
1968 command = prof->getPostSyncCommand(); 1971 command = prof->getPostSyncCommand();
1969 setCaption ( i18n( "Writing back file ..." ) ); 1972 setCaption ( i18n( "Writing back file ..." ) );
1970 result = system ( command ); 1973 result = system ( command );
1971 qDebug("KO: Writing back file result: %d ", result); 1974 qDebug("KO: Writing back file result: %d ", result);
1972 if ( result != 0 ) { 1975 if ( result != 0 ) {
1973 setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); 1976 setCaption ( i18n( "Writing back file result: " )+QString::number( result ) );
1974 return; 1977 return;
1975 } else { 1978 } else {
1976 setCaption ( i18n( "Syncronization sucessfully completed" ) ); 1979 setCaption ( i18n( "Syncronization sucessfully completed" ) );
1977 } 1980 }
1978 } 1981 }
1979 } 1982 }
1980 return; 1983 return;
1981} 1984}
1982void MainWindow::syncSSH() 1985void MainWindow::syncSSH()
1983{ 1986{
1984 // not used anymore 1987 // not used anymore
1985 QTime timer; 1988 QTime timer;
1986 timer.start(); 1989 timer.start();
1987 //qDebug("MainWindow::syncssh() "); 1990 //qDebug("MainWindow::syncssh() ");
1988 KOPrefs *p = KOPrefs::instance(); 1991 KOPrefs *p = KOPrefs::instance();
1989 QString localFile = p->mLocalTempFile; 1992 QString localFile = p->mLocalTempFile;
1990 QString remoteIP = p->mRemoteIP; 1993 QString remoteIP = p->mRemoteIP;
1991 QString remoteUser = p->mRemoteUser; 1994 QString remoteUser = p->mRemoteUser;
1992 QString remoteFile = p->mRemoteFile; 1995 QString remoteFile = p->mRemoteFile;
1993 if ( p->mUsePassWd && p->mRemotePassWd.length() > 0 ) 1996 if ( p->mUsePassWd && p->mRemotePassWd.length() > 0 )
1994 remoteUser += ":" + p->mRemotePassWd; 1997 remoteUser += ":" + p->mRemotePassWd;
1995 1998
1996 QString question = i18n("Do you really want\nto remote sync?\n \n") + 1999 QString question = i18n("Do you really want\nto remote sync?\n \n") +
1997 i18n("IP: " ) +remoteIP +"\n" + 2000 i18n("IP: " ) +remoteIP +"\n" +
1998 i18n("User: " ) + remoteUser +"\n" ; 2001 i18n("User: " ) + remoteUser +"\n" ;
1999 int maxlen = 30; 2002 int maxlen = 30;
2000 if ( QApplication::desktop()->width() > 320 ) 2003 if ( QApplication::desktop()->width() > 320 )
2001 maxlen += 25; 2004 maxlen += 25;
2002 if ( remoteFile.length() > maxlen ) 2005 if ( remoteFile.length() > maxlen )
2003 question += i18n("Remote file:\n..." ) + remoteFile.right(maxlen) +"\n"; 2006 question += i18n("Remote file:\n..." ) + remoteFile.right(maxlen) +"\n";
2004 else 2007 else
2005 question += i18n("Remote file:\n " ) + remoteFile +"\n"; 2008 question += i18n("Remote file:\n " ) + remoteFile +"\n";
2006 if ( localFile.length() > maxlen ) 2009 if ( localFile.length() > maxlen )
2007 question += i18n("Local temp file:\n..." ) + localFile.right(maxlen) +"\n"; 2010 question += i18n("Local temp file:\n..." ) + localFile.right(maxlen) +"\n";
2008 else 2011 else
2009 question += i18n("Local temp file:\n " ) + localFile +"\n"; 2012 question += i18n("Local temp file:\n " ) + localFile +"\n";
2010 2013
2011 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 2014 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
2012 question, 2015 question,
2013 i18n("Yes"), i18n("No"), 2016 i18n("Yes"), i18n("No"),
2014 0, 0 ) != 0 ) 2017 0, 0 ) != 0 )
2015 return; 2018 return;
2016 // if ( !p->mUsePassWd ) { 2019 // if ( !p->mUsePassWd ) {
2017 // QString pass = getPassword(); 2020 // QString pass = getPassword();
2018 // if ( pass.length() > 0 ) 2021 // if ( pass.length() > 0 )
2019 // remoteUser += ":" + pass; 2022 // remoteUser += ":" + pass;
2020 // } 2023 // }
2021 QString command = "scp " + remoteUser + "@" + remoteIP +":" + remoteFile +" " +localFile; 2024 QString command = "scp " + remoteUser + "@" + remoteIP +":" + remoteFile +" " +localFile;
2022 setCaption ( i18n( "Copy remote file to local machine..." ) ); 2025 setCaption ( i18n( "Copy remote file to local machine..." ) );
2023 int fileSize = 0; 2026 int fileSize = 0;
2024 int result = system ( command ); 2027 int result = system ( command );
2025 // 0 : okay 2028 // 0 : okay
2026 // 256: no such file or dir 2029 // 256: no such file or dir
2027 // 2030 //
2028 qDebug("KO: Remote copy result(0 = okay): %d ",result ); 2031 qDebug("KO: Remote copy result(0 = okay): %d ",result );
2029 if ( result != 0 ) { 2032 if ( result != 0 ) {
2030 int len = maxlen; 2033 int len = maxlen;
2031 while ( len < command.length() ) { 2034 while ( len < command.length() ) {
2032 command.insert( len , "\n" ); 2035 command.insert( len , "\n" );
2033 len += maxlen +2; 2036 len += maxlen +2;
2034 } 2037 }
2035 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) ; 2038 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) ;
2036 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), 2039 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"),
2037 question, 2040 question,
2038 i18n("Okay!")) ; 2041 i18n("Okay!")) ;
2039 setCaption ("KO/Pi"); 2042 setCaption ("KO/Pi");
2040 return; 2043 return;
2041 } 2044 }
2042 2045
2043 2046
2044 setCaption ( i18n( "Copying succeed." ) ); 2047 setCaption ( i18n( "Copying succeed." ) );
2045 //mView->setSyncDevice("ssh-scp" ); 2048 //mView->setSyncDevice("ssh-scp" );