summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2004-10-04 19:29:05 (UTC)
committer zautrix <zautrix>2004-10-04 19:29:05 (UTC)
commitdfc6d084410456037bf6f26f741e7b938085de88 (patch) (side-by-side diff)
tree6c05462c68067b37af3766020667328f8da839f8 /korganizer
parent144952942e57780587739a46253cc7305c79f27c (diff)
downloadkdepimpi-dfc6d084410456037bf6f26f741e7b938085de88.zip
kdepimpi-dfc6d084410456037bf6f26f741e7b938085de88.tar.gz
kdepimpi-dfc6d084410456037bf6f26f741e7b938085de88.tar.bz2
more sync
Diffstat (limited to 'korganizer') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/mainwindow.cpp230
-rw-r--r--korganizer/mainwindow.h13
2 files changed, 75 insertions, 168 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index da73caf..bce2a54 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -74,8 +74,6 @@ MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
#ifdef DESKTOP_VERSION
setFont( QFont("Arial"), 14 );
#endif
- mCommandSocket = 0;
- mCommandSocketFinish = 0;
mSyncActionDialog = 0;
mServerSocket = 0;
mClosed = false;
@@ -1942,49 +1940,7 @@ void MainWindow::enableQuick()
// connect( mServerSocket, SIGNAL ( sendFile(QSocket*) ), this, SLOT ( sendFile(QSocket*) ) );
//connect( mServerSocket, SIGNAL ( getFile(QSocket*) ), this, SLOT ( getFile(QSocket*) ) );
}
-void MainWindow::sendFile(QSocket* socket)
-{
- setCaption( i18n("Received request for file") );
- qDebug("MainWindow::sendFile(QSocket* s) ");
- if ( mSyncActionDialog )
- delete mSyncActionDialog;
- mSyncActionDialog = new QDialog ( this, "input-dialog", true );
- mSyncActionDialog->setCaption(i18n("KO/Pi - WARNING"));
- QLabel* label = new QLabel( i18n("Synchronizing...\nDo not use\nthis application!\n"), mSyncActionDialog );
- QVBoxLayout* lay = new QVBoxLayout( mSyncActionDialog );
- lay->addWidget( label);
- lay->setMargin(7);
- lay->setSpacing(7);
- mSyncActionDialog->setFixedSize( 200,100 );
- mSyncActionDialog->show();
- qDebug("saving ... ");
- save();
- qApp->processEvents();
- QString fileName = defaultFileName();
- QFile file( fileName );
- if (!file.open( IO_ReadOnly ) ) {
- setCaption( i18n("Error open file") );
- delete mSyncActionDialog;
- mSyncActionDialog = 0;
- qDebug("error open cal file ");
- return ;
- }
- setCaption( i18n("Sending file...") );
- QTextStream ts( &file );
- ts.setCodec( QTextCodec::codecForName("utf8") );
- QTextStream os( socket );
- os.setCodec( QTextCodec::codecForName("utf8") );
- //os.setEncoding( QTextStream::UnicodeUTF8 );
- while ( ! ts.atEnd() ) {
- os << ts.readLine() << "\n";
- }
- //os << ts.read();
- socket->close();
- file.close();
- setCaption( i18n("File sent. Waiting to get back synced file") );
- qDebug("file sent ");
-}
void MainWindow::getFile( bool success )
{
if ( ! success ) {
@@ -1996,70 +1952,9 @@ void MainWindow::getFile( bool success )
mView->openCalendar( defaultFileName() );
setCaption( i18n("Pi-Sync successful!") );
-
-#if 0
- setCaption( i18n("Receiving synced file...") );
-
- piTime.start();
- piSocket = socket;
- piFileString = "";
- QTimer::singleShot( 1, this , SLOT (readBackFileFromSocket( ) ));
-#endif
-
}
-void MainWindow::readBackFileFromSocket()
-{
- qDebug("readBackFileFromSocket() %d ", piTime.elapsed ());
- while ( piSocket->canReadLine () ) {
- piTime.restart();
- QString line = piSocket->readLine ();
- piFileString += line;
- qDebug("readline: %s ", line.latin1());
- setCaption( i18n("Received %1 bytes").arg( piFileString.length() ) );
- }
- if ( piTime.elapsed () < 3000 ) {
- // wait for more
- qDebug("waitformore ");
- QTimer::singleShot( 100, this , SLOT (readBackFileFromSocket( ) ));
- return;
- }
- QString fileName = defaultFileName();
- QFile file ( fileName );
- if (!file.open( IO_WriteOnly ) ) {
- setCaption( i18n("Error open file for writing!") );
- delete mSyncActionDialog;
- mSyncActionDialog = 0;
- qDebug("error open cal file ");
- piFileString = "";
- return ;
- }
-
- mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1));
- QTextStream ts ( &file );
- ts.setCodec( QTextCodec::codecForName("utf8") );
- qDebug("finish ");
- setCaption( i18n("Writing file to disk...") );
- ts << piFileString;
- setCaption( i18n("File received - reloading calendar...") );
- piSocket->close();
- file.close();
- mView->watchSavedFile();
- mView->openCalendar( defaultFileName() );
- setCaption( i18n("Pi-Sync successful!") );
- delete mSyncActionDialog;
- mSyncActionDialog = 0;
- piFileString = "";
-
-
-}
-void MainWindow::endConnect()
-{
- setCaption( i18n("No file received - syncing successful") );
- delete mSyncActionDialog;
- mSyncActionDialog = 0;
-}
void MainWindow::performQuick()
{
@@ -2115,8 +2010,8 @@ void MainWindow::performQuickQuick()
setCaption( i18n("Sorry, no valid port.Syncing cancelled.") );
return;
}
- mCommandSocket = new KCommandSocket( mPassWordPiSync, port, KOPrefs::instance()->mActiveSyncIP, this );
- connect( mCommandSocket, SIGNAL(commandFinished( bool )), this, SLOT(deleteCommandSocket(bool)) );
+ KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, KOPrefs::instance()->mActiveSyncIP, this );
+ connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, bool )), this, SLOT(deleteCommandSocket(KCommandSocket*,bool)) );
setCaption( i18n("Sending request for remote file ...") );
QString fileName;
#ifdef _WIN32_
@@ -2124,27 +2019,31 @@ void MainWindow::performQuickQuick()
#else
fileName = "/tmp/kopitempfile.ics";
#endif
- mCommandSocket->readFile( fileName );
+ commandSocket->readFile( fileName );
}
-void MainWindow::deleteCommandSocket( bool success)
+void MainWindow::deleteCommandSocket(KCommandSocket*s, bool success)
{
if ( ! success ) {
setCaption( i18n("ERROR:Receiving remote file failed.") );
+ delete s;
// pending : send stop
return;
}
QTimer::singleShot( 1, this , SLOT ( readFileFromSocket()));
- delete mCommandSocket;
+ qDebug("MainWindow::deleteCommandSocket ");
+ delete s;
}
-void MainWindow::deleteCommandSocketFinish()
+void MainWindow::deleteCommandSocketFinish(KCommandSocket* s, bool success )
{
- if ( ! mCommandSocketFinish)
- return;
- // KMessageBox::information( 0, i18n("MainWindow::deleteCommandSocketFinish() "));
- qDebug("MainWindow::deletemCommandSocketFinish() ");
- delete mCommandSocketFinish;
- mCommandSocketFinish = 0;
+ if ( ! success ) {
+ setCaption( i18n("ERROR:Writing back file failed.") );
+ } else {
+ qDebug("Syncing succesful! ");
+ setCaption( i18n("Pi-Sync succesful!") );
+ }
+ qDebug("MainWindow::deleteCommandSocketFinish ");
+ delete s;
}
void MainWindow::readFileFromSocket()
{
@@ -2183,43 +2082,12 @@ void MainWindow::readFileFromSocket()
return;
}
- if ( !mCommandSocketFinish ) {
- mCommandSocketFinish = new QSocket( this );
- connect( mCommandSocketFinish, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteCommandSocketFinish()) );
- }
- mCommandSocketFinish->connectToHost( KOPrefs::instance()->mActiveSyncIP, KOPrefs::instance()->mActiveSyncPort.toUInt() );
-
- QString host = KOPrefs::instance()->mActiveSyncIP;
- QFile file2( fileName );
- if (!file2.open( IO_ReadOnly ) ) {
- setCaption( i18n("Error: Cannot open temp file for read.") );
- qDebug("error open cal file ");
- return ;
-
- }
- QTextStream ts2( &file2 );
- ts2.setCodec( QTextCodec::codecForName("utf8") );
- QTextStream os2( mCommandSocketFinish );
- os2.setCodec( QTextCodec::codecForName("utf8") );
- //os.setEncoding( QTextStream::UnicodeUTF8 );
- if ( KOPrefs::instance()->mWriteBackFile ) {
- setCaption( i18n("Sending back synced file...") );
- os2 << "PUT " << mPassWordPiSync << "\r\n";;
- while ( ! ts2.atEnd() ) {
- os2 << ts2.readLine() << "\n";
- }
- } else {
- os2 << "STOP\r\n";
- }
- mCommandSocketFinish->close();
- if ( mCommandSocketFinish->state() == QSocket::Idle )
- QTimer::singleShot( 10, this , SLOT ( deleteCommandSocketFinish()));
- file2.close();
- qDebug("Syncing succesful! ");
- setCaption( i18n("Pi-Sync succesful!") );
-
- // KMessageBox::information( 0, i18n(" Pi-Sync succesful! "));
-
+ KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, KOPrefs::instance()->mActiveSyncPort.toUInt(), KOPrefs::instance()->mActiveSyncIP, this );
+ connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, bool )), this, SLOT(deleteCommandSocketFinish(KCommandSocket*,bool)) );
+ if ( KOPrefs::instance()->mWriteBackFile )
+ commandSocket->writeFile( fileName );
+ else
+ commandSocket->sendStop();
}
void MainWindow::syncLocalFile()
@@ -2560,11 +2428,16 @@ void KServerSocket::readClient()
}
}
if ( tokens[0] == "STOP" ) {
- emit endConnect();
+ //emit endConnect();
+ end_connect();
}
}
}
-
+void KServerSocket::end_connect()
+{
+ delete mSyncActionDialog;
+ mSyncActionDialog = 0;
+}
void KServerSocket::send_file()
{
qDebug("MainWindow::sendFile(QSocket* s) ");
@@ -2695,10 +2568,48 @@ void KCommandSocket::readFile( QString fn )
mTimerSocket->start( 10000 );
}
-void KCommandSocket::writeFile( QString )
+void KCommandSocket::writeFile( QString fileName )
{
+ QFile file2( fileName );
+ if (!file2.open( IO_ReadOnly ) ) {
+ mRetVal= false;
+ deleteSocket();
+ return ;
+
+ }
+ if ( !mSocket ) {
+ mSocket = new QSocket( this );
+ connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
+ }
+ QTextStream ts2( &file2 );
+ ts2.setCodec( QTextCodec::codecForName("utf8") );
+ QTextStream os2( mSocket );
+ os2.setCodec( QTextCodec::codecForName("utf8") );
+ os2 << "PUT " << mPassWord << "\r\n";;
+ while ( ! ts2.atEnd() ) {
+ os2 << ts2.readLine() << "\n";
+ }
+ mSocket->close();
+ if ( mSocket->state() == QSocket::Idle )
+ QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
+ file2.close();
+}
+void KCommandSocket::sendStop()
+{
+ if ( !mSocket ) {
+ mSocket = new QSocket( this );
+ connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
}
+ 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()));
+}
+
void KCommandSocket::startReadFileFromSocket()
{
if ( ! mFirst )
@@ -2752,16 +2663,15 @@ void KCommandSocket::readFileFromSocket()
void KCommandSocket::deleteSocket()
{
- if ( !mSocket)
- return;
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;
}
qDebug("KCommandSocket::deleteSocket() %d", mRetVal);
+ if ( mSocket)
delete mSocket;
mSocket = 0;
- emit commandFinished( mRetVal );
+ emit commandFinished( this, mRetVal );
}
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index 8b76067..5a67765 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -49,6 +49,7 @@ private slots:
private :
void send_file();
void get_file();
+ void end_connect();
QDialog* mSyncActionDialog;
QSocket* mSocket;
QString mPassWord;
@@ -65,10 +66,11 @@ public:
KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent=0, const char * name=0 );
void readFile( QString );
void writeFile( QString );
+ void sendStop();
signals:
- void commandFinished( bool );
+ void commandFinished( KCommandSocket*, bool );
private slots:
void startReadFileFromSocket();
void readFileFromSocket();
@@ -160,19 +162,14 @@ class MainWindow : public QMainWindow
QSocket* piSocket;
QString piFileString;
QTime piTime;
- void deleteCommandSocket(bool);
- void deleteCommandSocketFinish();
+ void deleteCommandSocket(KCommandSocket* s, bool success);
+ void deleteCommandSocketFinish(KCommandSocket* s, bool success);
void fillSyncMenu();
- void sendFile(QSocket* s);
void getFile( bool );
void readFileFromSocket();
- void readBackFileFromSocket();
- void endConnect();
private:
//QTimer* mTimerCommandSocket;
QString mPassWordPiSync;
- KCommandSocket* mCommandSocket;
- QSocket* mCommandSocketFinish;
KServerSocket * mServerSocket;
bool mClosed;
void saveOnClose();