File indexing completed on 2024-05-19 15:05:33
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2011 Guillaume Martres <smarter@ubuntu.com> 0004 // 0005 0006 #include "SatellitesConfigLeafItem.h" 0007 0008 #include <QVariant> 0009 0010 namespace Marble { 0011 0012 SatellitesConfigLeafItem::SatellitesConfigLeafItem( const QString &name, const QString &id ) 0013 : SatellitesConfigAbstractItem( name ), 0014 m_id( id ), 0015 m_url( QString() ), 0016 m_isChecked( false ), 0017 m_isOrbitDisplayed( false ) 0018 { 0019 } 0020 0021 SatellitesConfigLeafItem::~SatellitesConfigLeafItem() 0022 { 0023 } 0024 0025 void SatellitesConfigLeafItem::loadSettings(const QHash<QString, QVariant> &settings) 0026 { 0027 const QStringList idList = settings.value(QStringLiteral("idList")).toStringList(); 0028 m_isChecked = idList.contains( m_id ); 0029 } 0030 0031 QVariant SatellitesConfigLeafItem::data( int column, int role ) const 0032 { 0033 QVariant base = SatellitesConfigAbstractItem::data( column, role ); 0034 if ( base.isValid() ) { 0035 return base; 0036 } 0037 0038 switch ( role ) { 0039 case UrlListRole: 0040 if( !m_url.isNull() && !m_url.isEmpty() ) { 0041 return QVariant( QStringList() << m_url ); 0042 } 0043 break; 0044 case IdListRole: 0045 case FullIdListRole: 0046 return QVariant( QStringList() << m_id ); 0047 case Qt::CheckStateRole: 0048 switch ( column ) { 0049 case 0: 0050 return QVariant( m_isChecked ? Qt::Checked : Qt::Unchecked ); 0051 case 1: 0052 return QVariant( m_isOrbitDisplayed ? Qt::Checked : Qt::Unchecked ); 0053 } 0054 } 0055 0056 return QVariant(); 0057 } 0058 0059 bool SatellitesConfigLeafItem::setData( int column, int role, const QVariant& data ) 0060 { 0061 switch( role ) { 0062 case UrlListRole: 0063 m_url = data.toString(); 0064 return true; 0065 case Qt::CheckStateRole: 0066 switch ( column ) { 0067 case 0: 0068 m_isChecked = data.toBool(); 0069 return true; 0070 case 1: 0071 m_isOrbitDisplayed = data.toBool(); 0072 return true; 0073 } 0074 } 0075 0076 return false; 0077 } 0078 0079 bool SatellitesConfigLeafItem::isLeaf() const 0080 { 0081 return true; 0082 } 0083 0084 SatellitesConfigAbstractItem *SatellitesConfigLeafItem::childAt( int row ) const 0085 { 0086 Q_UNUSED( row ) 0087 return nullptr; 0088 } 0089 0090 int SatellitesConfigLeafItem::indexOf( const SatellitesConfigAbstractItem *child ) const 0091 { 0092 Q_UNUSED( child ) 0093 return -1; 0094 } 0095 0096 int SatellitesConfigLeafItem::childrenCount() const 0097 { 0098 return 0; 0099 } 0100 0101 QString SatellitesConfigLeafItem::id() const 0102 { 0103 return m_id; 0104 } 0105 0106 QString SatellitesConfigLeafItem::url() const 0107 { 0108 return m_url; 0109 } 0110 0111 } // namespace Marble 0112