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 /libkdepim | |
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,24 +1,24 @@ /* - 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" @@ -70,13 +70,13 @@ KSyncManager::KSyncManager(QWidget* parent, KSyncInterface* implementation, Targ bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); } KSyncManager::~KSyncManager() { - delete bar; + delete bar; } void KSyncManager::fillSyncMenu() { if ( mSyncMenu->count() ) @@ -162,13 +162,13 @@ void KSyncManager::slotSyncMenu( int action ) mServerSocket = 0; QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); return; } if (blockSave()) - return; + return; setBlockSave(true); mCurrentSyncProfile = action - 1000 ; mCurrentSyncDevice = mSyncProfileNames[mCurrentSyncProfile] ; mCurrentSyncName = mLocalMachineName ; @@ -297,28 +297,28 @@ 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 "); @@ -387,13 +387,13 @@ void KSyncManager::multiSync( bool askforPrefs ) 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(); @@ -517,18 +517,18 @@ int KSyncManager::ringSync() } 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; @@ -736,31 +736,31 @@ 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"; @@ -804,29 +804,29 @@ 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() @@ -1153,21 +1153,21 @@ void KCommandSocket::readFileFromSocket() 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,26 +1,26 @@ /* - 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> @@ -40,24 +40,23 @@ 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(); @@ -71,23 +70,22 @@ private slots: 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; @@ -102,50 +100,45 @@ private slots: 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; @@ -154,73 +147,61 @@ class KSyncManager : public QObject 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 |