Q_OBJECT
friend class KEduVocKvtmlWriter;
friend class KEduVocKvtmlReader;
- friend class KEduVocWqlReader;
public:
*/
void setVersion(const QString & ver);
- /* TODO
- bool saveToLex (QTextStream& os, QString &title);
- bool loadFromLex (QTextStream& is);
- bool loadLessonLex (QTextStream& is);
- bool saveLessonLex (QTextStream& os);
- bool saveTypeNameLex (QTextStream& os);
- bool loadTypeNameLex (QTextStream& is);
-
- bool saveToCsv (QTextStream& os, QString &title);
- bool loadFromCsv (QTextStream& is);
- bool loadLessonCsv (QTextStream& is);
- bool saveLessonCsv (QTextStream& os);
- bool saveTypeNameCsv (QTextStream& os);
- bool loadTypeNameCsv (QTextStream& is);
-
- bool saveTypeNameVcb (QTextStream &os);
- bool loadTypeNameVcb (QTextStream &is);
- bool saveLessonVcb (QTextStream &os);
- bool loadLessonVcb (QTextStream &is);
- bool saveToVcb (QTextStream& os, QString &title);
- bool loadFromVcb (QTextStream& is);
- void errorVcb (int line, const QString &text );
- */
-
- private:
+private:
bool m_dirty;
KUrl m_url;
QList<bool> m_sortIdentifier;
bool m_sortLesson;
- bool m_unknownAttribute;
- bool m_unknownElement;
bool m_sortingEnabled;
// save these to document
{
// the file must be already open
m_inputFile = file;
+ m_errorMessage = "";
+}
+
+
+bool KEduVocKvtmlReader::readDoc(KEduVocDocument *doc)
+{
+ m_doc = doc;
+ m_doc->m_cols = 0;
+ m_doc->m_lines = 0;
+
+ QDomDocument domDoc("Kvtml");
+
+ if (!domDoc.setContent(m_inputFile, &m_errorMessage))
+ return false;
+
+ QDomElement domElementKvtml = domDoc.documentElement();
+ if( domElementKvtml.tagName() != KV_DOCTYPE )
+ {
+ domError(i18n("Tag <%1> was expected "
+ "but tag <%2> was read." , QString(KV_DOCTYPE), domElementKvtml.tagName()));
+ return false;
+ }
+
+ //-------------------------------------------------------------------------
+ // Attributes
+ //-------------------------------------------------------------------------
+
+ QDomAttr domAttrEncoding = domElementKvtml.attributeNode(KV_ENCODING);
+ if (!domAttrEncoding.isNull())
+ {
+ // TODO handle old encodings
+ // Qt DOM API autodetects encoding, so is there anything to do ?
+ }
+
+ QDomAttr domAttrTitle = domElementKvtml.attributeNode(KV_TITLE);
+ if (!domAttrTitle.isNull())
+ {
+ m_doc->m_title = domAttrTitle.value();
+ }
+
+ QDomAttr domAttrAuthor = domElementKvtml.attributeNode(KV_AUTHOR);
+ if (!domAttrAuthor.isNull())
+ {
+ m_doc->m_author = domAttrAuthor.value();
+ }
+
+ QDomAttr domAttrLicence = domElementKvtml.attributeNode(KV_LICENSE);
+ if (!domAttrLicence.isNull())
+ {
+ m_doc->m_license = domAttrLicence.value();
+ }
+
+ QDomAttr domAttrRemark = domElementKvtml.attributeNode(KV_DOC_REM);
+ if (!domAttrRemark.isNull())
+ {
+ m_doc->m_remark = domAttrRemark.value();
+ }
+
+ QDomAttr domAttrGenerator = domElementKvtml.attributeNode(KV_GENERATOR);
+ if (!domAttrGenerator.isNull())
+ {
+ m_doc->m_generator = domAttrGenerator.value();
+ int pos = m_doc->m_generator.lastIndexOf(KVD_VERS_PREFIX);
+ if (pos >= 0)
+ {
+ m_doc->m_version = m_doc->m_generator;
+ m_doc->m_version.remove (0, pos+2);
+ }
+ }
+
+ QDomAttr domAttrCols = domElementKvtml.attributeNode(KV_COLS);
+ if (!domAttrCols.isNull())
+ {
+ m_doc->m_cols = domAttrCols.value().toInt();
+ }
+
+ QDomAttr domAttrLines = domElementKvtml.attributeNode(KV_LINES);
+ if (!domAttrLines.isNull())
+ {
+ m_doc->m_lines = domAttrLines.value().toInt();
+ }
+
+
+ //-------------------------------------------------------------------------
+ // Children
+ //-------------------------------------------------------------------------
+
+ bool result = readBody(domElementKvtml); // read vocabulary
+
+ // TODO EPT setModified (false);
+ return result;
}
}
-bool KEduVocKvtmlReader::readDoc(KEduVocDocument *doc)
-{
- m_doc = doc;
-
- QDomDocument domDoc("Kvtml" );
- QString errorMsg;
- if( !domDoc.setContent( m_inputFile, &errorMsg ) )
- {
- domError(errorMsg);
- return false;
- }
-
- m_doc->m_identifiers.clear();
- m_doc->m_vocabulary.clear();
-
- m_doc->m_generator = "";
- m_doc->m_cols = 0;
- m_doc->m_lines = 0;
- m_doc->m_title = "";
- m_doc->m_author = "";
- m_doc->m_license = "";
- m_doc->m_remark = "";
-
-
- QDomElement domElementKvtml = domDoc.documentElement();
- if( domElementKvtml.tagName() != KV_DOCTYPE )
- {
- domError(i18n("Tag <%1> was expected "
- "but tag <%2> was read." , QString(KV_DOCTYPE), domElementKvtml.tagName()));
- return false;
- }
-
- //-------------------------------------------------------------------------
- // Attributes
- //-------------------------------------------------------------------------
-
- QDomAttr domAttrEncoding = domElementKvtml.attributeNode(KV_ENCODING);
- if (!domAttrEncoding.isNull())
- {
- // TODO handle old encodings
- // Qt DOM API autodetects encoding, so is there anything to do ?
- }
-
- QDomAttr domAttrTitle = domElementKvtml.attributeNode(KV_TITLE);
- if (!domAttrTitle.isNull())
- {
- m_doc->m_title = domAttrTitle.value();
- }
-
- QDomAttr domAttrAuthor = domElementKvtml.attributeNode(KV_AUTHOR);
- if (!domAttrAuthor.isNull())
- {
- m_doc->m_author = domAttrAuthor.value();
- }
-
- QDomAttr domAttrLicence = domElementKvtml.attributeNode(KV_LICENSE);
- if (!domAttrLicence.isNull())
- {
- m_doc->m_license = domAttrLicence.value();
- }
-
- QDomAttr domAttrRemark = domElementKvtml.attributeNode(KV_DOC_REM);
- if (!domAttrRemark.isNull())
- {
- m_doc->m_remark = domAttrRemark.value();
- }
-
- QDomAttr domAttrGenerator = domElementKvtml.attributeNode(KV_GENERATOR);
- if (!domAttrGenerator.isNull())
- {
- m_doc->m_generator = domAttrGenerator.value();
- int pos = m_doc->m_generator.lastIndexOf(KVD_VERS_PREFIX);
- if (pos >= 0)
- {
- m_doc->m_version = m_doc->m_generator;
- m_doc->m_version.remove (0, pos+2);
- }
- }
-
- QDomAttr domAttrCols = domElementKvtml.attributeNode(KV_COLS);
- if (!domAttrCols.isNull())
- {
- m_doc->m_cols = domAttrCols.value().toInt();
- }
-
- QDomAttr domAttrLines = domElementKvtml.attributeNode(KV_LINES);
- if (!domAttrLines.isNull())
- {
- m_doc->m_lines = domAttrLines.value().toInt();
- }
-
-
- //-------------------------------------------------------------------------
- // Children
- //-------------------------------------------------------------------------
-
- bool result = readBody(domElementKvtml); // read vocabulary
-
- // TODO EPT setModified (false);
- return result;
-}
-
-
void KEduVocKvtmlReader::domErrorUnknownElement(const QString &elem)
{
QString ln = i18n("File:\t%1\n", m_doc->URL().path());