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"