File indexing completed on 2024-05-05 03:49:51

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2015 Stanciu Marius-Valeriu <stanciumarius94@gmail.com>
0004 //
0005 
0006 #ifndef MARBLE_OSMTAGEDITORWIDGET_H
0007 #define MARBLE_OSMTAGEDITORWIDGET_H
0008 
0009 #include <QWidget>
0010 #include "marble_export.h"
0011 
0012 #include "MarbleGlobal.h"
0013 
0014 class QTreeWidgetItem;
0015 
0016 namespace Marble
0017 {
0018 
0019 class OsmTagEditorWidgetPrivate;
0020 class GeoDataPlacemark;
0021 class GeoDataFeature;
0022 class OsmPlacemarkData;
0023 
0024 class MARBLE_EXPORT OsmTagEditorWidget : public QWidget
0025 {
0026     Q_OBJECT
0027 
0028 public:
0029     explicit OsmTagEditorWidget( GeoDataPlacemark *placemark, QWidget *parent = nullptr );
0030     ~OsmTagEditorWidget() override;
0031 
0032     /**
0033      * @brief returns the current tag set for the placemark
0034      */
0035     OsmPlacemarkData placemarkData() const;
0036 
0037 public Q_SLOTS:
0038     void update();
0039     void addSelectedTag();
0040     void removeSelectedTag();
0041     void handleDoubleClick( QTreeWidgetItem *item, int column );
0042     void handleItemChanged( QTreeWidgetItem *item, int column );
0043 
0044 Q_SIGNALS:
0045     void placemarkChanged( GeoDataFeature *);
0046 
0047 private:
0048     friend class OsmTagEditorWidgetPrivate;
0049     OsmTagEditorWidgetPrivate* const d;
0050 };
0051 
0052 }
0053 
0054 #endif
0055