summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/mainwindow.cpp52
-rw-r--r--korganizer/mainwindow.h2
2 files changed, 37 insertions, 17 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 460bbdc..f4ac0d6 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -2005,9 +2005,9 @@ void MainWindow::getFile(QSocket* socket)
qDebug("waiting1a %d %d ",ti.elapsed (), socket->bytesAvailable () );
//qApp->processEvents();
qDebug("waiting1b %d ",ti.elapsed () );
if ( !socket->canReadLine () ) {
- qDebug("waiting1c %d ",ti.elapsed () );
+ qDebug("waiting1c %d ",ti.elapsed () );
usleep( 100000);
}
//socket->waitForMore ( 100 );
}
@@ -2033,10 +2033,10 @@ void MainWindow::getFile(QSocket* socket)
#endif
#endif
}
setCaption( i18n("File received - reloading calendar...") );
- file.close();
socket->close();
+ file.close();
mView->watchSavedFile();
mView->openCalendar( defaultFileName() );
setCaption( i18n("Easy-Pi-Sync successful!") );
delete mSyncActionDialog;
@@ -2113,18 +2113,18 @@ void MainWindow::performQuickQuick()
void MainWindow::readFileFromSocket()
{
setCaption( i18n("Receiving remote file ...") );
qDebug("MainWindow::readFileFromSocket() ");
-QString fileName;
+ QString fileName;
#ifdef _WIN32_
fileName = defaultFileName() +"sync";
#else
fileName = "/tmp/kopitempfile.ics";
#endif
QFile file( fileName );
if (!file.open( IO_WriteOnly ) ) {
setCaption( i18n("Error: Cannot open temp file for write.") );
- qDebug("Error open calender file for writing: %s",fileName.latin1() );
+ qDebug("Error open temp calender file for writing: %s",fileName.latin1() );
return ;
}
//QTextStream os2( mCommandSocket );
@@ -2149,8 +2149,9 @@ QString fileName;
//mCommandSocket->waitForMore ( 5000 );
}
file.close();
mCommandSocket->close();
+ // pending: deleting after signal SIGNAL(delayedCloseFinished())
//delete mCommandSocket;
setCaption( i18n("Remote file saved to temp file.") );
//mCommandSocket = 0;
mCurrentSyncProfile = 2 ; // last file
@@ -2180,8 +2181,9 @@ QString fileName;
mCommandSocketFinish = new QSocket( this );
}
mCommandSocketFinish->connectToHost( KOPrefs::instance()->mActiveSyncIP, KOPrefs::instance()->mActiveSyncPort.toUInt() );
+ // pending connect signals connected () and error to new slots
QString host = KOPrefs::instance()->mActiveSyncIP;
QFile file2( fileName );
if (!file2.open( IO_ReadOnly ) ) {
setCaption( i18n("Error: Cannot open temp file for read.") );
@@ -2197,15 +2199,16 @@ QString fileName;
//os.setEncoding( QTextStream::UnicodeUTF8 );
if ( KOPrefs::instance()->mWriteBackFile ) {
os2 << "PUT\r\n";
while ( ! ts2.atEnd() ) {
- os2 << ts2.readLine() << "\n";
+ os2 << ts2.readLine() << "\n";
}
} else {
os2 << "STOP\r\n";
}
mCommandSocketFinish->close();
file.close();
+ // pending: deleting after signal SIGNAL(delayedCloseFinished())
//delete ( mCommandSocket);
//mCommandSocket = 0;
qDebug("Syncing succesful! ");
setCaption( i18n("Easy-Pi-Sync succesful!") );
@@ -2490,38 +2493,53 @@ void MainWindow::printCal()
}
-KServerSocket:: KServerSocket ( Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ){;};
+KServerSocket:: KServerSocket ( Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name )
+{
+
+ mSocket = 0;
+};
void KServerSocket::newConnection ( int socket )
{
qDebug("KServerSocket:New connection %d ", socket);
- QSocket* s = new QSocket( this );
- connect( s, SIGNAL(readyRead()), this, SLOT(readClient()) );
- connect( s, SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
- s->setSocket( socket );
+ if ( mSocket ) {
+ qDebug("KServerSocket::newConnection Socket deleted! ");
+ delete mSocket;
+ mSocket = 0;
+ }
+ mSocket = new QSocket( this );
+ connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) );
+ connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
+ mSocket->setSocket( socket );
}
void KServerSocket::discardClient()
{
qDebug(" KServerSocket::discardClient()");
- QSocket* socket = (QSocket*)sender();
- delete socket;
+ if ( mSocket ) {
+ qDebug("delete ");
+ delete mSocket;
+ mSocket = 0;
+ }
//emit endConnect();
}
void KServerSocket::readClient()
{
+ if ( mSocket == 0 ) {
+ qDebug("ERROR::KServerSocket::readClient(): mSocket == 0 ");
+ return;
+ }
qDebug("KServerSocket readClient()");
- QSocket* socket = (QSocket*)sender();
- if ( socket->canReadLine() ) {
- QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), socket->readLine() );
+ if ( mSocket->canReadLine() ) {
+ QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), mSocket->readLine() );
qDebug("KServerSocket socket->canReadLine()");
if ( tokens[0] == "GET" ) {
- emit sendFile( socket );
+ emit sendFile( mSocket );
}
if ( tokens[0] == "PUT" ) {
- emit getFile( socket );
+ emit getFile( mSocket );
}
if ( tokens[0] == "STOP" ) {
emit endConnect();
}
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index 7b4fd27..cc656a3 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -37,8 +37,10 @@ signals:
void endConnect();
private slots:
void discardClient();
void readClient();
+ private :
+ QSocket* mSocket;
};
namespace KCal {