author | zautrix <zautrix> | 2004-10-07 07:28:54 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-10-07 07:28:54 (UTC) |
commit | 77280f6a176a15b60004f312e6cacdfbbd3909c1 (patch) (side-by-side diff) | |
tree | e074d4abedc2f4cc575e5655575e038b9d460106 /korganizer/mainwindow.cpp | |
parent | f1eb5b74c962909851607c4b4cb05ee18a347d37 (diff) | |
download | kdepimpi-77280f6a176a15b60004f312e6cacdfbbd3909c1.zip kdepimpi-77280f6a176a15b60004f312e6cacdfbbd3909c1.tar.gz kdepimpi-77280f6a176a15b60004f312e6cacdfbbd3909c1.tar.bz2 |
sync changes
-rw-r--r-- | korganizer/mainwindow.cpp | 321 |
1 files changed, 0 insertions, 321 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 9104347..e3324ee 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp @@ -69,129 +69,128 @@ using namespace KCal; #include "koimportoldialog.h" #endif #include "mainwindow.h" class KOex2phonePrefs : public QDialog { public: KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) : QDialog( parent, name, true ) { setCaption( i18n("Export to phone options") ); QVBoxLayout* lay = new QVBoxLayout( this ); lay->setSpacing( 3 ); lay->setMargin( 3 ); QLabel *lab; lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); lab->setAlignment (AlignHCenter ); QHBox* temphb; temphb = new QHBox( this ); new QLabel( i18n("I/O device: "), temphb ); mPhoneDevice = new QLineEdit( temphb); lay->addWidget( temphb ); temphb = new QHBox( this ); new QLabel( i18n("Connection: "), temphb ); mPhoneConnection = new QLineEdit( temphb); lay->addWidget( temphb ); temphb = new QHBox( this ); new QLabel( i18n("Model(opt.): "), temphb ); mPhoneModel = new QLineEdit( temphb); lay->addWidget( temphb ); mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); mWriteBackFuture->setChecked( true ); lay->addWidget( mWriteBackFuture ); temphb = new QHBox( this ); new QLabel( i18n("Max. weeks in future: ") , temphb ); mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); mWriteBackFutureWeeks->setValue( 8 ); lay->addWidget( temphb ); lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) ); lab->setAlignment (AlignHCenter ); QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); lay->addWidget( ok ); QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); lay->addWidget( cancel ); connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); resize( 220, 240 ); } public: QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; QCheckBox* mWriteBackFuture; QSpinBox* mWriteBackFutureWeeks; }; int globalFlagBlockStartup; MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : QMainWindow( parent, name ) { mPassWordPiSync = "abc"; #ifdef DESKTOP_VERSION setFont( QFont("Arial"), 14 ); #endif - mSyncActionDialog = 0; mServerSocket = 0; mClosed = false; //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; QString confFile = locateLocal("config","korganizerrc"); QFileInfo finf ( confFile ); bool showWarning = !finf.exists(); setIcon(SmallIcon( "ko24" ) ); mBlockAtStartup = true; mFlagKeyPressed = false; setCaption("KOrganizer/Pi"); KOPrefs *p = KOPrefs::instance(); KPimGlobalPrefs::instance()->setGlobalConfig(); // if ( QApplication::desktop()->height() > 480 ) { // if ( p->mHourSize == 4 ) // p->mHourSize = 6; // } if ( p->mHourSize > 18 ) p->mHourSize = 18; QMainWindow::ToolBarDock tbd; if ( p->mToolBarHor ) { if ( p->mToolBarUp ) tbd = Bottom; else tbd = Top; } else { if ( p->mToolBarUp ) tbd = Right; else tbd = Left; } if ( KOPrefs::instance()->mUseAppColors ) QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); globalFlagBlockStartup = 1; iconToolBar = new QPEToolBar( this ); addToolBar (iconToolBar , tbd ); mBlockSaveFlag = false; mCalendarModifiedFlag = false; QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); splash->setAlignment ( AlignCenter ); setCentralWidget( splash ); #ifndef DESKTOP_VERSION showMaximized(); #endif //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); setDefaultPreferences(); mCalendar = new CalendarLocal(); mView = new CalendarView( mCalendar, this,"mCalendar " ); mView->hide(); //mView->resize(splash->size() ); initActions(); #ifndef DESKTOP_VERSION iconToolBar->show(); qApp->processEvents(); #endif //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); int vh = height() ; int vw = width(); //qDebug("Toolbar hei %d ",iconToolBar->height() ); if ( iconToolBar->orientation () == Qt:: Horizontal ) { vh -= iconToolBar->height(); } else { vw -= iconToolBar->height(); @@ -2286,384 +2285,64 @@ void MainWindow::syncRemote( KSyncProfile* prof, bool ask) } question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ; QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), question, i18n("Okay!")) ; setCaption ("KO/Pi"); return; } setCaption ( i18n( "Copying succeed." ) ); //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); if ( syncWithFile( prof->getLocalTempFile(), true ) ) { // Event* e = mView->getLastSyncEvent(); // e->setReadOnly( false ); // e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); // e->setReadOnly( true ); if ( KOPrefs::instance()->mWriteBackFile ) { command = prof->getPostSyncCommand(); int fi; if ( (fi = command.find("$PWD$")) > 0 ) { QString pwd = getPassword(); command = command.left( fi )+ pwd + command.mid( fi+5 ); } setCaption ( i18n( "Writing back file ..." ) ); result = system ( command ); qDebug("KO: Writing back file result: %d ", result); if ( result != 0 ) { setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); return; } else { setCaption ( i18n( "Syncronization sucessfully completed" ) ); } } } return; } void MainWindow::syncSharp() { if ( mCalendarModifiedFlag ) save(); mView->syncSharp(); slotModifiedChanged( true ); } void MainWindow::syncPhone() { if ( mCalendarModifiedFlag ) save(); mView->syncPhone(); slotModifiedChanged( true ); } void MainWindow::printSel( ) { mView->viewManager()->agendaView()->agenda()->printSelection(); } void MainWindow::printCal() { mView->print();//mCp->showDialog(); } - - -KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ) -{ - mPassWord = pw; - mSocket = 0; - mSyncActionDialog = 0; - blockRC = false; -}; - -void KServerSocket::newConnection ( int socket ) -{ - // qDebug("KServerSocket:New connection %d ", 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()"); - if ( mSocket ) { - delete mSocket; - mSocket = 0; - } - //emit endConnect(); -} -void KServerSocket::readClient() -{ - if ( blockRC ) - return; - if ( mSocket == 0 ) { - qDebug("ERROR::KServerSocket::readClient(): mSocket == 0 "); - return; - } - qDebug("KServerSocket readClient()"); - if ( mSocket->canReadLine() ) { - QString line = mSocket->readLine(); - qDebug("KServerSocket readline: %s ", line.latin1()); - QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), line ); - if ( tokens[0] == "GET" ) { - if ( tokens[1] == mPassWord ) - //emit sendFile( mSocket ); - send_file(); - else { - KMessageBox::information( 0, i18n("ERROR:\nGot send file request\nwith invalid password")); - qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() ); - } - } - if ( tokens[0] == "PUT" ) { - if ( tokens[1] == mPassWord ) { - //emit getFile( mSocket ); - blockRC = true; - get_file(); - } - else { - KMessageBox::information( 0, i18n("ERROR:\nGot receive file request\nwith invalid password")); - qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() ); - } - } - if ( tokens[0] == "STOP" ) { - //emit endConnect(); - end_connect(); - } - } -} -void KServerSocket::end_connect() -{ - delete mSyncActionDialog; - mSyncActionDialog = 0; -} -void KServerSocket::send_file() -{ - //qDebug("MainWindow::sendFile(QSocket* s) "); - if ( mSyncActionDialog ) - delete mSyncActionDialog; - mSyncActionDialog = new QDialog ( 0, "input-dialog", true ); - mSyncActionDialog->setCaption(i18n("Received sync request")); - QLabel* label = new QLabel( i18n("Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog."), mSyncActionDialog ); - QVBoxLayout* lay = new QVBoxLayout( mSyncActionDialog ); - lay->addWidget( label); - lay->setMargin(7); - lay->setSpacing(7); - mSyncActionDialog->setFixedSize( 230, 120); - mSyncActionDialog->show(); - qDebug("KSS::saving ... "); - emit saveFile(); - qApp->processEvents(); - QString fileName = mFileName; - QFile file( fileName ); - if (!file.open( IO_ReadOnly ) ) { - delete mSyncActionDialog; - mSyncActionDialog = 0; - qDebug("KSS::error open file "); - mSocket->close(); - if ( mSocket->state() == QSocket::Idle ) - QTimer::singleShot( 10, this , SLOT ( discardClient())); - return ; - - } - mSyncActionDialog->setCaption( i18n("Sending file...") ); - QTextStream ts( &file ); - ts.setCodec( QTextCodec::codecForName("utf8") ); - QTextStream os( mSocket ); - os.setCodec( QTextCodec::codecForName("utf8") ); - //os.setEncoding( QTextStream::UnicodeUTF8 ); - while ( ! ts.atEnd() ) { - os << ts.readLine() << "\n"; - } - //os << ts.read(); - file.close(); - mSyncActionDialog->setCaption( i18n("Waiting for synced file...") ); - mSocket->close(); - if ( mSocket->state() == QSocket::Idle ) - QTimer::singleShot( 10, this , SLOT ( discardClient())); -} -void KServerSocket::get_file() -{ - mSyncActionDialog->setCaption( i18n("Receiving synced file...") ); - - piTime.start(); - piFileString = ""; - QTimer::singleShot( 1, this , SLOT (readBackFileFromSocket( ) )); -} - - -void KServerSocket::readBackFileFromSocket() -{ - //qDebug("readBackFileFromSocket() %d ", piTime.elapsed ()); - while ( mSocket->canReadLine () ) { - piTime.restart(); - QString line = mSocket->readLine (); - piFileString += line; - //qDebug("readline: %s ", line.latin1()); - mSyncActionDialog->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 = mFileName; - QFile file ( fileName ); - if (!file.open( IO_WriteOnly ) ) { - delete mSyncActionDialog; - mSyncActionDialog = 0; - qDebug("error open cal file "); - piFileString = ""; - emit file_received( false ); - blockRC = false; - return ; - - } - - // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); - QTextStream ts ( &file ); - ts.setCodec( QTextCodec::codecForName("utf8") ); - mSyncActionDialog->setCaption( i18n("Writing file to disk...") ); - ts << piFileString; - mSocket->close(); - if ( mSocket->state() == QSocket::Idle ) - QTimer::singleShot( 10, this , SLOT ( discardClient())); - file.close(); - delete mSyncActionDialog; - mSyncActionDialog = 0; - piFileString = ""; - blockRC = false; - emit file_received( true ); - -} - -KCommandSocket::KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent, const char * name ): QObject( parent, name ) -{ - mPassWord = password; - mSocket = 0; - mPort = port; - mHost = host; - - mRetVal = quiet; - mTimerSocket = new QTimer ( this ); - connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( deleteSocket() ) ); -} -void KCommandSocket::readFile( QString fn ) -{ - if ( !mSocket ) { - mSocket = new QSocket( this ); - connect( mSocket, SIGNAL(readyRead()), this, SLOT(startReadFileFromSocket()) ); - connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); - } - mFileString = ""; - mFileName = fn; - mFirst = true; - mSocket->connectToHost( mHost, mPort ); - QTextStream os( mSocket ); - os.setEncoding( QTextStream::UnicodeUTF8 ); - os << "GET " << mPassWord << "\r\n"; - mTimerSocket->start( 10000 ); -} - -void KCommandSocket::writeFile( QString fileName ) -{ - if ( !mSocket ) { - mSocket = new QSocket( this ); - connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); - connect( mSocket, SIGNAL(connected ()), this, SLOT(writeFileToSocket()) ); - } - mFileName = fileName ; - mSocket->connectToHost( mHost, mPort ); -} -void KCommandSocket::writeFileToSocket() -{ - QFile file2( mFileName ); - if (!file2.open( IO_ReadOnly ) ) { - mRetVal= errorW; - mSocket->close(); - if ( mSocket->state() == QSocket::Idle ) - QTimer::singleShot( 10, this , SLOT ( deleteSocket())); - return ; - } - 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"; - } - mRetVal= successW; - file2.close(); - mSocket->close(); - if ( mSocket->state() == QSocket::Idle ) - QTimer::singleShot( 10, this , SLOT ( deleteSocket())); -} -void KCommandSocket::sendStop() -{ - if ( !mSocket ) { - mSocket = new QSocket( this ); - connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); - } - mSocket->connectToHost( mHost, mPort ); - QTextStream os2( mSocket ); - os2.setCodec( QTextCodec::codecForName("utf8") ); - os2 << "STOP\r\n"; - mSocket->close(); - if ( mSocket->state() == QSocket::Idle ) - QTimer::singleShot( 10, this , SLOT ( deleteSocket())); -} - -void KCommandSocket::startReadFileFromSocket() -{ - if ( ! mFirst ) - return; - mFirst = false; - mTimerSocket->stop(); - mFileString = ""; - mTime.start(); - QTimer::singleShot( 1, this , SLOT (readFileFromSocket( ) )); - -} -void KCommandSocket::readFileFromSocket() -{ - //qDebug("readBackFileFromSocket() %d ", mTime.elapsed ()); - while ( mSocket->canReadLine () ) { - mTime.restart(); - QString line = mSocket->readLine (); - mFileString += line; - //qDebug("readline: %s ", line.latin1()); - } - if ( mTime.elapsed () < 3000 ) { - // wait for more - //qDebug("waitformore "); - QTimer::singleShot( 100, this , SLOT (readFileFromSocket( ) )); - return; - } - QString fileName = mFileName; - QFile file ( fileName ); - if (!file.open( IO_WriteOnly ) ) { - mFileString = ""; - mRetVal = errorR; - qDebug("Error open temp calender file for writing: %s",fileName.latin1() ); - deleteSocket(); - return ; - - } - // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); - QTextStream ts ( &file ); - ts.setCodec( QTextCodec::codecForName("utf8") ); - ts << mFileString; - file.close(); - mFileString = ""; - mRetVal = successR; - mSocket->close(); - // if state is not idle, deleteSocket(); is called via - // connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); - if ( mSocket->state() == QSocket::Idle ) - deleteSocket(); -} - -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 = errorR; - } - //qDebug("KCommandSocket::deleteSocket() %d", mRetVal ); - if ( mSocket) - delete mSocket; - mSocket = 0; - emit commandFinished( this, mRetVal ); -} - |