void vCardCache::loadFromFile() { m_mapBareJidVcard.clear(); QDir dirVCards(getSettingsDir(m_client->configuration().jidBare())+ "vCards/"); if(dirVCards.exists()) { QStringList list = dirVCards.entryList(QStringList("*.xml")); foreach(QString fileName, list) { QFile file(getSettingsDir(m_client->configuration().jidBare())+ "vCards/" + fileName); QString bareJid = fileName; bareJid.chop(4); if(file.open(QIODevice::ReadOnly)) { QDomDocument doc; if(doc.setContent(&file, true)) { QXmppVCardIq vCardIq; vCardIq.parse(doc.documentElement()); m_mapBareJidVcard[bareJid] = vCardIq; QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents); } } }
void vCardCache::saveToFile(const QString& bareJid) { QDir dir; if(!dir.exists(getSettingsDir(m_client->configuration().jidBare()))) dir.mkpath(getSettingsDir(m_client->configuration().jidBare())); QDir dir2; if(!dir2.exists(getSettingsDir(m_client->configuration().jidBare())+ "vCards/")) dir2.mkpath(getSettingsDir(m_client->configuration().jidBare())+ "vCards/"); if(m_mapBareJidVcard.contains(bareJid)) { QString fileVCard = getSettingsDir(m_client->configuration().jidBare()) + "vCards/" + bareJid + ".xml"; QFile file(fileVCard); if(file.open(QIODevice::ReadWrite)) { QXmlStreamWriter stream(&file); stream.setAutoFormatting(true); stream.setAutoFormattingIndent(2); m_mapBareJidVcard[bareJid].toXml(&stream); file.close(); } } }
void accountsCache::loadFromFile() { QDir dirSettings(getSettingsDir()); if(dirSettings.exists()) { QFile file(getSettingsDir()+ "accounts.xml"); if(file.open(QIODevice::ReadOnly)) { m_accountsDocument.setContent(&file, true); } } }
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_accountsDocument.save(tstream, 2); file.close(); } }
/** * Gets the full path of a settings file with the given file name. * The settings directory will be created if it doesn't already exist. * Returns NULL on failure. * The caller is responsible for calling free() on the returned string when * it no longer needs it. */ const char *getSettingsFile(const char *name) { const char *dir = getSettingsDir(); if (!dir) { return NULL; } char *path; if (asprintf(&path, "%s/%s", dir, name) == -1) { return NULL; } return path; }
int zomfg(int argc, char **argv) { const char *settingsDir = getSettingsDir(); if (settingsDir) { printf("Settings dir: %s\n", settingsDir); } else { printf("Failed to create settings dir\n"); } const char *settingsFile = getSettingsFile("sms_sdl.dat"); printf("Settings file: %s\n", settingsFile); free((void *)settingsFile); return 0; }