agenda/md5map.cpp
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 }
This file is part of the documentation for kitchensync Library Version 3.3.2.