if (KIO::NetAccess::download(url, temporaryFile, 0))
{
///@todo We need to work with the QIODevice directly for the compressed Pauker files
- //QIODevice * fDev = KFilterDev::deviceForFile(temporaryFile);
- QFile f(temporaryFile);
- if (!f.open(QIODevice::ReadOnly))
+ QIODevice * f = KFilterDev::deviceForFile(temporaryFile);
+ //QFile f(temporaryFile);
+ if (!f->open(QIODevice::ReadOnly))
{
KMessageBox::error(0, errorMessage);
return false;
switch (ft) {
case kvtml:
{
- KEduVocKvtmlReader kvtmlReader(&f);
+ KEduVocKvtmlReader kvtmlReader(f);
read = kvtmlReader.readDoc(this);
}
break;
case wql:
{
- KEduVocWqlReader wqlReader(&f);
+ KEduVocWqlReader wqlReader(f);
read = wqlReader.readDoc(this);
if (!read)
errorMessage = wqlReader.errorMessage();
case pauker:
{
- KEduVocPaukerReader paukerReader(&f);
+ KEduVocPaukerReader paukerReader(f);
read = paukerReader.readDoc(this);
if (!read)
errorMessage = paukerReader.errorMessage();
case vt_lex:
{
- QTextStream is (&f);
+ //QTextStream is (&f);
//TODO read = loadFromLex (is);
}
break;
case vt_vcb:
{
- QTextStream is (&f);
+ //QTextStream is (&f);
//TODO read = loadFromVcb (is);
}
break;
case csv:
{
- QTextStream is(&f);
+ //QTextStream is(&f);
//TODO read = loadFromCsv(is);
}
break;
default:
{
- KEduVocKvtmlReader kvtmlReader(&f);
+ KEduVocKvtmlReader kvtmlReader(f);
read = kvtmlReader.readDoc(this);
}
}
}
}
}
- f.close();
+ f->close();
KIO::NetAccess::removeTempFile(temporaryFile);
}
return true;
#include "keduvockvtmlreader.h"
#include "keduvocdocument.h"
-KEduVocKvtmlReader::KEduVocKvtmlReader(QFile *file)
+KEduVocKvtmlReader::KEduVocKvtmlReader(QIODevice *file)
{
// the file must be already open
m_inputFile = file;
}
-KEduVocKvtmlReader::~KEduVocKvtmlReader()
-{
-}
-
bool KEduVocKvtmlReader::readLesson(QDomElement &domElementParent)
{
-----------------------------------------------------------------------
copyright : (C) 1999-2001 Ewald Arnold
(C) 2001 The KDE-EDU team
- (C) 2005 Eric Pignet
+ (C) 2005 Eric Pignet
email : eric at erixpage.com
***************************************************************************/
#include <libkdeedu_core_export.h>
-#include <QFile>
+#include <QIODevice>
#include <QtXml/QDomDocument>
#include <QList>
class KDEEDUCORE_EXPORT KEduVocKvtmlReader : public QObject
{
public:
- KEduVocKvtmlReader(QFile *file);
- ~KEduVocKvtmlReader();
-
- bool readDoc(KEduVocDocument *doc);
-
- bool readLesson(QDomElement &domElementParent);
- bool readArticle(QDomElement &domElementParent);
- bool readConjug(QDomElement &domElementParent, QList<KEduVocConjugation> &curr_conjug, const QString &entry_tag);
- bool readOptions(QDomElement &domElementParent);
- bool readType(QDomElement &domElementParent);
- bool readTense(QDomElement &domElementParent);
- bool readUsage(QDomElement &domElementParent);
- bool readComparison(QDomElement &domElementParent, KEduVocComparison &comp);
- bool readMultipleChoice(QDomElement &domElementParent, KEduVocMultipleChoice &mc);
- bool readExpressionChildAttributes( QDomElement &domElementExpressionChild,
- QString &lang,
- grade_t &grade, grade_t &rev_grade,
- int &count, int &rev_count,
- QDateTime &date, QDateTime &rev_date,
- QString &remark,
- int &bcount, int &rev_bcount,
- QString &query_id,
- QString &pronunce,
- int &width,
- QString &type,
- QString &faux_ami_f,
- QString &faux_ami_t,
- QString &synonym,
- QString &example,
- QString &antonym,
- QString &usage,
- QString ¶phrase);
- bool readExpression(QDomElement &domElementParent);
- bool readBody(QDomElement &domElementParent);
-
- void domErrorUnknownElement(const QString &elem);
- void domError(const QString &text );
+ KEduVocKvtmlReader(QIODevice *file);
+
+ bool readDoc(KEduVocDocument *doc);
+
+ bool readLesson(QDomElement &domElementParent);
+ bool readArticle(QDomElement &domElementParent);
+ bool readConjug(QDomElement &domElementParent, QList<KEduVocConjugation> &curr_conjug, const QString &entry_tag);
+ bool readOptions(QDomElement &domElementParent);
+ bool readType(QDomElement &domElementParent);
+ bool readTense(QDomElement &domElementParent);
+ bool readUsage(QDomElement &domElementParent);
+ bool readComparison(QDomElement &domElementParent, KEduVocComparison &comp);
+ bool readMultipleChoice(QDomElement &domElementParent, KEduVocMultipleChoice &mc);
+ bool readExpressionChildAttributes(QDomElement &domElementExpressionChild,
+ QString &lang,
+ grade_t &grade, grade_t &rev_grade,
+ int &count, int &rev_count,
+ QDateTime &date, QDateTime &rev_date,
+ QString &remark,
+ int &bcount, int &rev_bcount,
+ QString &query_id,
+ QString &pronunce,
+ int &width,
+ QString &type,
+ QString &faux_ami_f,
+ QString &faux_ami_t,
+ QString &synonym,
+ QString &example,
+ QString &antonym,
+ QString &usage,
+ QString ¶phrase);
+ bool readExpression(QDomElement &domElementParent);
+ bool readBody(QDomElement &domElementParent);
+
+ void domErrorUnknownElement(const QString &elem);
+ void domError(const QString &text );
private:
- QFile *m_inputFile;
+ QIODevice *m_inputFile;
KEduVocDocument *m_doc;
};
#include "keduvocexpression.h"
#include "keduvocdocument.h"
-/*
-PaukerDataItem::PaukerDataItem()
-{
-}
-
-PaukerDataItem::PaukerDataItem(QDomElement &entry)
-{
- domElement = entry;
-}
-
-PaukerDataItem::~PaukerDataItem()
-{
-}
-
-QString PaukerDataItem::frontSide() const
-{
- return getText("FrontSide");
-}
-
-QString PaukerDataItem::backSide() const
-{
- return getText("BackSide");
-}
-
-QString PaukerDataItem::getText(const QString &tagName) const
-{
- if(!domElement.isNull()) {
-
- QDomNodeList list = domElement.elementsByTagName(tagName);
-
- if(list.count() > 0) {
-
- QDomElement element = list.item(0).toElement();
-
- if(!element.isNull()) {
- return element.text();
- }
- else
- return QString::null;
- }
- else
- return QString::null;
- }
- else
- return QString::null;
-}
-
-PaukerData::PaukerData()
-{
- document = new QDomDocument();
-}
-
-PaukerDataItemList PaukerData::parse(const QString &fileName)
-{
- PaukerDataItemList list;
-
- QIODevice * file = KFilterDev::deviceForFile(fileName);
- document->setContent(file);
-
- QDomNodeList entries = document->elementsByTagName("Card");
-
- // loop through the "Card" tags looking for data
- for(uint i = 0 ; i < entries.count() ; i++) {
-
- // get an entry to operate on
- QDomElement entry = entries.item(i).toElement();
-
- // if the "node" is in fact an element -- i.e. not null
- if(!entry.isNull()) {
- PaukerDataItem item(entry);
- list.append(item);
- }
- }
- delete file;
- return list;
-}
-*/
-KEduVocPaukerReader::KEduVocPaukerReader(QFile * file)
+KEduVocPaukerReader::KEduVocPaukerReader(QIODevice * file)
{
// the file must be already open
m_inputFile = file;
if (!domDoc.setContent(m_inputFile, &m_errorMessage))
return false;
+ QDomElement description = domDoc.documentElement().firstChildElement("Description");
+ if(!description.isNull())
+ m_doc->setDocRemark(description.text());
+
QDomNodeList entries = domDoc.elementsByTagName("Card");
if (entries.count() <= 0) {
return false;
}
- for (int i = 0; entries.count() - 1; i++) {
- QDomElement entry = entries.at(i).toElement();
+ ///Pauker does not provide any column titles
+ m_doc->appendIdentifier(i18n("Front Side"));
+ m_doc->appendIdentifier(i18n("Reverse Side"));
+
+ for (int i = 0; i < entries.count(); i++) {
+ QDomNode entry = entries.at(i);
if(!entry.isNull()) {
front = cardText(entry, "FrontSide");
- back = cardText(entry, "BackSide");
+ back = cardText(entry, "ReverseSide");
KEduVocExpression expr = KEduVocExpression(front);
expr.setTranslation(1, back);
m_doc->appendEntry(&expr);
}
-QString KEduVocPaukerReader::cardText(const QDomElement & entry, const QString & tagName) const
+QString KEduVocPaukerReader::cardText(const QDomNode & entry, const QString & tagName) const
{
- QDomNodeList list = entry.elementsByTagName(tagName);
+ QDomElement element = entry.firstChildElement(tagName);
- if(list.count() > 0) {
- QDomElement element = list.item(0).toElement();
-
- if(!element.isNull()) {
- return element.text();
- }
- else
- return QString::null;
- }
+ if(!element.isNull())
+ return element.text();
else
return QString::null;
-
}
-
#include <libkdeedu_core_export.h>
#include <QtXml>
-#include <QFile>
+#include <QIODevice>
class KEduVocDocument;
class KDEEDUCORE_EXPORT KEduVocPaukerReader : public QObject
{
public:
- KEduVocPaukerReader(QFile *file);
+ KEduVocPaukerReader(QIODevice *file);
bool readDoc(KEduVocDocument *doc);
QString errorMessage() const {return m_errorMessage;};
+
private:
- QString cardText(const QDomElement &entry, const QString &tagName) const;
+ QString cardText(const QDomNode &entry, const QString &tagName) const;
- QFile *m_inputFile;
+ QIODevice *m_inputFile;
KEduVocDocument *m_doc;
QString m_errorMessage;
};
-/*
-class PaukerDataItem
-{
-public:
- PaukerDataItem();
- PaukerDataItem(QDomElement &entry);
- virtual ~PaukerDataItem();
-
- QString frontSide() const;
- QString backSide() const;
-
-protected:
- QString getText(const QString &tagName) const;
-
-private:
- QDomElement domElement;
-};
-
-typedef QValueList<PaukerDataItem> PaukerDataItemList;
-class PaukerData
-{
-public:
- PaukerData();
- PaukerDataItemList parse(const QString &fileName);
- int colWidth(int col);
- int numRows();
- QString language(int col);
-
-private:
- QDomDocument* document;
-};
-*/
#endif
#include "keduvocwqlreader.h"
#include "keduvocdocument.h"
-KEduVocWqlReader::KEduVocWqlReader(QFile *file)
+KEduVocWqlReader::KEduVocWqlReader(QIODevice *file)
{
// the file must be already open
m_inputFile = file;
p = s.indexOf(" [", 0);
s = s.left(p);
s = s.simplified();
- m_doc->m_identifiers.append(s);
- m_doc->m_identifiers.append(inputStream.readLine());
+ m_doc->appendIdentifier(s);
+ m_doc->appendIdentifier(inputStream.readLine());
while (!s.isNull())
{
#include <libkdeedu_core_export.h>
-#include <QFile>
+#include <QIODevice>
class KEduVocDocument;
class KDEEDUCORE_EXPORT KEduVocWqlReader : public QObject
{
public:
- KEduVocWqlReader(QFile *file);
+ KEduVocWqlReader(QIODevice *file);
bool readDoc(KEduVocDocument *doc);
QString errorMessage() const {return m_errorMessage;};
+
private:
- QFile *m_inputFile;
+ QIODevice *m_inputFile;
KEduVocDocument *m_doc;
QString m_errorMessage;
};