summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--korganizer/calendarview.cpp20
-rw-r--r--libkcal/incidencebase.cpp88
-rw-r--r--libkcal/incidencebase.h13
-rw-r--r--libkcal/sharpformat.cpp20
4 files changed, 41 insertions, 100 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index fab4540..5150455 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -726,9 +726,9 @@ int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , b
// 3 cancel
QDateTime lastSync = mLastCalendarSync;
if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
bool remCh, locCh;
- remCh = ( remote->zaurusUid() != local->zaurusUid() );
+ remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) );
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 ");
@@ -772,9 +772,9 @@ int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , b
equ = (*((Journal*) local) == *((Journal*) remote));
if ( equ ) {
//qDebug("equal ");
if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
- local->setZaurusUid( remote->zaurusUid() );
+ local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) );
}
if ( mode < SYNC_PREF_FORCE_LOCAL )
return 0;
@@ -894,15 +894,15 @@ void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* t
Event* eve = lastSync.first();
while ( eve ) {
- int id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name
- if ( id >= 0 ) {
+ QString id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name
+ if ( !id.isEmpty() ) {
QString des = eve->description();
QString pref = "e";
if ( toDelete->type() == "Todo" )
pref = "t";
- des += pref+ QString::number ( id ) + ",";
+ des += pref+ id + ",";
eve->setReadOnly( false );
eve->setDescription( des );
eve->setReadOnly( true );
}
@@ -1012,9 +1012,9 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
//qDebug("take %d %s ", take, inL->summary().latin1());
if ( take == 3 )
return false;
if ( take == 1 ) {// take local
- inL->setZaurusUid( inR->zaurusUid() );
+ inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
remote->deleteIncidence( inR );
if ( inL->revision() < maxrev )
inL->setRevision( maxrev );
remote->addIncidence( inL->clone() );
@@ -1032,9 +1032,9 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
QString des = eventLSync->description();
QString pref = "e";
if ( inR->type() == "Todo" )
pref = "t";
- if ( des.find(pref+QString::number( inR->getID(mCurrentSyncDevice) ) +"," ) >= 0 && mode != 5) { // delete it
+ if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it
inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE );
//remote->deleteIncidence( inR );
++deletedEventR;
} else {
@@ -1082,14 +1082,14 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
if ( !skipIncidence ) {
inR = remote->incidence( uid );
if ( ! inR ) {
if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
- if ( inL->getID(mCurrentSyncDevice) >= 0 && mode != 4 ) {
+ if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) {
local->deleteIncidence( inL );
++deletedEventL;
} else {
if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) {
- inL->setID(mCurrentSyncDevice, -1 );
+ inL->removeID(mCurrentSyncDevice );
++addedEventR;
inL->setLastModified( modifiedCalendar );
remote->addIncidence( inL->clone() );
}
@@ -1207,9 +1207,9 @@ void CalendarView::syncSharp()
if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) {
loc = mCalendar->incidence(inc->uid() );
if ( loc ) {
loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) );
- loc->setZaurusUid( inc->zaurusUid() );
+ loc->setCsum( mCurrentSyncDevice, inc->getCsum(mCurrentSyncDevice) );
}
}
inc = iL.next();
}
diff --git a/libkcal/incidencebase.cpp b/libkcal/incidencebase.cpp
index 5d8785b..15c4fa8 100644
--- a/libkcal/incidencebase.cpp
+++ b/libkcal/incidencebase.cpp
@@ -20,8 +20,9 @@
#include <kglobal.h>
#include <klocale.h>
#include <kdebug.h>
+#include <kidmanager.h>
#include "calformat.h"
#include "incidencebase.h"
@@ -37,9 +38,8 @@ IncidenceBase::IncidenceBase() :
mFloats = false;
mDuration = 0;
mHasDuration = false;
mPilotId = 0;
- mZaurusUid = 0;
mExternalId = ":";
mTempSyncStat = 0;
mSyncStatus = 0;
mAttendees.setAutoDelete( true );
@@ -60,9 +60,8 @@ IncidenceBase::IncidenceBase(const IncidenceBase &i) :
}
mFloats = i.mFloats;
mLastModified = i.mLastModified;
mPilotId = i.mPilotId;
- mZaurusUid = i.mZaurusUid;
mTempSyncStat = i.mTempSyncStat;
mSyncStatus = i.mSyncStatus;
mExternalId = i.mExternalId;
// The copied object is a new one, so it isn't observed by the observer
@@ -340,18 +339,8 @@ int IncidenceBase::pilotId() const
{
return mPilotId;
}
-int IncidenceBase::zaurusUid() const
-{
- return mZaurusUid;
-}
-void IncidenceBase::setZaurusUid( int id )
-{
- if (mReadOnly) return;
- mZaurusUid = id;
-}
-
int IncidenceBase::tempSyncStat() const
{
return mTempSyncStat;
}
@@ -360,76 +349,31 @@ void IncidenceBase::setTempSyncStat( int id )
if (mReadOnly) return;
mTempSyncStat = id;
}
-void IncidenceBase::setID( const QString & prof , int id )
+void IncidenceBase::removeID(const QString &prof)
{
- int num = mExternalId.find( ":"+prof+";" );
- if ( num >= 0 ) {
- int len = prof.length()+2;
- int end = mExternalId.find( ";", num+len );
- if ( end > 0 ) {
- mExternalId = mExternalId.left( num+len ) +QString::number( id)+mExternalId.mid( end );
- } else
- qDebug("Error in IncidenceBase::setID ");
- } else {
- mExternalId += prof+";"+QString::number( id) +";0:";
- }
- qDebug("setID*%s*%d*%s* ", prof.latin1(), id,mExternalId.latin1() );
+ mExternalId = KIdManager::removeId ( mExternalId, prof);
+
}
-int IncidenceBase::getID( const QString & prof)
+void IncidenceBase::setID( const QString & prof , const QString & id )
{
- int ret = -1;
- int num = mExternalId.find(":"+ prof+";" );
- if ( num >= 0 ) {
- int len = prof.length()+2;
- int end = mExternalId.find( ";", num+len );
- if ( end > 0 ) {
- bool ok;
- ret = mExternalId.mid ( num + len,end-len-num).toInt( &ok );
- if (!ok)
- ret = -1;
- }
+ mExternalId = KIdManager::setId ( mExternalId, prof, id );
}
- qDebug("getID*%s*%d*%s* ", prof.latin1(), ret,mExternalId.latin1() );
- return ret;
+QString IncidenceBase::getID( const QString & prof)
+{
+ return KIdManager::getId ( mExternalId, prof );
}
// example :Sharp_DTM;22;23566:TP;-1;8654:TPP;18;0:
// format name;III;JJJ: III >= 0, may be -1. JJJ always >= 0
-void IncidenceBase::setCsum( const QString & prof , int id )
-{
- int num = mExternalId.find( ":"+prof+";");
- if ( num >= 0 ) {
- int len = prof.length()+2;
- num = mExternalId.find( ";", num+len );
- int end = mExternalId.find( ":", num+1 );
- if ( end > 0 ) {
- mExternalId = mExternalId.left( num ) +QString::number(id)+mExternalId.mid( end );
- } else
- qDebug("Error in IncidenceBase::setCsum ");
- } else {
- mExternalId += prof+";-1;"+QString::number( id) +":";
- }
- qDebug("setCsum*%s*%d*%s* ", prof.latin1(), id,mExternalId.latin1() );
-}
-int IncidenceBase::getCsum( const QString & prof)
-{
- int ret = -1;
- int num = mExternalId.find( ":"+prof+";" );
- if ( num >= 0 ) {
- int len = prof.length()+2;
- num = mExternalId.find( ";", num+len );
- int end = mExternalId.find( ":", num+1 );
- if ( end > 0 ) {
- bool ok;
- ret = mExternalId.mid ( num ,end-num).toInt( &ok );
- if (!ok)
- ret = -1;
- }
- }
- qDebug("getCsum*%s*%d*%s* ", prof.latin1(), ret,mExternalId.latin1() );
- return ret;
+void IncidenceBase::setCsum( const QString & prof , const QString & id )
+{
+ mExternalId = KIdManager::setCsum ( mExternalId, prof, id );
+}
+QString IncidenceBase::getCsum( const QString & prof)
+{
+ return KIdManager::getCsum ( mExternalId, prof );
}
void IncidenceBase::setIDStr( const QString & s )
{
diff --git a/libkcal/incidencebase.h b/libkcal/incidencebase.h
index e2950d3..e02d03a 100644
--- a/libkcal/incidencebase.h
+++ b/libkcal/incidencebase.h
@@ -125,19 +125,17 @@ class IncidenceBase : public CustomProperties
void setPilotId(int id);
/** Return Pilot Id. */
int pilotId() const;
- void setZaurusUid(int id);
- int zaurusUid() const;
void setTempSyncStat(int id);
int tempSyncStat() const;
void setIDStr( const QString & );
QString IDStr() const;
- void setID( const QString &, int );
- int getID( const QString & );
- void setCsum( const QString &, int );
- int getCsum( const QString & );
-
+ void setID( const QString &, const QString & );
+ QString getID( const QString & );
+ void setCsum( const QString &, const QString & );
+ QString getCsum( const QString & );
+ void removeID(const QString &);
void registerObserver( Observer * );
void unRegisterObserver( Observer * );
void updated();
@@ -158,9 +156,8 @@ class IncidenceBase : public CustomProperties
int mDuration;
bool mHasDuration;
QString mExternalId;
- int mZaurusUid;
int mTempSyncStat;
// PILOT SYNCHRONIZATION STUFF
int mPilotId; // unique id for pilot sync
diff --git a/libkcal/sharpformat.cpp b/libkcal/sharpformat.cpp
index 605a54d..e8934bf 100644
--- a/libkcal/sharpformat.cpp
+++ b/libkcal/sharpformat.cpp
@@ -89,10 +89,10 @@ class SharpParser : public QObject
if ( event )
event = (Event*)event->clone();
else
event = new Event;
- event->setID("Sharp_DTM", attList[0].toInt() );
- event->setZaurusUid( cSum );
+ event->setID("Sharp_DTM", attList[0] );
+ event->setCsum( "Sharp_DTM", QString::number( cSum ));
event->setTempSyncStat(SYNC_TEMPSTATE_NEW_EXTERNAL );
event->setSummary( attList[2] );
event->setLocation( attList[3] );
@@ -200,10 +200,10 @@ class SharpParser : public QObject
//1,,,,,1,4,Loch zumachen,""
//3,Privat,20040317T000000,20040318T000000,20040319T000000,0,5,Call bbb,"notes123 bbb gggg ""bb "" "
//2,"Familie,Freunde,Holiday",20040318T000000,20040324T000000,20040317T000000,1,2,tod2,notes
- todo->setID( "Sharp_DTM", attList[0].toInt() );
- todo->setZaurusUid( cSum );
+ todo->setID( "Sharp_DTM", attList[0]);
+ todo->setCsum( "Sharp_DTM", QString::number( cSum ));
todo->setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL );
todo->setSummary( attList[7] );
todo->setDescription( attList[8]);
@@ -465,10 +465,10 @@ int SharpFormat::getNumFromRecord( QString answer, Incidence* inc )
bool ok;
int newnum = templist[0].toInt( &ok );
if ( ok && newnum > 0) {
retval = newnum;
- inc->setID( "Sharp_DTM",newnum );
- inc->setZaurusUid( getCsum( templist ) );
+ inc->setID( "Sharp_DTM",templist[0] );
+ inc->setCsum( "Sharp_DTM", QString::number( getCsum( templist ) ));
inc->setTempSyncStat( SYNC_TEMPSTATE_NEW_ID );
}
}
}
@@ -519,9 +519,9 @@ bool SharpFormat::save( Calendar *calendar)
deleteString += eString + "\n";
deleteEnt = true;
changeEnt = true;
}
- else if ( ev->getID("Sharp_DTM") == -1 ) { // add new
+ else if ( ev->getID("Sharp_DTM").isEmpty() ) { // add new
command = "(echo \"" + ePrefix + eString + "\" ) | db2file datebook -w -g -c " + codec+ " > "+ fileName;
system ( command.utf8() );
QFile file( fileName );
if (!file.open( IO_ReadOnly ) ) {
@@ -605,9 +605,9 @@ bool SharpFormat::save( Calendar *calendar)
deleteString += eString + "\n";
deleteEnt = true;
changeEnt = true;
}
- else if ( to->getID("Sharp_DTM") == -1 ) { // add new
+ else if ( to->getID("Sharp_DTM").isEmpty() ) { // add new
command = "(echo \"" + tPrefix + eString + "\" ) | db2file todo -w -g -c " + codec+ " > "+ fileName;
system ( command.utf8() );
QFile file( fileName );
if (!file.open( IO_ReadOnly ) ) {
@@ -695,9 +695,9 @@ QString SharpFormat::dtToString( const QDateTime& dti, bool useTZ )
}
QString SharpFormat::getEventString( Event* event )
{
QStringList list;
- list.append( QString::number(event->getID("Sharp_DTM") ) );
+ list.append( event->getID("Sharp_DTM") );
list.append( event->categories().join(",") );
if ( !event->summary().isEmpty() )
list.append( event->summary() );
else
@@ -859,9 +859,9 @@ QString SharpFormat::getEventString( Event* event )
}
QString SharpFormat::getTodoString( Todo* todo )
{
QStringList list;
- list.append( QString::number( todo->getID("Sharp_DTM") ) );
+ list.append( todo->getID("Sharp_DTM") );
list.append( todo->categories().join(",") );
if ( todo->hasStartDate() ) {
list.append( dtToString( todo->dtStart()) );