diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 (patch) | |
tree | 67208f7c145782a7e90b123b982ca78d88cc2c87 /kpilot/conduits/vcalconduit/teststate.cc | |
download | tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.tar.gz tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kpilot/conduits/vcalconduit/teststate.cc')
-rw-r--r-- | kpilot/conduits/vcalconduit/teststate.cc | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/kpilot/conduits/vcalconduit/teststate.cc b/kpilot/conduits/vcalconduit/teststate.cc new file mode 100644 index 000000000..d8c8e56cc --- /dev/null +++ b/kpilot/conduits/vcalconduit/teststate.cc @@ -0,0 +1,127 @@ +/* KPilot +** +** Copyright (C) 2006 by Bertjan Broeksema <b.broeksema@gmail.com> +** +** This file is the implementation of the TestState. +*/ + +/* +** 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 <qdatetime.h> +#include <qfile.h> + +#include "pilotSerialDatabase.h" +#include "pilotLocalDatabase.h" +#include "pilotDateEntry.h" + +#include "teststate.h" +#include "vcal-conduitbase.h" + +TestState::TestState() : fCalendar( QString::null ) +{ + fState = eTest; +} + +TestState::~TestState() +{ + FUNCTIONSETUP; +} + +void TestState::startSync( ConduitAction *ca ) +{ + FUNCTIONSETUP; + + VCalConduitBase *vccb = dynamic_cast<VCalConduitBase*>(ca); + if( !vccb ) + { + return; + } + + DEBUGKPILOT << fname << ": Starting teststate." << endl; + + vccb->setHasNextRecord( true ); + fPilotindex = 0; + fStarted = true; +} + +void TestState::handleRecord( ConduitAction *ca ) +{ + FUNCTIONSETUP; + + VCalConduitBase *vccb = dynamic_cast<VCalConduitBase*>(ca); + if( !vccb ) + { + return; + } + + DEBUGKPILOT << fname << ": Handling record " << fPilotindex << endl; + + PilotRecord *record = vccb->readRecordByIndex( fPilotindex ); + + if( record ) + { + KCal::Incidence *i = vccb->incidenceFromRecord( record ); + fCalendar.addIncidence( i ); + + KPILOT_DELETE(record); + + // Schedule more work. + ++fPilotindex; + } + else + { + vccb->setHasNextRecord( false ); + } +} + +void TestState::finishSync( ConduitAction *ca ) +{ + FUNCTIONSETUP; + + VCalConduitBase *vccb = dynamic_cast<VCalConduitBase*>(ca); + if( !vccb ) + { + return; + } + + DEBUGKPILOT << fname << ": finishing teststate." << endl; + + // No more records present on the device so lets dump the + // readed records in a file. + QFile f( CSL1("dump.ics") ); + if( !f.exists() ) + { + f.open( IO_WriteOnly ); + f.close(); + } + + if( !fCalendar.save( CSL1("dump.ics") ) ) + { + DEBUGKPILOT << fname << ": Can't save calendar file." << endl; + } + + fCalendar.close(); + + vccb->setState( 0L ); +} |