#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;
{
// 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
}
+
+////////////////// 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;
+}
#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.
*/
*/
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.
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;
+
};
}
}
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
}
}
}
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
}
#include "keduvocgrammar.h"
#include "keduvocmultiplechoice.h"
+#include "keduvockvtmlcompability.h"
class KEduVocDocument;
/// 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;
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");
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()
}
-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
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;
QString specialTypeAdverb() const;
private:
- void initOldTypeLists();
-
-
- /// user defined types of old documents
-// QStringList m_userTypeDescriptions;
QString mainTypeName(int index) const;
#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