File indexing completed on 2024-05-05 03:49:16

0001 #include "MapTheme.h"
0002 #include <MarbleQuickItem.h>
0003 #include <MarbleModel.h>
0004 
0005 #include <GeoSceneDocument.h>
0006 #include <GeoSceneHead.h>
0007 #include <GeoSceneLicense.h>
0008 
0009 namespace Marble
0010 {
0011     MapTheme::MapTheme(QObject *parent) :
0012         QObject( parent ),
0013         m_map(nullptr)
0014     {
0015     }
0016 
0017     Marble::MarbleQuickItem *MapTheme::map() const
0018     {
0019         return m_map;
0020     }
0021 
0022     QString MapTheme::license() const
0023     {
0024         const GeoSceneDocument *const mapTheme = m_map->model()->mapTheme();
0025         if ( !mapTheme )
0026             return QString();
0027 
0028         const GeoSceneHead *const head = mapTheme->head();
0029         if ( !head )
0030             return QString();
0031 
0032         const GeoSceneLicense *license = head->license();
0033         return license->shortLicense();
0034     }
0035 
0036     void MapTheme::setMap(MarbleQuickItem *map)
0037     {
0038         if (m_map == map)
0039             return;
0040         disconnect(m_map, &MarbleQuickItem::mapThemeIdChanged, this, &MapTheme::licenseChanged);
0041         connect(map, &MarbleQuickItem::mapThemeIdChanged, this, &MapTheme::licenseChanged);
0042 
0043         m_map = map;
0044 
0045         emit mapChanged(m_map);
0046         emit licenseChanged();
0047     }
0048 }
0049 
0050 #include "moc_MapTheme.cpp"