Commit 7cbbf378 authored by Aleksey Kontsevich's avatar Aleksey Kontsevich

QGCMapPolygon select vertexes functionality

parent 553fa8a0
...@@ -311,6 +311,7 @@ void QGCMapPolygon::removeVertex(int vertexIndex) ...@@ -311,6 +311,7 @@ void QGCMapPolygon::removeVertex(int vertexIndex)
QObject* coordObj = _polygonModel.removeAt(vertexIndex); QObject* coordObj = _polygonModel.removeAt(vertexIndex);
coordObj->deleteLater(); coordObj->deleteLater();
selectVertex(-1);
_polygonPath.removeAt(vertexIndex); _polygonPath.removeAt(vertexIndex);
emit pathChanged(); emit pathChanged();
...@@ -622,3 +623,14 @@ void QGCMapPolygon::setShowAltColor(bool showAltColor){ ...@@ -622,3 +623,14 @@ void QGCMapPolygon::setShowAltColor(bool showAltColor){
emit showAltColorChanged(showAltColor); emit showAltColorChanged(showAltColor);
} }
} }
void QGCMapPolygon::selectVertex(int index)
{
if(0 <= index && index < count() && index != _selectedVertexIndex) {
_selectedVertexIndex = index;
} else {
_selectedVertexIndex = -1; // deselect vertex
}
emit selectedVertexChanged(_selectedVertexIndex);
}
...@@ -42,6 +42,7 @@ public: ...@@ -42,6 +42,7 @@ public:
Q_PROPERTY(bool empty READ empty NOTIFY isEmptyChanged) Q_PROPERTY(bool empty READ empty NOTIFY isEmptyChanged)
Q_PROPERTY(bool traceMode READ traceMode WRITE setTraceMode NOTIFY traceModeChanged) Q_PROPERTY(bool traceMode READ traceMode WRITE setTraceMode NOTIFY traceModeChanged)
Q_PROPERTY(bool showAltColor READ showAltColor WRITE setShowAltColor NOTIFY showAltColorChanged) Q_PROPERTY(bool showAltColor READ showAltColor WRITE setShowAltColor NOTIFY showAltColorChanged)
Q_PROPERTY(int selectedVertex READ selectedVertex WRITE selectVertex NOTIFY selectedVertexChanged)
Q_INVOKABLE void clear(void); Q_INVOKABLE void clear(void);
Q_INVOKABLE void appendVertex(const QGeoCoordinate& coordinate); Q_INVOKABLE void appendVertex(const QGeoCoordinate& coordinate);
...@@ -111,6 +112,7 @@ public: ...@@ -111,6 +112,7 @@ public:
bool empty (void) const { return _polygonModel.count() == 0; } bool empty (void) const { return _polygonModel.count() == 0; }
bool traceMode (void) const { return _traceMode; } bool traceMode (void) const { return _traceMode; }
bool showAltColor(void) const { return _showAltColor; } bool showAltColor(void) const { return _showAltColor; }
int selectedVertex() const { return _selectedVertexIndex; }
QVariantList path (void) const { return _polygonPath; } QVariantList path (void) const { return _polygonPath; }
QmlObjectListModel* qmlPathModel(void) { return &_polygonModel; } QmlObjectListModel* qmlPathModel(void) { return &_polygonModel; }
...@@ -123,6 +125,7 @@ public: ...@@ -123,6 +125,7 @@ public:
void setInteractive (bool interactive); void setInteractive (bool interactive);
void setTraceMode (bool traceMode); void setTraceMode (bool traceMode);
void setShowAltColor(bool showAltColor); void setShowAltColor(bool showAltColor);
void selectVertex (int index);
static const char* jsonPolygonKey; static const char* jsonPolygonKey;
...@@ -138,6 +141,7 @@ signals: ...@@ -138,6 +141,7 @@ signals:
bool isEmptyChanged (void); bool isEmptyChanged (void);
void traceModeChanged (bool traceMode); void traceModeChanged (bool traceMode);
void showAltColorChanged(bool showAltColor); void showAltColorChanged(bool showAltColor);
void selectedVertexChanged(int index);
private slots: private slots:
void _polygonModelCountChanged(int count); void _polygonModelCountChanged(int count);
...@@ -162,6 +166,7 @@ private: ...@@ -162,6 +166,7 @@ private:
bool _resetActive = false; bool _resetActive = false;
bool _traceMode = false; bool _traceMode = false;
bool _showAltColor = false; bool _showAltColor = false;
int _selectedVertexIndex = -1;
}; };
#endif #endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment