From 89862b609e0ecce68bae722c5819c409f13c5956 Mon Sep 17 00:00:00 2001 From: Manjeet Dahiya Date: Thu, 23 Sep 2010 11:38:02 +0000 Subject: add accountsCache class --- examples/GuiClient/accountsCache.cpp | 87 ++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 examples/GuiClient/accountsCache.cpp (limited to 'examples/GuiClient/accountsCache.cpp') 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 +#include + +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(); + } +} -- cgit v1.2.3