• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • kdeedu
  • Sitemap
  • Contact Us
 

libkdeedu/keduvocdocument

keduvocarticle.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002 
00003     Copyright 1999-2001 Ewald Arnold <kvoctrain@ewald-arnold.de>
00004     Copyright 2004, 2005, 2007 Peter Hedlund <peter.hedlund@kdemail.net>
00005     Copyright 2007-2008 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
00006 
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
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     // we don't count empty strings as articles
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 

libkdeedu/keduvocdocument

Skip menu "libkdeedu/keduvocdocument"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdeedu

Skip menu "kdeedu"
  • kalzium
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  •   docs
  •   src
  • parley
  •   stepcore
Generated for kdeedu by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal