]> Git trees. - libqmvoc.git/commitdiff
Moved some type handling compability functions to the compability class.
authorFrederik Gladhorn <gladhorn@kde.org>
Tue, 28 Aug 2007 14:02:43 +0000 (14:02 +0000)
committerFrederik Gladhorn <gladhorn@kde.org>
Tue, 28 Aug 2007 14:02:43 +0000 (14:02 +0000)
svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=705750

keduvocdocument/keduvockvtmlcompability.cpp
keduvocdocument/keduvockvtmlcompability.h
keduvocdocument/keduvockvtmlreader.cpp
keduvocdocument/keduvockvtmlwriter.h
keduvocdocument/keduvocwordtype.cpp
keduvocdocument/keduvocwordtype.h
keduvocdocument/kvtmldefs.h

index 0a2fc2a022c58621a78dc0eea28526ea85190c39..ad73afe57998770a9a5e99ae4349d73e722245de 100644 (file)
 
 #include "keduvockvtmlcompability.h"
 
-const QString KEduVocKvtmlCompability::USAGE_USER_DEFINED = QString("#");
-const QString KEduVocKvtmlCompability::USAGE_SEPERATOR = QString(":");
+#include <KDebug>
+
+const QString KEduVocKvtmlCompability::KVTML_1_USAGE_USER_DEFINED = QString("#");
+const QString KEduVocKvtmlCompability::KVTML_1_USAGE_SEPERATOR = QString(":");
+
+const QString KEduVocKvtmlCompability::KVTML_1_TYPE_USER = QString("#");
+const QString KEduVocKvtmlCompability::KVTML_1_TYPE_DIV = QString(":");
 
 
 KEduVocKvtmlCompability::KEduVocKvtmlCompability()
 {
     m_usages = usageMap();
     m_userdefinedUsageCounter = 0;
+
+    initOldTypeLists();
 }
 
 
 QSet<QString> KEduVocKvtmlCompability::usageFromKvtml1(const QString & oldUsage) const
 {
     QSet<QString> usages;
-    foreach ( QString usage , oldUsage.split(USAGE_SEPERATOR, QString::SkipEmptyParts) ) {
+    foreach ( QString usage , oldUsage.split(KVTML_1_USAGE_SEPERATOR, QString::SkipEmptyParts) ) {
         usages.insert( m_usages[usage] );
     }
     return usages;
@@ -103,7 +110,7 @@ void KEduVocKvtmlCompability::addUserdefinedUsage(const QString & usage)
 {
     // start counting at 1 !!!
     m_userdefinedUsageCounter++;
-    m_usages[USAGE_USER_DEFINED + QString::number(m_userdefinedUsageCounter)] = usage;
+    m_usages[KVTML_1_USAGE_USER_DEFINED + QString::number(m_userdefinedUsageCounter)] = usage;
 }
 
 QSet< QString > KEduVocKvtmlCompability::documentUsages() const
@@ -112,3 +119,87 @@ QSet< QString > KEduVocKvtmlCompability::documentUsages() const
 }
 
 
+
+////////////////// TYPES /////////////////////////////////////////
+void KEduVocKvtmlCompability::initOldTypeLists()
+{
+    m_oldMainTypeNames.clear();
+    m_oldMainTypeNames.insert("v", i18n("Verb"));
+    m_oldMainTypeNames.insert("n", i18n("Noun"));
+    m_oldMainTypeNames.insert("nm", i18n("Name"));
+    m_oldMainTypeNames.insert("ar", i18n("Article"));
+    m_oldMainTypeNames.insert("aj", i18n("Adjective"));
+    m_oldMainTypeNames.insert("av", i18n("Adverb"));
+    m_oldMainTypeNames.insert("pr", i18n("Pronoun"));
+    m_oldMainTypeNames.insert("ph", i18n("Phrase"));
+    m_oldMainTypeNames.insert("num", i18n("Numeral"));
+    m_oldMainTypeNames.insert("con", i18n("Conjunction"));
+    m_oldMainTypeNames.insert("pre", i18n("Preposition"));
+    m_oldMainTypeNames.insert("qu", i18n("Question"));
+    m_oldMainTypeNames.insert("ifm", i18n("Informal"));
+    m_oldMainTypeNames.insert("fig", i18n("Figuratively"));
+
+    m_oldSubTypeNames.clear();
+    m_oldSubTypeNames.insert("ord", i18n("Ordinal"));
+    m_oldSubTypeNames.insert("crd", i18n("Cardinal"));
+    m_oldSubTypeNames.insert("def", i18n("Definite"));
+    m_oldSubTypeNames.insert("ind", i18n("Indefinite"));
+    m_oldSubTypeNames.insert("re", i18n("Regular"));
+    m_oldSubTypeNames.insert("ir", i18n("Irregular"));
+    m_oldSubTypeNames.insert("pos", i18n("Possessive"));
+    m_oldSubTypeNames.insert("per", i18n("Personal"));
+    m_oldSubTypeNames.insert("m", i18n("Male"));
+    m_oldSubTypeNames.insert("f", i18n("Female"));
+    m_oldSubTypeNames.insert("s", i18n("Neutral"));
+
+}
+
+
+QString KEduVocKvtmlCompability::mainTypeFromOldFormat(const QString & typeSubtypeString) const
+{
+    QString mainType;
+    int i;
+
+    if ((i = typeSubtypeString.indexOf(KVTML_1_TYPE_DIV)) >= 0)
+        mainType = typeSubtypeString.left(i);
+    else
+        mainType = typeSubtypeString;
+
+    // convert from pre-0.5 versions (I guess we can just leave that in here.
+    // I seriously doubt that any such documents exist...
+    if (mainType == "1") {
+        mainType = QM_VERB;
+    }
+    else if (mainType == "2") {
+        mainType = QM_NOUN;
+    }
+    else if (mainType == "3") {
+        mainType = QM_NAME;
+    }
+
+    QString wt = m_oldMainTypeNames.value( mainType );
+    if ( wt == QString() ) {
+        kDebug() << "Unknown old maintype: " << typeSubtypeString;
+        return typeSubtypeString;
+    }
+    return wt;
+}
+
+
+QString KEduVocKvtmlCompability::subTypeFromOldFormat(const QString & typeSubtypeString) const
+{
+    int i;
+    QString t = typeSubtypeString;
+    if ((i = t.indexOf(KVTML_1_TYPE_DIV)) >= 0) {
+        t.remove(0, i+1);
+    } else {
+        return QString();
+    }
+
+    QString wt = m_oldSubTypeNames.value( t );
+    if ( wt == QString() ) {
+        kDebug() << "Unknown old maintype: " << typeSubtypeString;
+        return typeSubtypeString;
+    }
+    return wt;
+}
index 1013ef122a6a619a1b8d00dfeedb3b4ca8dbb875..a23fb75b6d3e0cc76c2dff064f7bec271ab6bea4 100644 (file)
 
 #include <KLocalizedString>
 
+
+
+
+
+// internal types, indented are subtypes
+
+#define QM_VERB           "v"    // go
+// #define   QM_VERB_IRR     "ir"
+// #define   QM_VERB_REG     "re"
+#define QM_NOUN           "n"    // table, coffee
+// #define   QM_NOUN_F       "f"
+// #define   QM_NOUN_M       "m"
+// #define   QM_NOUN_S       "s"
+#define QM_NAME           "nm"
+// #define QM_ART            "ar"   // article
+// #define   QM_ART_DEF      "def"  // definite    a/an
+// #define   QM_ART_IND      "ind"  // indefinite  the
+#define QM_ADJ            "aj"   // adjective   expensive, good
+// #define QM_ADV            "av"   // adverb      today, strongly
+// #define QM_PRON           "pr"   // pronoun     you, she
+// #define   QM_PRON_POS     "pos"  // possessive  my, your
+// #define   QM_PRON_PER     "per"  // personal
+// #define QM_PHRASE         "ph"
+// #define QM_NUM            "num"  // numeral
+// #define   QM_NUM_ORD      "ord"  // ordinal     first, second
+// #define   QM_NUM_CARD     "crd"  // cardinal    one, two
+// #define QM_INFORMAL       "ifm"
+// #define QM_FIG            "fig"
+// #define QM_CON            "con"  // conjuncton  and, but
+// #define QM_PREP           "pre"  // preposition behind, between
+// #define QM_QUEST          "qu"   // question    who, what
+
+// type delimiters
+
+#define QM_USER_TYPE  "#"   // designates number of user type
+#define QM_TYPE_DIV   ":"   // divide main from subtype
+
+// usage delimiters (also declared in UsageManager.h)
+
+#define UL_USER_USAGE  "#"   // designates number of user type
+
+
+
+
+
+
+
+
 /**
   * @file contains defines and constants necessary for reading kvtml files prior to KDE4. kvtml version 1.
   */
@@ -64,6 +112,11 @@ public:
      */
     QSet<QString> documentUsages() const;
 
+    ///// TYPES
+    QString mainTypeFromOldFormat(const QString& typeSubtypeString) const;
+    QString subTypeFromOldFormat(const QString& typeSubtypeString) const;
+
+
 private:
     /**
      * This gives a map of old abbreviations used in the files and their meaning.
@@ -76,12 +129,29 @@ private:
     QMap< QString, QString > m_usages;
 
     /// # defines user defined usage
-    static const QString USAGE_USER_DEFINED;
+    static const QString KVTML_1_USAGE_USER_DEFINED;
     /// : seperates usages
-    static const QString USAGE_SEPERATOR;
+    static const QString KVTML_1_USAGE_SEPERATOR;
 
     /// only order was decisive, we have to keep count.
     int m_userdefinedUsageCounter;
+
+
+//////////// TYPES /////////////////
+    void initOldTypeLists();
+
+
+    /// user defined types of old documents
+//     QStringList m_userTypeDescriptions;
+
+
+
+    QMap<QString, QString> m_oldMainTypeNames;
+    QMap<QString, QString> m_oldSubTypeNames;
+
+    static const QString KVTML_1_TYPE_USER;
+    static const QString KVTML_1_TYPE_DIV;
+
 };
 
 
index 28cde178f9865408c6ef046d7b1ceb9331faa15e..66927e7cc54d33ae42a07cd5066bb04f587d7d91 100644 (file)
@@ -980,18 +980,9 @@ bool KEduVocKvtmlReader::readExpressionChildAttributes( QDomElement &domElementE
                 }
             }
             type = m_oldSelfDefinedTypes.value(selfDefinedTypeIndex);
-        } else { // not user defined - preset types
-                // convert from pre-0.5 versions (I guess we can just leave that in here.
-            // I seriously doubt that any such documents exist...
-            if (oldType == "1")
-                oldType = QM_VERB;
-            else if (oldType == "2")
-                oldType = QM_NOUN;
-            else if (oldType == "3")
-                oldType = QM_NAME;
-
-            type = m_doc->wordTypes()->mainTypeFromOldFormat(oldType);
-            subType = m_doc->wordTypes()->subTypeFromOldFormat(oldType);
+        } else {
+            type = m_compability.mainTypeFromOldFormat(oldType);
+            subType = m_compability.subTypeFromOldFormat(oldType);
         } // not user defined - preset types
     }
 
@@ -1095,18 +1086,9 @@ bool KEduVocKvtmlReader::readExpression(QDomElement &domElementParent)
                 }
             }
             type = m_oldSelfDefinedTypes.value(selfDefinedTypeIndex);
-        } else { // not user defined - preset types
-                // convert from pre-0.5 versions (I guess we can just leave that in here.
-            // I seriously doubt that any such documents exist...
-            if (oldType == "1")
-                oldType = QM_VERB;
-            else if (oldType == "2")
-                oldType = QM_NOUN;
-            else if (oldType == "3")
-                oldType = QM_NAME;
-
-            type = m_doc->wordTypes()->mainTypeFromOldFormat(oldType);
-            subType = m_doc->wordTypes()->subTypeFromOldFormat(oldType);
+        } else {
+            type = m_compability.mainTypeFromOldFormat(oldType);
+            subType = m_compability.subTypeFromOldFormat(oldType);
         } // not user defined - preset types
     }
 
index 9d07f7f6d4f2a0528bd948a3cf721c7b3fe3af16..bcaee0e375de60f5d118a393574b8cfebbb612e3 100644 (file)
@@ -26,6 +26,7 @@
 
 #include "keduvocgrammar.h"
 #include "keduvocmultiplechoice.h"
+#include "keduvockvtmlcompability.h"
 
 class KEduVocDocument;
 
index d9cb6984f3b2704e5f7a00c992633cf5b45a1b1b..57fee5bc0cdde52bae22a70ab1c5c282c44e96d7 100644 (file)
@@ -74,12 +74,6 @@ public:
     /// Map containing the word type name and its properties.
     QList<wordType> m_wordTypeList;
 
-    QMap<QString, QString> m_oldMainTypeNames;
-    QMap<QString, QString> m_oldSubTypeNames;
-
-    static const QString KVTML_1_TYPE_USER;
-    static const QString KVTML_1_TYPE_DIV;
-
     static const QString WORDTYPE_NOUN;
     static const QString WORDTYPE_NOUN_MALE;
     static const QString WORDTYPE_NOUN_FEMALE;
@@ -103,9 +97,6 @@ public:
     static const QString WORDTYPE_ADVERB_EXPLANATION;
 };
 
-const QString KEduVocWordType::Private::KVTML_1_TYPE_USER = QString("#");
-const QString KEduVocWordType::Private::KVTML_1_TYPE_DIV = QString(":");
-
 const QString KEduVocWordType::Private::WORDTYPE_NOUN = QString("noun");
 const QString KEduVocWordType::Private::WORDTYPE_NOUN_MALE = QString("noun:male");
 const QString KEduVocWordType::Private::WORDTYPE_NOUN_FEMALE = QString("noun:female");
@@ -136,16 +127,13 @@ const QString KEduVocWordType::Private::WORDTYPE_ADVERB_EXPLANATION = QString("T
 KEduVocWordType::KEduVocWordType()
 : d(new Private)
 {
-    // this should go into the old reader/writer
-    initOldTypeLists();
+
 }
 
 KEduVocWordType::KEduVocWordType(const KEduVocWordType & other)
 : d(new Private)
 {
     d->m_wordTypeList = other.d->m_wordTypeList;
-    d->m_oldMainTypeNames = other.d->m_oldMainTypeNames;
-    d->m_oldSubTypeNames = other.d->m_oldSubTypeNames;
 }
 
 KEduVocWordType::~KEduVocWordType()
@@ -161,77 +149,6 @@ KEduVocWordType & KEduVocWordType::operator =(const KEduVocWordType & other)
 }
 
 
-QString KEduVocWordType::mainTypeFromOldFormat(const QString & typeSubtypeString) const
-{
-    QString mainType;
-    int i;
-
-    if ((i = typeSubtypeString.indexOf(d->KVTML_1_TYPE_DIV)) >= 0)
-        mainType = typeSubtypeString.left(i);
-    else
-        mainType = typeSubtypeString;
-
-    QString wt = d->m_oldMainTypeNames.value( mainType );
-    if ( wt == QString() ) {
-        kDebug() << "Unknown old maintype: " << typeSubtypeString;
-        return typeSubtypeString;
-    }
-    return wt;
-}
-
-
-QString KEduVocWordType::subTypeFromOldFormat(const QString & typeSubtypeString) const
-{
-    int i;
-    QString t = typeSubtypeString;
-    if ((i = t.indexOf(d->KVTML_1_TYPE_DIV)) >= 0) {
-        t.remove(0, i+1);
-    } else {
-        return QString();
-    }
-
-    QString wt = d->m_oldSubTypeNames.value( t );
-    if ( wt == QString() ) {
-        kDebug() << "Unknown old maintype: " << typeSubtypeString;
-        return typeSubtypeString;
-    }
-    return wt;
-}
-
-
-void KEduVocWordType::initOldTypeLists()
-{
-    d->m_oldMainTypeNames.clear();
-    d->m_oldMainTypeNames.insert("v", i18n("Verb"));
-    d->m_oldMainTypeNames.insert("n", i18n("Noun"));
-    d->m_oldMainTypeNames.insert("nm", i18n("Name"));
-    d->m_oldMainTypeNames.insert("ar", i18n("Article"));
-    d->m_oldMainTypeNames.insert("aj", i18n("Adjective"));
-    d->m_oldMainTypeNames.insert("av", i18n("Adverb"));
-    d->m_oldMainTypeNames.insert("pr", i18n("Pronoun"));
-    d->m_oldMainTypeNames.insert("ph", i18n("Phrase"));
-    d->m_oldMainTypeNames.insert("num", i18n("Numeral"));
-    d->m_oldMainTypeNames.insert("con", i18n("Conjunction"));
-    d->m_oldMainTypeNames.insert("pre", i18n("Preposition"));
-    d->m_oldMainTypeNames.insert("qu", i18n("Question"));
-    d->m_oldMainTypeNames.insert("ifm", i18n("Informal"));
-    d->m_oldMainTypeNames.insert("fig", i18n("Figuratively"));
-
-    d->m_oldSubTypeNames.clear();
-    d->m_oldSubTypeNames.insert("ord", i18n("Ordinal"));
-    d->m_oldSubTypeNames.insert("crd", i18n("Cardinal"));
-    d->m_oldSubTypeNames.insert("def", i18n("Definite"));
-    d->m_oldSubTypeNames.insert("ind", i18n("Indefinite"));
-    d->m_oldSubTypeNames.insert("re", i18n("Regular"));
-    d->m_oldSubTypeNames.insert("ir", i18n("Irregular"));
-    d->m_oldSubTypeNames.insert("pos", i18n("Possessive"));
-    d->m_oldSubTypeNames.insert("per", i18n("Personal"));
-    d->m_oldSubTypeNames.insert("m", i18n("Male"));
-    d->m_oldSubTypeNames.insert("f", i18n("Female"));
-    d->m_oldSubTypeNames.insert("s", i18n("Neutral"));
-
-}
-
 /*
 
 QString KEduVocWordType::oldType(const QString & mainType, const QString & subType) const
index a8a430dbafd9d3163eb8576306cecdd54219a8fe..d896966ca7f26df601b4a49fd97b45201e251779 100644 (file)
@@ -130,10 +130,6 @@ public:
 
     void printDebugWordTypes();
 
-    // these should move into the old writer/reader
-    QString mainTypeFromOldFormat(const QString& typeSubtypeString) const;
-    QString subTypeFromOldFormat(const QString& typeSubtypeString) const;
-
     QString typeOfSpecialType( const QString& specialType ) const;
 
     QString specialTypeNoun() const;
@@ -142,11 +138,6 @@ public:
     QString specialTypeAdverb() const;
 
 private:
-    void initOldTypeLists();
-
-
-    /// user defined types of old documents
-//     QStringList m_userTypeDescriptions;
 
 
     QString mainTypeName(int index) const;
index b29d6c711c46321ed4370d51176c196e17f108b2..ff119a8c0578e9710019f2d5b7ff003a1b94449c 100644 (file)
@@ -217,43 +217,5 @@ static const QLatin1String KV_ART_ENTRY("e");  // article entry
 #define KV_CON_P3PN    "p3n"         // 3. person plural natural
 #define KV_CONJ_COMMON "common"      // female contains common for all three
 
-// internal types, indented are subtypes
-
-#define QM_VERB           "v"    // go
-// #define   QM_VERB_IRR     "ir"
-// #define   QM_VERB_REG     "re"
-#define QM_NOUN           "n"    // table, coffee
-// #define   QM_NOUN_F       "f"
-// #define   QM_NOUN_M       "m"
-// #define   QM_NOUN_S       "s"
-#define QM_NAME           "nm"
-// #define QM_ART            "ar"   // article
-// #define   QM_ART_DEF      "def"  // definite    a/an
-// #define   QM_ART_IND      "ind"  // indefinite  the
-#define QM_ADJ            "aj"   // adjective   expensive, good
-// #define QM_ADV            "av"   // adverb      today, strongly
-// #define QM_PRON           "pr"   // pronoun     you, she
-// #define   QM_PRON_POS     "pos"  // possessive  my, your
-// #define   QM_PRON_PER     "per"  // personal
-// #define QM_PHRASE         "ph"
-// #define QM_NUM            "num"  // numeral
-// #define   QM_NUM_ORD      "ord"  // ordinal     first, second
-// #define   QM_NUM_CARD     "crd"  // cardinal    one, two
-// #define QM_INFORMAL       "ifm"
-// #define QM_FIG            "fig"
-// #define QM_CON            "con"  // conjuncton  and, but
-// #define QM_PREP           "pre"  // preposition behind, between
-// #define QM_QUEST          "qu"   // question    who, what
-
-// type delimiters
-
-#define QM_USER_TYPE  "#"   // designates number of user type
-#define QM_TYPE_DIV   ":"   // divide main from subtype
-
-// usage delimiters (also declared in UsageManager.h)
-
-#define UL_USER_USAGE  "#"   // designates number of user type
-
-
 
 #endif // KVTMLDEFS_H