飞行版本
This commit is contained in:
@@ -46,7 +46,7 @@ void MapRipForm::SetPercentage(const int &perc)
|
||||
}
|
||||
void MapRipForm::SetProvider(const QString &prov, const int &zoom)
|
||||
{
|
||||
ui->mainlabel->setText(QString(tr("Currently ripping from:%1 at Zoom level %2")).arg(prov).arg(zoom));
|
||||
ui->mainlabel->setText(QString(tr("Currently ripping from:\n%1 at Zoom level %2")).arg(prov).arg(zoom));
|
||||
}
|
||||
void MapRipForm::SetNumberOfTiles(const int &total, const int &actual)
|
||||
{
|
||||
|
||||
@@ -6,65 +6,43 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>506</width>
|
||||
<height>150</height>
|
||||
<width>521</width>
|
||||
<height>155</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MapRipper</string>
|
||||
</property>
|
||||
<widget class="QProgressBar" name="progressBar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>60</y>
|
||||
<width>481</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="mainlabel">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>10</y>
|
||||
<width>481</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Currently ripping from:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="statuslabel">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>40</y>
|
||||
<width>341</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Downloading tile</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="cancelButton">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>220</x>
|
||||
<y>100</y>
|
||||
<width>75</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
</widget>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="mainlabel">
|
||||
<property name="text">
|
||||
<string>Currently ripping from:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="statuslabel">
|
||||
<property name="text">
|
||||
<string>Downloading tile</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QProgressBar" name="progressBar">
|
||||
<property name="value">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QPushButton" name="cancelButton">
|
||||
<property name="text">
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
namespace mapcontrol {
|
||||
MapRipper::MapRipper(internals::Core *core, const internals::RectLatLng & rect) : sleep(100), cancel(false), progressForm(0), core(core), yesToAll(false)
|
||||
{
|
||||
qDebug() << "start to load map" << rect.IsEmpty() << rect.Lat();
|
||||
|
||||
if (!rect.IsEmpty()) {
|
||||
type = core->GetMapType();
|
||||
progressForm = new MapRipForm;
|
||||
|
||||
+87
-114
@@ -100,16 +100,6 @@ OPMapWidget::OPMapWidget(QWidget *parent, Configuration *config) : QGraphicsView
|
||||
|
||||
altitudeitem->hide();
|
||||
|
||||
/*
|
||||
AddVirtualMargin(0,virtualmarginmap_red.size(), 50,-50,0);
|
||||
AddVirtualMargin(0,virtualmarginmap_red.size(), 50, 50,0);
|
||||
AddVirtualMargin(0,virtualmarginmap_red.size(),-50, 50,0);
|
||||
AddVirtualMargin(0,virtualmarginmap_red.size(),-50,-50,0);
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
NoOperationTimer = new QTimer(this);
|
||||
connect(NoOperationTimer,SIGNAL(timeout()),
|
||||
this,SLOT(NOPTimeout()));
|
||||
@@ -201,78 +191,72 @@ void OPMapWidget::NOPTimeout()
|
||||
}
|
||||
}
|
||||
|
||||
void OPMapWidget::AddVirtualMargin(int type,int index,double lat,double lng,double alt)
|
||||
void OPMapWidget::AddVirtualMargin(int type,int index,double lat,double lng,double alt,QColor color)
|
||||
{
|
||||
qDebug() << "AddVirtualMargin" << type << index;
|
||||
|
||||
internals::PointLatLng LatLng;
|
||||
LatLng.SetLat(lat);
|
||||
LatLng.SetLng(lng);
|
||||
|
||||
if(type == 0)
|
||||
{
|
||||
VirtualMargin *vm = new VirtualMargin(index,LatLng,alt,WarningColor,map);
|
||||
virtualmarginmap_red.insert(index,vm);
|
||||
QMap<int,VirtualMargin *> virtualmarginmap = VirtualMarginPoints.value(type);
|
||||
QMap<int,VirtualMarginLine *> virtualmarginlinemap = VirtualMarginlinemapLines.value(type);
|
||||
|
||||
foreach (VirtualMarginLine *l, virtualmarginlinemap_red) {
|
||||
if(l){
|
||||
disconnect(l,nullptr,nullptr,nullptr);
|
||||
delete l;
|
||||
}
|
||||
|
||||
VirtualMargin *vm = new VirtualMargin(index,LatLng,alt,color,map);
|
||||
virtualmarginmap.insert(index,vm);
|
||||
|
||||
foreach (VirtualMarginLine *l, virtualmarginlinemap) {
|
||||
if(l){
|
||||
disconnect(l,nullptr,nullptr,nullptr);
|
||||
delete l;
|
||||
}
|
||||
|
||||
virtualmarginlinemap_red.clear();
|
||||
|
||||
|
||||
for(QMap<int,VirtualMargin *>::iterator i = virtualmarginmap_red.begin();i != virtualmarginmap_red.end();++i)
|
||||
{
|
||||
VirtualMargin *vv = i.value();
|
||||
if(vv)
|
||||
{
|
||||
if(vv->number > 0)
|
||||
{
|
||||
VirtualMarginLine *l = new VirtualMarginLine(virtualmarginmap_red.value(vv->number - 1),vv,map,WarningColor);
|
||||
l->setOpacity(overlayOpacity);
|
||||
l->show();
|
||||
|
||||
virtualmarginlinemap_red.insert(virtualmarginlinemap_red.size(),l);
|
||||
}
|
||||
}
|
||||
}
|
||||
CloseVirtualMargin(type);
|
||||
FlushVirtualMargin(type);
|
||||
}
|
||||
else if(type == 1)
|
||||
|
||||
virtualmarginlinemap.clear();
|
||||
|
||||
|
||||
for(QMap<int,VirtualMargin *>::iterator i = virtualmarginmap.begin();i != virtualmarginmap.end();++i)
|
||||
{
|
||||
VirtualMargin *vm = new VirtualMargin(index,LatLng,alt,NoticeColor,map);
|
||||
virtualmarginmap_orange.insert(index,vm);
|
||||
|
||||
foreach (VirtualMarginLine *l, virtualmarginlinemap_orange) {
|
||||
if(l){
|
||||
disconnect(l,nullptr,nullptr,nullptr);
|
||||
delete l;
|
||||
}
|
||||
}
|
||||
|
||||
virtualmarginlinemap_orange.clear();
|
||||
|
||||
|
||||
for(QMap<int,VirtualMargin *>::iterator i = virtualmarginmap_orange.begin();i != virtualmarginmap_orange.end();++i)
|
||||
{
|
||||
VirtualMargin *vv = i.value();
|
||||
if(vv)
|
||||
VirtualMargin *v = i.value();
|
||||
if(v)
|
||||
{
|
||||
if(v->number > 0)
|
||||
{
|
||||
if(vv->number > 0)
|
||||
{
|
||||
VirtualMarginLine *l = new VirtualMarginLine(virtualmarginmap_orange.value(vv->number - 1),vv,map,NoticeColor);
|
||||
l->setOpacity(overlayOpacity);
|
||||
l->show();
|
||||
VirtualMarginLine *l = new VirtualMarginLine(virtualmarginmap.value(v->number - 1),v,map,color);
|
||||
l->setOpacity(overlayOpacity);
|
||||
l->show();
|
||||
|
||||
virtualmarginlinemap_orange.insert(virtualmarginlinemap_orange.size(),l);
|
||||
}
|
||||
virtualmarginlinemap.insert(virtualmarginlinemap.size(),l);
|
||||
}
|
||||
}
|
||||
CloseVirtualMargin(type);
|
||||
FlushVirtualMargin(type);
|
||||
}
|
||||
}
|
||||
|
||||
if(virtualmarginmap.size() >= 2)
|
||||
{
|
||||
VirtualMargin *vm_first = virtualmarginmap.first();
|
||||
VirtualMargin *vm_last = virtualmarginmap.last();
|
||||
|
||||
if((vm_first)&&(vm_last))
|
||||
{
|
||||
VirtualMarginLine *l = new VirtualMarginLine(vm_first,vm_last,map,color);
|
||||
l->setOpacity(overlayOpacity);
|
||||
l->show();
|
||||
|
||||
virtualmarginlinemap.insert(virtualmarginlinemap.size(),l);
|
||||
}
|
||||
}
|
||||
|
||||
VirtualMarginPoints.insert(type,virtualmarginmap);
|
||||
VirtualMarginlinemapLines.insert(type,virtualmarginlinemap);
|
||||
|
||||
//FlushVirtualMargin(type);
|
||||
|
||||
|
||||
foreach (VirtualMargin *v, virtualmarginmap) {
|
||||
qDebug() << "create a virtual point" << v->number;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void OPMapWidget::CloseVirtualMargin(int type)
|
||||
@@ -316,61 +300,43 @@ void OPMapWidget::CloseVirtualMargin(int type)
|
||||
|
||||
void OPMapWidget::RemoveVirtualMargin(int type)
|
||||
{
|
||||
if(type == 0)
|
||||
{
|
||||
//移除虚拟边界
|
||||
foreach (VirtualMargin *vm, virtualmarginmap_red) {
|
||||
if(vm)
|
||||
{
|
||||
qDebug() << "del vm" << vm->number << vm->coord.Lat() << vm->coord.Lng();
|
||||
disconnect(vm,nullptr,nullptr,nullptr);
|
||||
delete vm;
|
||||
}
|
||||
}
|
||||
//从列表删除所有
|
||||
virtualmarginmap_red.clear();
|
||||
|
||||
//移除虚拟边界
|
||||
foreach (VirtualMarginLine *l, virtualmarginlinemap_red) {
|
||||
if(l)
|
||||
{
|
||||
disconnect(l,nullptr,nullptr,nullptr);
|
||||
delete l;
|
||||
}
|
||||
QMap<int,VirtualMargin*> virtualmarginmap = VirtualMarginPoints.value(type);
|
||||
QMap<int,VirtualMarginLine *> virtualmarginlinemap = VirtualMarginlinemapLines.value(type);
|
||||
|
||||
//移除虚拟边界
|
||||
foreach (VirtualMargin *vm, virtualmarginmap) {
|
||||
if(vm)
|
||||
{
|
||||
qDebug() << "del vm" << vm->number << vm->coord.Lat() << vm->coord.Lng();
|
||||
disconnect(vm,nullptr,nullptr,nullptr);
|
||||
delete vm;
|
||||
}
|
||||
//从列表删除所有
|
||||
virtualmarginlinemap_red.clear();
|
||||
}
|
||||
else if(type == 1)
|
||||
{
|
||||
//移除虚拟边界
|
||||
foreach (VirtualMargin *vm, virtualmarginmap_orange) {
|
||||
if(vm)
|
||||
{
|
||||
qDebug() << "del vm" << vm->number << vm->coord.Lat() << vm->coord.Lng();
|
||||
disconnect(vm,nullptr,nullptr,nullptr);
|
||||
delete vm;
|
||||
}
|
||||
}
|
||||
//从列表删除所有
|
||||
virtualmarginmap_orange.clear();
|
||||
//从列表删除所有
|
||||
virtualmarginmap.clear();
|
||||
|
||||
//移除虚拟边界
|
||||
foreach (VirtualMarginLine *l, virtualmarginlinemap_orange) {
|
||||
if(l)
|
||||
{
|
||||
disconnect(l,nullptr,nullptr,nullptr);
|
||||
delete l;
|
||||
}
|
||||
//移除虚拟边界
|
||||
foreach (VirtualMarginLine *l, virtualmarginlinemap) {
|
||||
if(l)
|
||||
{
|
||||
disconnect(l,nullptr,nullptr,nullptr);
|
||||
delete l;
|
||||
}
|
||||
//从列表删除所有
|
||||
virtualmarginlinemap_orange.clear();
|
||||
|
||||
}
|
||||
//从列表删除所有
|
||||
virtualmarginlinemap.clear();
|
||||
|
||||
VirtualMarginPoints.remove(type);
|
||||
VirtualMarginlinemapLines.remove(type);
|
||||
|
||||
}
|
||||
|
||||
void OPMapWidget::FlushVirtualMargin(int type)
|
||||
{
|
||||
|
||||
|
||||
|
||||
if(type == 0)
|
||||
{
|
||||
for(QMap<int,VirtualMargin *>::iterator i = virtualmarginmap_red.begin();i != virtualmarginmap_red.end();++i)
|
||||
@@ -722,6 +688,13 @@ void OPMapWidget::mouseDoubleClickEvent(QMouseEvent *event)
|
||||
<< QThread::currentThreadId();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(event->button() == Qt::LeftButton)
|
||||
{
|
||||
RipMap();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if((event->modifiers() == Qt::ControlModifier) &&(event->button() == Qt::RightButton))
|
||||
|
||||
@@ -476,6 +476,10 @@ private:
|
||||
|
||||
QTimer *NoOperationTimer = nullptr;
|
||||
|
||||
QMap<int,QMap<int,VirtualMargin *>> VirtualMarginPoints;//type index point
|
||||
QMap<int,QMap<int,VirtualMarginLine *>> VirtualMarginlinemapLines;//type index line
|
||||
|
||||
|
||||
|
||||
QMap<int,VirtualMargin *> virtualmarginmap_red;
|
||||
QMap<int,VirtualMarginLine *> virtualmarginlinemap_red;
|
||||
@@ -485,6 +489,8 @@ private:
|
||||
|
||||
QColor WarningColor = QColor("#F64034");
|
||||
QColor NoticeColor = QColor("#F1B243");
|
||||
QColor Drop1Color = QColor("#0000FF");
|
||||
QColor Drop2Color = QColor("#0000FF");
|
||||
|
||||
|
||||
private slots:
|
||||
@@ -621,7 +627,7 @@ public slots:
|
||||
void getMapTypes(void);
|
||||
void setMapTypes(QVariant value);
|
||||
|
||||
void AddVirtualMargin(int type, int index, double lat, double lng, double alt);
|
||||
void AddVirtualMargin(int type, int index, double lat, double lng, double alt, QColor color);
|
||||
void CloseVirtualMargin(int type);
|
||||
void RemoveVirtualMargin(int type);
|
||||
void FlushVirtualMargin(int type);
|
||||
|
||||
Reference in New Issue
Block a user