1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>TelepathyQt4: roster/roster-item.cpp</title>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="1"> </td>
<td class="postheader" valign="center">
<a href="index.html">
<font color="#004faf">Home</font></a> ·
<a href="classes.html">
<font color="#004faf">All Classes</font></a> ·
<a href="namespaces.html">
<font color="#004faf">All Namespaces</font></a> ·
<a href="modules.html">
<font color="#004faf">Modules</font></a> ·
<a href="functions.html">
<font color="#004faf">Functions</font></a> ·
<a href="files.html">
<font color="#004faf">Files</font></a>
</td>
</tr>
</table>
</body>
</html>
<!-- Generated by Doxygen 1.6.3 -->
<div class="contents">
<h1><a class="anchor" id="roster_example_roster_item_cpp">roster/roster-item.cpp </a></h1><div class="fragment"><pre class="fragment"><span class="comment">/*</span>
<span class="comment"> * This file is part of TelepathyQt4</span>
<span class="comment"> *</span>
<span class="comment"> * Copyright (C) 2009 Collabora Ltd. <http://www.collabora.co.uk/></span>
<span class="comment"> *</span>
<span class="comment"> * This library is free software; you can redistribute it and/or</span>
<span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<span class="comment"> * License as published by the Free Software Foundation; either</span>
<span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<span class="comment"> *</span>
<span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<span class="comment"> * Lesser General Public License for more details.</span>
<span class="comment"> *</span>
<span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<span class="comment"> * License along with this library; if not, write to the Free Software</span>
<span class="comment"> * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA</span>
<span class="comment"> */</span>
<span class="preprocessor">#include "roster-item.h"</span>
<span class="preprocessor">#include "_gen/roster-item.moc.hpp"</span>
<span class="keyword">using namespace </span>Tp;
RosterItem::RosterItem(<span class="keyword">const</span> ContactPtr &contact,
QListWidget *parent)
: QObject(parent),
QListWidgetItem(parent),
mContact(contact)
{
onContactChanged();
connect(contact.data(),
SIGNAL(simplePresenceChanged(<span class="keyword">const</span> QString &, uint, <span class="keyword">const</span> QString &)),
SLOT(onContactChanged()));
connect(contact.data(),
SIGNAL(subscriptionStateChanged(<a class="code" href="classTp_1_1Contact.html#ab758b1908d04f9870c8091456f3ddc5b">Tp::Contact::PresenceState</a>)),
SLOT(onContactChanged()));
connect(contact.data(),
SIGNAL(publishStateChanged(<a class="code" href="classTp_1_1Contact.html#ab758b1908d04f9870c8091456f3ddc5b">Tp::Contact::PresenceState</a>)),
SLOT(onContactChanged()));
connect(contact.data(),
SIGNAL(blockStatusChanged(<span class="keywordtype">bool</span>)),
SLOT(onContactChanged()));
}
RosterItem::~RosterItem()
{
}
<span class="keywordtype">void</span> RosterItem::onContactChanged()
{
QString status = mContact->presenceStatus();
<span class="comment">// I've asked to see the contact presence</span>
<span class="keywordflow">if</span> (mContact->subscriptionState() == <a class="code" href="classTp_1_1Contact.html#ab758b1908d04f9870c8091456f3ddc5ba9c5f79349a1de47e9734bf77042f0728">Contact::PresenceStateAsk</a>) {
setText(QString(QLatin1String(<span class="stringliteral">"%1 (%2) (awaiting approval)"</span>)).arg(mContact->id()).arg(status));
<span class="comment">// The contact asked to see my presence</span>
} <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mContact->publishState() == <a class="code" href="classTp_1_1Contact.html#ab758b1908d04f9870c8091456f3ddc5ba9c5f79349a1de47e9734bf77042f0728">Contact::PresenceStateAsk</a>) {
setText(QString(QLatin1String(<span class="stringliteral">"%1 (%2) (pending approval)"</span>)).arg(mContact->id()).arg(status));
} <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mContact->subscriptionState() == <a class="code" href="classTp_1_1Contact.html#ab758b1908d04f9870c8091456f3ddc5baf7076e1e97f86d1c4ebc4ebe290e3c61">Contact::PresenceStateNo</a> &&
mContact->publishState() == <a class="code" href="classTp_1_1Contact.html#ab758b1908d04f9870c8091456f3ddc5baf7076e1e97f86d1c4ebc4ebe290e3c61">Contact::PresenceStateNo</a>) {
setText(QString(QLatin1String(<span class="stringliteral">"%1 (unknown)"</span>)).arg(mContact->id()));
} <span class="keywordflow">else</span> {
<span class="keywordflow">if</span> (mContact->isBlocked()) {
setText(QString(QLatin1String(<span class="stringliteral">"%1 (%2) (blocked)"</span>)).arg(mContact->id()).arg(status));
} <span class="keywordflow">else</span> {
setText(QString(QLatin1String(<span class="stringliteral">"%1 (%2)"</span>)).arg(mContact->id()).arg(status));
}
}
emit changed();
}
</pre></div> </div>
<p /><address><hr /><div align="center">
<table width="100%" cellspacing="0" border="0"><tr class="address">
<td width="30%">Copyright © 2008-2010 Collabora Ltd. and Nokia Corporation</td>
<td width="30%" align="right"><div align="right">Telepathy-Qt4 0.3.6</div></td>
</tr></table></div></address>
</body>
</html>
|