author | zautrix <zautrix> | 2004-10-07 17:51:17 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-10-07 17:51:17 (UTC) |
commit | 1f1538e5707b59bfcff2014901f29a65589229e3 (patch) (side-by-side diff) | |
tree | 0d91a303524e6ac9f7c954f01a0e1d09d0e305e7 /korganizer | |
parent | bb8293c794d82a57bc93af85ccd89b601356d577 (diff) | |
download | kdepimpi-1f1538e5707b59bfcff2014901f29a65589229e3.zip kdepimpi-1f1538e5707b59bfcff2014901f29a65589229e3.tar.gz kdepimpi-1f1538e5707b59bfcff2014901f29a65589229e3.tar.bz2 |
many cleanups
-rw-r--r-- | korganizer/calendarview.cpp | 136 | ||||
-rw-r--r-- | korganizer/calendarview.h | 11 | ||||
-rw-r--r-- | korganizer/koprefs.cpp | 3 | ||||
-rw-r--r-- | korganizer/koprefs.h | 20 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 556 | ||||
-rw-r--r-- | korganizer/mainwindow.h | 24 |
6 files changed, 83 insertions, 667 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index ea9607d..b56f1f9 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp @@ -701,17 +701,5 @@ void CalendarView::createPrinter() void CalendarView::confSync() { - static KSyncPrefsDialog* sp = 0; - if ( ! sp ) { - sp = new KSyncPrefsDialog( this, "syncprefs", true ); - } - sp->usrReadConfig(); -#ifndef DESKTOP_VERSION - sp->showMaximized(); -#else - sp->show(); -#endif - sp->exec(); - KOPrefs::instance()->mSyncProfileNames = sp->getSyncProfileNames(); - KOPrefs::instance()->mLocalMachineName = sp->getLocalMachineName (); + //DELETE } @@ -878,5 +866,5 @@ Event* CalendarView::getLastSyncEvent() lse->setUid( "last-syncEvent-"+mCurrentSyncDevice ); QString sum = ""; - if ( KOPrefs::instance()->mExternSyncProfiles.contains( mCurrentSyncDevice ) ) + if ( mSyncManager->mExternSyncProfiles.contains( mCurrentSyncDevice ) ) sum = "E: "; lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event")); @@ -1120,5 +1108,5 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int ++deletedEventL; } else { - if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { + if ( ! mSyncManager->mWriteBackExistingOnly ) { inL->removeID(mCurrentSyncDevice ); ++addedEventR; @@ -1136,5 +1124,5 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int ++deletedEventL; } else { - if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { + if ( ! mSyncManager->mWriteBackExistingOnly ) { ++addedEventR; inL->setLastModified( modifiedCalendar ); @@ -1148,10 +1136,10 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int } int delFut = 0; - if ( KOPrefs::instance()->mWriteBackInFuture ) { + if ( mSyncManager->mWriteBackInFuture ) { er = remote->rawIncidences(); inR = er.first(); QDateTime dt; QDateTime cur = QDateTime::currentDateTime().addDays( -7 ); - QDateTime end = cur.addDays( (KOPrefs::instance()->mWriteBackInFuture +1 ) *7 ); + QDateTime end = cur.addDays( (mSyncManager->mWriteBackInFuture +1 ) *7 ); while ( inR ) { if ( inR->type() == "Todo" ) { @@ -1193,8 +1181,8 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int QString delmess; if ( delFut ) { - delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are in the past or\nmore than %d weeks in the future.\n"),delFut, KOPrefs::instance()->mWriteBackInFuture ); + delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are in the past or\nmore than %d weeks in the future.\n"),delFut, mSyncManager->mWriteBackInFuture ); mes += delmess; } - if ( KOPrefs::instance()->mShowSyncSummary ) { + if ( mSyncManager->mShowSyncSummary ) { KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") ); } @@ -1226,5 +1214,5 @@ bool CalendarView::syncCalendar(QString filename, int mode) getEventViewerDialog()->setSyncMode( false ); if ( syncOK ) { - if ( KOPrefs::instance()->mWriteBackFile ) + if ( mSyncManager->mWriteBackFile ) { storage->setSaveFormat( new ICalFormat() ); @@ -1242,12 +1230,10 @@ bool CalendarView::syncCalendar(QString filename, int mode) void CalendarView::syncPhone() { - syncExternal( 1 ); + //DELETE } void CalendarView::syncExternal( int mode ) { mGlobalSyncMode = SYNC_MODE_EXTERNAL; - //mCurrentSyncDevice = "sharp-DTM"; - if ( KOPrefs::instance()->mAskForPreferences ) - edit_sync_options(); + qApp->processEvents(); CalendarLocal* calendar = new CalendarLocal(); @@ -1266,7 +1252,7 @@ void CalendarView::syncExternal( int mode ) if ( mode == 1 ) { // phone phoneFormat = new PhoneFormat (mCurrentSyncDevice, - KOPrefs::instance()->mPhoneDevice, - KOPrefs::instance()->mPhoneConnection, - KOPrefs::instance()->mPhoneModel); + mSyncManager->mPhoneDevice, + mSyncManager->mPhoneConnection, + mSyncManager->mPhoneModel); loadSuccess = phoneFormat->load( calendar,mCalendar); @@ -1275,9 +1261,9 @@ void CalendarView::syncExternal( int mode ) if ( loadSuccess ) { getEventViewerDialog()->setSyncMode( true ); - syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs ); + syncOK = synchronizeCalendar( mCalendar, calendar, mSyncManager->mSyncAlgoPrefs ); getEventViewerDialog()->setSyncMode( false ); qApp->processEvents(); if ( syncOK ) { - if ( KOPrefs::instance()->mWriteBackFile ) + if ( mSyncManager->mWriteBackFile ) { QPtrList<Incidence> iL = mCalendar->rawIncidences(); @@ -1330,5 +1316,5 @@ void CalendarView::syncExternal( int mode ) void CalendarView::syncSharp() { - syncExternal( 0 ); + //DELETE } @@ -1518,5 +1504,5 @@ bool CalendarView::importQtopia( const QString &categories, mGlobalSyncMode = SYNC_MODE_QTOPIA; mCurrentSyncDevice = "qtopia-XML"; - if ( KOPrefs::instance()->mAskForPreferences ) + if ( mSyncManager->mAskForPreferences ) edit_sync_options(); qApp->processEvents(); @@ -1536,9 +1522,9 @@ bool CalendarView::importQtopia( const QString &categories, if ( loadOk ) { getEventViewerDialog()->setSyncMode( true ); - syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs ); + syncOK = synchronizeCalendar( mCalendar, calendar, mSyncManager->mSyncAlgoPrefs ); getEventViewerDialog()->setSyncMode( false ); qApp->processEvents(); if ( syncOK ) { - if ( KOPrefs::instance()->mWriteBackFile ) + if ( mSyncManager->mWriteBackFile ) { // write back XML file @@ -1684,9 +1670,9 @@ bool CalendarView::checkFileVersion(QString fn) setSyncDevice("deleteaftersync" ); - KOPrefs::instance()->mAskForPreferences = true; - KOPrefs::instance()->mSyncAlgoPrefs = 3; - KOPrefs::instance()->mWriteBackFile = false; - KOPrefs::instance()->mWriteBackExistingOnly = false; - KOPrefs::instance()->mShowSyncSummary = false; + mSyncManager->mAskForPreferences = true; + mSyncManager->mSyncAlgoPrefs = 3; + mSyncManager->mWriteBackFile = false; + mSyncManager->mWriteBackExistingOnly = false; + mSyncManager->mShowSyncSummary = false; syncCalendar( fn, 3 ); Event * e = getLastSyncEvent(); @@ -2199,51 +2185,5 @@ void CalendarView::edit_options() void CalendarView::edit_sync_options() { - //mDialogManager->showSyncOptions(); - //KOPrefs::instance()->mSyncAlgoPrefs - QDialog dia( this, "dia", true ); - dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice ); - QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia); - QVBoxLayout lay ( &dia ); - lay.setSpacing( 2 ); - lay.setMargin( 3 ); - lay.addWidget(&gr); - QRadioButton loc ( i18n("Take local entry on conflict"), &gr ); - QRadioButton rem ( i18n("Take remote entry on conflict"), &gr ); - QRadioButton newest( i18n("Take newest entry on conflict"), &gr ); - QRadioButton ask( i18n("Ask for every entry on conflict"), &gr ); - QRadioButton f_loc( i18n("Force: Take local entry always"), &gr ); - QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr ); - //QRadioButton both( i18n("Take both on conflict"), &gr ); - QPushButton pb ( "OK", &dia); - lay.addWidget( &pb ); - connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); - switch ( KOPrefs::instance()->mSyncAlgoPrefs ) { - case 0: - loc.setChecked( true); - break; - case 1: - rem.setChecked( true ); - break; - case 2: - newest.setChecked( true); - break; - case 3: - ask.setChecked( true); - break; - case 4: - f_loc.setChecked( true); - break; - case 5: - f_rem.setChecked( true); - break; - case 6: - // both.setChecked( true); - break; - default: - break; - } - if ( dia.exec() ) { - KOPrefs::instance()->mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ; - } + // DELETE } @@ -3769,5 +3709,25 @@ void CalendarView::keyPressEvent ( QKeyEvent *e) } -//#include "calendarview.moc" -//#include "calendarviewbase.moc" +bool CalendarView::sync(KSyncManager* manager, QString filename, int mode) +{ + // mSyncManager = manager; + mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); + mCurrentSyncName = mSyncManager->getCurrentSyncName(); + return syncCalendar( filename, mode ); +} +bool CalendarView::syncExternal(KSyncManager* manager, QString resource) +{ + //mSyncManager = manager; + mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); + mCurrentSyncName = mSyncManager->getCurrentSyncName(); + if ( resource == "sharp" ) + syncExternal( 0 ); + if ( resource == "phone" ) + syncExternal( 1 ); + // pending setmodified +} +void CalendarView::setSyncManager(KSyncManager* manager) +{ + mSyncManager = manager; +} diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h index 8d329a9..751b8d9 100644 --- a/korganizer/calendarview.h +++ b/korganizer/calendarview.h @@ -43,4 +43,6 @@ #include <korganizer/calendarviewbase.h> +#include <ksyncmanager.h> + class QWidgetStack; class QSplitter; @@ -78,5 +80,5 @@ using namespace KCal; @author Cornelius Schumacher */ -class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Observer +class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Observer, public KSyncInterface { Q_OBJECT @@ -461,6 +463,10 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser // show a standard warning // returns KMsgBox::yesNoCancel() - int msgCalModified(); + int msgCalModified(); + virtual bool sync(KSyncManager* manager, QString filename, int mode); + + virtual bool syncExternal(KSyncManager* manager, QString resource); void confSync(); + void setSyncManager(KSyncManager* manager); void setLoadedFileVersion(QDateTime); bool checkFileVersion(QString fn); @@ -485,4 +491,5 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser private: + KSyncManager* mSyncManager; AlarmDialog * mAlarmDialog; QString mAlarmNotification; diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp index 1210094..13035e0 100644 --- a/korganizer/koprefs.cpp +++ b/korganizer/koprefs.cpp @@ -197,6 +197,4 @@ KOPrefs::KOPrefs() : addItemBool("ShowSyncEvents",&mShowSyncEvents,false); addItemInt("LastSyncTime",&mLastSyncTime,0); - addItemInt("SyncAlgoPrefs",&mSyncAlgoPrefs,3); - addItemInt("RingSyncAlgoPrefs",&mRingSyncAlgoPrefs,3); #ifdef _WIN32_ @@ -218,5 +216,4 @@ KOPrefs::KOPrefs() : addItemString("LastSaveFile", &mLastSaveFile ,hdp +"mybackup.ics" ); addItemString("LastLoadFile", &mLastLoadFile ,hdp +"mybackup.ics" ); - addItemString("LastSyncedLocalFile", &mLastSyncedLocalFile ,hdp +"lastsync.ics" ); diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h index ff09e19..03df59b 100644 --- a/korganizer/koprefs.h +++ b/korganizer/koprefs.h @@ -195,27 +195,8 @@ class KOPrefs : public KPimPrefs bool mAskForQuit; bool mUsePassWd; - bool mWriteBackFile; - int mWriteBackInFuture; - bool mAskForPreferences; - bool mShowSyncSummary; bool mShowSyncEvents; bool mShowTodoInAgenda; - bool mWriteBackExistingOnly; - - QString mRemoteIP; - QString mRemoteUser; - QString mRemotePassWd; - QString mRemoteFile; - QString mLocalTempFile; - QString mPhoneDevice; - QString mPhoneConnection; - QString mPhoneModel; int mLastSyncTime; - int mSyncAlgoPrefs; - int mRingSyncAlgoPrefs; - QStringList mSyncProfileNames; - QStringList mExternSyncProfiles; - QString mLocalMachineName; void setCategoryColor(QString cat,const QColor & color); QColor *categoryColor(QString cat); @@ -231,5 +212,4 @@ class KOPrefs : public KPimPrefs QString mLastSaveFile; QString mLastLoadFile; - QString mLastSyncedLocalFile; diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index e3324ee..f7766f8 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp @@ -127,5 +127,5 @@ MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : QMainWindow( parent, name ) { - mPassWordPiSync = "abc"; + #ifdef DESKTOP_VERSION setFont( QFont("Arial"), 14 ); @@ -143,8 +143,4 @@ MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : 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; @@ -167,5 +163,4 @@ MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : iconToolBar = new QPEToolBar( this ); addToolBar (iconToolBar , tbd ); - mBlockSaveFlag = false; mCalendarModifiedFlag = false; @@ -182,5 +177,8 @@ MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : mView->hide(); //mView->resize(splash->size() ); - initActions(); + initActions(); + mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu); + mSyncManager->setBlockSave(false); + mView->setSyncManager(mSyncManager); #ifndef DESKTOP_VERSION iconToolBar->show(); @@ -253,5 +251,15 @@ MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : // qApp->processEvents(); //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); - fillSyncMenu(); + //fillSyncMenu(); + + + connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) ); + connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); + connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); + mSyncManager->setDefaultFileName( defaultFileName()); + mSyncManager->fillSyncMenu(); + + + mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins ); if ( showWarning ) { @@ -396,5 +404,5 @@ void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) } else if ( msg == "-ringSync" ) { - multiSync( false ); + mSyncManager->multiSync( false ); } else if ( msg == "-showWeek" ) { @@ -941,232 +949,5 @@ void MainWindow::initActions() connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); } -void MainWindow::fillSyncMenu() -{ - if ( syncMenu->count() ) - syncMenu->clear(); - syncMenu->insertItem( i18n("Configure..."), 0 ); - syncMenu->insertSeparator(); - if ( mServerSocket == 0 ) { - syncMenu->insertItem( i18n("Enable Pi-Sync"), 2 ); - } else { - syncMenu->insertItem( i18n("Disable Pi-Sync"), 3 ); - } - syncMenu->insertSeparator(); - syncMenu->insertItem( i18n("Multiple sync"), 1 ); - syncMenu->insertSeparator(); - KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); - config.setGroup("General"); - QStringList prof = config.readListEntry("SyncProfileNames"); - KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined"); - if ( prof.count() < 3 ) { - prof.clear(); - prof << i18n("Sharp_DTM"); - prof << i18n("Local_file"); - prof << i18n("Last_file"); - KSyncProfile* temp = new KSyncProfile (); - temp->setName( prof[0] ); - temp->writeConfig(&config); - temp->setName( prof[1] ); - temp->writeConfig(&config); - temp->setName( prof[2] ); - temp->writeConfig(&config); - config.setGroup("General"); - config.writeEntry("SyncProfileNames",prof); - config.writeEntry("ExternSyncProfiles","Sharp_DTM"); - config.sync(); - delete temp; - } - KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); - KOPrefs::instance()->mSyncProfileNames = prof; - int i; - for ( i = 0; i < prof.count(); ++i ) { - - syncMenu->insertItem( prof[i], 1000+i ); - if ( i == 2 ) - syncMenu->insertSeparator(); - } - QDir app_dir; - if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { - syncMenu->setItemEnabled( false , 1000 ); - } -} - -int MainWindow::ringSync() -{ - int syncedProfiles = 0; - int i; - QTime timer; - KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); - QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames; - KSyncProfile* temp = new KSyncProfile (); - KOPrefs::instance()->mAskForPreferences = false; - for ( i = 0; i < syncProfileNames.count(); ++i ) { - mCurrentSyncProfile = i; - temp->setName(syncProfileNames[mCurrentSyncProfile]); - temp->readConfig(&config); - if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) { - setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); - ++syncedProfiles; - // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); - KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); - KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); - KOPrefs::instance()->mWriteBackInFuture = 0; - if ( temp->getWriteBackFuture() ) - KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); - KOPrefs::instance()->mShowSyncSummary = false; - mView->setSyncDevice(syncProfileNames[i] ); - mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); - if ( i == 0 ) { - syncSharp(); - } else { - if ( temp->getIsLocalFileSync() ) { - if ( syncWithFile( temp->getRemoteFileName( ), true ) ) - KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); - } else { - if ( temp->getIsPhoneSync() ) { - KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; - KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); - KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); - syncPhone(); - } else if ( temp->getIsPiSync() ) { - mPassWordPiSync = temp->getRemotePw(); - KOPrefs::instance()->mActiveSyncPort = temp->getRemotePort(); - KOPrefs::instance()->mActiveSyncIP = temp->getRemoteIP(); - syncPi(); - } else - syncRemote( temp, false ); - - } - } - timer.start(); - setCaption(i18n("Multiple sync in progress ... please wait!") ); - while ( timer.elapsed () < 2000 ) { - qApp->processEvents(); -#ifndef _WIN32_ - sleep (1); -#endif - } - - } - - } - delete temp; - return syncedProfiles; -} - -void MainWindow::multiSync( bool askforPrefs ) -{ - if (mBlockSaveFlag) - return; - mBlockSaveFlag = true; - QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); - if ( QMessageBox::information( this, i18n("KO/Pi Sync"), - question, - i18n("Yes"), i18n("No"), - 0, 0 ) != 0 ) { - mBlockSaveFlag = false; - setCaption(i18n("Aborted! Nothing synced!")); - return; - } - mView->setSyncDevice(i18n("Multiple profiles") ); - KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs; - if ( askforPrefs ) { - mView->edit_sync_options(); - KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs; - } - setCaption(i18n("Multiple sync started.") ); - qApp->processEvents(); - int num = ringSync() ; - if ( num > 1 ) - ringSync(); - mBlockSaveFlag = false; - if ( num ) - save(); - if ( num ) - setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); - else - setCaption(i18n("Nothing synced! No profiles defined for multisync!")); - return; -} -void MainWindow::slotSyncMenu( int action ) -{ - qDebug("syncaction %d ", action); - if ( action == 0 ) { - - // seems to be a Qt2 event handling bug - // syncmenu.clear causes a segfault at first time - // when we call it after the main event loop, it is ok - // same behaviour when calling OM/Pi via QCOP for the first time - QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); - //confSync(); - return; - } - if ( action == 1 ) { - multiSync( true ); - return; - } - if ( action == 2 ) { - enableQuick(); - QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); - return; - } - if ( action == 3 ) { - delete mServerSocket; - mServerSocket = 0; - QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); - return; - } - - if (mBlockSaveFlag) - return; - mBlockSaveFlag = true; - mCurrentSyncProfile = action - 1000 ; - mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); - mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); - KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); - KSyncProfile* temp = new KSyncProfile (); - temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); - temp->readConfig(&config); - KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); - KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); - KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); - KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); - KOPrefs::instance()->mWriteBackInFuture = 0; - if ( temp->getWriteBackFuture() ) - KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); - KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); - if ( action == 1000 ) { - syncSharp(); - - } else if ( action == 1001 ) { - syncLocalFile(); - - } else if ( action == 1002 ) { - quickSyncLocalFile(); - - } else if ( action >= 1003 ) { - if ( temp->getIsLocalFileSync() ) { - if ( syncWithFile( temp->getRemoteFileName( ), false ) ) - KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); - } else { - if ( temp->getIsPhoneSync() ) { - KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; - KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); - KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); - syncPhone(); - } else if ( temp->getIsPiSync() ) { - mPassWordPiSync = temp->getRemotePw(); - KOPrefs::instance()->mActiveSyncPort = temp->getRemotePort(); - KOPrefs::instance()->mActiveSyncIP = temp->getRemoteIP(); - syncPi(); - } else - syncRemote( temp ); - - } - } - delete temp; - mBlockSaveFlag = false; -} void MainWindow::exportToPhone( int mode ) { @@ -1585,5 +1366,5 @@ void MainWindow::slotModifiedChanged( bool changed ) // we store the changes after 1 minute, // and for safety reasons after 10 minutes again - if ( !mBlockSaveFlag ) + if ( !mSyncManager->blockSave() ) msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; else @@ -1595,8 +1376,7 @@ void MainWindow::slotModifiedChanged( bool changed ) void MainWindow::save() { - if ( mBlockSaveFlag ) + if ( mSyncManager->blockSave() ) return; - bool store = mBlockSaveFlag; - mBlockSaveFlag = true; + mSyncManager->setBlockSave(true); if ( mView->checkFileVersion( defaultFileName()) ) { @@ -1616,5 +1396,5 @@ void MainWindow::save() setCaption(i18n("Saving cancelled!")); mCalendarModifiedFlag = false; - mBlockSaveFlag = store; + mSyncManager->setBlockSave( false ); } @@ -2030,78 +1810,9 @@ void MainWindow::exportVCalendar() } -QString MainWindow::getPassword( ) -{ - QString retfile = ""; - QDialog dia ( this, "input-dialog", true ); - QLineEdit lab ( &dia ); - lab.setEchoMode( QLineEdit::Password ); - QVBoxLayout lay( &dia ); - lay.setMargin(7); - lay.setSpacing(7); - lay.addWidget( &lab); - dia.setFixedSize( 230,50 ); - dia.setCaption( i18n("Enter password") ); - QPushButton pb ( "OK", &dia); - lay.addWidget( &pb ); - connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); - dia.show(); - int res = dia.exec(); - if ( res ) - retfile = lab.text(); - dia.hide(); - qApp->processEvents(); - return retfile; - -} -void MainWindow::enableQuick() +void MainWindow::syncFileRequest() { - QDialog dia ( this, "input-dialog", true ); - QLineEdit lab ( &dia ); - QVBoxLayout lay( &dia ); - lab.setText( KOPrefs::instance()->mPassiveSyncPort ); - lay.setMargin(7); - lay.setSpacing(7); - QLabel label ( i18n("Port number (Default: 9197)"), &dia ); - lay.addWidget( &label); - lay.addWidget( &lab); - - QLineEdit lepw ( &dia ); - lepw.setText( KOPrefs::instance()->mPassiveSyncPw ); - QLabel label2 ( i18n("Password to enable\naccess from remote:"), &dia ); - lay.addWidget( &label2); - lay.addWidget( &lepw); - dia.setFixedSize( 230,80 ); - dia.setCaption( i18n("Enter port for Pi-Sync") ); - QPushButton pb ( "OK", &dia); - lay.addWidget( &pb ); - connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); - dia.show(); - if ( ! dia.exec() ) - return; - dia.hide(); - qApp->processEvents(); - KOPrefs::instance()->mPassiveSyncPw = lepw.text(); - KOPrefs::instance()->mPassiveSyncPort = lab.text(); - bool ok; - Q_UINT16 port = KOPrefs::instance()->mPassiveSyncPort.toUInt(&ok); - if ( ! ok ) { - KMessageBox::information( this, i18n("No valid port")); - return; - } - //qDebug("port %d ", port); - mServerSocket = new KServerSocket ( KOPrefs::instance()->mPassiveSyncPw, port ,1 ); - mServerSocket->setFileName( defaultFileName() ); - //qDebug("connected "); - if ( !mServerSocket->ok() ) { - KMessageBox::information( this, i18n("Failed to bind or\nlisten to the port!")); - delete mServerSocket; - mServerSocket = 0; - return; - } - connect( mServerSocket, SIGNAL ( saveFile() ), this, SLOT ( save() ) ); - connect( mServerSocket, SIGNAL ( file_received( bool ) ), this, SLOT ( getFile( bool ) ) ); + save(); } - void MainWindow::getFile( bool success ) { @@ -2116,225 +1827,4 @@ void MainWindow::getFile( bool success ) } - -void MainWindow::syncPi() -{ - qApp->processEvents(); - bool ok; - Q_UINT16 port = KOPrefs::instance()->mActiveSyncPort.toUInt(&ok); - if ( ! ok ) { - setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); - return; - } - KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, KOPrefs::instance()->mActiveSyncIP, this ); - connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); - setCaption( i18n("Sending request for remote file ...") ); - commandSocket->readFile( syncFileName() ); -} - -void MainWindow::deleteCommandSocket(KCommandSocket*s, int state) -{ - qDebug("MainWindow::deleteCommandSocket %d", state); - - //enum { success, errorW, errorR, quiet }; - if ( state == KCommandSocket::errorR ) { - setCaption( i18n("ERROR: Receiving remote file failed.") ); - delete s; - KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, KOPrefs::instance()->mActiveSyncPort.toUInt(), KOPrefs::instance()->mActiveSyncIP, this ); - connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); - commandSocket->sendStop(); - return; - - } else if ( state == KCommandSocket::errorW ) { - setCaption( i18n("ERROR:Writing back file failed.") ); - - } else if ( state == KCommandSocket::successR ) { - QTimer::singleShot( 1, this , SLOT ( readFileFromSocket())); - - } else if ( state == KCommandSocket::successW ) { - setCaption( i18n("Pi-Sync succesful!") ); - } - - delete s; -} - -void MainWindow::readFileFromSocket() -{ - QString fileName = syncFileName(); - setCaption( i18n("Remote file saved to temp file.") ); - if ( ! syncWithFile( fileName , true ) ) { - setCaption( i18n("Syncing failed.") ); - qDebug("Syncing failed "); - return; - } - KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, KOPrefs::instance()->mActiveSyncPort.toUInt(), KOPrefs::instance()->mActiveSyncIP, this ); - connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); - if ( KOPrefs::instance()->mWriteBackFile ) - commandSocket->writeFile( fileName ); - else { - commandSocket->sendStop(); - setCaption( i18n("Pi-Sync succesful!") ); - } -} - -void MainWindow::syncLocalFile() -{ - - QString fn =KOPrefs::instance()->mLastSyncedLocalFile; - - fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); - if ( fn == "" ) - return; - //mView->setSyncDevice("local-file" ); - if ( syncWithFile( fn, false ) ) { - // Event* e = mView->getLastSyncEvent(); -// e->setReadOnly( false ); -// e->setLocation( i18n("Local file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); -// e->setReadOnly( true ); - } - -} - -bool MainWindow::syncWithFile( QString fn , bool quick ) -{ - bool ret = false; - QFileInfo info; - info.setFile( fn ); - QString mess; - bool loadbup = true; - if ( !info. exists() ) { - mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) ); - int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), - mess ); - return ret; - } - int result = 0; - if ( !quick ) { - mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); - result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), - mess, - i18n("Sync"), i18n("Cancel"), 0, - 0, 1 ); - if ( result ) - return false; - } - if ( KOPrefs::instance()->mAskForPreferences ) - mView->edit_sync_options(); - if ( result == 0 ) { - //qDebug("Now sycing ... "); - if ( ret = mView->syncCalendar( fn, KOPrefs::instance()->mSyncAlgoPrefs ) ) - setCaption( i18n("Synchronization successful") ); - else - setCaption( i18n("Sync cancelled or failed. Nothing synced.") ); - if ( ! quick ) - KOPrefs::instance()->mLastSyncedLocalFile = fn; - slotModifiedChanged( true ); - } - return ret; -} -void MainWindow::quickSyncLocalFile() -{ - //mView->setSyncDevice("local-file" ); - //qDebug("quickSyncLocalFile() "); - if ( syncWithFile( KOPrefs::instance()->mLastSyncedLocalFile, false ) ) { - // Event* e = mView->getLastSyncEvent(); -// e->setReadOnly( false ); -// e->setLocation( i18n("Quick with file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); -// e->setReadOnly( true ); - - } -} - -void MainWindow::confSync() -{ - mView->confSync(); - fillSyncMenu(); -} -void MainWindow::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( this, i18n("KO/Pi Sync"), - question, - i18n("Yes"), i18n("No"), - 0, 0 ) != 0 ) - return; - } - QString command = prof->getPreSyncCommand(); - int fi; - if ( (fi = command.find("$PWD$")) > 0 ) { - QString pwd = getPassword(); - command = command.left( fi )+ pwd + command.mid( fi+5 ); - - } - int maxlen = 30; - if ( QApplication::desktop()->width() > 320 ) - maxlen += 25; - setCaption ( i18n( "Copy remote file to local machine..." ) ); - int fileSize = 0; - int result = system ( command ); - // 0 : okay - // 256: no such file or dir - // - qDebug("KO: Remote copy result(0 = okay): %d ",result ); - if ( result != 0 ) { - int len = maxlen; - while ( len < command.length() ) { - command.insert( len , "\n" ); - len += maxlen +2; - } - 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( ) { diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h index 0da0be0..ee7bd87 100644 --- a/korganizer/mainwindow.h +++ b/korganizer/mainwindow.h @@ -45,6 +45,4 @@ class MainWindow : public QMainWindow protected slots: void setCaptionToDates(); - int ringSync(); - void multiSync( bool askforPrefs = false ); void about(); void licence(); @@ -80,13 +78,4 @@ class MainWindow : public QMainWindow void exportToPhone( int ); - void slotSyncMenu( int ); - void confSync(); - void syncSharp(); - void syncPhone(); - void syncPi(); - void syncLocalFile(); - bool syncWithFile( QString, bool ); - void quickSyncLocalFile(); - protected: @@ -100,17 +89,12 @@ class MainWindow : public QMainWindow QString piFileString; QTime piTime; - void deleteCommandSocket(KCommandSocket* s, int state ); - void fillSyncMenu(); void getFile( bool ); - void readFileFromSocket(); + void syncFileRequest(); private: + KSyncManager* mSyncManager; //QTimer* mTimerCommandSocket; - QString mPassWordPiSync; KServerSocket * mServerSocket; bool mClosed; void saveOnClose(); - int mCurrentSyncProfile; - void enableQuick(); - void syncRemote( KSyncProfile* , bool ask = true); bool mFlagKeyPressed; bool mBlockAtStartup; @@ -125,5 +109,4 @@ class MainWindow : public QMainWindow CalendarLocal *mCalendar; CalendarView *mView; - QString getPassword(); QAction *mNewSubTodoAction; @@ -136,9 +119,8 @@ class MainWindow : public QMainWindow QAction *mCancelAction; - void closeEvent( QCloseEvent* ce ); SimpleAlarmClient mAlarmClient; QTimer mSaveTimer; - bool mBlockSaveFlag; + //bool mBlockSaveFlag; bool mCalendarModifiedFlag; QPixmap loadPixmap( QString ); |