File indexing completed on 2024-04-14 03:47:43

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2010 Gaurav Gupta <1989.gaurav@googlemail.com>
0004 // SPDX-FileCopyrightText: 2012 Thibaut Gridel <tgridel@free.fr>
0005 //
0006 
0007 #ifndef MARBLE_EDITBOOKMARKDIALOG_H
0008 #define MARBLE_EDITBOOKMARKDIALOG_H
0009 
0010 #include <QDialog>
0011 
0012 #include "marble_export.h"
0013 
0014 /** @todo FIXME after freeze: Rename to AddBookmarkDialog*/
0015 
0016 namespace Marble
0017 {
0018 
0019 class EditBookmarkDialogPrivate;
0020 class BookmarkManager;
0021 class GeoDataFolder;
0022 class GeoDataCoordinates;
0023 class GeoDataPlacemark;
0024 class MarbleWidget;
0025 
0026 class MARBLE_EXPORT EditBookmarkDialog : public QDialog
0027 {
0028     Q_OBJECT
0029 
0030  public:
0031     explicit EditBookmarkDialog( BookmarkManager *manager, QWidget *parent = nullptr );
0032 
0033     /** Destructor */
0034     ~EditBookmarkDialog() override;
0035 
0036     void setMarbleWidget( MarbleWidget* widget );
0037 
0038     GeoDataPlacemark bookmark() const;
0039 
0040     QString name() const;
0041 
0042     GeoDataFolder* folder() const;
0043 
0044     QString description() const;
0045 
0046     GeoDataCoordinates coordinates() const;
0047 
0048     qreal range() const;
0049 
0050     QString iconLink() const;
0051 
0052     void setName( const QString &name );
0053     void setReverseGeocodeName();
0054 
0055     void setCoordinates( const GeoDataCoordinates &coordinates );
0056 
0057     void setRange( qreal range );
0058 
0059     void setDescription( const QString &text );
0060 
0061     void setFolderName( const QString &name );
0062 
0063     void setIconLink( const QString &iconLink );
0064 
0065 
0066  private:
0067     Q_PRIVATE_SLOT( d, void openNewFolderDialog() )
0068 
0069     Q_PRIVATE_SLOT( d, void retrieveGeocodeResult( const GeoDataCoordinates &coordinates, const GeoDataPlacemark &placemark) )
0070 
0071     Q_PRIVATE_SLOT( d, void updateCoordinates() )
0072 
0073     Q_DISABLE_COPY( EditBookmarkDialog )
0074     EditBookmarkDialogPrivate* const d;
0075     friend class EditBookmarkDialogPrivate;
0076 };
0077 
0078 }
0079 #endif