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