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

marble

  • sources
  • kde-4.14
  • kdeedu
  • marble
  • src
  • plugins
  • render
  • satellites
SatellitesConfigModel.cpp
Go to the documentation of this file.
1 //
2 // This file is part of the Marble Virtual Globe.
3 //
4 // This program is free software licensed under the GNU LGPL. You can
5 // find a copy of this license in LICENSE.txt in the top directory of
6 // the source code.
7 //
8 // Copyright 2011 Guillaume Martres <smarter@ubuntu.com>
9 //
10 
11 #include "SatellitesConfigModel.h"
12 
13 #include "SatellitesConfigNodeItem.h"
14 #include "SatellitesConfigLeafItem.h"
15 #include "MarbleDebug.h"
16 
17 namespace Marble {
18 
19 SatellitesConfigModel::SatellitesConfigModel( QObject *parent )
20  : QAbstractItemModel( parent ),
21  m_rootItem( new SatellitesConfigNodeItem( "" ) )
22 {
23 }
24 
25 SatellitesConfigModel::~SatellitesConfigModel()
26 {
27  delete m_rootItem;
28 }
29 
30 QStringList SatellitesConfigModel::idList() const
31 {
32  return m_rootItem->data( 0, SatellitesConfigAbstractItem::IdListRole )
33  .toStringList();
34 }
35 
36 QStringList SatellitesConfigModel::fullIdList() const
37 {
38  return m_rootItem->data( 0, SatellitesConfigAbstractItem::FullIdListRole )
39  .toStringList();
40 }
41 
42 QStringList SatellitesConfigModel::urlList() const
43 {
44  return m_rootItem->data( 0, SatellitesConfigAbstractItem::UrlListRole )
45  .toStringList();
46 }
47 
48 void SatellitesConfigModel::loadSettings( QHash<QString, QVariant> settings)
49 {
50  m_rootItem->loadSettings( settings );
51 }
52 
53 void SatellitesConfigModel::appendChild( SatellitesConfigAbstractItem *child )
54 {
55  m_rootItem->appendChild( child );
56 }
57 
58 void SatellitesConfigModel::clear()
59 {
60  m_rootItem->clear();
61 }
62 
63 QVariant SatellitesConfigModel::data( const QModelIndex &index, int role ) const
64 {
65  if ( !index.isValid() ) {
66  return QVariant();
67  }
68 
69  SatellitesConfigAbstractItem *item =
70  static_cast<SatellitesConfigAbstractItem *>( index.internalPointer() );
71  return item->data( index.column(), role );
72 }
73 
74 bool SatellitesConfigModel::setData( const QModelIndex &index,
75  const QVariant &value,
76  int role )
77 {
78  SatellitesConfigAbstractItem *item =
79  static_cast<SatellitesConfigAbstractItem *>( index.internalPointer() );
80 
81  bool success = item->setData( index.column(), role, value );
82 
83  if ( success ) {
84  QModelIndex parentCellIndex = this->index( index.parent().row(),
85  index.column(),
86  index.parent().parent() );
87  emit dataChanged( parentCellIndex, parentCellIndex );
88  }
89 
90  return success;
91 }
92 
93 int SatellitesConfigModel::columnCount( const QModelIndex &parent ) const
94 {
95  Q_UNUSED( parent )
96  //TODO: enable second column
97  return 1;
98 }
99 
100 int SatellitesConfigModel::rowCount( const QModelIndex &parent ) const
101 {
102  if ( parent.column() > 0 ) {
103  return 0;
104  }
105 
106  SatellitesConfigAbstractItem *parentItem = 0;
107  if ( !parent.isValid() ) {
108  parentItem = m_rootItem;
109  } else {
110  parentItem = static_cast<SatellitesConfigAbstractItem *>(
111  parent.internalPointer() );
112  }
113 
114  return parentItem->childrenCount();
115 }
116 
117 QModelIndex SatellitesConfigModel::parent( const QModelIndex &child ) const
118 {
119  if ( !child.isValid() ) {
120  return QModelIndex();
121  }
122 
123  SatellitesConfigAbstractItem *childItem =
124  static_cast<SatellitesConfigAbstractItem *>( child.internalPointer() );
125  SatellitesConfigAbstractItem *parentItem = childItem->parent();
126 
127  if ( parentItem == m_rootItem ) {
128  return QModelIndex();
129  }
130 
131  return createIndex( parentItem->row(), 0, parentItem );
132 }
133 
134 QModelIndex SatellitesConfigModel::index( int row, int column,
135  const QModelIndex &parent ) const
136 {
137  if ( !hasIndex( row, column, parent ) ) {
138  return QModelIndex();
139  }
140 
141  SatellitesConfigAbstractItem *parentItem = 0;
142  if ( !parent.isValid() ) {
143  parentItem = m_rootItem;
144  } else {
145  parentItem = static_cast<SatellitesConfigAbstractItem *>(
146  parent.internalPointer() );
147  }
148 
149  SatellitesConfigAbstractItem *childItem = parentItem->childAt( row );
150 
151  if ( !childItem ) {
152  return QModelIndex();
153  }
154 
155  return createIndex( row, column, childItem );
156 }
157 
158 QVariant SatellitesConfigModel::headerData( int section,
159  Qt::Orientation orientation,
160  int role ) const
161 {
162  if ( orientation != Qt::Horizontal || role != Qt::DisplayRole ) {
163  return QVariant();
164  }
165 
166  switch (section) {
167  case 0: {
168  return QVariant( tr( "Catalogs" ) );
169  }
170  default: {
171  return QVariant();
172  }
173  }
174 }
175 
176 Qt::ItemFlags SatellitesConfigModel::flags( const QModelIndex &index ) const
177 {
178  if ( !index.isValid() ) {
179  return 0;
180  }
181 
182  SatellitesConfigAbstractItem *item =
183  static_cast<SatellitesConfigAbstractItem *>( index.internalPointer() );
184  return item->flags();
185 }
186 
187 SatellitesConfigNodeItem* SatellitesConfigModel::rootItem() const
188 {
189  return m_rootItem;
190 }
191 
192 } // namespace Marble
193 
194 #include "SatellitesConfigModel.moc"
195 
QAbstractItemModel::hasIndex
bool hasIndex(int row, int column, const QModelIndex &parent) const
Marble::SatellitesConfigAbstractItem::row
int row() const
Definition: SatellitesConfigAbstractItem.cpp:35
Marble::SatellitesConfigAbstractItem::data
virtual QVariant data(int column, int role) const
Definition: SatellitesConfigAbstractItem.cpp:59
QModelIndex
Marble::SatellitesConfigNodeItem::loadSettings
void loadSettings(QHash< QString, QVariant > settings)
Definition: SatellitesConfigNodeItem.cpp:30
Marble::SatellitesConfigNodeItem
Definition: SatellitesConfigNodeItem.h:19
Marble::SatellitesConfigAbstractItem
Definition: SatellitesConfigAbstractItem.h:20
Marble::SatellitesConfigAbstractItem::childrenCount
virtual int childrenCount() const =0
Marble::SatellitesConfigAbstractItem::UrlListRole
Definition: SatellitesConfigAbstractItem.h:26
Marble::SatellitesConfigModel::m_rootItem
SatellitesConfigNodeItem * m_rootItem
Definition: SatellitesConfigModel.h:53
SatellitesConfigModel.h
Marble::SatellitesConfigNodeItem::appendChild
void appendChild(SatellitesConfigAbstractItem *item)
Definition: SatellitesConfigNodeItem.cpp:132
Marble::SatellitesConfigAbstractItem::flags
virtual Qt::ItemFlags flags() const
Definition: SatellitesConfigAbstractItem.cpp:81
Marble::SatellitesConfigAbstractItem::IdListRole
Definition: SatellitesConfigAbstractItem.h:24
MarbleDebug.h
QObject::tr
QString tr(const char *sourceText, const char *disambiguation, int n)
Marble::SatellitesConfigModel::~SatellitesConfigModel
~SatellitesConfigModel()
Definition: SatellitesConfigModel.cpp:25
Marble::SatellitesConfigNodeItem::clear
void clear()
Definition: SatellitesConfigNodeItem.cpp:138
QModelIndex::isValid
bool isValid() const
Marble::SatellitesConfigAbstractItem::FullIdListRole
Definition: SatellitesConfigAbstractItem.h:25
Marble::SatellitesConfigModel::rootItem
SatellitesConfigNodeItem * rootItem() const
Definition: SatellitesConfigModel.cpp:187
QAbstractItemModel::dataChanged
void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)
QHash< QString, QVariant >
QObject
Marble::SatellitesConfigModel::appendChild
void appendChild(SatellitesConfigAbstractItem *child)
Definition: SatellitesConfigModel.cpp:53
QModelIndex::row
int row() const
QModelIndex::internalPointer
void * internalPointer() const
QModelIndex::parent
QModelIndex parent() const
QStringList
QAbstractItemModel::createIndex
QModelIndex createIndex(int row, int column, void *ptr) const
SatellitesConfigNodeItem.h
Marble::SatellitesConfigModel::loadSettings
void loadSettings(QHash< QString, QVariant > settings)
Definition: SatellitesConfigModel.cpp:48
Marble::SatellitesConfigModel::columnCount
int columnCount(const QModelIndex &parent=QModelIndex()) const
Definition: SatellitesConfigModel.cpp:93
SatellitesConfigLeafItem.h
Marble::SatellitesConfigModel::index
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const
Definition: SatellitesConfigModel.cpp:134
Marble::SatellitesConfigModel::idList
QStringList idList() const
Definition: SatellitesConfigModel.cpp:30
Marble::SatellitesConfigNodeItem::data
QVariant data(int column, int role) const
Definition: SatellitesConfigNodeItem.cpp:37
Marble::SatellitesConfigModel::SatellitesConfigModel
SatellitesConfigModel(QObject *parent=0)
Definition: SatellitesConfigModel.cpp:19
QVariant::toStringList
QStringList toStringList() const
Marble::SatellitesConfigModel::setData
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
Definition: SatellitesConfigModel.cpp:74
Marble::SatellitesConfigAbstractItem::childAt
virtual SatellitesConfigAbstractItem * childAt(int row) const =0
QModelIndex::column
int column() const
Marble::SatellitesConfigModel::headerData
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
Definition: SatellitesConfigModel.cpp:158
QAbstractItemModel
Marble::SatellitesConfigAbstractItem::parent
SatellitesConfigAbstractItem * parent() const
Definition: SatellitesConfigAbstractItem.cpp:44
QObject::parent
QObject * parent() const
Marble::SatellitesConfigModel::fullIdList
QStringList fullIdList() const
Definition: SatellitesConfigModel.cpp:36
Marble::SatellitesConfigModel::data
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
Definition: SatellitesConfigModel.cpp:63
Marble::SatellitesConfigModel::rowCount
int rowCount(const QModelIndex &parent=QModelIndex()) const
Definition: SatellitesConfigModel.cpp:100
Marble::SatellitesConfigAbstractItem::setData
virtual bool setData(int column, int role, const QVariant &data)
Definition: SatellitesConfigAbstractItem.cpp:73
Marble::SatellitesConfigModel::flags
Qt::ItemFlags flags(const QModelIndex &index) const
Definition: SatellitesConfigModel.cpp:176
Marble::SatellitesConfigModel::urlList
QStringList urlList() const
Definition: SatellitesConfigModel.cpp:42
QVariant
Marble::SatellitesConfigModel::clear
void clear()
Definition: SatellitesConfigModel.cpp:58
Qt::ItemFlags
typedef ItemFlags
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:41 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

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