File indexing completed on 2024-05-12 03:51:39
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2008 Torsten Rahn <tackat@kde.org> 0004 // SPDX-FileCopyrightText: 2011 Bernhard Beschow <bbeschow@cs.tu-berlin.de> 0005 // 0006 0007 #include "SunPlugin.h" 0008 0009 #include "GeoDataCoordinates.h" 0010 #include "MarbleDirs.h" 0011 #include "MarbleModel.h" 0012 #include "GeoPainter.h" 0013 #include "SunLocator.h" 0014 0015 #include <QIcon> 0016 0017 namespace Marble 0018 { 0019 0020 SunPlugin::SunPlugin() 0021 : RenderPlugin( nullptr ) 0022 { 0023 } 0024 0025 SunPlugin::SunPlugin( const MarbleModel *marbleModel ) 0026 : RenderPlugin( marbleModel ) 0027 { 0028 setVisible( false ); 0029 } 0030 0031 QStringList SunPlugin::backendTypes() const 0032 { 0033 return QStringList(QStringLiteral("stars")); 0034 } 0035 0036 QString SunPlugin::renderPolicy() const 0037 { 0038 return QStringLiteral("SPECIFIED_ALWAYS"); 0039 } 0040 0041 QStringList SunPlugin::renderPosition() const 0042 { 0043 return QStringList(QStringLiteral("ALWAYS_ON_TOP")); 0044 } 0045 0046 QString SunPlugin::name() const 0047 { 0048 return tr( "Sun" ); 0049 } 0050 0051 QString SunPlugin::guiString() const 0052 { 0053 return tr( "Sun" ); 0054 } 0055 0056 QString SunPlugin::nameId() const 0057 { 0058 return QStringLiteral("sun"); 0059 } 0060 0061 QString SunPlugin::version() const 0062 { 0063 return QStringLiteral("1.0"); 0064 } 0065 0066 QString SunPlugin::description() const 0067 { 0068 return tr( "A plugin that shows the Sun." ); 0069 } 0070 0071 QString SunPlugin::copyrightYears() const 0072 { 0073 return QStringLiteral("2011"); 0074 } 0075 0076 QVector<PluginAuthor> SunPlugin::pluginAuthors() const 0077 { 0078 return QVector<PluginAuthor>() 0079 << PluginAuthor(QStringLiteral("Torsten Rahn"), QStringLiteral("tackat@kde.org")) 0080 << PluginAuthor(QStringLiteral("Bernhard Beschow"), QStringLiteral("bbeschow@cs.tu-berlin.de")) 0081 << PluginAuthor(QStringLiteral("Harshit Jain"), QStringLiteral("hjain.itbhu@gmail.com")); 0082 } 0083 0084 QIcon SunPlugin::icon () const 0085 { 0086 return QIcon(MarbleDirs::path(QStringLiteral("svg/sunshine.png"))); 0087 } 0088 0089 0090 void SunPlugin::initialize () 0091 { 0092 m_pixmap = QPixmap(MarbleDirs::path(QStringLiteral("svg/sunshine.png"))).scaled(QSize(22,22)); 0093 } 0094 0095 bool SunPlugin::isInitialized () const 0096 { 0097 return !m_pixmap.isNull(); 0098 } 0099 0100 bool SunPlugin::render( GeoPainter *painter, ViewportParams *viewport, 0101 const QString& renderPos, GeoSceneLayer * layer ) 0102 { 0103 Q_UNUSED( viewport ) 0104 Q_UNUSED( renderPos ) 0105 Q_UNUSED( layer ) 0106 0107 if( visible() ) 0108 { 0109 const qreal lon = marbleModel()->sunLocator()->getLon(); 0110 const qreal lat = marbleModel()->sunLocator()->getLat(); 0111 const GeoDataCoordinates coordinates( lon, lat, 0, GeoDataCoordinates::Degree ); 0112 painter->drawPixmap( coordinates, m_pixmap ); 0113 } 0114 0115 return true; 0116 } 0117 0118 } 0119 0120 #include "moc_SunPlugin.cpp"