diff --git a/App/GCS_zh_CN.ts b/App/GCS_zh_CN.ts
index b1aa54e..6c403e7 100644
--- a/App/GCS_zh_CN.ts
+++ b/App/GCS_zh_CN.ts
@@ -2873,32 +2873,32 @@
insertRow(endIndex);//减少行 } + int count = 1; int idx = startIndex; for(QPointF p:latlng) { @@ -758,10 +815,13 @@ void MissionUI::updateFencePolygon(int group,qreal vertex,bool inclusion,QListsetItem(idx,3,item3); tableWidget->removeCellWidget(idx,4); - tableWidget->setItem(idx,4,new QTableWidgetItem(QString::number(lat ,'f',7))); + tableWidget->setItem(idx,4,new QTableWidgetItem(QString::number(count++))); tableWidget->removeCellWidget(idx,5); - tableWidget->setItem(idx,5,new QTableWidgetItem(QString::number(lng ,'f',7))); + tableWidget->setItem(idx,5,new QTableWidgetItem(QString::number(lat ,'f',7))); + + tableWidget->removeCellWidget(idx,6); + tableWidget->setItem(idx,6,new QTableWidgetItem(QString::number(lng ,'f',7))); idx++; } @@ -1049,8 +1109,8 @@ void MissionUI::itemClicked(QTableWidgetItem *item) if(type == tr("Circle")) { - qreal latitude = widget->item(row,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal latitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(row,6)->data(Qt::DisplayRole).toDouble(); emit setFenceCircle(gidx,par,inclusion,latitude,longitude);//修改圆形 @@ -1063,8 +1123,8 @@ void MissionUI::itemClicked(QTableWidgetItem *item) for(int i = StartIdx;i<(StartIdx + SpanCount);i++) { - qreal latitude = widget->item(i,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal latitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(i,6)->data(Qt::DisplayRole).toDouble(); latlng.push_back(QPointF(latitude,longitude)); } @@ -1130,8 +1190,8 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) qreal par = widget->item(StartIdx,2)->data(Qt::DisplayRole).toDouble();//得到par bool inclusion = widget->item(StartIdx,3)->checkState()?(true):(false); - qreal latitude = widget->item(row,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal latitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(row,6)->data(Qt::DisplayRole).toDouble(); emit setFenceCircle(gidx,par,inclusion,latitude,longitude);//修改圆形 } @@ -1217,11 +1277,11 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) { bool inclusion = widget->item(startIndex,3)->checkState()?(true):(false); - qreal lat1 = widget->item(startIndex + 1,4)->data(Qt::DisplayRole).toDouble(); - qreal lng1 = widget->item(startIndex + 1,5)->data(Qt::DisplayRole).toDouble(); + qreal lat1 = widget->item(startIndex + 1,5)->data(Qt::DisplayRole).toDouble(); + qreal lng1 = widget->item(startIndex + 1,6)->data(Qt::DisplayRole).toDouble(); - qreal lat2 = widget->item(startIndex,4)->data(Qt::DisplayRole).toDouble(); - qreal lng2 = widget->item(startIndex,5)->data(Qt::DisplayRole).toDouble(); + qreal lat2 = widget->item(startIndex,5)->data(Qt::DisplayRole).toDouble(); + qreal lng2 = widget->item(startIndex,6)->data(Qt::DisplayRole).toDouble(); qreal lat = (lat1 +lat2)/2.0; @@ -1258,12 +1318,27 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) widget->removeCellWidget(endIndex - 1,3); widget->setItem(endIndex - 1,3,item3); - widget->removeCellWidget(endIndex - 1,4); - widget->setItem(endIndex - 1,4,new QTableWidgetItem(QString::number(lat ,'f',7))); + //widget->removeCellWidget(endIndex - 1,4); + //widget->setItem(endIndex - 1,4,new QTableWidgetItem(QString::number(count))); widget->removeCellWidget(endIndex - 1,5); - widget->setItem(endIndex - 1,5,new QTableWidgetItem(QString::number(lng ,'f',7))); + widget->setItem(endIndex - 1,5,new QTableWidgetItem(QString::number(lat ,'f',7))); + + widget->removeCellWidget(endIndex - 1,6); + widget->setItem(endIndex - 1,6,new QTableWidgetItem(QString::number(lng ,'f',7))); } + + + //重新更新一下count + int len = widget->rowSpan(row,0); + int sIndex = startIndex; + for(int i = 1;i<=len;i++) + { + widget->removeCellWidget(sIndex,4); + widget->setItem(sIndex++,4,new QTableWidgetItem(QString::number(i))); + } + + } else if(newVertex < oldVertex)//减少 { @@ -1281,8 +1356,6 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) } - - int gidx = widget->item(row,0)->data(Qt::DisplayRole).toInt();//得到group //找到开始的idx int StartIdx = widget->item(row,0)->row(); @@ -1307,8 +1380,8 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) for(int i = StartIdx;i<(StartIdx + SpanCount);i++) { - qreal latitude = widget->item(i,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal latitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(i,6)->data(Qt::DisplayRole).toDouble(); latlng.push_back(QPointF(latitude,longitude)); } @@ -1350,8 +1423,8 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) if(type == tr("Circle")) { - qreal latitude = widget->item(row,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal latitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(row,6)->data(Qt::DisplayRole).toDouble(); emit setFenceCircle(gidx,par,inclusion,latitude,longitude);//修改圆形 @@ -1364,8 +1437,8 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) for(int i = StartIdx;i<(StartIdx + SpanCount);i++) { - qreal latitude = widget->item(i,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal latitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(i,6)->data(Qt::DisplayRole).toDouble(); latlng.push_back(QPointF(latitude,longitude)); } @@ -1374,70 +1447,6 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) } } - else if(column == 4) - { - QLineEdit *line = new QLineEdit(widget); - line->setStyleSheet("background-color: #FFFFFF;font :15px 黑体;"); - line->setText(item->data(Qt::DisplayRole).toString()); - widget->removeCellWidget(row,column); - widget->setCellWidget(row,column,line); - - connect(line,&QLineEdit::editingFinished,[=](){ - if(line) - { - QString str = line->text(); - bool ok = false; - str.toDouble(&ok); - if(ok) - { - widget->removeCellWidget(row,column); - item->setText(str); - } - - int gidx = widget->item(row,0)->data(Qt::DisplayRole).toInt();//得到group - //找到开始的idx - int StartIdx = widget->item(row,0)->row(); - for (int i = 0; i < widget->rowCount(); ++i) { - if(widget->item(i,0)->data(Qt::DisplayRole).toInt() == gidx) - { - StartIdx = i; - break; - } - } - - int SpanCount = widget->rowSpan(row,0); - - QString type = widget->item(StartIdx,1)->data(Qt::DisplayRole).toString();//得到type - qreal par = widget->item(StartIdx,2)->data(Qt::DisplayRole).toDouble();//得到par - bool inclusion = widget->item(StartIdx,3)->checkState()?(true):(false); - - if(type == tr("Circle")) - { - qreal latitude = widget->item(row,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); - - emit setFenceCircle(gidx,par,inclusion,latitude,longitude);//修改圆形 - - } - else if(type == tr("Polygon")) - { - //从头获取所有点 - QListlatlng; - latlng.clear(); - - for(int i = StartIdx;i<(StartIdx + SpanCount);i++) - { - qreal latitude = widget->item(i,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); - - latlng.push_back(QPointF(latitude,longitude)); - } - - emit setFencePolygon(gidx,par,inclusion,latlng); - } - } - }); - } else if(column == 5) { QLineEdit *line = new QLineEdit(widget); @@ -1446,6 +1455,70 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) widget->removeCellWidget(row,column); widget->setCellWidget(row,column,line); + connect(line,&QLineEdit::editingFinished,[=](){ + if(line) + { + QString str = line->text(); + bool ok = false; + str.toDouble(&ok); + if(ok) + { + widget->removeCellWidget(row,column); + item->setText(str); + } + + int gidx = widget->item(row,0)->data(Qt::DisplayRole).toInt();//得到group + //找到开始的idx + int StartIdx = widget->item(row,0)->row(); + for (int i = 0; i < widget->rowCount(); ++i) { + if(widget->item(i,0)->data(Qt::DisplayRole).toInt() == gidx) + { + StartIdx = i; + break; + } + } + + int SpanCount = widget->rowSpan(row,0); + + QString type = widget->item(StartIdx,1)->data(Qt::DisplayRole).toString();//得到type + qreal par = widget->item(StartIdx,2)->data(Qt::DisplayRole).toDouble();//得到par + bool inclusion = widget->item(StartIdx,3)->checkState()?(true):(false); + + if(type == tr("Circle")) + { + qreal latitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(row,6)->data(Qt::DisplayRole).toDouble(); + + emit setFenceCircle(gidx,par,inclusion,latitude,longitude);//修改圆形 + + } + else if(type == tr("Polygon")) + { + //从头获取所有点 + QList latlng; + latlng.clear(); + + for(int i = StartIdx;i<(StartIdx + SpanCount);i++) + { + qreal latitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(i,6)->data(Qt::DisplayRole).toDouble(); + + latlng.push_back(QPointF(latitude,longitude)); + } + + emit setFencePolygon(gidx,par,inclusion,latlng); + } + } + }); + } + else if(column == 6) + { + QLineEdit *line = new QLineEdit(widget); + line->setStyleSheet("background-color: #FFFFFF;font :15px 黑体;"); + line->setText(item->data(Qt::DisplayRole).toString()); + widget->removeCellWidget(row,column); + widget->setCellWidget(row,column,line); + connect(line,&QLineEdit::editingFinished,[=](){ if(line) { @@ -1478,8 +1551,8 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) if(type == tr("Circle")) { - qreal latitude = widget->item(row,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal latitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(row,6)->data(Qt::DisplayRole).toDouble(); emit setFenceCircle(gidx,par,inclusion,latitude,longitude);//修改圆形 @@ -1492,8 +1565,8 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) for(int i = StartIdx;i<(StartIdx + SpanCount);i++) { - qreal latitude = widget->item(i,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal latitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(i,6)->data(Qt::DisplayRole).toDouble(); latlng.push_back(QPointF(latitude,longitude)); } diff --git a/App/MissionUI/MissionUI.ui b/App/MissionUI/MissionUI.ui index 4c36ff0..893a0f4 100644 --- a/App/MissionUI/MissionUI.ui +++ b/App/MissionUI/MissionUI.ui @@ -20,7 +20,7 @@ - +
- 4 +5 @@ -155,6 +155,11 @@ + diff --git a/opmap/MAP_zh_CN.qm b/opmap/MAP_zh_CN.qm index 57cb591..36c725f 100644 Binary files a/opmap/MAP_zh_CN.qm and b/opmap/MAP_zh_CN.qm differ diff --git a/opmap/MAP_zh_CN.ts b/opmap/MAP_zh_CN.ts index 0358bd8..d96b48a 100644 --- a/opmap/MAP_zh_CN.ts +++ b/opmap/MAP_zh_CN.ts @@ -78,72 +78,82 @@ Please first select the area of the map to rip with <CTRL>+Left mouse clic+ +Notice +mapcontrol::OPMapWidget - + .plan - ++ + start rip map +开始缓存地图 ++ ++ stop rip map +停止缓存地图 ++ Load Geo Fence File :%1 导入围栏文件:%1 - + Load Mission File:Group %1,%2 导入航线文件:第%1组航线,%2 - + Save Fence File:%1 保存围栏文件:%1 - + Save Mission File:Group %1,%2 保存航线文件:第%1组航线,%2 - + please load fence first 请先导入围栏 - + start upload fence,total:%1 开始上传围栏,总数%1 - + please load mission first 请先导入航线 - + start upload mission %1,total %2 开始上传航线%1,总数%2 - + upload fail %1 上传失败 %1 - + recieve fence polygon inclusion: %1 接收到多边形安控区 :%1 - + recieve fence polygon exclusion: %1 接收到多边形禁飞区 :%1 - + recieve fence circle inclusion: %1 接收到圆形安控区 :%1 - @@ -152,7 +162,7 @@ Please first select the area of the map to rip with <CTRL>+Left mouse clic+ recieve fence circle exclusion: %1 接收到圆形禁飞区 :%1 围栏 - @@ -331,25 +341,63 @@ Ma:%2+ recieve way point group:%1 seq:%2 收到航点:第%1组,第%2点 组别 - +- + + + AirCraft +飞机信息 ++ ++ Show +AirCraft +ShowAirCraft +显示 +飞机信息 ++ ++ show UAV Tip +显示无人机标签 ++ ++ hide UAV Tip +隐藏无人机标签 ++ + + Tip -标签 +航点信息 - - ShowTip -显示标签 ++ Show +Tip +ShowTip +显示 +航点信息 - +- + + show mission Tip +显示任务标签 ++ ++ hide mission Tip +隐藏任务标签 ++ + Measure 测量 - @@ -358,7 +406,7 @@ Ma:%2+ Table 航线 选择一个航线文件... - diff --git a/opmap/mapwidget/geoFenceitem.cpp b/opmap/mapwidget/geoFenceitem.cpp index ab55a97..fec3900 100644 --- a/opmap/mapwidget/geoFenceitem.cpp +++ b/opmap/mapwidget/geoFenceitem.cpp @@ -72,21 +72,29 @@ void geoFenceitem::paint(QPainter *painter, const QStyleOptionGraphicsItem *opti QPolygonF poly = polygon(); - int count = 0; + int count = 1; for(QPointF p:poly) { + //画个小圆 painter->save(); + painter->setOpacity(0.8); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor("#FFFFFF")); + painter->drawEllipse(p,10,10); + painter->restore(); + //画字 + painter->save(); + painter->setOpacity(1); font.setWeight(QFont::ExtraBold); font.setFamily("Arial");//非衬线 font.setPixelSize(15); painter->setFont(font); myPen.setWidth(1); - myPen.setColor(QColor("#FFFFFF")); + myPen.setColor(QColor("#000000")); painter->setPen(myPen); painter->drawText(QRect(p.x() - 20,p.y()-5,40,10),Qt::AlignCenter,QString::number(count++)); - painter->restore(); } diff --git a/opmap/mapwidget/opmapwidget.cpp b/opmap/mapwidget/opmapwidget.cpp index cfd34d5..8a02cd8 100644 --- a/opmap/mapwidget/opmapwidget.cpp +++ b/opmap/mapwidget/opmapwidget.cpp @@ -94,7 +94,8 @@ OPMapWidget::OPMapWidget(QWidget *parent, Configuration *config) : QGraphicsView waypointsetting = new WayPointSetting(map,QColor("#a39d9c")); mscene.addItem(waypointsetting); - waypointsetting->hide(); + waypointsetting->setMode(1); + //waypointsetting->hide(); // WPnearPoint diff --git a/opmap/mapwidget/waypointsetting.cpp b/opmap/mapwidget/waypointsetting.cpp index 3e97c4f..1df42ed 100644 --- a/opmap/mapwidget/waypointsetting.cpp +++ b/opmap/mapwidget/waypointsetting.cpp @@ -18,8 +18,10 @@ WayPointSetting::WayPointSetting(MapGraphicItem *map, QColor background) : myMap showMode = 0; - rect.setX(0); - rect.setY(0); + rect.setLeft(0); + rect.setTop(0); + //rect.setX(0); + //rect.setY(0); rect.setWidth(100); rect.setHeight(370); @@ -138,7 +140,7 @@ WayPointSetting::WayPointSetting(MapGraphicItem *map, QColor background) : myMap { if(btn_aircraft->Text() == tr("AirCraft")) { - btn_aircraft->setText(tr("ShowAirCraft")); + btn_aircraft->setText(tr("Show\nAirCraft")); emit UAVShowTip(true); emit showMessage(tr("show UAV Tip")); } @@ -159,7 +161,7 @@ WayPointSetting::WayPointSetting(MapGraphicItem *map, QColor background) : myMap { if(btn_tip->Text() == tr("Tip")) { - btn_tip->setText(tr("ShowTip")); + btn_tip->setText(tr("Show\nTip")); emit WPShowTip(true); emit showMessage(tr("show mission Tip")); } @@ -197,7 +199,10 @@ WayPointSetting::WayPointSetting(MapGraphicItem *map, QColor background) : myMap QRectF WayPointSetting::boundingRect() const //鼠标可以操作的大小 { + qDebug() << rect; return rect; + + //return QRectF(0,0,100,370); } void WayPointSetting::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)+ Measuring 测量中