2
// This file is part of the Marble Virtual Globe.
4
// This program is free software licensed under the GNU LGPL. You can
5
// find a copy of this license in LICENSE.txt in the top directory of
8
// Copyright 2009 Bastian Holst <bastianholst@gmx.de>
11
#ifndef MARBLE_ABSTRACTDATAPLUGINITEM_H
12
#define MARBLE_ABSTRACTDATAPLUGINITEM_H
14
#include <QtCore/QObject>
15
#include <QtCore/QString>
16
#include <QtCore/QHash>
18
#include "GeoGraphicsItem.h"
19
#include "marble_export.h"
26
class AbstractDataPluginItemPrivate;
28
class MARBLE_EXPORT AbstractDataPluginItem : public QObject, public GeoGraphicsItem
33
explicit AbstractDataPluginItem( QObject *parent = 0 );
34
virtual ~AbstractDataPluginItem();
37
void setTarget( const QString& target );
40
void setId( const QString& id );
43
* Returning the angular resolution of the viewport when the item was added to it the last
46
qreal addedAngularResolution() const;
47
void setAddedAngularResolution( qreal resolution );
50
* @brief Set the settings of the item.
51
* This is usually called automatically before painting. If you reimplement this it would be
52
* useful to check for changes before copying.
54
virtual void setSettings( const QHash<QString, QVariant>& settings );
57
* Returns the action of this specific item.
59
virtual QAction *action();
62
* Returns the type of this specific item.
64
virtual QString itemType() const = 0;
66
virtual bool initialized() = 0;
68
virtual void addDownloadedFile( const QString& url, const QString& type );
70
virtual bool isGeoProjected();
72
virtual bool operator<( const AbstractDataPluginItem *other ) const = 0;
78
AbstractDataPluginItemPrivate * const d;