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

parley

  • sources
  • kde-4.12
  • kdeedu
  • parley
  • src
  • vocabulary
vocabularycolumnsdialog.cpp
Go to the documentation of this file.
1 /***************************************************************************
2 
3  options to enable/disable columns for the languages
4 
5  -----------------------------------------------------------------------
6  copyright :(C) 2008 Javier goday <jgoday@gmail.com>
7  -----------------------------------------------------------------------
8 
9  ***************************************************************************/
10 
11 /***************************************************************************
12  * *
13  * This program is free software; you can redistribute it and/or modify *
14  * it under the terms of the GNU General Public License as published by *
15  * the Free Software Foundation; either version 2 of the License, or *
16  * (at your option) any later version. *
17  * *
18  ***************************************************************************/
19 
20 #include "vocabularycolumnsdialog.h"
21 
22 // parley imports
23 #include "vocabulary/vocabularymodel.h"
24 #include "documentsettings.h"
25 
26 // Qt imports
27 #include <QGridLayout>
28 #include <QGroupBox>
29 #include <QHeaderView>
30 #include <QStandardItem>
31 #include <QStandardItemModel>
32 #include <QTreeView>
33 #include <QVBoxLayout>
34 
35 // KDE imports
36 #include <keduvocdocument.h>
37 #include <KIcon>
38 #include <KLocale>
39 #include <KTitleWidget>
40 
41 const int COLUMNS_LIMIT = 1; // columns for row
42 
43 using namespace Editor;
44 
45 VocabularyColumnsDialog::VocabularyColumnsDialog(KEduVocDocument *doc, QWidget *parent)
46  : KDialog(parent),
47  m_models()
48 {
49  m_box = new QGridLayout();
50  m_doc = doc;
51  m_settings = new DocumentSettings(m_doc->url().url());
52 
53  setCaption(i18n("Vocabulary Columns"));
54  setButtons(Ok|Cancel);
55 
56  QWidget *main_widget = new QWidget(this);
57  main_widget->setLayout(m_box);
58 
59  setMainWidget(main_widget);
60 
61  KTitleWidget *titleWidget = new KTitleWidget(this);
62  titleWidget->setText(i18n("Enable/Disable the columns for each language"));
63  titleWidget->setPixmap(KIcon("view-file-columns").pixmap(22, 22), KTitleWidget::ImageRight);
64  m_box->addWidget(titleWidget, 0, 0, 1, 2);
65 
66  createLanguagesLayout();
67 }
68 
69 VocabularyColumnsDialog::~VocabularyColumnsDialog()
70 {
71  delete m_settings;
72 }
73 
74 void VocabularyColumnsDialog::accept()
75 {
76  saveVisibleColumns();
77  KDialog::accept();
78 }
79 
80 void VocabularyColumnsDialog::createLanguagesLayout()
81 {
82  int row = 1;
83  int column = 0;
84  for (int i = 0; i < m_doc->identifierCount(); i++ ) {
85  m_models [i] = new QStandardItemModel(this);
86 
87  QGroupBox *box = new QGroupBox(m_doc->identifier(i).name(), 0);
88  QVBoxLayout *box_layout = new QVBoxLayout(0);
89 
90  m_box->addWidget(box, row, column);
91 
92  if (column < COLUMNS_LIMIT) {
93  column ++;
94  }
95  else {
96  row ++;
97  column = 0;
98  }
99 
100  box->setLayout(box_layout);
101 
102  addLanguage(i, box_layout);
103  }
104 }
105 
106 void VocabularyColumnsDialog::addLanguage(int i, QVBoxLayout *parent)
107 {
108  for(int c=1; c<VocabularyModel::EntryColumnsMAX; c++) {
109  QStandardItem *item_data = new QStandardItem(VocabularyModel::columnTitle(m_doc, i, c));
110  item_data->setData(QVariant(c-1), VocabularyColumnsDialog::ColumnRole);
111  item_data->setData(QVariant(i), VocabularyColumnsDialog::LanguageRole);
112  item_data->setCheckable(true);
113  item_data->setEditable(false);
114 
115  // check if the column is active
116  if (m_settings->visibleColumns().size() >= (i*8 + c)) {
117  item_data->setCheckState(m_settings->visibleColumns().at(i*8 + c) == 1 ? Qt::Checked : Qt::Unchecked);
118  }
119 
120  m_models [i]->insertRow(c-1, item_data);
121  }
122 
123  QTreeView *treeView = new QTreeView(this);
124  treeView->header()->hide();
125  treeView->setModel(m_models [i]);
126 
127  parent->addWidget(treeView);
128 }
129 
130 void VocabularyColumnsDialog::saveVisibleColumns()
131 {
132  QList <int> columns;
133 
134  for (int i = 0; i < m_doc->identifierCount(); i++ ) { // each model for every language
135  columns << 1;
136  for (int row = 0; row < m_models [i]->rowCount(); row++) { // the columns for one language
137  int enabled = (m_models [i]->item(row)->checkState() == Qt::Checked) ? 1 : 0;
138  columns << enabled;
139  }
140  }
141 
142  // i think that this is not the place for this
143  m_settings->setVisibleColumns(columns);
144  m_settings->writeConfig();
145 }
QWidget
documentsettings.h
DocumentSettings
Definition: documentsettings.h:9
DocumentSettings::visibleColumns
QList< int > visibleColumns() const
Get Visible columns in the main editor window.
Definition: documentsettings.h:53
KDialog
QTreeView
Editor::VocabularyColumnsDialog::LanguageRole
Definition: vocabularycolumnsdialog.h:45
Editor::VocabularyModel::EntryColumnsMAX
Definition: vocabularymodel.h:45
Editor::VocabularyColumnsDialog::ColumnRole
Definition: vocabularycolumnsdialog.h:44
COLUMNS_LIMIT
const int COLUMNS_LIMIT
Definition: vocabularycolumnsdialog.cpp:41
vocabularycolumnsdialog.h
Editor::VocabularyColumnsDialog::~VocabularyColumnsDialog
~VocabularyColumnsDialog()
Definition: vocabularycolumnsdialog.cpp:69
Editor::VocabularyColumnsDialog::VocabularyColumnsDialog
VocabularyColumnsDialog(KEduVocDocument *doc, QWidget *parent)
Definition: vocabularycolumnsdialog.cpp:45
Editor::VocabularyModel::columnTitle
static QString columnTitle(KEduVocDocument *document, int translation, int column)
Returns the name of the entryColumns column.
Definition: vocabularymodel.cpp:286
Editor::VocabularyColumnsDialog::accept
void accept()
Definition: vocabularycolumnsdialog.cpp:74
vocabularymodel.h
DocumentSettings::setVisibleColumns
void setVisibleColumns(const QList< int > &v)
Set Visible columns in the main editor window.
Definition: documentsettings.h:44
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:42:06 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
  • 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