-rw-r--r-- | korganizer/mainwindow.cpp | 105 |
1 files changed, 39 insertions, 66 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index b7176a1..5aa75f5 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp @@ -1283,6 +1283,14 @@ QString MainWindow::defaultFileName() { return locateLocal( "data", "korganizer/mycalendar.ics" ); } +QString MainWindow::syncFileName() +{ +#ifdef _WIN32_ + return locateLocal( "tmp", "synccalendar.ics" ); +#else + return QString( "/tmp/kopitempfile.ics" ); +#endif +} void MainWindow::processIncidenceSelection( Incidence *incidence ) { @@ -1924,10 +1932,10 @@ void MainWindow::enableQuick() KMessageBox::information( this, i18n("No valid port")); return; } - qDebug("port %d ", port); + //qDebug("port %d ", port); mServerSocket = new KServerSocket ( passWordPiSync, port ,1 ); mServerSocket->setFileName( defaultFileName() ); - qDebug("connected "); + //qDebug("connected "); if ( !mServerSocket->ok() ) { qWarning("Failed to bind to port %d", port); delete mServerSocket; @@ -1936,8 +1944,6 @@ void MainWindow::enableQuick() } connect( mServerSocket, SIGNAL ( saveFile() ), this, SLOT ( save() ) ); connect( mServerSocket, SIGNAL ( file_received( bool ) ), this, SLOT ( getFile( bool ) ) ); - // connect( mServerSocket, SIGNAL ( sendFile(QSocket*) ), this, SLOT ( sendFile(QSocket*) ) ); - //connect( mServerSocket, SIGNAL ( getFile(QSocket*) ), this, SLOT ( getFile(QSocket*) ) ); } void MainWindow::getFile( bool success ) @@ -1962,8 +1968,6 @@ void MainWindow::syncPi() void MainWindow::performQuickQuick() { - // setCaption( i18n("") ); - bool ok; Q_UINT16 port = KOPrefs::instance()->mActiveSyncPort.toUInt(&ok); if ( ! ok ) { @@ -1971,83 +1975,53 @@ void MainWindow::performQuickQuick() return; } KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, KOPrefs::instance()->mActiveSyncIP, this ); - connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, bool )), this, SLOT(deleteCommandSocket(KCommandSocket*,bool)) ); + connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); setCaption( i18n("Sending request for remote file ...") ); - QString fileName; -#ifdef _WIN32_ - fileName = defaultFileName() +"sync"; -#else - fileName = "/tmp/kopitempfile.ics"; -#endif - commandSocket->readFile( fileName ); + commandSocket->readFile( syncFileName() ); } -void MainWindow::deleteCommandSocket(KCommandSocket*s, bool success) +void MainWindow::deleteCommandSocket(KCommandSocket*s, int state) { - if ( ! success ) { + qDebug("MainWindow::deleteCommandSocket %d", state); + + //enum { success, errorW, errorR, quiet }; + if ( state == KCommandSocket::errorR ) { setCaption( i18n("ERROR:Receiving remote file failed.") ); delete s; - // pending : send stop + KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, KOPrefs::instance()->mActiveSyncPort.toUInt(), KOPrefs::instance()->mActiveSyncIP, this ); + connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); + commandSocket->sendStop(); return; - } - QTimer::singleShot( 1, this , SLOT ( readFileFromSocket())); - qDebug("MainWindow::deleteCommandSocket "); - delete s; -} -void MainWindow::deleteCommandSocketFinish(KCommandSocket* s, bool success ) -{ - if ( ! success ) { + } else if ( state == KCommandSocket::errorW ) { setCaption( i18n("ERROR:Writing back file failed.") ); - } else { - qDebug("Syncing succesful! "); + + } else if ( state == KCommandSocket::successR ) { + QTimer::singleShot( 1, this , SLOT ( readFileFromSocket())); + + } else if ( state == KCommandSocket::successW ) { setCaption( i18n("Pi-Sync succesful!") ); } - qDebug("MainWindow::deleteCommandSocketFinish "); + delete s; } + void MainWindow::readFileFromSocket() { - // mTimerCommandSocket->stop(); - setCaption( i18n("Receiving remote file ...") ); - qDebug("MainWindow::readFileFromSocket() "); - QString fileName; -#ifdef _WIN32_ - fileName = defaultFileName() +"sync"; -#else - fileName = "/tmp/kopitempfile.ics"; -#endif - - setCaption( i18n("Remote file saved to temp file.") ); - //mCommandSocket = 0; - mCurrentSyncProfile = 2 ; // last file - mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); - mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); - KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); - KSyncProfile* temp = new KSyncProfile (); - temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); - temp->readConfig(&config); - KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); - KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); - KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); - KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); - KOPrefs::instance()->mWriteBackInFuture = 0; - if ( temp->getWriteBackFuture() ) - KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); - KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); - delete temp; + QString fileName = syncFileName(); setCaption( i18n("Remote file saved to temp file.") ); if ( ! syncWithFile( fileName , true ) ) { setCaption( i18n("Syncing failed.") ); qDebug("Syncing failed "); return; } - KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, KOPrefs::instance()->mActiveSyncPort.toUInt(), KOPrefs::instance()->mActiveSyncIP, this ); - connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, bool )), this, SLOT(deleteCommandSocketFinish(KCommandSocket*,bool)) ); + connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); if ( KOPrefs::instance()->mWriteBackFile ) commandSocket->writeFile( fileName ); - else + else { commandSocket->sendStop(); + setCaption( i18n("Pi-Sync succesful!") ); + } } void MainWindow::syncLocalFile() @@ -2503,7 +2477,7 @@ KCommandSocket::KCommandSocket ( QString password, Q_UINT16 port, QString host, mPort = port; mHost = host; - mRetVal = false; + mRetVal = quiet; mTimerSocket = new QTimer ( this ); connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( deleteSocket() ) ); } @@ -2538,7 +2512,7 @@ void KCommandSocket::writeFileToSocket() { QFile file2( mFileName ); if (!file2.open( IO_ReadOnly ) ) { - mRetVal= false; + mRetVal= errorW; mSocket->close(); if ( mSocket->state() == QSocket::Idle ) QTimer::singleShot( 10, this , SLOT ( deleteSocket())); @@ -2552,7 +2526,7 @@ void KCommandSocket::writeFileToSocket() while ( ! ts2.atEnd() ) { os2 << ts2.readLine() << "\n"; } - mRetVal= true; + mRetVal= successW; file2.close(); mSocket->close(); if ( mSocket->state() == QSocket::Idle ) @@ -2568,7 +2542,6 @@ void KCommandSocket::sendStop() QTextStream os2( mSocket ); os2.setCodec( QTextCodec::codecForName("utf8") ); os2 << "STOP\r\n"; - mRetVal= true; mSocket->close(); if ( mSocket->state() == QSocket::Idle ) QTimer::singleShot( 10, this , SLOT ( deleteSocket())); @@ -2604,7 +2577,7 @@ void KCommandSocket::readFileFromSocket() QFile file ( fileName ); if (!file.open( IO_WriteOnly ) ) { mFileString = ""; - mRetVal = false; + mRetVal = errorR; qDebug("Error open temp calender file for writing: %s",fileName.latin1() ); deleteSocket(); return ; @@ -2616,7 +2589,7 @@ void KCommandSocket::readFileFromSocket() ts << mFileString; file.close(); mFileString = ""; - mRetVal = true; + mRetVal = successR; mSocket->close(); // if state is not idle, deleteSocket(); is called via // connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); @@ -2629,7 +2602,7 @@ void KCommandSocket::deleteSocket() if ( mTimerSocket->isActive () ) { mTimerSocket->stop(); KMessageBox::information( 0, i18n("ERROR:\nConnection to remote host timed out!\nDid you forgot to enable\nsyncing on remote host? ")); - mRetVal = false; + mRetVal = errorR; } //qDebug("KCommandSocket::deleteSocket() %d", mRetVal ); if ( mSocket) |