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

libkdeedu/keduvocdocument

keduvocpersonalpronoun.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002     Copyright 2007 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
00003  ***************************************************************************/
00004 
00005 /***************************************************************************
00006  *                                                                         *
00007  *   This program is free software; you can redistribute it and/or modify  *
00008  *   it under the terms of the GNU General Public License as published by  *
00009  *   the Free Software Foundation; either version 2 of the License, or     *
00010  *   (at your option) any later version.                                   *
00011  *                                                                         *
00012  ***************************************************************************/
00013 
00014 #include "keduvocpersonalpronoun.h"
00015 #include "keduvoccommon_p.h"
00016 #include <KLocalizedString>
00017 #include <KDebug>
00018 
00019 class KEduVocPersonalPronoun::Private
00020 {
00021 public:
00022     Private();
00023 
00024     bool m_maleFemaleDifferent;
00025     bool m_neutralExists;
00026     bool m_dualExists;
00027     QMap<KEduVocWordFlags, QString> m_personalpronouns;
00028 };
00029 
00030 
00031 KEduVocPersonalPronoun::Private::Private()
00032 {
00033     m_maleFemaleDifferent = false;
00034     m_neutralExists = false;
00035     m_dualExists = false;
00036 }
00037 
00038 KEduVocPersonalPronoun::KEduVocPersonalPronoun()
00039         : d( new Private )
00040 {}
00041 
00042 
00043 KEduVocPersonalPronoun::KEduVocPersonalPronoun( const KEduVocPersonalPronoun& other )
00044         : d( new Private )
00045 {
00046     d->m_maleFemaleDifferent = other.d->m_maleFemaleDifferent;
00047     d->m_neutralExists = other.d->m_neutralExists;
00048     d->m_personalpronouns = other.d->m_personalpronouns;
00049     d->m_dualExists = other.d->m_dualExists;
00050 }
00051 
00052 
00053 KEduVocPersonalPronoun::~KEduVocPersonalPronoun()
00054 {
00055     delete d;
00056 }
00057 
00058 
00059 KEduVocPersonalPronoun& KEduVocPersonalPronoun::operator = ( const KEduVocPersonalPronoun& other )
00060 {
00061     d->m_maleFemaleDifferent = other.d->m_maleFemaleDifferent;
00062     d->m_neutralExists = other.d->m_neutralExists;
00063     d->m_personalpronouns = other.d->m_personalpronouns;
00064     d->m_dualExists = other.d->m_dualExists;
00065     return *this;
00066 }
00067 
00068 
00069 bool KEduVocPersonalPronoun::operator ==(const KEduVocPersonalPronoun& other) const
00070 {
00071     return d->m_personalpronouns == other.d->m_personalpronouns &&
00072         d->m_maleFemaleDifferent == other.d->m_maleFemaleDifferent &&
00073         d->m_neutralExists == other.d->m_neutralExists &&
00074         d->m_dualExists == other.d->m_dualExists;
00075 }
00076 
00077 
00078 QString KEduVocPersonalPronoun::personalPronoun(KEduVocWordFlags flags) const
00079 {
00080         QString p = d->m_personalpronouns.value(flags & (KEduVocWordFlag::persons | KEduVocWordFlag::numbers| KEduVocWordFlag::genders));
00081         if (p.isEmpty() && !(flags & KEduVocWordFlag::genders) && d->m_maleFemaleDifferent && d->m_neutralExists)
00082         {
00083             kDebug() << "initial flag lookup failed, added neuter gender flag";
00084            flags |= KEduVocWordFlag::Neuter;
00085            p = d->m_personalpronouns.value(flags & (KEduVocWordFlag::persons | KEduVocWordFlag::numbers| KEduVocWordFlag::genders));
00086         }
00087         return p;
00088 }
00089 
00090 void KEduVocPersonalPronoun::setPersonalPronoun(const QString & personalpronoun, KEduVocWordFlags flags)
00091 {
00092         d->m_personalpronouns[flags & (KEduVocWordFlag::persons | KEduVocWordFlag::numbers| KEduVocWordFlag::genders)] = personalpronoun;
00093 }
00094 
00095 
00096 bool KEduVocPersonalPronoun::maleFemaleDifferent() const
00097 {
00098     return d->m_maleFemaleDifferent;
00099 }
00100 
00101 void KEduVocPersonalPronoun::setMaleFemaleDifferent(bool different)
00102 {
00103     d->m_maleFemaleDifferent = different;
00104 }
00105 
00106 bool KEduVocPersonalPronoun::neutralExists() const
00107 {
00108     return d->m_neutralExists;
00109 }
00110 
00111 void KEduVocPersonalPronoun::setNeutralExists(bool exists)
00112 {
00113     d->m_neutralExists = exists;
00114 }
00115 
00116 bool KEduVocPersonalPronoun::dualExists() const
00117 {
00118     return d->m_dualExists;
00119 }
00120 
00121 void KEduVocPersonalPronoun::setDualExists(bool exists)
00122 {
00123     d->m_dualExists = exists;
00124 }
00125 

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.7
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