author | zautrix <zautrix> | 2004-10-07 19:42:44 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-10-07 19:42:44 (UTC) |
commit | 0a661f5800b86df385cc23f4c9a8324bd0b50a5c (patch) (side-by-side diff) | |
tree | fcc17cfad0ffd022a4b92974bc53d39ba3f650de | |
parent | 1f1538e5707b59bfcff2014901f29a65589229e3 (diff) | |
download | kdepimpi-0a661f5800b86df385cc23f4c9a8324bd0b50a5c.zip kdepimpi-0a661f5800b86df385cc23f4c9a8324bd0b50a5c.tar.gz kdepimpi-0a661f5800b86df385cc23f4c9a8324bd0b50a5c.tar.bz2 |
sync fix
-rw-r--r-- | libkdepim/ksyncmanager.cpp | 126 | ||||
-rw-r--r-- | libkdepim/ksyncmanager.h | 93 |
2 files changed, 100 insertions, 119 deletions
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp index 568c2a9..01309d5 100644 --- a/libkdepim/ksyncmanager.cpp +++ b/libkdepim/ksyncmanager.cpp @@ -1,26 +1,26 @@ /* - This file is part of KDE-Pim/Pi. - Copyright (c) 2004 Ulf Schenk - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + This file is part of KDE-Pim/Pi. + Copyright (c) 2004 Ulf Schenk + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ // $Id$ #include "ksyncmanager.h" #include <stdlib.h> @@ -68,17 +68,17 @@ KSyncManager::KSyncManager(QWidget* parent, KSyncInterface* implementation, Targ int dw = QApplication::desktop()->width(); int dh = QApplication::desktop()->height(); bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); } KSyncManager::~KSyncManager() { - delete bar; + delete bar; } void KSyncManager::fillSyncMenu() { if ( mSyncMenu->count() ) mSyncMenu->clear(); @@ -160,17 +160,17 @@ void KSyncManager::slotSyncMenu( int action ) if ( action == 3 ) { delete mServerSocket; mServerSocket = 0; QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); return; } if (blockSave()) - return; + return; setBlockSave(true); mCurrentSyncProfile = action - 1000 ; mCurrentSyncDevice = mSyncProfileNames[mCurrentSyncProfile] ; mCurrentSyncName = mLocalMachineName ; KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); KSyncProfile* temp = new KSyncProfile (); @@ -295,32 +295,32 @@ void KSyncManager::enableQuick() } void KSyncManager::syncLocalFile() { QString fn =mPrefs->mLastSyncedLocalFile; QString ext; - switch(mTargetApp) - { + switch(mTargetApp) + { case (KAPI): - ext = "(*.vcf)"; - break; + ext = "(*.vcf)"; + break; case (KOPI): - ext = "(*.ics/*.vcs)"; - break; + ext = "(*.ics/*.vcs)"; + break; case (PWMPI): - ext = "(*.pwm)"; - break; + ext = "(*.pwm)"; + break; default: - qDebug("KSyncManager::syncLocalFile: invalid apptype selected"); - break; + qDebug("KSyncManager::syncLocalFile: invalid apptype selected"); + break; - } + } fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename"+ext), mParent ); if ( fn == "" ) return; if ( syncWithFile( fn, false ) ) { qDebug("syncLocalFile() successful "); } @@ -385,17 +385,17 @@ void KSyncManager::multiSync( bool askforPrefs ) setBlockSave(false); mParent->topLevelWidget()->setCaption(i18n("Aborted! Nothing synced!")); return; } mCurrentSyncDevice = i18n("Multiple profiles") ; mSyncAlgoPrefs = mPrefs->mRingSyncAlgoPrefs; if ( askforPrefs ) { edit_sync_options(); - mRingSyncAlgoPrefs = mSyncAlgoPrefs; + mPrefs->mRingSyncAlgoPrefs = mSyncAlgoPrefs; } mParent->topLevelWidget()->setCaption(i18n("Multiple sync started.") ); qApp->processEvents(); int num = ringSync() ; if ( num > 1 ) ringSync(); setBlockSave(false); if ( num ) @@ -515,22 +515,22 @@ int KSyncManager::ringSync() delete temp; return syncedProfiles; } void KSyncManager::syncRemote( KSyncProfile* prof, bool ask) { QString question; if ( ask ) { - question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n"; - if ( QMessageBox::information( mParent, i18n("Sync"), - question, - i18n("Yes"), i18n("No"), - 0, 0 ) != 0 ) - return; + question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n"; + if ( QMessageBox::information( mParent, i18n("Sync"), + question, + i18n("Yes"), i18n("No"), + 0, 0 ) != 0 ) + return; } QString preCommand; QString localTempFile; QString postCommand; switch(mTargetApp) { @@ -734,35 +734,35 @@ void KSyncManager::syncPhone() { syncExternalApplication("phone"); } void KSyncManager::showProgressBar(int percentage, QString caption, int total) { - if (!bar->isVisible()) - { - bar->setCaption (caption); - bar->setTotalSteps ( total ) ; + if (!bar->isVisible()) + { + bar->setCaption (caption); + bar->setTotalSteps ( total ) ; - bar->show(); - } + bar->show(); + } - bar->setProgress( percentage ); + bar->setProgress( percentage ); } void KSyncManager::hideProgressBar() { - bar->hide(); + bar->hide(); } bool KSyncManager::isProgressBarCanceled() { - return !bar->isVisible(); + return !bar->isVisible(); } QString KSyncManager::syncFileName() { QString fn = "tempfile"; switch(mTargetApp) { @@ -802,33 +802,33 @@ void KSyncManager::syncPi() } void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state) { qDebug("MainWindow::deleteCommandSocket %d", state); //enum { success, errorW, errorR, quiet }; if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ) { - mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") ); + mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") ); delete s; - if ( state == KCommandSocket::errorR ) { - KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this ); - connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); - commandSocket->sendStop(); - } + if ( state == KCommandSocket::errorR ) { + KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this ); + connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); + commandSocket->sendStop(); + } return; } else if ( state == KCommandSocket::errorW ) { - mParent->topLevelWidget()->setCaption( i18n("ERROR:Writing back file failed.") ); + mParent->topLevelWidget()->setCaption( i18n("ERROR:Writing back file failed.") ); } else if ( state == KCommandSocket::successR ) { QTimer::singleShot( 1, this , SLOT ( readFileFromSocket())); } else if ( state == KCommandSocket::successW ) { - mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") ); + mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") ); } delete s; } void KSyncManager::readFileFromSocket() { QString fileName = syncFileName(); @@ -1151,24 +1151,24 @@ void KCommandSocket::readFileFromSocket() // 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 = errorTO; - if ( mSocket ) { - mSocket->close(); - if ( mSocket->state() == QSocket::Idle ) - deleteSocket(); - return; - } + mTimerSocket->stop(); + KMessageBox::information( 0, i18n("ERROR:\nConnection to remote host timed out!\nDid you forgot to enable\nsyncing on remote host? ")); + mRetVal = errorTO; + if ( mSocket ) { + mSocket->close(); + if ( mSocket->state() == QSocket::Idle ) + deleteSocket(); + return; + } } //qDebug("KCommandSocket::deleteSocket() %d", mRetVal ); if ( mSocket) delete mSocket; mSocket = 0; emit commandFinished( this, mRetVal ); } diff --git a/libkdepim/ksyncmanager.h b/libkdepim/ksyncmanager.h index 7027894..1f7c7e7 100644 --- a/libkdepim/ksyncmanager.h +++ b/libkdepim/ksyncmanager.h @@ -1,28 +1,28 @@ /* - This file is part of KDE-Pim/Pi. - Copyright (c) 2004 Ulf Schenk + This file is part of KDE-Pim/Pi. + Copyright (c) 2004 Ulf Schenk - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. -$Id$ + $Id$ */ #ifndef _KSYNCMANAGER_H #define _KSYNCMANAGER_H #include <qobject.h> #include <qstring.h> #include <qsocket.h> #include <qdatetime.h> @@ -38,28 +38,27 @@ class KSyncManager; class KSyncInterface; class QProgressBar; class KServerSocket : public QServerSocket { Q_OBJECT -public: + public: KServerSocket ( QString password, Q_UINT16 port, int backlog = 0, QObject * parent=0, const char * name=0 ); void newConnection ( int socket ) ; void setFileName( QString fn ) {mFileName = fn;}; - -signals: + signals: void file_received( bool ); void request_file(); void saveFile(); void endConnect(); -private slots: + private slots: void discardClient(); void readClient(); void readBackFileFromSocket(); private : bool blockRC; void send_file(); void get_file(); void end_connect(); @@ -69,27 +68,26 @@ private slots: QString mFileName; QTime piTime; QString piFileString; }; class KCommandSocket : public QObject { Q_OBJECT -public: + public: enum state { successR, errorR, successW, errorW, errorTO, quiet }; KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent=0, const char * name=0 ); void readFile( QString ); void writeFile( QString ); void sendStop(); - - -signals: + + signals: void commandFinished( KCommandSocket*, int ); -private slots: + private slots: void startReadFileFromSocket(); void readFileFromSocket(); void deleteSocket(); void writeFileToSocket(); private : QSocket* mSocket; QString mPassWord; Q_UINT16 mPort; @@ -100,127 +98,110 @@ private slots: QTime mTime; QString mFileString; bool mFirst; }; class KSyncManager : public QObject { - Q_OBJECT + Q_OBJECT - public: + public: enum TargetApp { - KOPI = 0, - KAPI = 1, - PWMPI = 2 }; - + KOPI = 0, + KAPI = 1, + PWMPI = 2 }; KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu); ~KSyncManager() ; void multiSync( bool askforPrefs ); bool blockSave() { return mBlockSaveFlag; } void setBlockSave(bool sa) { mBlockSaveFlag = sa; } void setDefaultFileName( QString s) { mDefFileName = s ;} QString defaultFileName() { return mDefFileName ;} QString syncFileName(); - void fillSyncMenu(); QString getCurrentSyncDevice() { return mCurrentSyncDevice; } QString getCurrentSyncName() { return mCurrentSyncName; } void showProgressBar(int percentage, QString caption = QString::null, int total=100); void hideProgressBar(); bool isProgressBarCanceled(); - // sync stuff + // sync stuff QString mLocalMachineName; QStringList mExternSyncProfiles; QStringList mSyncProfileNames; bool mAskForPreferences; bool mShowSyncSummary; - bool mShowSyncEvents; - bool mShowTodoInAgenda; bool mWriteBackExistingOnly; int mSyncAlgoPrefs; - int mRingSyncAlgoPrefs; bool mWriteBackFile; int mWriteBackInFuture; QString mPhoneDevice; QString mPhoneConnection; QString mPhoneModel; QString mPassWordPiSync; QString mActiveSyncPort; QString mActiveSyncIP ; signals: void save(); void request_file(); void getFile( bool ); - public slots: + public slots: void slotSyncMenu( int ); void deleteCommandSocket(KCommandSocket*s, int state); void readFileFromSocket(); + void fillSyncMenu(); private: - // LR ******************************* - // sync stuff! void syncPi(); KServerSocket * mServerSocket; void enableQuick(); KPimPrefs* mPrefs; QString mDefFileName; QString mCurrentSyncDevice; QString mCurrentSyncName; void quickSyncLocalFile(); - bool syncWithFile( QString fn , bool quick ); + bool syncWithFile( QString fn , bool quick ); void syncLocalFile(); void syncPhone(); void syncSharp(); bool syncExternalApplication(QString); int mCurrentSyncProfile ; void syncRemote( KSyncProfile* prof, bool ask = true); void edit_sync_options(); int ringSync(); QString getPassword( ); - private slots: + private slots: void confSync(); - // ********************* - private: bool mBlockSaveFlag; - - QWidget* mParent; KSyncInterface* mImplementation; TargetApp mTargetApp; QPopupMenu* mSyncMenu; - QProgressBar* bar; - - - - }; class KSyncInterface { - - public : virtual bool sync(KSyncManager* manager, QString filename, int mode) = 0; - virtual bool syncExternal(KSyncManager* manager, QString resource) - { - // empty implementation, because some syncable applications do not have an external(sharpdtm) syncmode, like pwmanager. - return false; - } + { + // empty implementation, because some syncable applications do not + // have an external(sharpdtm) syncmode, like pwmanager. + return false; + } }; #endif |