1/****************************************************************************
2**
3** Copyright (C) 2015 The Qt Company Ltd.
4** Contact: http://www.qt.io/licensing/
5**
6** This file is part of the QtContacts module of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:LGPL21$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see http://www.qt.io/terms-conditions. For further
15** information use the contact form at http://www.qt.io/contact-us.
16**
17** GNU Lesser General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU Lesser
19** General Public License version 2.1 or version 3 as published by the Free
20** Software Foundation and appearing in the file LICENSE.LGPLv21 and
21** LICENSE.LGPLv3 included in the packaging of this file. Please review the
22** following information to ensure the GNU Lesser General Public License
23** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
24** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25**
26** As a special exception, The Qt Company gives you certain additional
27** rights. These rights are described in The Qt Company LGPL Exception
28** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29**
30** $QT_END_LICENSE$
31**
32****************************************************************************/
33
34#include "qcontactidfilter.h"
35#include "qcontactidfilter_p.h"
36
37QT_BEGIN_NAMESPACE_CONTACTS
38
39/*!
40 \class QContactIdFilter
41 \brief The QContactIdFilter class provides a filter based around a list of contact ids
42
43
44 \inmodule QtContacts
45
46 \ingroup contacts-filters
47
48 It may be used to select contacts whose ids are contained in the given list of ids.
49 */
50
51Q_IMPLEMENT_CONTACTFILTER_PRIVATE(QContactIdFilter);
52
53/*!
54 * \fn QContactIdFilter::QContactIdFilter(const QContactFilter& other)
55 * Constructs a copy of \a other if possible, otherwise constructs a new contact id filter
56 */
57
58/*!
59 * Constructs a new contact id filter
60 */
61QContactIdFilter::QContactIdFilter()
62 : QContactFilter(new QContactIdFilterPrivate)
63{
64}
65
66/*!
67 * Sets the list which contains the ids of possible matching contacts to \a ids
68 * \sa ids()
69 */
70void QContactIdFilter::setIds(const QList<QContactId>& ids)
71{
72 Q_D(QContactIdFilter);
73 d->m_ids = ids;
74}
75
76/*!
77 * Adds the id \a id into the list which contains the ids of possible matching contacts
78 * \sa setIds()
79 */
80void QContactIdFilter::add(const QContactId& id)
81{
82 Q_D(QContactIdFilter);
83 if (!d->m_ids.contains(t: id))
84 d->m_ids.append(t: id);
85}
86
87/*!
88 * Removes the id \a id from the list which contains the ids of possible matching contacts,
89 * if it is contained in the list, otherwise has no effect.
90 * \sa clear()
91 */
92void QContactIdFilter::remove(const QContactId& id)
93{
94 Q_D(QContactIdFilter);
95 d->m_ids.removeAll(t: id);
96}
97
98/*!
99 * Clears the list which contains the ids of possible matching contacts.
100 * An id filter with a cleared list will match no contacts.
101 * \sa setIds()
102 */
103void QContactIdFilter::clear()
104{
105 Q_D(QContactIdFilter);
106 d->m_ids.clear();
107}
108
109/*!
110 * Returns the list of ids of contacts which match this filter
111 * \sa setIds()
112 */
113QList<QContactId> QContactIdFilter::ids() const
114{
115 Q_D(const QContactIdFilter);
116 return d->m_ids;
117}
118
119QT_END_NAMESPACE_CONTACTS
120

source code of qtpim/src/contacts/filters/qcontactidfilter.cpp