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

libkdeedu/keduvocdocument

  • sources
  • kde-4.12
  • kdeedu
  • libkdeedu
  • keduvocdocument
keduvocpersonalpronoun.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  Copyright 2007 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
3  ***************************************************************************/
4 
5 /***************************************************************************
6  * *
7  * This program is free software; you can redistribute it and/or modify *
8  * it under the terms of the GNU General Public License as published by *
9  * the Free Software Foundation; either version 2 of the License, or *
10  * (at your option) any later version. *
11  * *
12  ***************************************************************************/
13 
14 #include "keduvocpersonalpronoun.h"
15 #include "keduvoccommon_p.h"
16 
17 #include <QtCore/QMap>
18 
19 class KEduVocPersonalPronoun::Private
20 {
21 public:
22  Private();
23 
24  bool m_maleFemaleDifferent;
25  bool m_neutralExists;
26  bool m_dualExists;
27  QMap<KEduVocWordFlags, QString> m_personalpronouns;
28 };
29 
30 
31 KEduVocPersonalPronoun::Private::Private()
32 {
33  m_maleFemaleDifferent = false;
34  m_neutralExists = false;
35  m_dualExists = false;
36 }
37 
38 KEduVocPersonalPronoun::KEduVocPersonalPronoun()
39  : d( new Private )
40 {}
41 
42 
43 KEduVocPersonalPronoun::KEduVocPersonalPronoun( const KEduVocPersonalPronoun& other )
44  : d( new Private )
45 {
46  d->m_maleFemaleDifferent = other.d->m_maleFemaleDifferent;
47  d->m_neutralExists = other.d->m_neutralExists;
48  d->m_personalpronouns = other.d->m_personalpronouns;
49  d->m_dualExists = other.d->m_dualExists;
50 }
51 
52 
53 KEduVocPersonalPronoun::~KEduVocPersonalPronoun()
54 {
55  delete d;
56 }
57 
58 
59 KEduVocPersonalPronoun& KEduVocPersonalPronoun::operator = ( const KEduVocPersonalPronoun& other )
60 {
61  d->m_maleFemaleDifferent = other.d->m_maleFemaleDifferent;
62  d->m_neutralExists = other.d->m_neutralExists;
63  d->m_personalpronouns = other.d->m_personalpronouns;
64  d->m_dualExists = other.d->m_dualExists;
65  return *this;
66 }
67 
68 
69 bool KEduVocPersonalPronoun::operator ==(const KEduVocPersonalPronoun& other) const
70 {
71  return d->m_personalpronouns == other.d->m_personalpronouns &&
72  d->m_maleFemaleDifferent == other.d->m_maleFemaleDifferent &&
73  d->m_neutralExists == other.d->m_neutralExists &&
74  d->m_dualExists == other.d->m_dualExists;
75 }
76 
77 
78 QString KEduVocPersonalPronoun::personalPronoun(KEduVocWordFlags flags) const
79 {
80  QString p = d->m_personalpronouns.value(flags & (KEduVocWordFlag::persons | KEduVocWordFlag::numbers| KEduVocWordFlag::genders));
81  if (p.isEmpty() && !(flags & KEduVocWordFlag::genders) && d->m_maleFemaleDifferent && d->m_neutralExists)
82  {
83  //initial flag lookup failed, adding neuter gender flag
84  flags |= KEduVocWordFlag::Neuter;
85  p = d->m_personalpronouns.value(flags & (KEduVocWordFlag::persons | KEduVocWordFlag::numbers| KEduVocWordFlag::genders));
86  }
87  return p;
88 }
89 
90 void KEduVocPersonalPronoun::setPersonalPronoun(const QString & personalpronoun, KEduVocWordFlags flags)
91 {
92  d->m_personalpronouns[flags & (KEduVocWordFlag::persons | KEduVocWordFlag::numbers| KEduVocWordFlag::genders)] = personalpronoun;
93 }
94 
95 
96 bool KEduVocPersonalPronoun::maleFemaleDifferent() const
97 {
98  return d->m_maleFemaleDifferent;
99 }
100 
101 void KEduVocPersonalPronoun::setMaleFemaleDifferent(bool different)
102 {
103  d->m_maleFemaleDifferent = different;
104 }
105 
106 bool KEduVocPersonalPronoun::neutralExists() const
107 {
108  return d->m_neutralExists;
109 }
110 
111 void KEduVocPersonalPronoun::setNeutralExists(bool exists)
112 {
113  d->m_neutralExists = exists;
114 }
115 
116 bool KEduVocPersonalPronoun::dualExists() const
117 {
118  return d->m_dualExists;
119 }
120 
121 void KEduVocPersonalPronoun::setDualExists(bool exists)
122 {
123  d->m_dualExists = exists;
124 }
125 
keduvocpersonalpronoun.h
KEduVocPersonalPronoun::operator==
bool operator==(const KEduVocPersonalPronoun &a) const
Definition: keduvocpersonalpronoun.cpp:69
KEduVocPersonalPronoun::KEduVocPersonalPronoun
KEduVocPersonalPronoun()
The constructor.
Definition: keduvocpersonalpronoun.cpp:38
KEduVocPersonalPronoun::~KEduVocPersonalPronoun
~KEduVocPersonalPronoun()
Definition: keduvocpersonalpronoun.cpp:53
keduvoccommon_p.h
KEduVocPersonalPronoun::setMaleFemaleDifferent
void setMaleFemaleDifferent(bool different)
Definition: keduvocpersonalpronoun.cpp:101
KEduVocPersonalPronoun::setNeutralExists
void setNeutralExists(bool exists)
Definition: keduvocpersonalpronoun.cpp:111
KEduVocPersonalPronoun
The conjugation of a verb.
Definition: keduvocpersonalpronoun.h:25
KEduVocWordFlag::persons
static const Flags persons
Definition: keduvocwordflags.h:71
KEduVocPersonalPronoun::operator=
KEduVocPersonalPronoun & operator=(const KEduVocPersonalPronoun &a)
Definition: keduvocpersonalpronoun.cpp:59
KEduVocWordFlag::numbers
static const Flags numbers
Definition: keduvocwordflags.h:69
KEduVocPersonalPronoun::setDualExists
void setDualExists(bool exists)
Definition: keduvocpersonalpronoun.cpp:121
KEduVocPersonalPronoun::dualExists
bool dualExists() const
Definition: keduvocpersonalpronoun.cpp:116
KEduVocPersonalPronoun::personalPronoun
QString personalPronoun(KEduVocWordFlags flags) const
Definition: keduvocpersonalpronoun.cpp:78
KEduVocPersonalPronoun::neutralExists
bool neutralExists() const
Definition: keduvocpersonalpronoun.cpp:106
KEduVocWordFlag::genders
static const Flags genders
Definition: keduvocwordflags.h:67
KEduVocWordFlag::Neuter
Definition: keduvocwordflags.h:30
KEduVocPersonalPronoun::maleFemaleDifferent
bool maleFemaleDifferent() const
Definition: keduvocpersonalpronoun.cpp:96
KEduVocPersonalPronoun::setPersonalPronoun
void setPersonalPronoun(const QString &conjugation, KEduVocWordFlags flags)
Definition: keduvocpersonalpronoun.cpp:90
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:37:21 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

libkdeedu/keduvocdocument

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

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal