File indexing completed on 2024-05-05 03:50:39

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2014 Calin Cruceru <crucerucalincristian@gmail.com>
0004 //
0005 
0006 #ifndef MARBLE_EDITPOLYLINEDIALOG_H
0007 #define MARBLE_EDITPOLYLINEDIALOG_H
0008 
0009 #include <QDialog>
0010 
0011 
0012 namespace Marble {
0013 
0014 class GeoDataPlacemark;
0015 class GeoDataFeature;
0016 class GeoDataCoordinates;
0017 class OsmPlacemarkData;
0018 
0019 class EditPolylineDialog : public QDialog
0020 {
0021     Q_OBJECT
0022 public:
0023     EditPolylineDialog( GeoDataPlacemark *placemark,
0024                         const QHash<qint64, OsmPlacemarkData> *relations = nullptr,
0025                         QWidget *parent = nullptr );
0026     ~EditPolylineDialog() override;
0027 
0028 public Q_SLOTS:
0029     void handleAddingNode( const GeoDataCoordinates &node );
0030     void handleItemMoving( GeoDataPlacemark *item );
0031     void handleChangingStyle();
0032 
0033 Q_SIGNALS:
0034     void polylineUpdated( GeoDataFeature *feature );
0035 
0036     /**
0037      * @brief relationCreated signals the annotate plugin that a new relation has been
0038      * created( or modified ) within the relation editor
0039      * @param relation the relation's osmData
0040      */
0041     void relationCreated( const OsmPlacemarkData &relation );
0042 
0043 private Q_SLOTS:
0044     void updatePolyline();
0045     void updateLinesDialog( const QColor &color );
0046     void restoreInitial( int result );
0047     void checkFields();
0048 
0049 private:
0050     class Private;
0051     Private * const d;
0052 };
0053 
0054 }
0055 
0056 #endif