summaryrefslogtreecommitdiffstats
path: root/kpilot/kpilot/kroupware.cc
diff options
context:
space:
mode:
Diffstat (limited to 'kpilot/kpilot/kroupware.cc')
-rw-r--r--kpilot/kpilot/kroupware.cc311
1 files changed, 0 insertions, 311 deletions
diff --git a/kpilot/kpilot/kroupware.cc b/kpilot/kpilot/kroupware.cc
deleted file mode 100644
index 212df17d1..000000000
--- a/kpilot/kpilot/kroupware.cc
+++ /dev/null
@@ -1,311 +0,0 @@
-/* KPilot
-**
-** Copyright still to be determined.
-**
-** This file defines the actions taken when KPilot
-** is Kroupware-enabled. Basically it just does a
-** little communication with the local Kroupware agent (KMail).
-*/
-
-/*
-** 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 in a file called COPYING; if not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-** MA 02110-1301, USA.
-*/
-
-/*
-** Bug reports and questions can be sent to kde-pim@kde.org
-*/
-
-#include "options.h"
-
-#include <tqfile.h>
-
-#include <dcopclient.h>
-#include <ktempfile.h>
-
-
-#include <kapplication.h>
-#include "kroupware.h"
-#include "kpilotConfig.h"
-
-KroupwareSync::KroupwareSync(bool pre,int parts,KPilotDeviceLink *p) :
- SyncAction(p,pre ? "KroupwarePreSync" : "KroupwarePostSync"),
- fPre(pre),
- fParts(parts)
-{
-
-}
-
-/* virtual */ bool KroupwareSync::exec()
-{
- FUNCTIONSETUP;
- if (fPre)
- {
- preSync();
- }
- else
- {
- postSync();
- }
- // delayDone();
- emit syncDone(this);
- return true;
-}
-
-void KroupwareSync::cleanupConfig()
-{
- // tempfile check in case app has terminated during sync
- // TODO!!! Use sensitive groups/keys for the kroupware branch...
- KConfig* c = KPilotSettings::self()->config();
- c->setGroup("todoOptions");
- if ( c->hasKey( "CalFileBackup") ) {
- TQString fn = c->readPathEntry( "CalFileBackup" );
- if ( fn != CSL1("empty") ) {
- c->writePathEntry( "CalFile" ,fn );
- c->writeEntry( "CalFileBackup" , "empty" );
- }
- }
- c->setGroup("vcalOptions");
- if ( c->hasKey( "CalFileBackup") ) {
- TQString fn = c->readPathEntry( "CalFileBackup" );
- if ( fn != CSL1("empty") ) {
- c->writePathEntry( "CalFile" ,fn );
- c->writeEntry( "CalFileBackup" , "empty" );
- }
- }
- c->setGroup("Abbrowser-conduit");
- c->writeEntry( "KMailTempFile" , "empty" );
- KPilotSettings::writeConfig();
-}
-
-// For the log messages, I've added i18n to the
-// ones I consider relevant for the user. The rest is
-// really debug info, and shouldn't go to the normal
-// sync log for the user.
-//
-// TODO!!! better way to read the config options!
-void KroupwareSync::start_syncCal_TodosWithKMail( bool cal, bool todos )
-{
- if ( !cal && ! todos )
- return;
- KConfig*c = KPilotSettings::self()->config();
- DCOPClient *client = kapp->dcopClient();
- KTempFile tempfile;
- TQString filename = tempfile.name();
- TQByteArray data, reply_data;
- TQCString reply_type;
- TQDataStream arg(data, IO_WriteOnly);
- arg << filename;
- if (!client->call( "kmail" ,
- "KOrganizerSyncIface",
- "pullSyncData(TQString)",
- data,
- reply_type,
- reply_data)) {
- logMessage( CSL1("Calling KMail over DCOP failed!" ));
- logMessage(CSL1("Not syncing calendars with KMail"));
- logMessage(CSL1("Not syncing to-dos with KMail"));
- }
- else {
- logMessage(CSL1("Calling Cal/Todo over DCOP succeeded"));
- // now prepare for syncing
- _syncWithKMail = true;
- if ( todos ) {
- logMessage( i18n("Syncing to-dos with KMail" ));
- c->setGroup("todoOptions");
- TQString fn = c->readPathEntry( "CalFile" );
- c->writePathEntry( "CalFileBackup" ,fn );
- c->writePathEntry( "CalFile" ,filename );
- }
- else
- logMessage( CSL1("Not syncing todos with KMail" ));
- if ( cal ) {
- logMessage( i18n("Syncing calendar with KMail" ));
- c->setGroup("vcalOptions");
- TQString fn = c->readPathEntry( "CalFile" );
- c->writePathEntry( "CalFileBackup" ,fn );
- c->writePathEntry( "CalFile" ,filename );
- }
- else
- logMessage( CSL1("Not syncing calendar with KMail" ));
- }
- KPilotSettings::self()->writeConfig();
-}
-
-void KroupwareSync::start_syncAddWithKMail()
-{
- logMessage( CSL1("Syncing Addresses with KMail" ));
- DCOPClient *client = kapp->dcopClient();
- KTempFile tempfile;
- TQString filename = tempfile.name();
- TQByteArray data, reply_data;
- TQCString reply_type;
- TQDataStream arg(data, IO_WriteOnly);
- arg << filename;
- if (!client->call( "kmail" ,
- "KMailIface",
- "requestAddresses(TQString)",
- data,
- reply_type,
- reply_data)) {
- logMessage(CSL1("Calling KMail over DCOP failed!" ));
- logMessage(CSL1("Not syncing Addresses with KMail"));
- }
- else {
- // TODO!!! better config handling!
- KConfig*c = KPilotSettings::self()->config();
- logMessage(CSL1("Calling addresses over DCOP succeeded"));
- c->setGroup("Abbrowser-conduit");
- c->writePathEntry( "KMailTempFile" , filename );
- KPilotSettings::self()->writeConfig();
- }
-}
-void KroupwareSync::start_syncNotesWithKMail()
-{
- logMessage( i18n("Syncing Notes with Mail" ));
- logMessage( CSL1("Syncing Notes-sorry not implemented" ));
-}
-
-void KroupwareSync::end_syncCal_TodosWithKMail( bool cal, bool todos)
-{
- if ( !cal && ! todos )
- return;
- TQString filename;
- KConfig*c=KPilotSettings::self()->config();
- if ( todos ) {
- logMessage( i18n("Rewriting to-dos to KMail..." ));
- c->setGroup("todoOptions");
- filename = c->readPathEntry( "CalFile" );
- c->writePathEntry( "CalFile", c->readPathEntry( "CalFileBackup" ) );
- c->writeEntry( "CalFileBackup", "empty");
- }
- if ( cal ) {
- logMessage( i18n("Rewriting Calendar to KMail" ));
- c->setGroup("vcalOptions");
- filename = c->readPathEntry( "CalFile" );
- TQString tf = c->readPathEntry( "CalFileBackup" ) ;
- c->writePathEntry( "CalFile" , tf );
- c->writeEntry( "CalFileBackup" ,"empty");
- }
- KPilotSettings::writeConfig();
- if ( !filename.isEmpty() ) {
- logMessage(CSL1("Try to call KMail via DCOP to finish sync..."));
- // try DCOP connection to KMail
- DCOPClient *client = kapp->dcopClient();
- TQByteArray data, reply_data;
- TQCString reply_type;
- TQDataStream arg(data, IO_WriteOnly);
- arg << filename;
- if (!client->call( "kmail" /*"korganizer" kmdcop */,
- "KOrganizerSyncIface",
- "pushSyncData(TQString)",
- data,
- reply_type,
- reply_data)) {
- logMessage( CSL1("Calling KMail over DCOP failed!" ));
- logMessage( CSL1("Sync is not complete"));
- logMessage( CSL1("Data from Palm stored in file:"));
- logMessage(filename);
- } else {
- logMessage(CSL1("Calling over DCOP succeeded"));
- logMessage(CSL1("Sync to KMail has finished successfully"));
- }
- TQFile::remove( filename );
- }
-}
-void KroupwareSync::end_syncAddWithKMail()
-{
- logMessage( i18n("Syncing KMail with Addresses " ));
- DCOPClient *client = kapp->dcopClient();
- // TODO!! better config handling (KConfig XT)
- KConfig*c = KPilotSettings::self()->config();
- c->setGroup("Abbrowser-conduit");
- TQString filename = c->readPathEntry( "KMailTempFile" );
- c->writeEntry( "KMailTempFile" , "empty" );
- KPilotSettings::writeConfig();
- TQByteArray data, reply_data;
- TQCString reply_type;
- TQDataStream arg(data, IO_WriteOnly);
- arg << filename;
- arg << TQStringList();
- if (!client->call( "kmail" ,
- "KMailIface",
- "storeAddresses(TQString, TQStringList)",
- data,
- reply_type,
- reply_data)) {
- logMessage(CSL1("Calling KMail over DCOP failed!" ));
- logMessage(CSL1("Not syncing Addresses with KMail"));
- }
- else {
- logMessage(CSL1("Calling store addresses over DCOP succeeded"));
- }
- //TQFile::remove( filename );
-}
-void KroupwareSync::end_syncNotesWithKMail()
-{
- logMessage( i18n("Syncing KMail with Notes" ));
- logMessage( CSL1("Syncing Notes-sorry not implemented" ));
-}
-
-
-
-/* static */ bool KroupwareSync::startKMail(TQString *error)
-{
- FUNCTIONSETUP;
-
- TQCString kmdcop;
- TQString mess;
- int pid;
-
- return KApplication::startServiceByDesktopName(CSL1("kmail"),
- TQString::null,
- error,
- &kmdcop,
- &pid
- )==0;
-}
-
-
-void KroupwareSync::preSync()
-{
- cleanupConfig();
- start_syncCal_TodosWithKMail( fParts & Cal, fParts & Todo );
- if (fParts & Notes)
- {
- start_syncNotesWithKMail();
- }
- if (fParts & Address)
- {
- start_syncAddWithKMail();
- }
-}
-
-void KroupwareSync::postSync()
-{
- cleanupConfig();
- end_syncCal_TodosWithKMail( fParts & Cal, fParts & Todo );
- if (fParts & Notes)
- {
- end_syncNotesWithKMail();
- }
- if (fParts & Address)
- {
- end_syncAddWithKMail();
- }
-}
-
-
-