Marble

AbstractDataPluginItem.cpp
1 // SPDX-License-Identifier: LGPL-2.1-or-later
2 //
3 // SPDX-FileCopyrightText: 2009 Bastian Holst <[email protected]>
4 //
5 
6 // self
7 #include "AbstractDataPluginItem.h"
8 
9 // Marble
10 #include "GeoDataCoordinates.h"
11 #include "ViewportParams.h"
12 #include "MarbleDebug.h"
13 
14 // Qt
15 #include <QAction>
16 #include <QRect>
17 #include <QSize>
18 
19 namespace Marble
20 {
21 
22 class AbstractDataPluginItemPrivate
23 {
24  public:
25  QString m_id;
26  QString m_toolTip;
27  bool m_favorite;
28  bool m_sticky;
29  qreal m_addedAngularResolution;
30 
31  AbstractDataPluginItemPrivate();
32 };
33 
34 AbstractDataPluginItemPrivate::AbstractDataPluginItemPrivate()
35  : m_favorite( false ),
36  m_sticky( false ),
37  m_addedAngularResolution( 0 )
38 {
39  // nothing to do
40 }
41 
42 AbstractDataPluginItem::AbstractDataPluginItem( QObject *parent )
43  : QObject( parent ),
44  BillboardGraphicsItem(),
45  d( new AbstractDataPluginItemPrivate )
46 {
47  // nothing to do
48 }
49 
50 AbstractDataPluginItem::~AbstractDataPluginItem()
51 {
52  delete d;
53 }
54 
55 QString AbstractDataPluginItem::toolTip() const
56 {
57  return d->m_toolTip;
58 }
59 
60 void AbstractDataPluginItem::setToolTip( const QString& toolTip )
61 {
62  d->m_toolTip = toolTip;
63 }
64 
65 QString AbstractDataPluginItem::id() const
66 {
67  return d->m_id;
68 }
69 
70 void AbstractDataPluginItem::setId( const QString& id )
71 {
72  d->m_id = id;
73 }
74 
75 bool AbstractDataPluginItem::isFavorite() const
76 {
77  return d->m_favorite;
78 }
79 
80 void AbstractDataPluginItem::setFavorite( bool favorite )
81 {
82  if ( isFavorite() != favorite ) {
83  d->m_favorite = favorite;
84  emit favoriteChanged( id(), favorite );
85  }
86 }
87 
88 bool AbstractDataPluginItem::isSticky() const
89 {
90  return d->m_sticky;
91 }
92 
93 void AbstractDataPluginItem::setSticky( bool sticky )
94 {
95  if ( d->m_sticky != sticky ) {
96  d->m_sticky = sticky;
97  emit stickyChanged();
98  }
99 }
100 
101 void AbstractDataPluginItem::toggleFavorite()
102 {
103  setFavorite( !isFavorite() );
104 }
105 
106 qreal AbstractDataPluginItem::addedAngularResolution() const
107 {
108  return d->m_addedAngularResolution;
109 }
110 
111 void AbstractDataPluginItem::setAddedAngularResolution( qreal resolution )
112 {
113  d->m_addedAngularResolution = resolution;
114 }
115 
116 void AbstractDataPluginItem::setSettings( const QHash<QString, QVariant>& settings )
117 {
118  Q_UNUSED( settings )
119 }
120 
121 QAction *AbstractDataPluginItem::action()
122 {
123  return nullptr;
124 }
125 
126 void AbstractDataPluginItem::addDownloadedFile( const QString& url, const QString& type )
127 {
128  Q_UNUSED( url )
129  Q_UNUSED( type )
130 }
131 
132 QList<QAction*> AbstractDataPluginItem::actions()
133 {
134  QList<QAction*> result;
135  QAction* pluginAction = action();
136 
137  if ( pluginAction ) {
138  result << pluginAction;
139  }
140 
141  return result;
142 }
143 
144 } // Marble namespace
145 
146 #include "moc_AbstractDataPluginItem.cpp"
Binds a QML item to a specific geodetic location in screen coordinates.
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Wed Oct 4 2023 04:09:40 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.