aboutsummaryrefslogtreecommitdiff
path: root/examples/GuiClient/accountsCache.cpp
diff options
context:
space:
mode:
authorManjeet Dahiya <manjeetdahiya@gmail.com>2010-09-23 11:38:02 +0000
committerManjeet Dahiya <manjeetdahiya@gmail.com>2010-09-23 11:38:02 +0000
commit89862b609e0ecce68bae722c5819c409f13c5956 (patch)
tree468e7165355dd510ca5d0db418717152598ea40d /examples/GuiClient/accountsCache.cpp
parenteb6ae4be8f6b76c73d727ee2bd2c107ff268e2ea (diff)
downloadqxmpp-89862b609e0ecce68bae722c5819c409f13c5956.tar.gz
add accountsCache class
Diffstat (limited to 'examples/GuiClient/accountsCache.cpp')
-rw-r--r--examples/GuiClient/accountsCache.cpp87
1 files changed, 87 insertions, 0 deletions
diff --git a/examples/GuiClient/accountsCache.cpp b/examples/GuiClient/accountsCache.cpp
new file mode 100644
index 00000000..72af8278
--- /dev/null
+++ b/examples/GuiClient/accountsCache.cpp
@@ -0,0 +1,87 @@
+#include "accountsCache.h"
+#include "utils.h"
+#include <QDir>
+#include <QTextStream>
+
+accountsCache::accountsCache(QObject *parent) :
+ QObject(parent)
+{
+}
+
+QStringList accountsCache::getBareJids()
+{
+ QStringList list;
+ QDomElement element = m_accountsElement.firstChildElement("account");
+ while(!element.isNull())
+ {
+ list << element.firstChildElement("bareJid").text();
+ element = element.nextSiblingElement("account");
+ }
+
+ return list;
+}
+
+QString accountsCache::getPassword(const QString& bareJid)
+{
+ QDomElement element = m_accountsElement.firstChildElement("account");
+ while(!element.isNull())
+ {
+ if(element.firstChildElement("bareJid").text() == bareJid)
+ {
+ return element.firstChildElement("password").text();
+ }
+ element = element.nextSiblingElement("account");
+ }
+
+ return "";
+}
+
+void accountsCache::addAccount(const QString& bareJid, const QString& passwd)
+{
+ QDomElement element = m_accountsElement.firstChildElement("account");
+ while(!element.isNull())
+ {
+ if(element.firstChildElement("bareJid").text() == bareJid)
+ {
+ element.firstChildElement("password").setNodeValue(passwd);
+ return;
+ }
+ element = element.nextSiblingElement("account");
+ }
+
+ QDomElement newElement;
+ newElement.setTagName("account");
+
+ QDomElement newElementBareJid;
+ newElementBareJid.setTagName("bareJid");
+ newElementBareJid.setNodeValue(bareJid);
+
+ QDomElement newElementPasswd;
+ newElementPasswd.setTagName("password");
+ newElementPasswd.setNodeValue(passwd);
+
+ newElement.appendChild(newElementBareJid);
+ newElement.appendChild(newElementPasswd);
+
+ m_accountsElement.appendChild(newElement);
+}
+
+void accountsCache::loadFromFile()
+{
+}
+
+void accountsCache::saveToFile()
+{
+ QDir dir;
+ if(!dir.exists(getSettingsDir()))
+ dir.mkpath(getSettingsDir());
+
+ QString fileAccounts = getSettingsDir() + "accounts.xml";
+ QFile file(fileAccounts);
+ if(file.open(QIODevice::ReadWrite))
+ {
+ QTextStream tstream(&file);
+ m_accountsElement.save(tstream, 2);
+ file.close();
+ }
+}