libkdeedu/keduvocdocument
keduvocarticle.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "keduvocarticle.h"
00019 #include "keduvocwordflags.h"
00020
00021 #include <QtCore/QMap>
00022 #include <KDebug>
00023
00024 class KEduVocArticle::Private
00025 {
00026 public:
00027 QMap <KEduVocWordFlags, QString> m_articles;
00028 };
00029
00030 KEduVocArticle::KEduVocArticle()
00031 :d( new Private )
00032 {}
00033
00034 KEduVocArticle::KEduVocArticle( const KEduVocArticle &other )
00035 :d( new Private )
00036 {
00037 d->m_articles = other.d->m_articles;
00038 }
00039
00040 KEduVocArticle &KEduVocArticle::operator= ( const KEduVocArticle& other )
00041 {
00042 d->m_articles = other.d->m_articles;
00043 return *this;
00044 }
00045
00046 KEduVocArticle::KEduVocArticle( const QString &fem_def, const QString &fem_indef, const QString &mal_def, const QString &mal_indef, const QString &neu_def, const QString &neu_indef )
00047 :d( new Private )
00048 {
00049 setArticle( mal_def, KEduVocWordFlag::Singular | KEduVocWordFlag::Definite | KEduVocWordFlag::Masculine );
00050 setArticle( fem_def, KEduVocWordFlag::Singular | KEduVocWordFlag::Definite | KEduVocWordFlag::Feminine );
00051 setArticle( neu_def, KEduVocWordFlag::Singular | KEduVocWordFlag::Definite | KEduVocWordFlag::Neuter );
00052
00053 setArticle( mal_indef, KEduVocWordFlag::Singular | KEduVocWordFlag::Indefinite | KEduVocWordFlag::Masculine );
00054 setArticle( fem_indef, KEduVocWordFlag::Singular | KEduVocWordFlag::Indefinite | KEduVocWordFlag::Feminine );
00055 setArticle( neu_indef, KEduVocWordFlag::Singular | KEduVocWordFlag::Indefinite | KEduVocWordFlag::Neuter );
00056 }
00057
00058 KEduVocArticle::~KEduVocArticle()
00059 {
00060 delete d;
00061 }
00062
00063
00064 QString KEduVocArticle::article(const KEduVocWordFlags& flags)
00065 {
00066 return d->m_articles.value(flags & (KEduVocWordFlag::genders | KEduVocWordFlag::numbers | KEduVocWordFlag::Definite | KEduVocWordFlag::Indefinite));
00067 }
00068
00069 void KEduVocArticle::setArticle(const QString & article, const KEduVocWordFlags& flags)
00070 {
00071 d->m_articles[flags & (KEduVocWordFlag::genders | KEduVocWordFlag::numbers | KEduVocWordFlag::Definite | KEduVocWordFlag::Indefinite)] = article;
00072 }
00073
00074
00075 bool KEduVocArticle::isArticle(const QString & article) const
00076 {
00077 return d->m_articles.values().contains(article);
00078 }
00079
00080 bool KEduVocArticle::isEmpty()
00081 {
00082
00083 foreach(const QString& s, d->m_articles.values())
00084 {
00085 if (!s.isEmpty())
00086 return false;
00087 }
00088 return true;
00089 }
00090
00091
00092