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 QtOrganizer 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 "qorganizeritemobserver.h"
35
36#include <QtCore/qpointer.h>
37
38#include "qorganizermanager.h"
39#include "qorganizermanager_p.h"
40
41QT_BEGIN_NAMESPACE_ORGANIZER
42
43class QOrganizerItemObserverPrivate
44{
45public:
46 QOrganizerItemId m_id;
47 QPointer<QOrganizerManager> m_manager;
48 QOrganizerManagerData *m_managerPrivate;
49};
50
51/*!
52 \class QOrganizerItemObserver
53 \brief The QOrganizerItemObserver class is a simple class that emits a signal when a single
54 particular item is updated or deleted.
55 \inmodule QtOrganizer
56 \ingroup organizer-main
57 */
58
59/*!
60 Constructs a QOrganizerItemObserver to observe the item in \a manager with the given \a itemId
61 and a \a parent object.
62 */
63QOrganizerItemObserver::QOrganizerItemObserver(QOrganizerManager *manager, const QOrganizerItemId &itemId, QObject *parent)
64 : QObject(parent), d(new QOrganizerItemObserverPrivate)
65{
66 d->m_id = itemId;
67 d->m_manager = manager;
68 d->m_managerPrivate = QOrganizerManagerData::get(manager);
69 d->m_managerPrivate->registerObserver(observer: this);
70}
71
72/*!
73 Destroys this observer.
74 */
75QOrganizerItemObserver::~QOrganizerItemObserver()
76{
77 if (d->m_manager.data())
78 d->m_managerPrivate->unregisterObserver(observer: this);
79 delete d;
80}
81
82/*!
83 Returns the ID of the item that this object observes.
84 */
85QOrganizerItemId QOrganizerItemObserver::itemId() const
86{
87 return d->m_id;
88}
89
90/*!
91 \fn void QOrganizerItemObserver::itemChanged(const QList<QOrganizerItemDetail::DetailType> &typesChanged)
92
93 This signal is emitted when the observed item is changed in the manager.
94
95 The set of item detail types modified in the reported change is a subset of those listed in \a typesChanged,
96 unless \a typesChanged is empty, in which case no limitation on the reported changes may be assumed.
97 */
98
99/*!
100 \fn void QOrganizerItemObserver::itemRemoved()
101
102 This signal is emitted when the observed item is removed from the manager.
103 */
104
105#include "moc_qorganizeritemobserver.cpp"
106
107QT_END_NAMESPACE_ORGANIZER
108

source code of qtpim/src/organizer/qorganizeritemobserver.cpp