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

marble

  • sources
  • kde-4.12
  • kdeedu
  • marble
  • src
  • plugins
  • render
  • satellites
SatellitesConfigNodeItem.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 // Copyright 2012 Rene Kuettner <rene@bitkanal.net>
10 //
11 
12 #include "SatellitesConfigNodeItem.h"
13 
14 #include <QStringList>
15 #include <QVariant>
16 
17 #include "MarbleDebug.h"
18 
19 namespace Marble {
20 
21 SatellitesConfigNodeItem::SatellitesConfigNodeItem( const QString &name )
22  : SatellitesConfigAbstractItem( name )
23 {
24 }
25 
26 SatellitesConfigNodeItem::~SatellitesConfigNodeItem()
27 {
28 }
29 
30 void SatellitesConfigNodeItem::loadSettings(QHash< QString, QVariant > settings)
31 {
32  foreach( SatellitesConfigAbstractItem *item, m_children ) {
33  item->loadSettings( settings );
34  }
35 }
36 
37 QVariant SatellitesConfigNodeItem::data( int column, int role ) const
38 {
39  QVariant base = SatellitesConfigAbstractItem::data( column, role );
40  if ( base.isValid() ) {
41  return base;
42  }
43 
44  switch ( role ) {
45  case IdListRole:
46  case UrlListRole: {
47  QStringList list;
48  foreach( SatellitesConfigAbstractItem *item, m_children ) {
49  if ( item->data( column, Qt::CheckStateRole ).toInt() != Qt::Unchecked ) {
50  list.append( item->data( column, role).toStringList() );
51  }
52  }
53  return list;
54  }
55  case FullIdListRole: {
56  QStringList fullIdList;
57  foreach( SatellitesConfigAbstractItem *item, m_children ) {
58  fullIdList.append( item->data( column, role ).toStringList() );
59  }
60  return fullIdList;
61  }
62  case Qt::CheckStateRole: {
63  bool oneChecked = false;
64  bool oneUnchecked = false;
65  foreach( SatellitesConfigAbstractItem *item, m_children ) {
66  switch ( item->data( column, Qt::CheckStateRole ).toInt() ) {
67  case Qt::Checked:
68  oneChecked = true;
69  if ( oneUnchecked ) {
70  return Qt::PartiallyChecked;
71  }
72  break;
73  case Qt::PartiallyChecked:
74  return Qt::PartiallyChecked;
75  case Qt::Unchecked:
76  oneUnchecked = true;
77  if ( oneChecked ) {
78  return Qt::PartiallyChecked;
79  }
80  }
81  }
82 
83  return QVariant( oneChecked ? Qt::Checked : Qt::Unchecked );
84  }
85  }
86 
87  return QVariant();
88 }
89 
90 bool SatellitesConfigNodeItem::setData( int column, int role, const QVariant &data )
91 {
92  if ( role == Qt::CheckStateRole ) {
93  switch ( column ) {
94  case 0:
95  // fall through
96  case 1:
97  foreach( SatellitesConfigAbstractItem *item, m_children ) {
98  item->setData( column, role, data );
99  }
100  return true;
101  }
102  }
103 
104  return false;
105 }
106 
107 bool SatellitesConfigNodeItem::isLeaf() const
108 {
109  return false;
110 }
111 
112 SatellitesConfigAbstractItem *SatellitesConfigNodeItem::childAt( int row ) const
113 {
114  if ( m_children.size() <= row ) {
115  return 0;
116  }
117 
118  return m_children.at( row );
119 }
120 
121 int SatellitesConfigNodeItem::indexOf( const SatellitesConfigAbstractItem *child ) const
122 {
123  //TODO: find out if we can avoid the const_cast
124  return m_children.indexOf( const_cast<SatellitesConfigAbstractItem *>( child ) );
125 }
126 
127 int SatellitesConfigNodeItem::childrenCount() const
128 {
129  return m_children.size();
130 }
131 
132 void SatellitesConfigNodeItem::appendChild( SatellitesConfigAbstractItem *item )
133 {
134  item->setParent( this );
135  m_children.append( item );
136 }
137 
138 void SatellitesConfigNodeItem::clear()
139 {
140  for( int i = childrenCount(); i > 0; --i ) {
141  SatellitesConfigAbstractItem *item = m_children.at( i - 1 );
142  item->clear();
143  m_children.remove( i - 1 );
144  delete item;
145  }
146 }
147 
148 } // namespace Marble
149 
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
Marble::SatellitesConfigNodeItem::indexOf
int indexOf(const SatellitesConfigAbstractItem *child) const
Definition: SatellitesConfigNodeItem.cpp:121
Marble::SatellitesConfigNodeItem::loadSettings
void loadSettings(QHash< QString, QVariant > settings)
Definition: SatellitesConfigNodeItem.cpp:30
Marble::SatellitesConfigAbstractItem
Definition: SatellitesConfigAbstractItem.h:20
Marble::SatellitesConfigNodeItem::childAt
SatellitesConfigAbstractItem * childAt(int row) const
Definition: SatellitesConfigNodeItem.cpp:112
Marble::SatellitesConfigAbstractItem::UrlListRole
Definition: SatellitesConfigAbstractItem.h:26
Marble::SatellitesConfigNodeItem::appendChild
void appendChild(SatellitesConfigAbstractItem *item)
Definition: SatellitesConfigNodeItem.cpp:132
Marble::SatellitesConfigAbstractItem::IdListRole
Definition: SatellitesConfigAbstractItem.h:24
MarbleDebug.h
Marble::SatellitesConfigNodeItem::SatellitesConfigNodeItem
SatellitesConfigNodeItem(const QString &name)
Definition: SatellitesConfigNodeItem.cpp:21
Marble::SatellitesConfigNodeItem::clear
void clear()
Definition: SatellitesConfigNodeItem.cpp:138
Marble::SatellitesConfigAbstractItem::FullIdListRole
Definition: SatellitesConfigAbstractItem.h:25
Marble::SatellitesConfigNodeItem::isLeaf
bool isLeaf() const
Definition: SatellitesConfigNodeItem.cpp:107
Marble::SatellitesConfigAbstractItem::clear
virtual void clear()
Definition: SatellitesConfigAbstractItem.cpp:91
Marble::SatellitesConfigAbstractItem::loadSettings
virtual void loadSettings(QHash< QString, QVariant > settings)
Definition: SatellitesConfigAbstractItem.cpp:54
SatellitesConfigNodeItem.h
Marble::SatellitesConfigNodeItem::data
QVariant data(int column, int role) const
Definition: SatellitesConfigNodeItem.cpp:37
Marble::SatellitesConfigNodeItem::~SatellitesConfigNodeItem
~SatellitesConfigNodeItem()
Definition: SatellitesConfigNodeItem.cpp:26
Marble::SatellitesConfigAbstractItem::setParent
void setParent(SatellitesConfigAbstractItem *parent)
Definition: SatellitesConfigAbstractItem.cpp:49
Marble::SatellitesConfigNodeItem::setData
bool setData(int column, int role, const QVariant &data)
Definition: SatellitesConfigNodeItem.cpp:90
Marble::SatellitesConfigNodeItem::childrenCount
int childrenCount() const
Definition: SatellitesConfigNodeItem.cpp:127
Marble::SatellitesConfigAbstractItem::setData
virtual bool setData(int column, int role, const QVariant &data)
Definition: SatellitesConfigAbstractItem.cpp:73
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:38:52 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
  • 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