summaryrefslogtreecommitdiffabout
path: root/korganizer
Side-by-side diff
Diffstat (limited to 'korganizer') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/calendarview.cpp28
-rw-r--r--korganizer/calendarview.h2
-rw-r--r--korganizer/kosyncprefsdialog.cpp44
-rw-r--r--korganizer/kosyncprefsdialog.h4
-rw-r--r--korganizer/mainwindow.cpp19
5 files changed, 46 insertions, 51 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index b543eca..c75d10e 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -191,97 +191,96 @@ class KOCatPrefs : public QDialog
connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
resize( 200, 200 );
}
bool addCat() { return addCatBut->isChecked(); }
private:
QRadioButton* addCatBut;
};
CalendarView::CalendarView( CalendarResources *calendar,
QWidget *parent, const char *name )
: CalendarViewBase( parent, name ),
mCalendar( calendar ),
mResourceManager( calendar->resourceManager() )
{
mEventEditor = 0;
mTodoEditor = 0;
init();
}
CalendarView::CalendarView( Calendar *calendar,
QWidget *parent, const char *name )
: CalendarViewBase( parent, name ),
mCalendar( calendar ),
mResourceManager( 0 )
{
mEventEditor = 0;
mTodoEditor = 0;
init();}
void CalendarView::init()
{
beamDialog = new KOBeamPrefs();
mDatePickerMode = 0;
mCurrentSyncDevice = "";
writeLocale();
mViewManager = new KOViewManager( this );
mDialogManager = new KODialogManager( this );
mEventViewerDialog = 0;
mModified = false;
mReadOnly = false;
mSelectedIncidence = 0;
- mSyncProfiles.setAutoDelete(true);
mCalPrinter = 0;
mFilters.setAutoDelete(true);
mCalendar->registerObserver( this );
// TODO: Make sure that view is updated, when calendar is changed.
mStorage = new FileStorage( mCalendar );
mNavigator = new DateNavigator( this, "datevav", mViewManager );
QBoxLayout *topLayout = (QBoxLayout*)layout();
#ifndef KORG_NOSPLITTER
// create the main layout frames.
mPanner = new QSplitter(QSplitter::Horizontal,this,"CalendarView::Panner");
topLayout->addWidget(mPanner);
mLeftSplitter = new QSplitter(QSplitter::Vertical,mPanner,
"CalendarView::LeftFrame");
mPanner->setResizeMode(mLeftSplitter,QSplitter::KeepSize);
mDateNavigator = new KDateNavigator(mLeftSplitter, mCalendar, TRUE,
"CalendarView::DateNavigator", QDate::currentDate() );
mLeftSplitter->setResizeMode(mDateNavigator,QSplitter::KeepSize);
mTodoList = new KOTodoView(mCalendar, mLeftSplitter, "todolist_small2");
mFilterView = new KOFilterView(&mFilters,mLeftSplitter,"CalendarView::FilterView");
#ifdef KORG_NORESOURCEVIEW
mResourceView = 0;
#else
if ( mResourceManager ) {
mResourceView = new ResourceView( mResourceManager, mLeftSplitter );
mResourceView->updateView();
connect( mResourceView, SIGNAL( resourcesChanged() ),
SLOT( updateView() ) );
} else {
mResourceView = 0;
}
#endif
QWidget *rightBox = new QWidget( mPanner );
QBoxLayout *rightLayout = new QVBoxLayout( rightBox );
mNavigatorBar = new NavigatorBar( QDate::currentDate(), rightBox, "useBigPixmaps" );
rightLayout->addWidget( mNavigatorBar );
mRightFrame = new QWidgetStack( rightBox );
rightLayout->addWidget( mRightFrame, 1 );
mLeftFrame = mLeftSplitter;
#else
@@ -645,104 +644,106 @@ void CalendarView::removeAlarm(const QDateTime &qdt, const QString &noti )
mAlarmTimer->stop();
}
void CalendarView::selectWeekNum ( int num )
{
dateNavigator()->selectWeek( num );
mViewManager->showWeekView();
}
KOViewManager *CalendarView::viewManager()
{
return mViewManager;
}
KODialogManager *CalendarView::dialogManager()
{
return mDialogManager;
}
QDate CalendarView::startDate()
{
DateList dates = mNavigator->selectedDates();
return dates.first();
}
QDate CalendarView::endDate()
{
DateList dates = mNavigator->selectedDates();
return dates.last();
}
void CalendarView::createPrinter()
{
#ifndef KORG_NOPRINTER
if (!mCalPrinter) {
mCalPrinter = new CalPrinter(this, mCalendar);
connect(this, SIGNAL(configChanged()), mCalPrinter, SLOT(updateConfig()));
}
#endif
}
void CalendarView::confSync()
{
static KOSyncPrefsDialog* sp = 0;
if ( ! sp ) {
sp = new KOSyncPrefsDialog( this, "syncprefs", true );
}
+ sp->setLocalMachineName ( KOPrefs::instance()->mLocalMachineName );
sp->usrReadConfig();
#ifndef DESKTOP_VERSION
sp->showMaximized();
#else
sp->show();
#endif
sp->exec();
-
+ KOPrefs::instance()->mSyncProfileNames = sp->getSyncProfileNames();
+ KOPrefs::instance()->mLocalMachineName = sp->getLocalMachineName ();
}
//KOPrefs::instance()->mWriteBackFile
//KOPrefs::instance()->mWriteBackExistingOnly
// 0 syncPrefsGroup->addRadio(i18n("Take local entry on conflict"));
// 1 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict"));
// 2 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict"));
// 3 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict"));
// 4 syncPrefsGroup->addRadio(i18n("Force take local entry always"));
// 5 syncPrefsGroup->addRadio(i18n("Force take remote entry always"));
int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , bool full )
{
//void setZaurusId(int id);
// int zaurusId() const;
// void setZaurusUid(int id);
// int zaurusUid() const;
// void setZaurusStat(int id);
// int zaurusStat() const;
// 0 equal
// 1 take local
// 2 take remote
// 3 cancel
QDateTime lastSync = mLastCalendarSync;
if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
bool remCh, locCh;
remCh = ( remote->zaurusUid() != local->zaurusUid() );
locCh = ( local->lastModified() > mLastCalendarSync );
//qDebug("locCh %d remCh %d locuid %d remuid %d", locCh, remCh,local->zaurusUid(), remote->zaurusUid() );
if ( !remCh && ! locCh ) {
//qDebug("both not changed ");
lastSync = local->lastModified().addDays(1);
} else {
if ( locCh ) {
//qDebug("loc changed %d %d", local->zaurusStat(), local->revision() );
lastSync = local->lastModified().addDays( -1 );
if ( !remCh )
remote->setLastModified( lastSync.addDays( -1 ) );
} else {
//qDebug(" not loc changed ");
lastSync = local->lastModified().addDays( 1 );
if ( remCh )
remote->setLastModified( lastSync.addDays( 1 ) );
}
@@ -1518,119 +1519,96 @@ void CalendarView::readSettings()
else mNavigator->selectDates( dateCount );
// mViewManager->readSettings( config );
updateConfig();
globalFlagBlockAgenda = 2;
mViewManager->readSettings( config );
#ifdef DESKTOP_VERSION
config->setGroup("WidgetLayout");
QStringList list;
list = config->readListEntry("MainLayout");
int x,y,w,h;
if ( ! list.isEmpty() ) {
x = list[0].toInt();
y = list[1].toInt();
w = list[2].toInt();
h = list[3].toInt();
topLevelWidget()->setGeometry(x,y,w,h);
} else {
topLevelWidget()->setGeometry( 40 ,40 , 640, 440);
}
list = config->readListEntry("EditEventLayout");
if ( ! list.isEmpty() ) {
x = list[0].toInt();
y = list[1].toInt();
w = list[2].toInt();
h = list[3].toInt();
mEventEditor->setGeometry(x,y,w,h);
}
list = config->readListEntry("EditTodoLayout");
if ( ! list.isEmpty() ) {
x = list[0].toInt();
y = list[1].toInt();
w = list[2].toInt();
h = list[3].toInt();
mTodoEditor->setGeometry(x,y,w,h);
}
list = config->readListEntry("ViewerLayout");
if ( ! list.isEmpty() ) {
x = list[0].toInt();
y = list[1].toInt();
w = list[2].toInt();
h = list[3].toInt();
getEventViewerDialog()->setGeometry(x,y,w,h);
}
#endif
-
- // pending read sync settings;
- mSyncProfileNames.clear();
- mSyncProfileNames << "Profile_1";
- mSyncProfileNames << "Profile_2";
- mSyncProfileNames << "Profile_3";
- mSyncProfileNames << "Profile_4";
- mSyncProfileNames << "Profile_5";
- KSyncProfile* temp = new KSyncProfile ();
- temp->setName("Profile_1" );
- mSyncProfiles.append( temp );
- temp = new KSyncProfile ();
- temp->setName("Profile_2" );
- mSyncProfiles.append( temp );
- temp = new KSyncProfile ();
- temp->setName("Profile_3" );
- mSyncProfiles.append( temp );
- temp = new KSyncProfile ();
- temp->setName("Profile_4" );
- mSyncProfiles.append( temp );
- temp = new KSyncProfile ();
- temp->setName("Profile_5" );
- mSyncProfiles.append( temp );
}
void CalendarView::writeSettings()
{
// kdDebug() << "CalendarView::writeSettings" << endl;
KConfig *config = KOGlobals::config();
#ifndef KORG_NOSPLITTER
config->setGroup("KOrganizer Geometry");
QValueList<int> list = mPanner->sizes();
config->writeEntry("Separator1",list);
list = mLeftSplitter->sizes();
config->writeEntry("Separator2",list);
#endif
mViewManager->writeSettings( config );
mTodoList->saveLayout(config,QString("Todo Layout"));
mDialogManager->writeSettings( config );
//KOPrefs::instance()->usrWriteConfig();
KOPrefs::instance()->writeConfig();
writeFilterSettings(config);
config->setGroup( "Views" );
config->writeEntry( "ShownDatesCount", mNavigator->selectedDates().count() );
#ifdef DESKTOP_VERSION
config->setGroup("WidgetLayout");
QStringList list ;//= config->readListEntry("MainLayout");
int x,y,w,h;
QWidget* wid;
wid = topLevelWidget();
x = wid->geometry().x();
y = wid->geometry().y();
w = wid->width();
h = wid->height();
list.clear();
list << QString::number( x );
list << QString::number( y );
list << QString::number( w );
list << QString::number( h );
config->writeEntry("MainLayout",list );
wid = mEventEditor;
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h
index fda02f7..8aa5e1c 100644
--- a/korganizer/calendarview.h
+++ b/korganizer/calendarview.h
@@ -437,98 +437,96 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
void setSyncName( QString );
protected slots:
void timerAlarm();
void suspendAlarm();
void beamDone( Ir *ir );
/** Select a view or adapt the current view to display the specified dates. */
void showDates( const KCal::DateList & );
void selectWeekNum ( int );
public:
// show a standard warning
// returns KMsgBox::yesNoCancel()
int msgCalModified();
void confSync();
void setLoadedFileVersion(QDateTime);
bool checkFileVersion(QString fn);
bool checkFileChanged(QString fn);
Event* getLastSyncEvent();
/** Adapt navigation units correpsonding to step size of navigation of the
* current view.
*/
void adaptNavigationUnits();
bool synchronizeCalendar( Calendar* local, Calendar* remote, int mode );
int takeEvent( Incidence* local, Incidence* remote, int mode, bool full = false );
//Attendee* getYourAttendee(Event *event);
protected:
void schedule(Scheduler::Method, Incidence *incidence = 0);
// returns KMsgBox::OKCandel()
int msgItemDelete();
void showEventEditor();
void showTodoEditor();
void writeLocale();
Todo *selectedTodo();
private:
AlarmDialog * mAlarmDialog;
QString mAlarmNotification;
QString mSuspendAlarmNotification;
QTimer* mSuspendTimer;
QTimer* mAlarmTimer;
QTimer* mRecheckAlarmTimer;
void computeAlarm( QString );
void startAlarm( QString, QString );
void setSyncEventsReadOnly();
QDateTime loadedFileVersion;
void checkSharpEvent( Event* lastSync, Incidence* toDelete );
- QPtrList<KSyncProfile> mSyncProfiles;
- QStringList mSyncProfileNames;
void checkZaurusId( int id, bool todo = false );
int mGlobalSyncMode;
QString mCurrentSyncDevice;
QString mCurrentSyncName;
KOBeamPrefs* beamDialog;
void init();
int mDatePickerMode;
bool mFlagEditDescription;
QDateTime mLastCalendarSync;
void createPrinter();
void calendarModified( bool, Calendar * );
CalPrinter *mCalPrinter;
QSplitter *mPanner;
QSplitter *mLeftSplitter;
QWidget *mLeftFrame;
QWidgetStack *mRightFrame;
KDatePicker* mDatePicker;
QVBox* mDateFrame;
NavigatorBar *mNavigatorBar;
KDateNavigator *mDateNavigator; // widget showing small month view.
KOFilterView *mFilterView;
ResourceView *mResourceView;
// calendar object for this viewing instance
Calendar *mCalendar;
CalendarResourceManager *mResourceManager;
FileStorage *mStorage;
DateNavigator *mNavigator;
KOViewManager *mViewManager;
KODialogManager *mDialogManager;
// Calendar filters
QPtrList<CalFilter> mFilters;
// various housekeeping variables.
bool mModified; // flag indicating if calendar is modified
bool mReadOnly; // flag indicating if calendar is read-only
diff --git a/korganizer/kosyncprefsdialog.cpp b/korganizer/kosyncprefsdialog.cpp
index b7e4265..7c838f5 100644
--- a/korganizer/kosyncprefsdialog.cpp
+++ b/korganizer/kosyncprefsdialog.cpp
@@ -1,113 +1,114 @@
/*
This file is part of KOrganizer.
Copyright (c) 2004 Lutz Rogowski <rogowski@kde.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
As a special exception, permission is given to link this program
with any edition of Qt, and distribute the resulting executable,
without including the source code for Qt in the source distribution.
*/
#include <qlayout.h>
#include <qlabel.h>
#include <qgroupbox.h>
#include <qbuttongroup.h>
#include <qlineedit.h>
#include <qfont.h>
#include <qslider.h>
#include <qfile.h>
+#include <qdir.h>
#include <qtextstream.h>
#include <qcombobox.h>
#include <qvbox.h>
#include <qhbox.h>
#include <qspinbox.h>
#include <qdatetime.h>
#include <qcheckbox.h>
#include <qradiobutton.h>
#include <qpushbutton.h>
#include <qstrlist.h>
#include <qapplication.h>
#include <kcolorbutton.h>
#include <kdebug.h>
#include <klocale.h>
#include <kglobal.h>
#include <kfontdialog.h>
#include <kmessagebox.h>
#include <kcolordialog.h>
#include <kiconloader.h>
#include <kemailsettings.h>
#include <kstandarddirs.h>
#include <kfiledialog.h>
#include <kmessagebox.h>
#include <kurlrequester.h>
#include <klineedit.h>
#include <libkdepim/ksyncprofile.h>
-#include "koprefs.h"
+//#include "koprefs.h"
#include "kosyncprefsdialog.h"
-#include "koglobals.h"
+//#include "koglobals.h"
KOSyncPrefsDialog::KOSyncPrefsDialog(QWidget *parent, char *name, bool modal) :
KDialog(parent,name,true)
{
setCaption( i18n("Synchronization Preferences"));
mSyncProfiles.setAutoDelete( true );
setupSyncAlgTab();
}
KOSyncPrefsDialog::~KOSyncPrefsDialog()
{
}
#include <qlayout.h>
#include <qscrollview.h>
void KOSyncPrefsDialog::setupSyncAlgTab()
{
QLabel * lab;
//QFrame *page = addPage(i18n("Sync Prefs"),0,0);
QVBox * mainbox = new QVBox( this );
QScrollView* sv = new QScrollView( mainbox );
QHBoxLayout * lay = new QHBoxLayout( this );
lay->addWidget( mainbox );
QHBox * b_box = new QHBox( mainbox );
QPushButton* button = new QPushButton( i18n("Ok"), b_box );
connect ( button, SIGNAL( clicked()), this, SLOT (slotOK() ) );
button = new QPushButton( i18n("Cancel"), b_box );
connect ( button, SIGNAL( clicked()), this, SLOT (reject() ) );
//QBoxLayout * sl = new QVBoxLayout(this );
//sl->addWidget ( sv );
sv->setResizePolicy ( QScrollView::AutoOneFit );
QFrame *topFrame = new QFrame ( sv );
sv->addChild( topFrame );
mSetupSyncAlgTab = topFrame;
QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
topLayout->setSpacing(spacingHint());
topLayout->setMargin(marginHint());
//lab = new QLabel(i18n("Sync settings not yet implemented. DO NOT USE!"), topFrame);
int iii = 0;
//topLayout->addMultiCellWidget(lab , iii,iii,0,1);
//++iii;
@@ -188,97 +189,97 @@ void KOSyncPrefsDialog::setupSyncAlgTab()
connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFile() ) );
remoteFileWidget = new QVBox( topFrame);
topLayout->addMultiCellWidget(remoteFileWidget, iii,iii,0,1);
++iii;
lab = new QLabel( i18n("Pre sync (download) command:"), remoteFileWidget);
mRemotePrecommand = new QLineEdit(remoteFileWidget);
lab = new QLabel( i18n("Local temp file:"), remoteFileWidget);
mLocalTempFile = new QLineEdit(remoteFileWidget);
lab = new QLabel( i18n("Post sync (upload) command:"), remoteFileWidget);
mRemotePostcommand = new QLineEdit(remoteFileWidget);
lab = new QLabel( i18n("Fill in default values for:"), remoteFileWidget);
temphb = new QHBox( remoteFileWidget );
button = new QPushButton( i18n("ssh/scp"), temphb );
connect ( button, SIGNAL( clicked()), this, SLOT (fillSSH() ) );
button = new QPushButton( i18n("ftp"), temphb );
connect ( button, SIGNAL( clicked()), this, SLOT (fillFTP() ) );
lab = new QLabel( i18n("Hint: Use $PWD$ for placeholder of password!"), remoteFileWidget);
}
void KOSyncPrefsDialog::slotOK()
{
if ( mMyMachineName->text() == "undefined" ) {
KMessageBox::error(this,i18n("Local device name undefined!\nPlease define device name!"),i18n("KO/Pi config error"));
return;
}
int i;
for (i = 0; i < mSyncProfileNames.count(); ++ i) {
if ( mSyncProfileNames.contains( mSyncProfileNames[i]) > 1 ) {
KMessageBox::error(this,i18n("Multiple profiles with same name!\nPlease use unique profile names!"),i18n("KO/Pi config error"));
return;
}
}
usrWriteConfig();
QDialog::accept();
}
void KOSyncPrefsDialog::accept()
{
slotOK();
}
void KOSyncPrefsDialog::chooseFile()
{
- QString fn =KOPrefs::instance()->mLastSyncedLocalFile;
+ QString fn = QDir::homeDirPath();
fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this );
if ( fn == "" )
return;
mRemoteFile->setText( fn );
}
void KOSyncPrefsDialog::textChanged( const QString & s )
{
if ( mProfileBox->count() == 0 )
return;
if ( currentSelection < 3 ) {
//KMessageBox::error(this,i18n("This profil name\ncannot be edited!\n"),i18n("KO/Pi config error"));
mProfileBox->blockSignals( true );
mProfileBox->setCurrentItem(mProfileBox-> currentItem ());
mProfileBox->blockSignals( false );
return;
}
//qDebug("cur i %d ",mProfileBox-> currentItem () );
mProfileBox->changeItem ( s, mProfileBox-> currentItem () ) ;
KSyncProfile* prof = mSyncProfiles.at(mProfileBox-> currentItem ()) ;
prof->setName( s );
mSyncProfileNames[mProfileBox-> currentItem ()] = s;
}
void KOSyncPrefsDialog::profileChanged( int item )
{
//qDebug("KOSyncPrefsDialog::profileChanged %d ", item );
KSyncProfile* prof;
saveProfile();
currentSelection = item;
prof = mSyncProfiles.at(item) ;
mRemotePrecommand->setText(prof->getPreSyncCommand());
mRemotePostcommand->setText(prof->getPostSyncCommand());
mLocalTempFile->setText(prof->getLocalTempFile());
mRemoteFile->setText(prof->getRemoteFileName()) ;
mShowSummaryAfterSync->setChecked( prof->getShowSummaryAfterSync());
mAskForPreferences->setChecked( prof->getAskForPreferences());
mWriteBackExisting->setChecked( prof->getWriteBackExisting() );
mWriteBackFile->setChecked( prof->getWriteBackFile());
mIncludeInRing->setChecked( prof->getIncludeInRingSync() );
switch ( prof->getSyncPrefs() ) {
case 0:
loc->setChecked( true);
break;
case 1:
rem->setChecked( true );
break;
@@ -368,85 +369,100 @@ void KOSyncPrefsDialog::saveProfile()
}
void KOSyncPrefsDialog::insertProfiles()
{
int curItem = mProfileBox->currentItem();
mProfileBox->blockSignals( true );
mProfileBox->clear();
mProfileBox->insertStringList (mSyncProfileNames );
int item = mSyncProfileNames.count() -1;
if ( curItem >= 0 && mSyncProfileNames.count() > 0 && curItem < mSyncProfileNames.count() )
mProfileBox->setCurrentItem( curItem );
else if ( item >= 0 ) {
mProfileBox->setCurrentItem( item );
}
currentSelection = -1;
if ( mSyncProfileNames.count() > 0 ) {
//qDebug(" profileChanged( mProfileBox->currentItem() ");
profileChanged( mProfileBox->currentItem() );
currentSelection = mProfileBox->currentItem();
}
mProfileBox->blockSignals( false );
}
void KOSyncPrefsDialog::addProfile ( KSyncProfile* temp )
{
saveProfile();
mSyncProfiles.append( temp );
mSyncProfileNames << temp->getName();
insertProfiles();
int last = mProfileBox->count() -1;
mProfileBox->blockSignals( true );
mProfileBox->setCurrentItem( last );
mProfileBox->blockSignals( false );
profileChanged(last);
}
void KOSyncPrefsDialog::newProfile()
{
addProfile ( new KSyncProfile () );
}
void KOSyncPrefsDialog::cloneProfile()
{
if ( currentSelection >= 0 )
addProfile (mSyncProfiles.at(currentSelection)->clone()) ;
else
newProfile();
}
+void KOSyncPrefsDialog::setLocalMachineName ( const QString& name )
+{
+ mMyMachineName->setText( name );
+}
+QString KOSyncPrefsDialog::getLocalMachineName ( )
+{
+ return mMyMachineName->text();
+}
+
+QStringList KOSyncPrefsDialog::getSyncProfileNames()
+{
+ return mSyncProfileNames;
+}
void KOSyncPrefsDialog::usrReadConfig()
{
- KConfig *config = KOGlobals::config();
- config->setGroup("SyncProfiles");
- mSyncProfileNames = KOPrefs::instance()->mSyncProfileNames;
+ //KConfig *config = KOGlobals::config();
+ KConfig config ( locateLocal( "config","syncprofilesrc" ) );
+ config.setGroup("SyncProfiles");
+ mSyncProfileNames =config.readListEntry("SyncProfileNames");
int i;
KSyncProfile* temp ;
mSyncProfiles.clear();
for ( i = 0; i < mSyncProfileNames.count();++i ) {
temp = new KSyncProfile ();
temp->setName( mSyncProfileNames[i] );
- temp->readConfig( config );
+ temp->readConfig( &config );
mSyncProfiles.append( temp );
}
insertProfiles();
- mMyMachineName->setText(KOPrefs::instance()->mLocalMachineName );
+ //mMyMachineName->setText(KOPrefs::instance()->mLocalMachineName );
}
void KOSyncPrefsDialog::usrWriteConfig()
{
saveProfile();
if ( currentSelection >= 0 )
profileChanged(currentSelection);
- KConfig *config = KOGlobals::config();
- config->setGroup("SyncProfiles");
+ //KConfig *config = KOGlobals::config();
+ KConfig config ( locateLocal( "config","syncprofilesrc" ) );
+ config.setGroup("SyncProfiles");
KSyncProfile* prof = mSyncProfiles.first();
while ( prof ) {
- prof->writeConfig(config);
+ prof->writeConfig(&config);
prof = mSyncProfiles.next();
}
- KOPrefs::instance()->mSyncProfileNames = mSyncProfileNames;
- KOPrefs::instance()->mLocalMachineName = mMyMachineName->text();
- config->writeEntry("SyncProfileNames",&mSyncProfileNames);
+ //KOPrefs::instance()->mSyncProfileNames = mSyncProfileNames;
+ //KOPrefs::instance()->mLocalMachineName = mMyMachineName->text();
+ config.writeEntry("SyncProfileNames",&mSyncProfileNames);
}
diff --git a/korganizer/kosyncprefsdialog.h b/korganizer/kosyncprefsdialog.h
index d2d8c6f..541d18b 100644
--- a/korganizer/kosyncprefsdialog.h
+++ b/korganizer/kosyncprefsdialog.h
@@ -10,96 +10,100 @@
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
As a special exception, permission is given to link this program
with any edition of Qt, and distribute the resulting executable,
without including the source code for Qt in the source distribution.
*/
#ifndef _KOPREFSDIALOG_H
#define _KOPREFSDIALOG_H
//#include <qframe.h>
//#include <qdict.h>
#include <qvbox.h>
#include <qhbox.h>
//#include <qcolor.h>
//#include <qlistview.h>
#include <kdialogbase.h>
#include <libkdepim/kprefsdialog.h>
class KColorButton;
class QSpinBox;;
class QRadioButton;
class QCheckBox;
class QSlider;
class KURLRequester;
class QComboBox;
class QLineEdit;
class QStringList;
class KSyncProfile;
/** Dialog to change the korganizer configuration.
*/
class KOSyncPrefsDialog : public KDialog
{
Q_OBJECT
public:
/** Initialize dialog and pages */
KOSyncPrefsDialog(QWidget *parent=0,char *name=0,bool modal=false);
~KOSyncPrefsDialog();
void usrReadConfig();
+ void setLocalMachineName ( const QString& name );
+ QString getLocalMachineName ( );
+
+ QStringList getSyncProfileNames();
public slots:
protected slots:
void accept();
void deleteProfile();
void newProfile();
void cloneProfile();
void kindChanged(bool);
void fillSSH();
void fillFTP();
void textChanged( const QString & );
void profileChanged( int );
void chooseFile();
void slotOK();
protected:
void usrWriteConfig();
void setupSyncAlgTab();
private:
int currentSelection;
QPtrList<KSyncProfile> mSyncProfiles;
QStringList mSyncProfileNames;
QLineEdit * mMyMachineName;
QComboBox * mProfileBox;
QRadioButton* mIsLocal;
QRadioButton* mIsNotLocal;
QCheckBox* mIncludeInRing;
void addProfile ( KSyncProfile* );
void insertProfiles();
void saveProfile();
QButtonGroup* proGr;
QRadioButton* loc, *rem, *newest, *ask, *f_loc,* f_rem, *both;
QLineEdit * mRemotePostcommand;
QLineEdit * mRemotePrecommand;
QLineEdit * mRemoteFile;
QLineEdit * mLocalTempFile;
QWidget* mSetupSyncAlgTab;
QVBox* localFileWidget;
QVBox* remoteFileWidget;
QCheckBox* mWriteBackFile;
QCheckBox* mWriteBackExisting;
QCheckBox* mAskForPreferences;
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index a487f14..589ab2d 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -773,117 +773,116 @@ void MainWindow::initActions()
if (p-> mShowIconDay1)
configureToolBarMenu->setItemChecked( 40, true );
if (p-> mShowIconDay5)
configureToolBarMenu->setItemChecked( 50, true );
if (p-> mShowIconDay7)
configureToolBarMenu->setItemChecked( 60, true );
if (p-> mShowIconMonth)
configureToolBarMenu->setItemChecked( 70, true );
if (p-> mShowIconTodoview)
configureToolBarMenu->setItemChecked( 80, true );
if (p-> mShowIconBackFast)
configureToolBarMenu->setItemChecked( 200, true );
if (p-> mShowIconBack)
configureToolBarMenu->setItemChecked( 210, true );
if (p-> mShowIconToday)
configureToolBarMenu->setItemChecked( 130, true );
if (p-> mShowIconForward)
configureToolBarMenu->setItemChecked( 220, true );
if (p-> mShowIconForwardFast)
configureToolBarMenu->setItemChecked( 230, true );
if (p-> mShowIconNextDays)
configureToolBarMenu->setItemChecked( 100, true );
if (p-> mShowIconNext)
configureToolBarMenu->setItemChecked( 110, true );
if (p-> mShowIconJournal)
configureToolBarMenu->setItemChecked( 90, true );
if (p-> mShowIconWhatsThis)
configureToolBarMenu->setItemChecked( 300, true );
QLabel* dummy = new QLabel( iconToolBar );
dummy->setBackgroundColor( iconToolBar->backgroundColor() );
if (!p-> mShowIconStretch)
iconToolBar->setStretchableWidget ( dummy ) ;
else
configureToolBarMenu->setItemChecked( 5, true );
if (p-> mShowIconWhatsThis)
QWhatsThis::whatsThisButton ( iconToolBar );
connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) );
configureAgenda( p->mHourSize );
connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) );
}
void MainWindow::fillSyncMenu()
{
syncMenu->clear();
syncMenu->insertItem( i18n("Configure..."), 0 );
syncMenu->insertSeparator();
syncMenu->insertItem( i18n("Multiple sync"), 1 );
syncMenu->insertSeparator();
-
- QStringList prof = KOPrefs::instance()->mSyncProfileNames;
+ KConfig config ( locateLocal( "config","syncprofilesrc" ) );
+ config.setGroup("SyncProfiles");
+ QStringList prof = config.readListEntry("SyncProfileNames");
if ( prof.count() < 3 ) {
- KConfig *config = KOGlobals::config();
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->writeConfig(&config);
temp->setName( prof[1] );
- temp->writeConfig(config);
+ temp->writeConfig(&config);
temp->setName( prof[2] );
- temp->writeConfig(config);
- config->sync();
+ temp->writeConfig(&config);
+ config.sync();
delete temp;
- KOPrefs::instance()->mSyncProfileNames = prof;
}
-
+ 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 = KOGlobals::config();
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()->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 {
syncRemote( temp, false );
}
}
timer.start();
setCaption(i18n("Multiple sync in progress ... please wait!") );
@@ -1755,97 +1754,97 @@ bool MainWindow::syncWithFile( QString fn , bool quick )
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();
- mView->writeSettings();
+ //mView->writeSettings();
}
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();