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

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2013 Utku Aydın <utkuaydin34@gmail.com>
0004 //
0005 
0006 #ifndef MERGEITEM_H
0007 #define MERGEITEM_H
0008 
0009 #include "marble_export.h"
0010 #include "GeoDataPlacemark.h"
0011 
0012 #include <QObject>
0013 
0014 namespace Marble {
0015 
0016 class MARBLE_EXPORT MergeItem : public QObject
0017 {
0018 
0019     Q_OBJECT
0020 
0021 public:
0022     MergeItem();
0023 
0024     Q_PROPERTY( QString pathA READ pathA WRITE setPathA NOTIFY pathAChanged )
0025     Q_PROPERTY( QString pathB READ pathB WRITE setPathB NOTIFY pathBChanged )
0026     Q_PROPERTY( GeoDataPlacemark placemarkA READ placemarkA WRITE setPlacemarkA NOTIFY placemarkAChanged )
0027     Q_PROPERTY( GeoDataPlacemark placemarkB READ placemarkB WRITE setPlacemarkB NOTIFY placemarkBChanged )
0028     Q_PROPERTY( QString nameA READ nameA NOTIFY nameAChanged() )
0029     Q_PROPERTY( QString nameB READ nameB NOTIFY nameBChanged() )
0030     Q_PROPERTY( QString descriptionA READ descriptionA NOTIFY descriptionAChanged() )
0031     Q_PROPERTY( QString descriptionB READ descriptionB NOTIFY descriptionBChanged() )
0032     Q_PROPERTY( MergeItem::Action actionA READ actionA WRITE setActionA NOTIFY actionAChanged )
0033     Q_PROPERTY( MergeItem::Action actionB READ actionB WRITE setActionB NOTIFY actionBChanged )
0034     Q_PROPERTY( MergeItem::Resolution resolution READ resolution WRITE setResolution NOTIFY resolutionChanged )
0035 
0036     enum Resolution {
0037         None,
0038         A,
0039         B
0040     };
0041 
0042     enum Action {
0043         Changed,
0044         Deleted
0045     };
0046 
0047     QString pathA() const;
0048     void setPathA( const QString &path );
0049 
0050     QString pathB() const;
0051     void setPathB( const QString &path );
0052 
0053     GeoDataPlacemark placemarkA() const;
0054     void setPlacemarkA( const GeoDataPlacemark &placemark );
0055 
0056     GeoDataPlacemark placemarkB() const;
0057     void setPlacemarkB( const GeoDataPlacemark &placemark );
0058 
0059     QString nameA() const;
0060     QString nameB() const;
0061 
0062     QString descriptionA() const;
0063     QString descriptionB() const;
0064 
0065     MergeItem::Action actionA();
0066     void setActionA( MergeItem::Action action );
0067 
0068     MergeItem::Action actionB() const;
0069     void setActionB( MergeItem::Action action );
0070 
0071     MergeItem::Resolution resolution() const;
0072     void setResolution( MergeItem::Resolution resolution );
0073 
0074 Q_SIGNALS:
0075     void pathAChanged();
0076     void pathBChanged();
0077     void placemarkAChanged();
0078     void placemarkBChanged();
0079     void nameAChanged();
0080     void nameBChanged();
0081     void descriptionAChanged();
0082     void descriptionBChanged();
0083     void actionAChanged();
0084     void actionBChanged();
0085     void resolutionChanged();
0086 
0087 private:
0088     QString m_pathA;
0089     QString m_pathB;
0090     GeoDataPlacemark m_placemarkA;
0091     GeoDataPlacemark m_placemarkB;
0092     MergeItem::Action m_actionA;
0093     MergeItem::Action m_actionB;
0094     MergeItem::Resolution m_resolution;
0095 
0096 };
0097 
0098 }
0099 
0100 #endif // MERGEITEM_H