]> Git trees. - libqmvoc.git/commitdiff
Work on import filters. The Pauker filter now works well.
authorPeter Hedlund <peter@peterandlinda.com>
Tue, 20 Feb 2007 20:46:55 +0000 (20:46 +0000)
committerPeter Hedlund <peter@peterandlinda.com>
Tue, 20 Feb 2007 20:46:55 +0000 (20:46 +0000)
svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=635759

kdeeducore/keduvocdocument.cpp
kdeeducore/keduvockvtmlreader.cpp
kdeeducore/keduvockvtmlreader.h
kdeeducore/keduvocpaukerreader.cpp
kdeeducore/keduvocpaukerreader.h
kdeeducore/keduvocwqlreader.cpp
kdeeducore/keduvocwqlreader.h

index febbb354d279c1be3de0fc1b88f8526346c62e6a..6dbb0999d5ffc07f9ac65dccda5511405068ff7a 100644 (file)
@@ -187,9 +187,9 @@ bool KEduVocDocument::open(const KUrl& url, bool /*append*/)
   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;
@@ -203,14 +203,14 @@ bool KEduVocDocument::open(const KUrl& url, bool /*append*/)
       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();
@@ -219,7 +219,7 @@ bool KEduVocDocument::open(const KUrl& url, bool /*append*/)
 
         case pauker:
         {
-          KEduVocPaukerReader paukerReader(&f);
+          KEduVocPaukerReader paukerReader(f);
           read = paukerReader.readDoc(this);
           if (!read)
             errorMessage = paukerReader.errorMessage();
@@ -227,28 +227,28 @@ bool KEduVocDocument::open(const KUrl& url, bool /*append*/)
 
         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);
         }
       }
@@ -268,7 +268,7 @@ bool KEduVocDocument::open(const KUrl& url, bool /*append*/)
         }
       }
     }
-    f.close();
+    f->close();
     KIO::NetAccess::removeTempFile(temporaryFile);
   }
   return true;
index c2c02940dc5d2e875d0c2ce5f403b46a1abdb65f..4d306b5f938e0a908048ecb4823985ce45943204 100644 (file)
 #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)
 {
index 0889906c185b6f69c996f42840f9d5246a51ee27..1ad52570df77f13d8bb2886691d5f2100224c4a6 100644 (file)
@@ -3,7 +3,7 @@
     -----------------------------------------------------------------------
     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
  ***************************************************************************/
 
@@ -21,7 +21,7 @@
 
 #include <libkdeedu_core_export.h>
 
-#include <QFile>
+#include <QIODevice>
 #include <QtXml/QDomDocument>
 #include <QList>
 
@@ -74,46 +74,45 @@ class KEduVocDocument;
 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 &paraphrase);
-       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 &paraphrase);
+  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;
 };
 
index c60a5fb61cbda5f90636d200e5bfae947791716c..ee4d330fe4304469b780d8bc27cb1cd14cd112b0 100644 (file)
 #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;
@@ -115,6 +38,10 @@ bool KEduVocPaukerReader::readDoc(KEduVocDocument * doc)
   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) {
@@ -122,11 +49,15 @@ bool KEduVocPaukerReader::readDoc(KEduVocDocument * doc)
     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);
@@ -136,22 +67,13 @@ bool KEduVocPaukerReader::readDoc(KEduVocDocument * doc)
 }
 
 
-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;
-
 }
 
-
index dedf9077cc5eef44e0baa94331226f48f6ad80da..870477336f7f4270a9051846c3ab538601273999 100644 (file)
 #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
index 4f7d971b5b4e21ad2b9d72634d0ca831d76215b0..7d310ac61e5e8b75b53c3cd328cb05aa8b5ad841 100644 (file)
@@ -22,7 +22,7 @@
 #include "keduvocwqlreader.h"
 #include "keduvocdocument.h"
 
-KEduVocWqlReader::KEduVocWqlReader(QFile *file)
+KEduVocWqlReader::KEduVocWqlReader(QIODevice *file)
 {
   // the file must be already open
   m_inputFile = file;
@@ -140,8 +140,8 @@ bool KEduVocWqlReader::readDoc(KEduVocDocument *doc)
   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())
   {
index a7a47cdd80dc2f4cf3c887bfe93b57eae38506f6..40ebfc7c11ad0e50f2ca4e58187c9d37350460c7 100644 (file)
 
 #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;
 };