-rw-r--r-- | korganizer/mainwindow.cpp | 2 | ||||
-rw-r--r-- | korganizer/mainwindow.h | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index f2e1bf8..ebe761a 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp @@ -1910,64 +1910,66 @@ void MainWindow::enableQuick() connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); dia.show(); int res = dia.exec(); if ( res ) retfile = lab.text(); else return; dia.hide(); qApp->processEvents(); KOPrefs::instance()->mPassiveSyncPort = retfile; bool ok; Q_UINT16 port = retfile.toUInt(&ok); if ( ! ok ) { qDebug("no valid port "); return; } qDebug("port %d ", port); mServerSocket = new KServerSocket ( port ,1 ); qDebug("connected "); if ( !mServerSocket->ok() ) { qWarning("Failed to bind to port %d", port); delete mServerSocket; mServerSocket = 0; return; } 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(); qApp->processEvents(); qDebug("saving ... "); save(); 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(); diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h index 58081f6..9bb2302 100644 --- a/korganizer/mainwindow.h +++ b/korganizer/mainwindow.h @@ -18,65 +18,65 @@ class KSyncProfile; #define QPEMenuBar QMenuBar #endif class QPEToolBar; #include <qserversocket.h> #include <qsocket.h> #include <qnetworkprotocol.h> class KServerSocket : public QServerSocket { Q_OBJECT public: KServerSocket ( Q_UINT16 port, int backlog = 0, QObject * parent=0, const char * name=0 ) : QServerSocket( port, backlog, parent, name ){;}; void 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 ); } signals: void sendFile(QSocket*); void getFile(QSocket*); void endConnect(); private slots: void discardClient() { QSocket* socket = (QSocket*)sender(); delete socket; - emit endConnect(); + //emit endConnect(); } void readClient() { qDebug("readClient() "); QSocket* socket = (QSocket*)sender(); if ( socket->canReadLine() ) { QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), socket->readLine() ); if ( tokens[0] == "GET" ) { emit sendFile( socket ); } if ( tokens[0] == "PUT" ) { emit getFile( socket ); } if ( tokens[0] == "STOP" ) { emit endConnect(); } } } }; namespace KCal { class CalendarLocal; } using namespace KCal; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); |