summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/mainwindow.cpp98
-rw-r--r--korganizer/mainwindow.h2
-rw-r--r--libkdepim/ksyncprefsdialog.cpp6
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
@@ -851,51 +851,48 @@ void MainWindow::initActions()
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}
863void MainWindow::fillSyncMenu() 863void 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 }
@@ -931,49 +928,54 @@ int MainWindow::ringSync()
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
976void MainWindow::multiSync( bool askforPrefs ) 978void MainWindow::multiSync( bool askforPrefs )
977{ 979{
978 if (mBlockSaveFlag) 980 if (mBlockSaveFlag)
979 return; 981 return;
@@ -1015,95 +1017,92 @@ void MainWindow::slotSyncMenu( int action )
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}
1093void MainWindow::setDefaultPreferences() 1092void 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
1102QString MainWindow::resourcePath() 1101QString MainWindow::resourcePath()
1103{ 1102{
1104 return KGlobal::iconLoader()->iconPath(); 1103 return KGlobal::iconLoader()->iconPath();
1105} 1104}
1106 1105
1107void MainWindow::displayText( QString text ,QString cap ) 1106void MainWindow::displayText( QString text ,QString cap )
1108{ 1107{
1109 QDialog dia( this, "name", true ); ; 1108 QDialog dia( this, "name", true ); ;
@@ -1934,89 +1933,50 @@ void MainWindow::enableQuick()
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
1944void MainWindow::getFile( bool success ) 1943void 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
1958void MainWindow::performQuick() 1957void 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
2003void MainWindow::performQuickQuick() 1963void 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 );
@@ -2356,198 +2316,194 @@ void MainWindow::syncPhone()
2356 2316
2357} 2317}
2358 2318
2359void MainWindow::printSel( ) 2319void MainWindow::printSel( )
2360{ 2320{
2361 mView->viewManager()->agendaView()->agenda()->printSelection(); 2321 mView->viewManager()->agendaView()->agenda()->printSelection();
2362} 2322}
2363 2323
2364void MainWindow::printCal() 2324void MainWindow::printCal()
2365{ 2325{
2366 mView->print();//mCp->showDialog(); 2326 mView->print();//mCp->showDialog();
2367} 2327}
2368 2328
2369 2329
2370 2330
2371KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ) 2331KServerSocket:: 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
2378void KServerSocket::newConnection ( int socket ) 2338void 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
2392void KServerSocket::discardClient() 2352void 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}
2402void KServerSocket::readClient() 2361void 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}
2436void KServerSocket::end_connect() 2394void KServerSocket::end_connect()
2437{ 2395{
2438 delete mSyncActionDialog; 2396 delete mSyncActionDialog;
2439 mSyncActionDialog = 0; 2397 mSyncActionDialog = 0;
2440} 2398}
2441void KServerSocket::send_file() 2399void 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}
2487void KServerSocket::get_file() 2444void 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
2497void KServerSocket::readBackFileFromSocket() 2454void 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
2543KCommandSocket::KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent, const char * name ): QObject( parent, name ) 2499KCommandSocket::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}
@@ -2560,118 +2516,120 @@ void KCommandSocket::readFile( QString fn )
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
2571void KCommandSocket::writeFile( QString fileName ) 2527void 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
2598void KCommandSocket::sendStop() 2556void 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
2613void KCommandSocket::startReadFileFromSocket() 2572void 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}
2624void KCommandSocket::readFileFromSocket() 2583void 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
2664void KCommandSocket::deleteSocket() 2622void 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
@@ -126,77 +126,77 @@ class MainWindow : public QMainWindow
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;
diff --git a/libkdepim/ksyncprefsdialog.cpp b/libkdepim/ksyncprefsdialog.cpp
index f05c846..0caa27e 100644
--- a/libkdepim/ksyncprefsdialog.cpp
+++ b/libkdepim/ksyncprefsdialog.cpp
@@ -169,49 +169,49 @@ void KSyncPrefsDialog::setupSyncAlgTab()
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
@@ -435,49 +435,50 @@ void KSyncPrefsDialog::profileChanged( int item )
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
471void KSyncPrefsDialog::fillSSH() 472void 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}
483void KSyncPrefsDialog::fillFTP() 484void KSyncPrefsDialog::fillFTP()
@@ -556,48 +557,49 @@ void KSyncPrefsDialog::saveProfile()
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
592void KSyncPrefsDialog::insertProfiles() 594void 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 }