summaryrefslogtreecommitdiffstats
path: root/kpilot/tests/mergecalendars.cc
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-02-16 20:17:18 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-02-16 20:17:18 +0000
commitf4fae92b6768541e2952173c3d4b09040f95bf7e (patch)
treed8c5d93232235cd635f3310b4d95490df181ba2d /kpilot/tests/mergecalendars.cc
parent125c0a08265b75a133644d3b55f47e37c919f45d (diff)
downloadtdepim-f4fae92b6768541e2952173c3d4b09040f95bf7e.tar.gz
tdepim-f4fae92b6768541e2952173c3d4b09040f95bf7e.zip
Moved kpilot from kdepim to applications, as the core Trinity libraries should not contain hardware-dependent software
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1221127 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kpilot/tests/mergecalendars.cc')
-rw-r--r--kpilot/tests/mergecalendars.cc228
1 files changed, 0 insertions, 228 deletions
diff --git a/kpilot/tests/mergecalendars.cc b/kpilot/tests/mergecalendars.cc
deleted file mode 100644
index 898eb8c06..000000000
--- a/kpilot/tests/mergecalendars.cc
+++ /dev/null
@@ -1,228 +0,0 @@
-/* mergecalendars KPilot
-**
-** Copyright (C) 2007 by Jason 'vanRijn' Kasper <vR@movingparts.net)
-**
-*/
-
-/*
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU Lesser General Public License as published by
-** the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
-**
-** You should have received a copy of the GNU Lesser 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 <kaboutdata.h>
-#include <kapplication.h>
-#include <kdebug.h>
-#include <klocale.h>
-#include <kcmdlineargs.h>
-#include <kconfigskeleton.h>
-
-#include <libkcal/calendar.h>
-#include <libkcal/calendarlocal.h>
-
-#include "options.h"
-
-static const KCmdLineOptions options[] =
-{
- {"korgfile <path>","KOrganizer master file", 0},
- {"newfile <path>","Calendar file to merge into korganizer", 0},
- {"category <string>","Category to remove from 'korgfile' and to add to events in 'newfile' for synch purposes", 0},
- {"verbose", "Verbose debugging", 0},
- KCmdLineLastOption
-};
-
-
-
-int main(int argc, char **argv)
-{
-
- KApplication::disableAutoDcopRegistration();
-
- KAboutData aboutData("mergecalendars","Merge libkcal Calendars","0.1");
- KCmdLineArgs::init(argc,argv,&aboutData);
- KCmdLineArgs::addCmdLineOptions( options );
-
- KApplication app( false, false );
-
- KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
-
- int debug_level= (args->isSet("verbose")) ? 4 : 0;
-
- TQString korgfile = args->getOption("korgfile");
- TQString newfile = args->getOption("newfile");
- TQString category = args->getOption("category");
-
- if (korgfile.isEmpty())
- {
- WARNINGKPILOT << "! Must provide a korganizer file." << endl;
- }
- if (newfile.isEmpty())
- {
- WARNINGKPILOT << "! Must provide a newfile file." << endl;
- }
- if (category.isEmpty())
- {
- WARNINGKPILOT << "! Must provide a category to use." << endl;
- }
- if (korgfile.isEmpty() || newfile.isEmpty() || category.isEmpty())
- {
- return 1;
- }
-
- TQString korgsave = TQString("%1.updated").arg(korgfile);
- TQString newfilesave = TQString("%1.updated").arg(newfile);
-
- DEBUGKPILOT << "Using korgfile: [" << korgfile
- << "]" << endl;
- DEBUGKPILOT << "Using newfile: [" << newfile
- << "]" << endl;
- DEBUGKPILOT << "Will save korgfile to: [" << korgsave
- << "]" << endl;
- DEBUGKPILOT << "Will save newfile to: [" << newfilesave
- << "]" << endl << endl;
-
- KCal::CalendarLocal *calkorg = new KCal::CalendarLocal( TQString::fromLatin1("UTC") );
- KCal::CalendarLocal *calnew = new KCal::CalendarLocal( TQString::fromLatin1("UTC") );
- if (!calkorg || !calnew)
- {
- WARNINGKPILOT << "Unable to create base calendar objects." << endl;
- return 1;
- }
-
- if (!calkorg->load(korgfile) || !calnew->load(newfile))
- {
- WARNINGKPILOT << "Unable to load calendar files." << endl;
- return 1;
- }
-
- int numkorgstart = calkorg->incidences().count();
- int numnewstart = calnew->incidences().count();
-
- DEBUGKPILOT << " - Opened korganizer calendar with: ["
- << numkorgstart << "] incidences." << endl;
- DEBUGKPILOT << " - Opened newfile calendar with: ["
- << numnewstart << "] incidences." << endl;
-
- KCal::Event::List korgEvents;
- KCal::Event::List::ConstIterator korgIt;
- korgEvents = calkorg->events();
- korgEvents.setAutoDelete(false);
-
- KCal::Event::List newEvents;
- KCal::Event::List::ConstIterator newIt;
- newEvents = calnew->events();
- newEvents.setAutoDelete(false);
-
- DEBUGKPILOT << "Looking for previous pilot ids for exchange events..." << endl;
-
- // iterate through all events and try to find a korganizer event
- // that matches up with this external event's UID
- unsigned int numkorgpilotids = 0;
- KCal::Event *ev = 0;
- for (newIt = newEvents.begin(); newIt != newEvents.end(); ++newIt )
- {
- ev = *newIt;
- TQString uid = ev->uid();
- if (debug_level)
- DEBUGKPILOT << " - Looking at event: ["
- << ev->summary() << "], uid: ["
- << uid << "]" << endl;
-
- KCal::Event * evkorg = calkorg->event(uid);
- if ( evkorg && (evkorg->pilotId() > 0) )
- {
- unsigned long pilotId = evkorg->pilotId();
-
- if (debug_level)
- DEBUGKPILOT << "Found korg event for uid: ["
- << uid << "], pilotId: ["
- << pilotId << "]" << endl;
-
- ev->setPilotId(pilotId);
- ev->setSyncStatus(KCal::Incidence::SYNCMOD);
-
- ++numkorgpilotids;
- }
- }
-
- DEBUGKPILOT << "Matched: [" << numkorgpilotids << "] events."<< endl;
-
- DEBUGKPILOT << "Now searching for previous events of category: [" << category << "] in korganizer's calendar." << endl;
-
- // iterate through all events and try to find a korganizer event
- // that matches up with this external event's UID
- unsigned int numkorgremoved = 0;
-
- TQString categoryToken = category;
-
- // careful iterating and removing...
- KCal::Event *next = 0;
-
- korgIt = korgEvents.begin();
- for ( ev = *korgIt; ev != 0; ev = next )
- {
- if (++korgIt == korgEvents.end())
- {
- next = 0;
- }
- else
- {
- next = *korgIt;
- }
-
- if (ev->categoriesStr().contains(categoryToken))
- {
- if (debug_level)
- DEBUGKPILOT << " - Found matching event: ["
- << ev->summary() << "], uid: ["
- << ev->uid() << "]. Removing." << endl;
-
- korgEvents.remove(ev);
- calkorg->deleteEvent(ev);
-
- ++numkorgremoved;
- }
- }
-
- DEBUGKPILOT << " - Found: [" << numkorgremoved
- << "] prior: [" << categoryToken
- << "] category events." << endl;
-
- DEBUGKPILOT << "Merging new events into korganizer calendar..."
- << endl;
-
- for (newIt = newEvents.begin(); newIt != newEvents.end(); ++newIt )
- {
- ev = *newIt;
- ev->setCategories(category);
- korgEvents.append(ev);
- calkorg->addEvent(ev);
- }
-
- DEBUGKPILOT << "Ended up with: [" << korgEvents.count()
- << "] events in korganizer calendar." << endl;
-
- DEBUGKPILOT << "Saving updated korganizer file..." << endl;
- calkorg->save(korgsave);
-
- DEBUGKPILOT << "Saving updated newfile file..." << endl;
- calnew->save(newfilesave);
-
- return 0;
-}
-