1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
/***************************************************************************
C++ Interface: keduvockvtml1compability_p
-----------------------------------------------------------------------
begin : Di Aug 28 2007
copyright : (C) 2007 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
-----------------------------------------------------------------------
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef KEDUVOCKVTMLCOMPABILITY_H
#define KEDUVOCKVTMLCOMPABILITY_H
#include <QString>
#include <QMap>
#include <QSet>
// 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" // conjunction 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
class KEduVocWordType;
/**
* @file keduvockvtmlcompability.h
* contains defines and constants necessary for reading kvtml files prior to KDE4. kvtml version 1.
*/
class KEduVocKvtmlCompability
{
public:
/**
* Constructor, initialize the map.
*/
KEduVocKvtmlCompability();
///// TYPES
/**
* Get the type from an old type definition
* @param parent the parent word type
* @param typeSubtypeString the old string containing everything
* @return type
*/
KEduVocWordType* typeFromOldFormat(KEduVocWordType* parent, const QString & typeSubtypeString ) const;
/**
* To write old docs: convert a nice new type to the ugly old style.
* @param mainType type
* @param subType subtype
* @return old type string
*/
QString oldType( const QString& mainType, const QString& subType ) const;
void addUserdefinedTense( const QString& tense );
QString tenseFromKvtml1( const QString & oldTense );
QStringList documentTenses() const;
QString oldTense( const QString& tense );
void setupWordTypes(KEduVocWordType* parent);
private:
//////////// TYPES /////////////////
void initOldTypeLists();
QMap<QString, QString> m_oldMainTypeNames;
QMap<QString, QString> m_oldSubTypeNames;
int m_userdefinedTypeCounter;
///////////TENSES/CONJUGATIONS///////
void initOldTenses();
QMap<QString, QString> m_oldTenses;
int m_userdefinedTenseCounter;
QSet<QString> m_tenses;
/// # defines user defined usage/word type/tense
static const QString KVTML_1_USER_DEFINED;
/// : separates usages/word types
static const QString KVTML_1_SEPERATOR;
};
#endif // KEDUVOCKVTMLCOMPABILITY_H
|