1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
//----------------------------------------------------------------------------
//
// Maintain a history of sites visited
//
// Copyright (c) 1997 The KDE project.
//
#include <config.h>
#include <qfile.h>
#include <qdstream.h>
#include "history.h"
KHistory::KHistory( const char *_file )
: dict( 503 )
{
dict.setAutoDelete( true );
lifeTime = 30;
filename = _file;
loadHistory();
}
KHistory::~KHistory()
{
saveHistory();
}
void KHistory::loadHistory()
{
if ( filename.isEmpty() )
return;
dict.clear();
QFile file( filename );
if ( file.open( IO_ReadOnly ) )
{
QDate today = QDate::currentDate();
QDataStream stream( &file );
QString url = "";
while ( !stream.eof() )
{
stream >> url;
if ( url == "end" )
break;
QDate *date = new QDate;
stream >> (*date);
if ( date->daysTo( today ) < lifeTime )
dict.insert( url, date );
else
delete date;
}
}
}
void KHistory::saveHistory()
{
if ( filename.isEmpty() )
return;
QFile file( filename );
if ( file.open( IO_WriteOnly ) )
{
QDataStream stream( &file );
QDictIterator<QDate> it( dict );
QString key;
QDate *date;
for ( ; it.currentKey(); ++it )
{
key = it.currentKey();
stream << key;
date = it.current();
stream << *(date);
}
stream << QString( "end" );
file.close();
}
}
void KHistory::addURL( const char *_url )
{
QDictIterator<QDate> it( dict );
QDate *date = new QDate;
*date = QDate::currentDate();
dict.replace( _url, date );
}
|