File indexing completed on 2024-05-12 15:44:26
0001 /* 0002 Abstract class to load a monitor changes for a single contact 0003 SPDX-FileCopyrightText: 2013 David Edmundson <davidedmundson@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.1-or-later 0006 */ 0007 0008 #include "defaultcontactmonitor_p.h" 0009 0010 DefaultContactMonitor::DefaultContactMonitor(const QString &contactUri, const AllContactsMonitorPtr &allContactsWatcher) 0011 : ContactMonitor(contactUri) 0012 , m_allContactsMonitor(allContactsWatcher) 0013 { 0014 connect(allContactsWatcher.data(), &AllContactsMonitor::contactAdded, this, &DefaultContactMonitor::onContactAdded); 0015 connect(allContactsWatcher.data(), &AllContactsMonitor::contactRemoved, this, &DefaultContactMonitor::onContactRemoved); 0016 connect(allContactsWatcher.data(), &AllContactsMonitor::contactChanged, this, &DefaultContactMonitor::onContactChanged); 0017 0018 const QMap<QString, AbstractContact::Ptr> &contacts = m_allContactsMonitor->contacts(); 0019 QMap<QString, AbstractContact::Ptr>::const_iterator it = contacts.constFind(contactUri); 0020 if (it != contacts.constEnd()) { 0021 setContact(it.value()); 0022 } 0023 } 0024 0025 void DefaultContactMonitor::onContactAdded(const QString &id, const AbstractContact::Ptr &contact) 0026 { 0027 if (id == contactUri()) { 0028 setContact(contact); 0029 } 0030 } 0031 0032 void DefaultContactMonitor::onContactChanged(const QString &id, const AbstractContact::Ptr &contact) 0033 { 0034 if (id == contactUri()) { 0035 setContact(contact); 0036 } 0037 } 0038 0039 void DefaultContactMonitor::onContactRemoved(const QString &id) 0040 { 0041 if (id == contactUri()) { 0042 setContact(AbstractContact::Ptr()); 0043 } 0044 } 0045 0046 #include "moc_defaultcontactmonitor_p.cpp"