~ubuntu-branches/ubuntu/karmic/psi/karmic

« back to all changes in this revision

Viewing changes to src/conferencebookmark.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jan Niehusmann
  • Date: 2008-04-14 18:57:30 UTC
  • mfrom: (2.1.9 hardy)
  • Revision ID: james.westby@ubuntu.com-20080414185730-528re3zp0m2hdlhi
Tags: 0.11-8
* added CONFIG -= link_prl to .pro files and removed dependencies
  which are made unnecessary by this change
* Fix segfault when closing last chat tab with qt4.4
  (This is from upstream svn, rev. 1101) (Closes: Bug#476122)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * conferencebookmark.cpp
 
3
 * Copyright (C) 2006  Remko Troncon
 
4
 *
 
5
 * This program is free software; you can redistribute it and/or
 
6
 * modify it under the terms of the GNU General Public License
 
7
 * as published by the Free Software Foundation; either version 2
 
8
 * of the License, or (at your option) any later version.
 
9
 *
 
10
 * This program is distributed in the hope that it will be useful,
 
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
 * GNU General Public License for more details.
 
14
 *
 
15
 * You should have received a copy of the GNU General Public License
 
16
 * along with this library; if not, write to the Free Software
 
17
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
18
 *
 
19
 */
 
20
 
 
21
#include <QDomDocument>
 
22
#include <QDomElement>
 
23
 
 
24
#include "conferencebookmark.h"
 
25
#include "xmpp_xmlcommon.h"
 
26
 
 
27
ConferenceBookmark::ConferenceBookmark(const QString& name, const XMPP::Jid& jid, bool auto_join, const QString& nick, const QString& password) : name_(name), jid_(jid), auto_join_(auto_join), nick_(nick), password_(password)
 
28
 
29
}
 
30
 
 
31
ConferenceBookmark::ConferenceBookmark(const QDomElement& el) : auto_join_(false)
 
32
{
 
33
        fromXml(el);
 
34
}
 
35
 
 
36
const QString& ConferenceBookmark::name() const 
 
37
 
38
        return name_; 
 
39
}
 
40
 
 
41
const XMPP::Jid& ConferenceBookmark::jid() const 
 
42
 
43
        return jid_; 
 
44
}
 
45
 
 
46
bool ConferenceBookmark::autoJoin() const 
 
47
 
48
        return auto_join_; 
 
49
}
 
50
 
 
51
const QString& ConferenceBookmark::nick() const 
 
52
 
53
        return nick_; 
 
54
}
 
55
 
 
56
const QString& ConferenceBookmark::password() const 
 
57
 
58
        return password_; 
 
59
}
 
60
 
 
61
bool ConferenceBookmark::isNull() const
 
62
{
 
63
        return name_.isEmpty() && jid_.isEmpty();
 
64
}
 
65
 
 
66
void ConferenceBookmark::fromXml(const QDomElement& e)
 
67
{
 
68
        jid_ = e.attribute("jid");
 
69
        name_ = e.attribute("name");
 
70
        if (e.attribute("autojoin") == "true" || e.attribute("autojoin") == "1")
 
71
                auto_join_ = true;
 
72
        
 
73
        for (QDomNode n = e.firstChild(); !n.isNull(); n = n.nextSibling()) {
 
74
                QDomElement i = n.toElement();
 
75
                if (i.isNull())
 
76
                        continue;
 
77
                else if (i.tagName() == "nick") {
 
78
                        nick_ = i.text();
 
79
                }
 
80
                else if (i.tagName() == "password") {
 
81
                        password_ = i.text();
 
82
                }
 
83
        }
 
84
}
 
85
 
 
86
QDomElement ConferenceBookmark::toXml(QDomDocument& doc) const
 
87
{
 
88
        QDomElement e = doc.createElement("conference");
 
89
        e.setAttribute("jid",jid_.full());
 
90
        e.setAttribute("name",name_);
 
91
        if (auto_join_) 
 
92
                e.setAttribute("autojoin","true");
 
93
        if (!nick_.isEmpty())
 
94
                e.appendChild(textTag(&doc,"nick",nick_));
 
95
        if (!password_.isEmpty())
 
96
                e.appendChild(textTag(&doc,"password",password_));
 
97
 
 
98
        return e;
 
99
}