File: roster__example__roster__item__cpp.html

package info (click to toggle)
telepathy-qt4 0.3.6-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 14,260 kB
  • ctags: 12,185
  • sloc: cpp: 29,241; xml: 23,692; ansic: 16,079; sh: 10,327; python: 3,080; makefile: 1,553
file content (115 lines) | stat: -rw-r--r-- 6,330 bytes parent folder | download
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">&nbsp;&nbsp;</td>
<td class="postheader" valign="center">
<a href="index.html">
<font color="#004faf">Home</font></a>&nbsp;&middot;
<a href="classes.html">
<font color="#004faf">All Classes</font></a>&nbsp;&middot;
<a href="namespaces.html">
<font color="#004faf">All Namespaces</font></a>&nbsp;&middot;
<a href="modules.html">
<font color="#004faf">Modules</font></a>&nbsp;&middot;
<a href="functions.html">
<font color="#004faf">Functions</font></a>&nbsp;&middot;
<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. &lt;http://www.collabora.co.uk/&gt;</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 &quot;roster-item.h&quot;</span>
<span class="preprocessor">#include &quot;_gen/roster-item.moc.hpp&quot;</span>

<span class="keyword">using namespace </span>Tp;

RosterItem::RosterItem(<span class="keyword">const</span> ContactPtr &amp;contact,
        QListWidget *parent)
    : QObject(parent),
      QListWidgetItem(parent),
      mContact(contact)
{
    onContactChanged();

    connect(contact.data(),
            SIGNAL(simplePresenceChanged(<span class="keyword">const</span> QString &amp;, uint, <span class="keyword">const</span> QString &amp;)),
            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-&gt;presenceStatus();
    <span class="comment">// I&#39;ve asked to see the contact presence</span>
    <span class="keywordflow">if</span> (mContact-&gt;subscriptionState() == <a class="code" href="classTp_1_1Contact.html#ab758b1908d04f9870c8091456f3ddc5ba9c5f79349a1de47e9734bf77042f0728">Contact::PresenceStateAsk</a>) {
        setText(QString(QLatin1String(<span class="stringliteral">&quot;%1 (%2) (awaiting approval)&quot;</span>)).arg(mContact-&gt;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-&gt;publishState() == <a class="code" href="classTp_1_1Contact.html#ab758b1908d04f9870c8091456f3ddc5ba9c5f79349a1de47e9734bf77042f0728">Contact::PresenceStateAsk</a>) {
        setText(QString(QLatin1String(<span class="stringliteral">&quot;%1 (%2) (pending approval)&quot;</span>)).arg(mContact-&gt;id()).arg(status));
    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mContact-&gt;subscriptionState() == <a class="code" href="classTp_1_1Contact.html#ab758b1908d04f9870c8091456f3ddc5baf7076e1e97f86d1c4ebc4ebe290e3c61">Contact::PresenceStateNo</a> &amp;&amp;
               mContact-&gt;publishState() == <a class="code" href="classTp_1_1Contact.html#ab758b1908d04f9870c8091456f3ddc5baf7076e1e97f86d1c4ebc4ebe290e3c61">Contact::PresenceStateNo</a>) {
        setText(QString(QLatin1String(<span class="stringliteral">&quot;%1 (unknown)&quot;</span>)).arg(mContact-&gt;id()));
    } <span class="keywordflow">else</span> {
        <span class="keywordflow">if</span> (mContact-&gt;isBlocked()) {
            setText(QString(QLatin1String(<span class="stringliteral">&quot;%1 (%2) (blocked)&quot;</span>)).arg(mContact-&gt;id()).arg(status));
        } <span class="keywordflow">else</span> {
            setText(QString(QLatin1String(<span class="stringliteral">&quot;%1 (%2)&quot;</span>)).arg(mContact-&gt;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 &copy; 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>