00001
#include <kconfig.h>
00002
00003
#include "md5map.h"
00004
00005
using namespace OpieHelper;
00006
00007 MD5Map::MD5Map(
const QString& file)
00008 : m_conf(0l)
00009 {
00010 load( file );
00011 }
00012 MD5Map::~MD5Map() {
00013
delete m_conf;
00014 }
00015
void MD5Map::load(
const QString& file ) {
00016 m_file = file;
00017
00018
if (m_file.isEmpty() )
return;
00019
00020 KConfig* conf = config();
00021
QStringList list = conf->groupList();
00022
for (QStringList::Iterator it = list.begin(); it != list.end(); ++it ) {
00023 conf->setGroup( (*it) );
00024 insert( (*it), conf->readEntry(
"sum") );
00025 }
00026 }
00027
void MD5Map::save() {
00028 KConfig* conf = config();
00029
00030
QStringList groups = conf->groupList();
00031
for (QStringList::Iterator it = groups.begin(); it != groups.end(); ++it ) {
00032 conf->deleteGroup( (*it) );
00033 }
00034
00035 Iterator it;
00036
for ( it = m_map.begin(); it != m_map.end(); ++it ) {
00037 conf->setGroup( it.key() );
00038 conf->writeEntry(
"sum", it.data() );
00039 }
00040 conf->sync();
00041 qWarning(
"save %s", m_file.latin1() );
00042 }
00043
void MD5Map::setFileName(
const QString& file ) {
00044 m_file = file;
00045 }
00046
QString MD5Map::md5sum(
const QString& uid )
const {
00047
return m_map[uid];
00048 }
00049
bool MD5Map::contains(
const QString& uid )
const {
00050
return m_map.contains( uid );
00051 }
00052
void MD5Map::insert(
const QString& uid,
const QString& str) {
00053 m_map.insert( uid, str );
00054 }
00055
void MD5Map::set(
const Map& map) {
00056 m_map = map;
00057 }
00058
MD5Map::Map MD5Map::map()const{
00059
return m_map;
00060 }
00061
void MD5Map::clear() {
00062 m_map.clear();
00063 KConfig* conf = config();
00064
QStringList groups = conf->groupList();
00065
for (QStringList::Iterator it = groups.begin(); it != groups.end(); ++it ) {
00066 conf->deleteGroup( (*it) );
00067 }
00068 }
00069 KConfig* MD5Map::config() {
00070
if (!m_conf ) {
00071 m_conf =
new KConfig( m_file,
false,
false );
00072 }
00073
return m_conf;
00074 }