Add interface for database reader/writer.

This commit is contained in:
Felix Geyer
2010-08-31 16:18:45 +02:00
parent ee4c2c3dd4
commit 1cfc34361a
8 changed files with 124 additions and 40 deletions

View File

@@ -23,17 +23,18 @@
#include "core/Database.h"
#include "core/Metadata.h"
KeePass2XmlReader::KeePass2XmlReader(Database* db)
KeePass2XmlReader::KeePass2XmlReader()
: m_db(0)
, m_meta(0)
{
m_db = db;
m_meta = db->metadata();
}
bool KeePass2XmlReader::parse(const QString& filename)
Database* KeePass2XmlReader::readDatabase(QIODevice* device)
{
QFile file(filename);
file.open(QIODevice::ReadOnly | QIODevice::Text);
m_xml.setDevice(&file);
m_xml.setDevice(device);
m_db = new Database();
m_meta = m_db->metadata();
m_tmpParent = new Group();
m_tmpParent->setParent(m_db);
@@ -50,10 +51,22 @@ bool KeePass2XmlReader::parse(const QString& filename)
delete m_tmpParent;
return !m_xml.error();
return m_db;
}
QString KeePass2XmlReader::errorMsg()
Database* KeePass2XmlReader::readDatabase(const QString& filename)
{
QFile file(filename);
file.open(QIODevice::ReadOnly | QIODevice::Text);
return readDatabase(&file);
}
bool KeePass2XmlReader::error()
{
return m_xml.hasError();
}
QString KeePass2XmlReader::errorString()
{
return QString("%1\nLine %2, column %3")
.arg(m_xml.errorString())