2
* Copyright 2013 Canonical Ltd.
4
* This file is part of canonical-pim-service.
6
* contact-service-app is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; version 3.
10
* contact-service-app is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
15
* You should have received a copy of the GNU General Public License
16
* along with this program. If not, see <http://www.gnu.org/licenses/>.
19
#include "qorganizer-eds-engineid.h"
21
using namespace QtOrganizer;
23
QOrganizerEDSEngineId::QOrganizerEDSEngineId()
24
: QOrganizerItemEngineId()
28
QOrganizerEDSEngineId::QOrganizerEDSEngineId(const QString &collectionId,
30
const QString& managerUri)
31
: QOrganizerItemEngineId(),
32
m_managerUri(managerUri),
33
m_collectionId(collectionId),
38
QOrganizerEDSEngineId::~QOrganizerEDSEngineId()
42
QOrganizerEDSEngineId::QOrganizerEDSEngineId(const QOrganizerEDSEngineId& other)
43
: QOrganizerItemEngineId(),
44
m_managerUri(other.m_managerUri),
45
m_collectionId(other.m_collectionId),
46
m_itemId(other.m_itemId)
50
QOrganizerEDSEngineId::QOrganizerEDSEngineId(const QString& idString)
51
: QOrganizerItemEngineId()
54
int colonIndex = idString.indexOf(QStringLiteral(":"), 0);
55
m_managerUri = idString.mid(temp, colonIndex);
56
temp = colonIndex + 1;
57
colonIndex = idString.indexOf(QStringLiteral(":"), temp);
58
m_collectionId = idString.mid(temp, (colonIndex-temp));
59
temp = colonIndex + 1;
60
m_itemId = idString.mid(temp);
63
bool QOrganizerEDSEngineId::isEqualTo(const QOrganizerItemEngineId* other) const
65
// note: we don't need to check the collectionId because itemIds in the memory
66
// engine are unique regardless of which collection the item is in; also, we
67
// don't need to check the managerUri, because this function is not called if
68
// the managerUris don't match.
69
if (m_itemId != static_cast<const QOrganizerEDSEngineId*>(other)->m_itemId)
74
bool QOrganizerEDSEngineId::isLessThan(const QOrganizerItemEngineId* other) const
76
// order by collection, then by item in collection.
77
const QOrganizerEDSEngineId* otherPtr = static_cast<const QOrganizerEDSEngineId*>(other);
78
if (m_managerUri < otherPtr->m_managerUri)
80
if (m_collectionId < otherPtr->m_collectionId)
82
if (m_collectionId == otherPtr->m_collectionId)
83
return (m_itemId < otherPtr->m_itemId);
87
QString QOrganizerEDSEngineId::managerUri() const
92
QString QOrganizerEDSEngineId::toString() const
94
return (m_collectionId + QLatin1Char(':') + m_itemId);
97
QOrganizerItemEngineId* QOrganizerEDSEngineId::clone() const
99
return new QOrganizerEDSEngineId(m_collectionId, m_itemId, m_managerUri);
102
uint QOrganizerEDSEngineId::hash() const
104
return qHash(m_itemId);
107
#ifndef QT_NO_DEBUG_STREAM
108
QDebug& QOrganizerEDSEngineId::debugStreamOut(QDebug& dbg) const
110
dbg.nospace() << "QOrganizerItemMemoryEngineId(" << m_managerUri << ", " << m_collectionId << ", " << m_itemId << ")";
111
return dbg.maybeSpace();
114
QString QOrganizerEDSEngineId::toComponentId(const QtOrganizer::QOrganizerItemId &itemId)
116
return itemId.toString().split(":").last();