예제 #1
0
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);
                }
            }
        }
예제 #2
0
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();
        }
    }
}
예제 #3
0
void accountsCache::loadFromFile()
{
    QDir dirSettings(getSettingsDir());
    if(dirSettings.exists())
    {
        QFile file(getSettingsDir()+ "accounts.xml");
        if(file.open(QIODevice::ReadOnly))
        {
            m_accountsDocument.setContent(&file, true);
        }
    }
}
예제 #4
0
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();
    }
}
예제 #5
0
/**
 * 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;
}
예제 #6
0
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;
}