mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-06 21:54:15 +01:00
GCS/OPMap- handles home icon doubleclick.
Visual changes to the waypoint editor.
This commit is contained in:
parent
b84af5c338
commit
55af80ffaf
@ -35,5 +35,6 @@
|
|||||||
<file>images/plus3.png</file>
|
<file>images/plus3.png</file>
|
||||||
<file>images/forward_alt.png</file>
|
<file>images/forward_alt.png</file>
|
||||||
<file>images/star.png</file>
|
<file>images/star.png</file>
|
||||||
|
<file>images/down_alt.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>606</width>
|
<width>606</width>
|
||||||
<height>375</height>
|
<height>387</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -83,30 +83,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="0">
|
<item row="11" column="0">
|
||||||
<widget class="QLabel" name="label_3">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Altitude </string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="6" column="3">
|
|
||||||
<widget class="QLabel" name="label_6">
|
|
||||||
<property name="text">
|
|
||||||
<string>meters</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="8" column="0">
|
|
||||||
<widget class="QLabel" name="label_8">
|
<widget class="QLabel" name="label_8">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
@ -122,7 +99,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="8" column="2" colspan="2">
|
<item row="11" column="2" colspan="2">
|
||||||
<widget class="QLineEdit" name="lineEditDescription"/>
|
<widget class="QLineEdit" name="lineEditDescription"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="2">
|
<item row="2" column="2">
|
||||||
@ -157,16 +134,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="2">
|
|
||||||
<widget class="QDoubleSpinBox" name="doubleSpinBoxAltitude">
|
|
||||||
<property name="minimum">
|
|
||||||
<double>-5000.000000000000000</double>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<double>5000.000000000000000</double>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="3">
|
<item row="3" column="3">
|
||||||
<widget class="QLabel" name="lbDegLong">
|
<widget class="QLabel" name="lbDegLong">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -197,28 +164,28 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="2">
|
<item row="6" column="2">
|
||||||
<widget class="QSpinBox" name="spinBoxDistance">
|
<widget class="QSpinBox" name="spinBoxDistance">
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>999999999</number>
|
<number>999999999</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="3">
|
<item row="6" column="3">
|
||||||
<widget class="QLabel" name="lbDistanceMeters">
|
<widget class="QLabel" name="lbDistanceMeters">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>meters</string>
|
<string>meters</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="3">
|
<item row="7" column="3">
|
||||||
<widget class="QLabel" name="lbBearingDeg">
|
<widget class="QLabel" name="lbBearingDeg">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>degrees</string>
|
<string>degrees</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="0">
|
<item row="7" column="0">
|
||||||
<widget class="QLabel" name="lbBearing">
|
<widget class="QLabel" name="lbBearing">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Bearing </string>
|
<string>Bearing </string>
|
||||||
@ -228,14 +195,14 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="2">
|
<item row="7" column="2">
|
||||||
<widget class="QDoubleSpinBox" name="doubleSpinBoxBearing">
|
<widget class="QDoubleSpinBox" name="doubleSpinBoxBearing">
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<double>360.000000000000000</double>
|
<double>360.000000000000000</double>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="0">
|
<item row="6" column="0">
|
||||||
<widget class="QLabel" name="lbDistance">
|
<widget class="QLabel" name="lbDistance">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
@ -285,7 +252,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="7" column="0">
|
<item row="10" column="0">
|
||||||
<widget class="QLabel" name="label_4">
|
<widget class="QLabel" name="label_4">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Velocity </string>
|
<string>Velocity </string>
|
||||||
@ -295,9 +262,62 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="7" column="2">
|
<item row="10" column="2">
|
||||||
<widget class="QDoubleSpinBox" name="doubleSpinBoxVelocity"/>
|
<widget class="QDoubleSpinBox" name="doubleSpinBoxVelocity"/>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Altitude </string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="2">
|
||||||
|
<widget class="QDoubleSpinBox" name="doubleSpinBoxAltitude">
|
||||||
|
<property name="minimum">
|
||||||
|
<double>-5000.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>5000.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="3">
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>meters</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="0">
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="text">
|
||||||
|
<string>Relative altitude </string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="2">
|
||||||
|
<widget class="QDoubleSpinBox" name="doubleSpinBoxRelativeAltitude"/>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="3">
|
||||||
|
<widget class="QLabel" name="label_9">
|
||||||
|
<property name="text">
|
||||||
|
<string>meters</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
@ -161,6 +161,8 @@ OPMapGadgetWidget::OPMapGadgetWidget(QWidget *parent) : QWidget(parent)
|
|||||||
m_map->Home->SetSafeArea(safe_area_radius_list[0]); // set radius (meters)
|
m_map->Home->SetSafeArea(safe_area_radius_list[0]); // set radius (meters)
|
||||||
m_map->Home->SetShowSafeArea(true); // show the safe area
|
m_map->Home->SetShowSafeArea(true); // show the safe area
|
||||||
|
|
||||||
|
if(m_map->Home)
|
||||||
|
connect(m_map->Home,SIGNAL(homedoubleclick(HomeItem*)),this,SLOT(onHomeDoubleClick(HomeItem*)));
|
||||||
m_map->UAV->SetTrailTime(uav_trail_time_list[0]); // seconds
|
m_map->UAV->SetTrailTime(uav_trail_time_list[0]); // seconds
|
||||||
m_map->UAV->SetTrailDistance(uav_trail_distance_list[1]); // meters
|
m_map->UAV->SetTrailDistance(uav_trail_distance_list[1]); // meters
|
||||||
|
|
||||||
@ -213,39 +215,16 @@ OPMapGadgetWidget::OPMapGadgetWidget(QWidget *parent) : QWidget(parent)
|
|||||||
if(m_map->GPS)
|
if(m_map->GPS)
|
||||||
m_map->GPS->SetUAVPos(m_home_position.coord, 0.0); // set the UAV position
|
m_map->GPS->SetUAVPos(m_home_position.coord, 0.0); // set the UAV position
|
||||||
|
|
||||||
qDebug()<<"here0";
|
|
||||||
model=new flightDataModel(this);
|
model=new flightDataModel(this);
|
||||||
qDebug()<<"here1";
|
|
||||||
table=new pathPlanner();
|
table=new pathPlanner();
|
||||||
qDebug()<<"here2";
|
|
||||||
selectionModel=new QItemSelectionModel(model);
|
selectionModel=new QItemSelectionModel(model);
|
||||||
qDebug()<<"here3";
|
mapProxy=new modelMapProxy(this,m_map,model,selectionModel);
|
||||||
proxy=new modelMapProxy(this,m_map,model,selectionModel);
|
|
||||||
qDebug()<<"here4";
|
|
||||||
table->setModel(model,selectionModel);
|
table->setModel(model,selectionModel);
|
||||||
qDebug()<<"here5";
|
|
||||||
table->show();
|
|
||||||
qDebug()<<"here6";
|
|
||||||
waypoint_edit_dialog=new opmap_edit_waypoint_dialog(NULL,model,selectionModel);
|
waypoint_edit_dialog=new opmap_edit_waypoint_dialog(NULL,model,selectionModel);
|
||||||
qDebug()<<"here7";
|
UAVProxy=new modelUavoProxy(this,model);
|
||||||
|
connect(table,SIGNAL(sendPathPlanToUAV()),UAVProxy,SLOT(modelToObjects()));
|
||||||
|
connect(table,SIGNAL(receivePathPlanFromUAV()),UAVProxy,SLOT(objectsToModel()));
|
||||||
|
|
||||||
/*
|
|
||||||
distBearing db;
|
|
||||||
db.distance=100;
|
|
||||||
db.bearing=0;
|
|
||||||
WayPointItem * p1=m_map->WPCreate(db,10,"aaa");
|
|
||||||
|
|
||||||
db.distance=100;
|
|
||||||
db.bearing=45;
|
|
||||||
WayPointItem * p2=m_map->WPCreate(db,10,"bbb");
|
|
||||||
m_map->WPCircleCreate(p2,p1,true);
|
|
||||||
t_waypoint *wp = new t_waypoint;
|
|
||||||
wp->map_wp_item=p1;
|
|
||||||
m_waypoint_list.append(wp);
|
|
||||||
wp=new t_waypoint;
|
|
||||||
wp->map_wp_item=p2;
|
|
||||||
m_waypoint_list.append(wp);
|
|
||||||
*/
|
|
||||||
magicWayPoint=m_map->magicWPCreate();
|
magicWayPoint=m_map->magicWPCreate();
|
||||||
magicWayPoint->setVisible(false);
|
magicWayPoint->setVisible(false);
|
||||||
|
|
||||||
@ -310,6 +289,18 @@ OPMapGadgetWidget::~OPMapGadgetWidget()
|
|||||||
delete m_map;
|
delete m_map;
|
||||||
m_map = NULL;
|
m_map = NULL;
|
||||||
}
|
}
|
||||||
|
if(model)
|
||||||
|
delete model;
|
||||||
|
if(table)
|
||||||
|
delete table;
|
||||||
|
if(selectionModel)
|
||||||
|
delete selectionModel;
|
||||||
|
if(mapProxy)
|
||||||
|
delete mapProxy;
|
||||||
|
if(waypoint_edit_dialog)
|
||||||
|
delete waypoint_edit_dialog;
|
||||||
|
if(UAVProxy)
|
||||||
|
delete UAVProxy;
|
||||||
}
|
}
|
||||||
|
|
||||||
// *************************************************************************************
|
// *************************************************************************************
|
||||||
@ -530,6 +521,12 @@ void OPMapGadgetWidget::contextMenuEvent(QContextMenuEvent *event)
|
|||||||
// ****************
|
// ****************
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OPMapGadgetWidget::closeEvent(QCloseEvent *event)
|
||||||
|
{
|
||||||
|
table->close();
|
||||||
|
QWidget::closeEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
// *************************************************************************************
|
// *************************************************************************************
|
||||||
// timer signals
|
// timer signals
|
||||||
|
|
||||||
@ -1295,7 +1292,6 @@ void OPMapGadgetWidget::createActions()
|
|||||||
wayPointEditorAct = new QAction(tr("&Waypoint editor"), this);
|
wayPointEditorAct = new QAction(tr("&Waypoint editor"), this);
|
||||||
wayPointEditorAct->setShortcut(tr("Ctrl+W"));
|
wayPointEditorAct->setShortcut(tr("Ctrl+W"));
|
||||||
wayPointEditorAct->setStatusTip(tr("Open the waypoint editor"));
|
wayPointEditorAct->setStatusTip(tr("Open the waypoint editor"));
|
||||||
wayPointEditorAct->setEnabled(true); // temporary
|
|
||||||
connect(wayPointEditorAct, SIGNAL(triggered()), this, SLOT(onOpenWayPointEditorAct_triggered()));
|
connect(wayPointEditorAct, SIGNAL(triggered()), this, SLOT(onOpenWayPointEditorAct_triggered()));
|
||||||
|
|
||||||
addWayPointActFromContextMenu = new QAction(tr("&Add waypoint"), this);
|
addWayPointActFromContextMenu = new QAction(tr("&Add waypoint"), this);
|
||||||
@ -1702,7 +1698,7 @@ void OPMapGadgetWidget::onUAVTrailDistanceActGroup_triggered(QAction *action)
|
|||||||
|
|
||||||
void OPMapGadgetWidget::onOpenWayPointEditorAct_triggered()
|
void OPMapGadgetWidget::onOpenWayPointEditorAct_triggered()
|
||||||
{
|
{
|
||||||
//TODO
|
table->show();
|
||||||
}
|
}
|
||||||
void OPMapGadgetWidget::onAddWayPointAct_triggeredFromContextMenu()
|
void OPMapGadgetWidget::onAddWayPointAct_triggeredFromContextMenu()
|
||||||
{
|
{
|
||||||
@ -1722,7 +1718,7 @@ void OPMapGadgetWidget::onAddWayPointAct_triggered(internals::PointLatLng coord)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// m_map->WPCreate(coord, 0, "");
|
// m_map->WPCreate(coord, 0, "");
|
||||||
proxy->createWayPoint(coord);
|
mapProxy->createWayPoint(coord);
|
||||||
|
|
||||||
//wp->map_wp_item->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker1.png"));
|
//wp->map_wp_item->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker1.png"));
|
||||||
//wp->map_wp_item->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker2.png"));
|
//wp->map_wp_item->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker2.png"));
|
||||||
@ -1748,7 +1744,6 @@ void OPMapGadgetWidget::onEditWayPointAct_triggered()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
waypoint_edit_dialog->editWaypoint(m_mouse_waypoint);
|
waypoint_edit_dialog->editWaypoint(m_mouse_waypoint);
|
||||||
|
|
||||||
m_mouse_waypoint = NULL;
|
m_mouse_waypoint = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1788,7 +1783,7 @@ void OPMapGadgetWidget::onDeleteWayPointAct_triggered()
|
|||||||
if (!m_mouse_waypoint)
|
if (!m_mouse_waypoint)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
proxy->deleteWayPoint(m_mouse_waypoint->Number());
|
mapProxy->deleteWayPoint(m_mouse_waypoint->Number());
|
||||||
}
|
}
|
||||||
|
|
||||||
void OPMapGadgetWidget::onClearWayPointsAct_triggered()
|
void OPMapGadgetWidget::onClearWayPointsAct_triggered()
|
||||||
@ -1799,7 +1794,7 @@ void OPMapGadgetWidget::onClearWayPointsAct_triggered()
|
|||||||
if (m_map_mode != Normal_MapMode)
|
if (m_map_mode != Normal_MapMode)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
proxy->deleteAll();
|
mapProxy->deleteAll();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2117,3 +2112,8 @@ void OPMapGadgetWidget::on_tbFind_clicked()
|
|||||||
m_widget->leFind->setPalette(pal);
|
m_widget->leFind->setPalette(pal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OPMapGadgetWidget::onHomeDoubleClick(HomeItem *)
|
||||||
|
{
|
||||||
|
new homeEditor(m_map->Home,this);
|
||||||
|
}
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
#include "flightdatamodel.h"
|
#include "flightdatamodel.h"
|
||||||
#include "pathplanner.h"
|
#include "pathplanner.h"
|
||||||
#include "modelmapproxy.h"
|
#include "modelmapproxy.h"
|
||||||
|
#include "modeluavoproxy.h"
|
||||||
|
|
||||||
#include <QtGui/QWidget>
|
#include <QtGui/QWidget>
|
||||||
#include <QtGui/QMenu>
|
#include <QtGui/QMenu>
|
||||||
@ -59,6 +60,8 @@
|
|||||||
#include <QItemSelectionModel>
|
#include <QItemSelectionModel>
|
||||||
#include "opmap_edit_waypoint_dialog.h"
|
#include "opmap_edit_waypoint_dialog.h"
|
||||||
|
|
||||||
|
#include "homeeditor.h"
|
||||||
|
|
||||||
// ******************************************************
|
// ******************************************************
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
@ -124,6 +127,7 @@ protected:
|
|||||||
void resizeEvent(QResizeEvent *event);
|
void resizeEvent(QResizeEvent *event);
|
||||||
void mouseMoveEvent(QMouseEvent *event);
|
void mouseMoveEvent(QMouseEvent *event);
|
||||||
void contextMenuEvent(QContextMenuEvent *event);
|
void contextMenuEvent(QContextMenuEvent *event);
|
||||||
|
void closeEvent(QCloseEvent *);
|
||||||
private slots:
|
private slots:
|
||||||
void wpDoubleClickEvent(WayPointItem *wp);
|
void wpDoubleClickEvent(WayPointItem *wp);
|
||||||
void updatePosition();
|
void updatePosition();
|
||||||
@ -202,7 +206,7 @@ private slots:
|
|||||||
void onMaxUpdateRateActGroup_triggered(QAction *action);
|
void onMaxUpdateRateActGroup_triggered(QAction *action);
|
||||||
void onChangeDefaultLocalAndZoom();
|
void onChangeDefaultLocalAndZoom();
|
||||||
void on_tbFind_clicked();
|
void on_tbFind_clicked();
|
||||||
|
void onHomeDoubleClick(HomeItem*);
|
||||||
private:
|
private:
|
||||||
|
|
||||||
// *****
|
// *****
|
||||||
@ -244,6 +248,10 @@ private:
|
|||||||
|
|
||||||
mapcontrol::WayPointItem *m_mouse_waypoint;
|
mapcontrol::WayPointItem *m_mouse_waypoint;
|
||||||
|
|
||||||
|
modelUavoProxy * UAVProxy;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
QMutex m_map_mutex;
|
QMutex m_map_mutex;
|
||||||
|
|
||||||
bool m_telemetry_connected;
|
bool m_telemetry_connected;
|
||||||
@ -334,7 +342,7 @@ private:
|
|||||||
|
|
||||||
flightDataModel * model;
|
flightDataModel * model;
|
||||||
pathPlanner * table;
|
pathPlanner * table;
|
||||||
modelMapProxy * proxy;
|
modelMapProxy * mapProxy;
|
||||||
QItemSelectionModel * selectionModel;
|
QItemSelectionModel * selectionModel;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user