~mterry/qtorganizer5-eds/cleanup-packaging

« back to all changes in this revision

Viewing changes to qorganizer/qorganizer-eds-engineid.cpp

  • Committer: Renato Araujo Oliveira Filho
  • Date: 2013-08-14 21:23:01 UTC
  • Revision ID: renato.filho@canonical.com-20130814212301-cmqs3nv48cvzy9qq
Initial commit.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright 2013 Canonical Ltd.
 
3
 *
 
4
 * This file is part of canonical-pim-service.
 
5
 *
 
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.
 
9
 *
 
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.
 
14
 *
 
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/>.
 
17
 */
 
18
 
 
19
#include "qorganizer-eds-engineid.h"
 
20
 
 
21
using namespace QtOrganizer;
 
22
 
 
23
QOrganizerEDSEngineId::QOrganizerEDSEngineId()
 
24
    : QOrganizerItemEngineId()
 
25
{
 
26
}
 
27
 
 
28
QOrganizerEDSEngineId::QOrganizerEDSEngineId(const QString &collectionId,
 
29
                                             const QString &id,
 
30
                                             const QString& managerUri)
 
31
    : QOrganizerItemEngineId(),
 
32
      m_managerUri(managerUri),
 
33
      m_collectionId(collectionId),
 
34
      m_itemId(id)
 
35
{
 
36
}
 
37
 
 
38
QOrganizerEDSEngineId::~QOrganizerEDSEngineId()
 
39
{
 
40
}
 
41
 
 
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)
 
47
{
 
48
}
 
49
 
 
50
QOrganizerEDSEngineId::QOrganizerEDSEngineId(const QString& idString)
 
51
    : QOrganizerItemEngineId()
 
52
{
 
53
    int temp = 0;
 
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);
 
61
}
 
62
 
 
63
bool QOrganizerEDSEngineId::isEqualTo(const QOrganizerItemEngineId* other) const
 
64
{
 
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)
 
70
        return false;
 
71
    return true;
 
72
}
 
73
 
 
74
bool QOrganizerEDSEngineId::isLessThan(const QOrganizerItemEngineId* other) const
 
75
{
 
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)
 
79
        return true;
 
80
    if (m_collectionId < otherPtr->m_collectionId)
 
81
        return true;
 
82
    if (m_collectionId == otherPtr->m_collectionId)
 
83
        return (m_itemId < otherPtr->m_itemId);
 
84
    return false;
 
85
}
 
86
 
 
87
QString QOrganizerEDSEngineId::managerUri() const
 
88
{
 
89
    return m_managerUri;
 
90
}
 
91
 
 
92
QString QOrganizerEDSEngineId::toString() const
 
93
{
 
94
    return (m_collectionId + QLatin1Char(':') + m_itemId);
 
95
}
 
96
 
 
97
QOrganizerItemEngineId* QOrganizerEDSEngineId::clone() const
 
98
{
 
99
    return new QOrganizerEDSEngineId(m_collectionId, m_itemId, m_managerUri);
 
100
}
 
101
 
 
102
uint QOrganizerEDSEngineId::hash() const
 
103
{
 
104
    return qHash(m_itemId);
 
105
}
 
106
 
 
107
#ifndef QT_NO_DEBUG_STREAM
 
108
QDebug& QOrganizerEDSEngineId::debugStreamOut(QDebug& dbg) const
 
109
{
 
110
    dbg.nospace() << "QOrganizerItemMemoryEngineId(" << m_managerUri << ", " << m_collectionId << ", " << m_itemId << ")";
 
111
    return dbg.maybeSpace();
 
112
}
 
113
 
 
114
QString QOrganizerEDSEngineId::toComponentId(const QtOrganizer::QOrganizerItemId &itemId)
 
115
{
 
116
    return itemId.toString().split("&#58;").last();
 
117
}
 
118
#endif