mirror of
https://bitbucket.org/smil3y/kde-extraapps.git
synced 2025-02-27 12:22:54 +00:00
126 lines
3.4 KiB
C++
126 lines
3.4 KiB
C++
![]() |
/* This file is part of the KDE project
|
||
|
|
||
|
Copyright (C) 2008 Ningyu Shi <shiningyu@gmail.com>
|
||
|
|
||
|
This program is free software; you can redistribute it and/or
|
||
|
modify it under the terms of the GNU General Public
|
||
|
License as published by the Free Software Foundation; either
|
||
|
version 2 of the License, or (at your option) any later version.
|
||
|
*/
|
||
|
|
||
|
#include "scriptconfigadaptor.h"
|
||
|
|
||
|
#include <QFileInfo>
|
||
|
#include <QString>
|
||
|
|
||
|
#include <KStandardDirs>
|
||
|
#include <KDebug>
|
||
|
|
||
|
bool ScriptConfigAdaptor::setFile(const QString &filename,
|
||
|
const QString &path)
|
||
|
{
|
||
|
if (!m_config)
|
||
|
{
|
||
|
if (!path.isEmpty())
|
||
|
{
|
||
|
QFileInfo info(path);
|
||
|
if (info.isDir() && info.exists())
|
||
|
{
|
||
|
// check for the ending slash
|
||
|
if (path.endsWith('/'))
|
||
|
{
|
||
|
m_config = new KConfig(path + filename);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
m_config = new KConfig(path + '/' + filename);
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
QString default_path;
|
||
|
// put the config file in default user directory
|
||
|
// like ~/.kde4/share/app/kget/content_scrips_setting/
|
||
|
default_path = KStandardDirs::locateLocal("appdata", "contentfetch_scripts_setting/");
|
||
|
m_config = new KConfig(default_path + filename);
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
void ScriptConfigAdaptor::unsetFile()
|
||
|
{
|
||
|
delete m_config;
|
||
|
m_config = 0;
|
||
|
}
|
||
|
|
||
|
QVariant ScriptConfigAdaptor::read(const QString& group,
|
||
|
const QString& key,
|
||
|
const QVariant& defaultvalue)
|
||
|
{
|
||
|
m_group = m_config->group(group);
|
||
|
QVariant value;
|
||
|
switch(defaultvalue.type())
|
||
|
{
|
||
|
case QVariant::Int:
|
||
|
value = m_group.readEntry(key, defaultvalue.toInt());
|
||
|
break;
|
||
|
case QVariant::Double:
|
||
|
value = m_group.readEntry(key, defaultvalue.toDouble());
|
||
|
break;
|
||
|
case QVariant::StringList:
|
||
|
value = m_group.readEntry(key, defaultvalue.toStringList());
|
||
|
break;
|
||
|
case QVariant::List:
|
||
|
value = m_group.readEntry(key, defaultvalue.toList());
|
||
|
break;
|
||
|
default:
|
||
|
value = m_group.readEntry(key, defaultvalue.toString());
|
||
|
break;
|
||
|
};
|
||
|
return value;
|
||
|
}
|
||
|
|
||
|
void ScriptConfigAdaptor::write(const QString& group,
|
||
|
const QString& key,
|
||
|
const QVariant& value)
|
||
|
{
|
||
|
m_group = m_config->group(group);
|
||
|
switch(value.type())
|
||
|
{
|
||
|
case QVariant::Int:
|
||
|
m_group.writeEntry(key, value.toInt());
|
||
|
break;
|
||
|
case QVariant::Double:
|
||
|
m_group.writeEntry(key, value.toDouble());
|
||
|
break;
|
||
|
case QVariant::StringList:
|
||
|
m_group.writeEntry(key, value.toStringList());
|
||
|
break;
|
||
|
case QVariant::List:
|
||
|
m_group.writeEntry(key, value.toList());
|
||
|
break;
|
||
|
default:
|
||
|
m_group.writeEntry(key, value.toString());
|
||
|
break;
|
||
|
};
|
||
|
}
|
||
|
|
||
|
void ScriptConfigAdaptor::save()
|
||
|
{
|
||
|
m_config->sync();
|
||
|
}
|
||
|
|
||
|
void ScriptConfigAdaptor::reset()
|
||
|
{
|
||
|
m_config->markAsClean();
|
||
|
m_config->reparseConfiguration();
|
||
|
}
|