From ea3945a9bd8f9830f70b1efa133f9df13b19362f Mon Sep 17 00:00:00 2001 From: mickeyl Date: Tue, 16 Nov 2004 19:14:18 +0000 Subject: libopie1 goes into unsupported --- (limited to 'noncore/unsupported/libopie/pim/opimrecord.cpp') diff --git a/noncore/unsupported/libopie/pim/opimrecord.cpp b/noncore/unsupported/libopie/pim/opimrecord.cpp new file mode 100644 index 0000000..2365748 --- a/dev/null +++ b/noncore/unsupported/libopie/pim/opimrecord.cpp @@ -0,0 +1,182 @@ +#include + +#include +#include + +#include "opimrecord.h" + +Qtopia::UidGen OPimRecord::m_uidGen( Qtopia::UidGen::Qtopia ); + + +OPimRecord::OPimRecord( int uid ) + : Qtopia::Record() { + + m_lastHit = -1; + setUid( uid ); +} +OPimRecord::~OPimRecord() { +} +OPimRecord::OPimRecord( const OPimRecord& rec ) + : Qtopia::Record( rec ) +{ + (*this) = rec; +} + +OPimRecord &OPimRecord::operator=( const OPimRecord& rec) { + if ( this == &rec ) return *this; + + Qtopia::Record::operator=( rec ); + m_xrefman = rec.m_xrefman; + m_lastHit = rec.m_lastHit; + + return *this; +} +/* + * category names + */ +QStringList OPimRecord::categoryNames( const QString& appname ) const { + QStringList list; + QArray cats = categories(); + Categories catDB; + catDB.load( categoryFileName() ); + + for (uint i = 0; i < cats.count(); i++ ) { + list << catDB.label( appname, cats[i] ); + } + + return list; +} +void OPimRecord::setCategoryNames( const QStringList& ) { + +} +void OPimRecord::addCategoryName( const QString& ) { + Categories catDB; + catDB.load( categoryFileName() ); + + +} +bool OPimRecord::isEmpty()const { + return ( uid() == 0 ); +} +/*QString OPimRecord::crossToString()const { + QString str; + QMap >::ConstIterator it; + for (it = m_relations.begin(); it != m_relations.end(); ++it ) { + QArray id = it.data(); + for ( uint i = 0; i < id.size(); ++i ) { + str += it.key() + "," + QString::number( i ) + ";"; + } + } + str = str.remove( str.length()-1, 1); // strip the ; + //qWarning("IDS " + str ); + + return str; + }*/ +/* if uid = 1 assign a new one */ +void OPimRecord::setUid( int uid ) { + if ( uid == 1) + uid = uidGen().generate(); + + Qtopia::Record::setUid( uid ); +}; +Qtopia::UidGen &OPimRecord::uidGen() { + return m_uidGen; +} +OPimXRefManager &OPimRecord::xrefmanager() { + return m_xrefman; +} +int OPimRecord::rtti(){ + return 0; +} + +/** + * now let's put our data into the stream + */ +/* + * First read UID + * Categories + * XRef + */ +bool OPimRecord::loadFromStream( QDataStream& stream ) { + int Int; + uint UInt; + stream >> Int; + setUid(Int); + + /** Categories */ + stream >> UInt; + QArray array(UInt); + for (uint i = 0; i < UInt; i++ ) { + stream >> array[i]; + } + setCategories( array ); + + /* + * now we do the X-Ref stuff + */ + OPimXRef xref; + stream >> UInt; + for ( uint i = 0; i < UInt; i++ ) { + xref.setPartner( OPimXRef::One, partner( stream ) ); + xref.setPartner( OPimXRef::Two, partner( stream ) ); + m_xrefman.add( xref ); + } + + return true; +} +bool OPimRecord::saveToStream( QDataStream& stream )const { + /** UIDs */ + + stream << uid(); + + /** Categories */ + stream << categories().count(); + for ( uint i = 0; i < categories().count(); i++ ) { + stream << categories()[i]; + } + + /* + * first the XRef count + * then the xrefs + */ + stream << m_xrefman.list().count(); + for ( OPimXRef::ValueList::ConstIterator it = m_xrefman.list().begin(); + it != m_xrefman.list().end(); ++it ) { + flush( (*it).partner( OPimXRef::One), stream ); + flush( (*it).partner( OPimXRef::Two), stream ); + } + return true; +} +void OPimRecord::flush( const OPimXRefPartner& par, QDataStream& str ) const{ + str << par.service(); + str << par.uid(); + str << par.field(); +} +OPimXRefPartner OPimRecord::partner( QDataStream& stream ) { + OPimXRefPartner par; + QString str; + int i; + + stream >> str; + par.setService( str ); + + stream >> i; + par.setUid( i ); + + stream >> i ; + par.setField( i ); + + return par; +} +void OPimRecord::setLastHitField( int lastHit )const { + m_lastHit = lastHit; +} +int OPimRecord::lastHitField()const{ + return m_lastHit; +} +QMap OPimRecord::toExtraMap()const { + return customMap; +} +void OPimRecord::setExtraMap( const QMap& map) { + customMap = map; +} -- cgit v0.9.0.2