-rw-r--r-- | korganizer/mainwindow.cpp | 113 | ||||
-rw-r--r-- | korganizer/mainwindow.h | 10 |
2 files changed, 48 insertions, 75 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,20 +1932,18 @@ 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; mServerSocket = 0; return; } - connect( mServerSocket, SIGNAL ( saveFile() ), this, SLOT ( save() ) ); + 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,92 +1968,60 @@ void MainWindow::syncPi() void MainWindow::performQuickQuick() { - // setCaption( i18n("") ); - bool ok; Q_UINT16 port = KOPrefs::instance()->mActiveSyncPort.toUInt(&ok); if ( ! ok ) { setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); return; } - KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, KOPrefs::instance()->mActiveSyncIP, this ); - connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, bool )), this, SLOT(deleteCommandSocket(KCommandSocket*,bool)) ); + KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, KOPrefs::instance()->mActiveSyncIP, this ); + 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 ) { - setCaption( i18n("ERROR:Receiving remote file failed.") ); + 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) diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h index 90b3a88..4da371e 100644 --- a/korganizer/mainwindow.h +++ b/korganizer/mainwindow.h @@ -61,8 +61,8 @@ private slots: class KCommandSocket : public QObject { Q_OBJECT - public: + enum state { successR, errorR, successW, errorW, quiet }; KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent=0, const char * name=0 ); void readFile( QString ); void writeFile( QString ); @@ -70,7 +70,7 @@ public: signals: - void commandFinished( KCommandSocket*, bool ); + void commandFinished( KCommandSocket*, int ); private slots: void startReadFileFromSocket(); void readFileFromSocket(); @@ -83,7 +83,7 @@ private slots: QString mHost; QString mFileName; QTimer* mTimerSocket; - bool mRetVal; + int mRetVal; QTime mTime; QString mFileString; bool mFirst; @@ -106,6 +106,7 @@ class MainWindow : public QMainWindow void configureAgenda( int ); void recieve( const QCString& msg, const QByteArray& data ); static QString defaultFileName(); + static QString syncFileName(); static QString resourcePath(); protected slots: void setCaptionToDates(); @@ -164,8 +165,7 @@ class MainWindow : public QMainWindow QSocket* piSocket; QString piFileString; QTime piTime; - void deleteCommandSocket(KCommandSocket* s, bool success); - void deleteCommandSocketFinish(KCommandSocket* s, bool success); + void deleteCommandSocket(KCommandSocket* s, int state ); void fillSyncMenu(); void getFile( bool ); void readFileFromSocket(); |