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

parley

  • sources
  • kde-4.14
  • kdeedu
  • parley
  • src
  • scripts
  • scripting
container.h
Go to the documentation of this file.
1 /***************************************************************************
2 
3  Copyright 2008 Avgoustinos Kadis <avgoustinos.kadis@kdemail.net>
4 
5  ***************************************************************************/
6 
7 /***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 #ifndef SCRIPTINGCONTAINER_H
16 #define SCRIPTINGCONTAINER_H
17 
18 #include <QObject>
19 
20 #include <keduvoccontainer.h>
21 
22 namespace Scripting
23 {
24 
33 class Container : public QObject
34 {
35  Q_OBJECT
37  Q_PROPERTY(QString name READ name WRITE setName)
39  Q_PROPERTY(bool inPractice READ inPractice WRITE setInPractice)
41  Q_PROPERTY(QString imageUrl READ imageUrl WRITE setImageUrl)
42 // Q_PROPERTY ( QVariantList childContainers READ childContainers )
43 public:
44 
45  Container(KEduVocContainer * container = 0);
46 
47  /* copy constructor for d-pointer safe copying */
48 // Container ( const Container &other );
49 
50 // Container ( const QString& name, KEduVocContainer::EnumContainerType type, KEduVocContainer *parent = 0 );
51 
52  ~Container();
53 
54  /* destructor */
55 // virtual ~KEduVocContainer();
56 
57  /* assignment operator */
58 // KEduVocContainer& operator= ( const KEduVocContainer& );
59 
60  /* equality operator */
61 // bool operator== ( const KEduVocContainer &other );
62 
63 
64  template <class T, class S>
65  QVariantList toVariantList(QList<T*> objList) const;
66 
67  static QList<KEduVocContainer*> flattenContainer(KEduVocContainer * root);
68 
69  KEduVocContainer * kEduVocContainer() {
70  return m_container;
71  }
72 
73  static bool enumToBool(KEduVocContainer::EnumEntriesRecursive recursive);
74  static KEduVocContainer::EnumEntriesRecursive boolToEnum(bool recursive);
75 
76  /* set the container name
77  * @param name text to set for the name
78  */
79  void setName(const QString &name) {
80  m_container->setName(name);
81  }
82 
83  /* get the container name */
84  QString name() {
85  return m_container->name();
86  }
87 
88  void appendChildContainer(Container *child) {
89  m_container->appendChildContainer(child->kEduVocContainer());
90  }
91  void insertChildContainer(int row, Container *child) {
92  m_container->insertChildContainer(row, child->kEduVocContainer());
93  }
94 // void deleteChildContainer ( int row ) { m_container->deleteChildContainer ( row ); }
95  void removeChildContainer(int row) {
96  m_container->removeChildContainer(row);
97  }
98  Container *childContainer(int row) {
99  return new Container(m_container->childContainer(row));
100  }
101 
102  /*
103  * Retrieve a child container by its name
104  * Returns 0 if no container is found
105  * @param name container name
106  * @return the child container
107  */
108  Container *childContainer(const QString& name) {
109  return new Container(m_container->childContainer(name));
110  }
111 
112  int childContainerCount() const {
113  return m_container->childContainerCount();
114  }
115 
116  bool inPractice() {
117  return m_container->inPractice();
118  }
119  void setInPractice(bool inPractice) {
120  m_container->setInPractice(inPractice);
121  }
122 
123  /* get the image url for this container if it exists */
124  QString imageUrl() {
125  return m_container->imageUrl().path();
126  }
127 
128  /* set the image url for this container
129  * @param url url of the image
130  */
131  void setImageUrl(const QString & url) {
132  m_container->setImageUrl(url);
133  }
134 
135  /* finds the container with the given name */
136  KEduVocContainer * findContainer(const QString& name);
137 
138  /*
139  * Removes a translation. This has to be called when a language is removed from a document.
140  * @param translation
141  */
142  void removeTranslation(int translation) {
143  return m_container->removeTranslation(translation);
144  }
145 
146  /*
147  * Returns a list with all the child containers (lessons)
148  * @return A list of Container objects
149  */
150  QVariantList childContainers();
151 
152 
153 public slots:
154 
156  int row() const {
157  return m_container->row();
158  }
159 
160 // virtual Container *parent() { return new Container ( m_container->parent() ); }
161 
162  /*
163  * The type of this container. @see EnumContainerType
164  * @return
165  */
166 // KEduVocContainer::EnumContainerType containerType();
167 
168  /*
169  * Set the type of container.
170  * For convenience by default this is taken over from the parent, so no need to set.
171  * @param type the new type
172  */
173 // void setContainerType ( KEduVocContainer::EnumContainerType type );
174 
181  int expressionsOfGrade(int translation, unsigned int grade, bool recursive) {
182  return m_container->expressionsOfGrade(translation, grade, boolToEnum(recursive));
183  }
184 
190  void resetGrades(int translation, bool recursive) {
191  return m_container->resetGrades(translation, boolToEnum(recursive));
192  }
193 
199  double averageGrade(int translation, bool recursive) {
200  return m_container->averageGrade(translation, boolToEnum(recursive));
201  }
202 
203 protected:
204  KEduVocContainer * m_container;
205 };
206 
207 //Template functions should not be separated from their definition (must be in the header file)
208 template <class T, class S>
209 QVariantList Container::toVariantList(QList<T*> objList) const
210 {
211  QVariantList list;
212  foreach(T * t, objList) {
213  QObject * obj = new S(t);
214  list.push_back(qVariantFromValue(obj));
215  }
216  return list;
217 }
218 
219 }
220 
221 
222 #endif
QObject::child
QObject * child(const char *objName, const char *inheritsClass, bool recursiveSearch) const
Scripting::Container::inPractice
bool inPractice()
Definition: container.h:116
Scripting::Container::childContainerCount
int childContainerCount() const
Definition: container.h:112
Scripting::Container::boolToEnum
static KEduVocContainer::EnumEntriesRecursive boolToEnum(bool recursive)
Definition: container.cpp:50
Scripting::Container::Container
Container(KEduVocContainer *container=0)
Definition: container.cpp:20
Scripting::Container::imageUrl
QString imageUrl()
Definition: container.h:124
Scripting::Container::removeTranslation
void removeTranslation(int translation)
Definition: container.h:142
Scripting::Container
KEduVocContainer wrapping class for Kross scripts (inherited by Lesson)
Definition: container.h:33
Scripting::Container::toVariantList
QVariantList toVariantList(QList< T * > objList) const
Definition: container.h:209
Scripting::Container::setImageUrl
void setImageUrl(const QString &url)
Definition: container.h:131
QObject
Scripting::Container::childContainer
Container * childContainer(const QString &name)
Definition: container.h:108
Scripting::Container::row
int row() const
Returns an integer, the Container's unique row.
Definition: container.h:156
Scripting::Container::removeChildContainer
void removeChildContainer(int row)
Definition: container.h:95
Scripting::Container::averageGrade
double averageGrade(int translation, bool recursive)
Returns the average grade of the specified translation considering all the lesson entries...
Definition: container.h:199
Scripting::Container::enumToBool
static bool enumToBool(KEduVocContainer::EnumEntriesRecursive recursive)
Definition: container.cpp:43
Scripting::Container::findContainer
KEduVocContainer * findContainer(const QString &name)
Definition: container.cpp:73
QString
QList
Scripting::Container::childContainers
QVariantList childContainers()
Definition: container.cpp:57
Scripting::Container::m_container
KEduVocContainer * m_container
Definition: container.h:204
Scripting::Container::expressionsOfGrade
int expressionsOfGrade(int translation, unsigned int grade, bool recursive)
Returns how many expressions of language with index translation have grade as grade.
Definition: container.h:181
Scripting::Container::resetGrades
void resetGrades(int translation, bool recursive)
Remove grades from all entries of this lessons.
Definition: container.h:190
Scripting::Container::name
QString name()
Definition: container.h:84
Scripting::Container::flattenContainer
static QList< KEduVocContainer * > flattenContainer(KEduVocContainer *root)
Definition: container.cpp:62
Scripting::Container::setName
void setName(const QString &name)
Definition: container.h:79
Scripting::Container::childContainer
Container * childContainer(int row)
Definition: container.h:98
Scripting::Container::setInPractice
void setInPractice(bool inPractice)
Definition: container.h:119
Scripting::Container::kEduVocContainer
KEduVocContainer * kEduVocContainer()
Definition: container.h:69
Scripting::Container::appendChildContainer
void appendChildContainer(Container *child)
Definition: container.h:88
Scripting::Container::insertChildContainer
void insertChildContainer(int row, Container *child)
Definition: container.h:91
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:15:56 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

parley

Skip menu "parley"
  • 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
  • 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