• 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
  • statistics
conjugationoptions.cpp
Go to the documentation of this file.
1 /**************************************************************************
2  Copyright 2007-2010 Frederik Gladhorn <gladhorn@kde.org>
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 "conjugationoptions.h"
15 
16 #include "languagesettings.h"
17 #include "documentsettings.h"
18 #include "prefs.h"
19 
20 #include <keduvocdocument.h>
21 
22 #include <KStandardDirs>
23 #include <KLocale>
24 #include <QStackedLayout>
25 #include <QLabel>
26 #include <QtDBus>
27 #include <QTreeWidget>
28 
29 ConjugationOptions::ConjugationOptions(KEduVocDocument* doc, QWidget * parent)
30  : QWidget(parent)
31  , m_doc(doc)
32  , m_language(0)
33 {
34  m_treeWidget = new QTreeWidget(this);
35  m_treeWidget->setHeaderLabel(i18n("Tenses"));
36  m_treeWidget->setRootIsDecorated(false);
37  QHBoxLayout* layout = new QHBoxLayout(this);
38  layout->addWidget(m_treeWidget);
39  layout->setMargin(0);
40  setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
41 }
42 
43 void ConjugationOptions::setLanguages(int from, int to)
44 {
45  Q_UNUSED(from)
46  if (to >= m_doc->identifierCount()) {
47  to = 0;
48  }
49  m_language = to;
50  setupTenses();
51 }
52 
53 void ConjugationOptions::setupTenses()
54 {
55  m_treeWidget->clear();
56 
57  DocumentSettings documentSettings(m_doc->url().url() + QString::number(m_language));
58  documentSettings.readConfig();
59  QStringList activeTenses = documentSettings.conjugationTenses();
60  kDebug() << "activeTenses:" << activeTenses << " id tenses: " << m_doc->identifier(m_language).tenseList();
61  QTreeWidgetItem* tenseItem;
62 
63  foreach(const QString & tenseName, m_doc->identifier(m_language).tenseList()) {
64  tenseItem = new QTreeWidgetItem(m_treeWidget);
65  tenseItem->setText(0, tenseName);
66  if (activeTenses.contains(tenseName)) {
67  tenseItem->setCheckState(0, Qt::Checked);
68  } else {
69  tenseItem->setCheckState(0, Qt::Unchecked);
70  }
71  tenseItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable);
72  m_treeWidget->addTopLevelItem(tenseItem);
73  }
74 }
75 
76 void ConjugationOptions::updateSettings()
77 {
78  kDebug() << "Save language selection";
79  QTreeWidgetItem* parentItem = m_treeWidget->invisibleRootItem();
80  QStringList activeTenses;
81  for (int i = 0; i < parentItem->childCount(); i++) {
82  QTreeWidgetItem* tenseItem = parentItem->child(i);
83  if (tenseItem->checkState(0) == Qt::Checked) {
84  activeTenses.append(tenseItem->text(0));
85  }
86  }
87  DocumentSettings documentSettings(m_doc->url().url() + QString::number(m_language));
88  documentSettings.setConjugationTenses(activeTenses);
89  documentSettings.writeConfig();
90 }
91 
92 #include "conjugationoptions.moc"
QWidget::layout
QLayout * layout() const
ConjugationOptions::ConjugationOptions
ConjugationOptions(KEduVocDocument *doc, QWidget *parent)
Definition: conjugationoptions.cpp:29
QTreeWidget::addTopLevelItem
void addTopLevelItem(QTreeWidgetItem *item)
QWidget
QTreeWidgetItem::checkState
Qt::CheckState checkState(int column) const
languagesettings.h
QTreeWidgetItem::child
QTreeWidgetItem * child(int index) const
documentsettings.h
QStringList::contains
bool contains(const QString &str, Qt::CaseSensitivity cs) const
DocumentSettings
Definition: documentsettings.h:9
QHBoxLayout
prefs.h
QTreeWidget::clear
void clear()
QTreeWidgetItem::setFlags
void setFlags(QFlags< Qt::ItemFlag > flags)
QTreeWidget
QTreeWidget::invisibleRootItem
QTreeWidgetItem * invisibleRootItem() const
ConjugationOptions::updateSettings
void updateSettings()
Definition: conjugationoptions.cpp:76
QBoxLayout::addWidget
void addWidget(QWidget *widget, int stretch, QFlags< Qt::AlignmentFlag > alignment)
QString::number
QString number(int n, int base)
QList::append
void append(const T &value)
conjugationoptions.h
DocumentSettings::setConjugationTenses
void setConjugationTenses(const QStringList &v)
Set Selected tenses for conjugation practice.
Definition: documentsettings.h:19
ConjugationOptions::setLanguages
void setLanguages(int from, int to)
Definition: conjugationoptions.cpp:43
QString
QLayout::setMargin
void setMargin(int margin)
QWidget::setSizePolicy
void setSizePolicy(QSizePolicy)
QStringList
QTreeWidget::setHeaderLabel
void setHeaderLabel(const QString &label)
QTreeWidgetItem::setCheckState
void setCheckState(int column, Qt::CheckState state)
QTreeWidgetItem
QTreeWidgetItem::setText
void setText(int column, const QString &text)
QTreeView::setRootIsDecorated
void setRootIsDecorated(bool show)
QTreeWidgetItem::childCount
int childCount() const
QTreeWidgetItem::text
QString text(int column) const
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