File indexing completed on 2023-05-30 11:40:28

0001 /*
0002     Copyright (C) 2012 Rohan Garg <rohangarg@kubuntu.org>
0003 
0004     This library is free software; you can redistribute it and/or
0005     modify it under the terms of the GNU Lesser General Public
0006     License as published by the Free Software Foundation; either
0007     version 2.1 of the License, or (at your option) any later version.
0008 
0009     This library is distributed in the hope that it will be useful,
0010     but WITHOUT ANY WARRANTY; without even the implied warranty of
0011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012     Lesser General Public License for more details.
0013 
0014     You should have received a copy of the GNU Lesser General Public
0015     License along with this library; if not, write to the Free Software
0016     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
0017 */
0018 
0019 #ifndef CONTACTNOTIFY_H
0020 #define CONTACTNOTIFY_H
0021 
0022 #include <TelepathyQt/Presence>
0023 #include <TelepathyQt/Types>
0024 
0025 class QPixmap;
0026 
0027 class ContactNotify : public QObject
0028 {
0029     Q_OBJECT
0030 public:
0031     ContactNotify(QObject *parent = 0);
0032 
0033 private Q_SLOTS:
0034     void onContactsChanged(const Tp::Contacts &contactsAdded, const Tp::Contacts &contactsRemoved);
0035     void contactPresenceChanged(const Tp::Presence &presence);
0036     void contactAvatarTokenChanged(const QString &avatarToken);
0037     void saveAvatarTokens();
0038 
0039 private:
0040     void sendNotification(const QString &text, const QPixmap &pixmap, const Tp::ContactPtr &contact);
0041 
0042     QHash<QString, int> m_presenceHash;
0043     QHash<QString, QString> m_avatarTokensHash;
0044 };
0045 
0046 #endif // CONTACTNOTIFY_H