WaypointList.cc 18.1 KB
Newer Older
pixhawk's avatar
pixhawk committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
/*=====================================================================

PIXHAWK Micro Air Vehicle Flying Robotics Toolkit

(c) 2009, 2010 PIXHAWK PROJECT  <http://pixhawk.ethz.ch>

This file is part of the PIXHAWK project

    PIXHAWK is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    PIXHAWK is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with PIXHAWK. If not, see <http://www.gnu.org/licenses/>.

======================================================================*/

/**
 * @file
 *   @brief Waypoint list widget
 *
 *   @author Lorenz Meier <mavteam@student.ethz.ch>
 *   @author Benjamin Knecht <mavteam@student.ethz.ch>
30
 *   @author Petri Tanskanen <mavteam@student.ethz.ch>
pixhawk's avatar
pixhawk committed
31 32 33 34 35 36 37 38 39
 *
 */

#include "WaypointList.h"
#include "ui_WaypointList.h"
#include <UASInterface.h>
#include <UASManager.h>
#include <QDebug>
#include <QFileDialog>
40
#include <QMessageBox>
41
#include <QMouseEvent>
pixhawk's avatar
pixhawk committed
42 43

WaypointList::WaypointList(QWidget *parent, UASInterface* uas) :
44 45 46 47 48 49 50
    QWidget(parent),
    uas(NULL),
    mavX(0.0),
    mavY(0.0),
    mavZ(0.0),
    mavYaw(0.0),
    m_ui(new Ui::WaypointList)
pixhawk's avatar
pixhawk committed
51 52 53 54
{
    m_ui->setupUi(this);

    listLayout = new QVBoxLayout(m_ui->listWidget);
55
    listLayout->setSpacing(0);
pixhawk's avatar
pixhawk committed
56 57 58 59 60 61 62 63 64
    listLayout->setMargin(0);
    listLayout->setAlignment(Qt::AlignTop);
    m_ui->listWidget->setLayout(listLayout);

    // ADD WAYPOINT
    // Connect add action, set right button icon and connect action to this class
    connect(m_ui->addButton, SIGNAL(clicked()), m_ui->actionAddWaypoint, SIGNAL(triggered()));
    connect(m_ui->actionAddWaypoint, SIGNAL(triggered()), this, SLOT(add()));

65 66 67
    // ADD WAYPOINT AT CURRENT POSITION
    connect(m_ui->positionAddButton, SIGNAL(clicked()), this, SLOT(addCurrentPositonWaypoint()));

pixhawk's avatar
pixhawk committed
68 69 70
    // SEND WAYPOINTS
    connect(m_ui->transmitButton, SIGNAL(clicked()), this, SLOT(transmit()));

71
    // REQUEST WAYPOINTS
72
    connect(m_ui->readButton, SIGNAL(clicked()), this, SLOT(read()));
73

pixhawk's avatar
pixhawk committed
74 75 76 77
    // SAVE/LOAD WAYPOINTS
    connect(m_ui->saveButton, SIGNAL(clicked()), this, SLOT(saveWaypoints()));
    connect(m_ui->loadButton, SIGNAL(clicked()), this, SLOT(loadWaypoints()));

78
    //connect(UASManager::instance(), SIGNAL(activeUASSet(UASInterface*)), this, SLOT(setUAS(UASInterface*)));
pixhawk's avatar
pixhawk committed
79

80 81


pixhawk's avatar
pixhawk committed
82 83
    // SET UAS AFTER ALL SIGNALS/SLOTS ARE CONNECTED
    setUAS(uas);
84 85 86

    // STATUS LABEL
    updateStatusLabel("");
87 88

    this->setVisible(false);
89
    loadFileGlobalWP = false;
90
    readGlobalWP = false;
91 92 93
    centerMapCoordinate.setX(0.0);
    centerMapCoordinate.setY(0.0);

pixhawk's avatar
pixhawk committed
94 95 96 97 98 99 100
}

WaypointList::~WaypointList()
{
    delete m_ui;
}

101
void WaypointList::updatePosition(UASInterface* uas, double x, double y, double z, quint64 usec)
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
{
    Q_UNUSED(uas);
    Q_UNUSED(usec);
    mavX = x;
    mavY = y;
    mavZ = z;
}

void WaypointList::updateAttitude(UASInterface* uas, double roll, double pitch, double yaw, quint64 usec)
{
    Q_UNUSED(uas);
    Q_UNUSED(usec);
    Q_UNUSED(roll);
    Q_UNUSED(pitch);
    mavYaw = yaw;
}

pixhawk's avatar
pixhawk committed
119 120
void WaypointList::setUAS(UASInterface* uas)
{
121
    if (this->uas == NULL && uas != NULL) {
pixhawk's avatar
pixhawk committed
122
        this->uas = uas;
pixhawk's avatar
pixhawk committed
123

124
        connect(uas, SIGNAL(localPositionChanged(UASInterface*,double,double,double,quint64)),  this, SLOT(updatePosition(UASInterface*,double,double,double,quint64)));
125
        connect(uas, SIGNAL(attitudeChanged(UASInterface*,double,double,double,quint64)),       this, SLOT(updateAttitude(UASInterface*,double,double,double,quint64)));
pixhawk's avatar
pixhawk committed
126

pixhawk's avatar
pixhawk committed
127 128
        connect(uas->getWaypointManager(), SIGNAL(updateStatusString(const QString &)),        this, SLOT(updateStatusLabel(const QString &)));
        connect(uas->getWaypointManager(), SIGNAL(waypointListChanged(void)),                  this, SLOT(waypointListChanged(void)));
129
        connect(uas->getWaypointManager(), SIGNAL(waypointChanged(int,Waypoint*)), this, SLOT(updateWaypoint(int,Waypoint*)));
pixhawk's avatar
pixhawk committed
130
        connect(uas->getWaypointManager(), SIGNAL(currentWaypointChanged(quint16)),            this, SLOT(currentWaypointChanged(quint16)));
131 132
        //connect(uas->getWaypointManager(),SIGNAL(loadWPFile()),this,SLOT(setIsLoadFileWP()));
        //connect(uas->getWaypointManager(),SIGNAL(readGlobalWPFromUAS(bool)),this,SLOT(setIsReadGlobalWP(bool)));
133

pixhawk's avatar
pixhawk committed
134 135 136
    }
}

pixhawk's avatar
pixhawk committed
137 138
void WaypointList::saveWaypoints()
{
139
    if (uas) {
pixhawk's avatar
pixhawk committed
140
        QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), "./waypoints.txt", tr("Waypoint File (*.txt)"));
pixhawk's avatar
pixhawk committed
141
        uas->getWaypointManager()->saveWaypoints(fileName);
pixhawk's avatar
pixhawk committed
142 143 144 145 146
    }
}

void WaypointList::loadWaypoints()
{
147
    if (uas) {
pixhawk's avatar
pixhawk committed
148
        QString fileName = QFileDialog::getOpenFileName(this, tr("Load File"), ".", tr("Waypoint File (*.txt)"));
pixhawk's avatar
pixhawk committed
149
        uas->getWaypointManager()->loadWaypoints(fileName);
150
    }
pixhawk's avatar
pixhawk committed
151 152 153 154
}

void WaypointList::transmit()
{
155
    if (uas) {
pixhawk's avatar
pixhawk committed
156
        uas->getWaypointManager()->writeWaypoints();
pixhawk's avatar
pixhawk committed
157 158 159 160 161
    }
}

void WaypointList::read()
{
162
    if (uas) {
pixhawk's avatar
pixhawk committed
163
        uas->getWaypointManager()->readWaypoints();
pixhawk's avatar
pixhawk committed
164 165 166 167 168
    }
}

void WaypointList::add()
{
169
    if (uas) {
pixhawk's avatar
pixhawk committed
170 171
        const QVector<Waypoint *> &waypoints = uas->getWaypointManager()->getWaypointList();
        Waypoint *wp;
172 173


174
        if (waypoints.size() > 0) {
pixhawk's avatar
pixhawk committed
175 176
            // Create waypoint with last frame
            Waypoint *last = waypoints.at(waypoints.size()-1);
lm's avatar
lm committed
177 178
            wp = new Waypoint(0, last->getX(), last->getY(), last->getZ(), last->getParam1(), last->getParam2(), last->getParam3(), last->getParam4(),
                              last->getAutoContinue(), false, last->getFrame(), last->getAction());
pixhawk's avatar
pixhawk committed
179
            uas->getWaypointManager()->addWaypoint(wp);
180
        } else {
pixhawk's avatar
pixhawk committed
181
            // Create global frame waypoint per default
lm's avatar
lm committed
182
            wp = new Waypoint(0, uas->getLatitude(), uas->getLongitude(), uas->getAltitude(), 0.0, 0.0, 0.0, 0.0, true, true, MAV_FRAME_GLOBAL, MAV_CMD_NAV_WAYPOINT);
pixhawk's avatar
pixhawk committed
183
            uas->getWaypointManager()->addWaypoint(wp);
184
        }
pixhawk's avatar
pixhawk committed
185 186 187
    }
}

lm's avatar
lm committed
188 189
void WaypointList::addCurrentPositonWaypoint()
{
190
    /* TODO: implement with new waypoint structure
pixhawk's avatar
pixhawk committed
191
    if (uas)
pixhawk's avatar
pixhawk committed
192
    {
193
        // For Global Waypoints
194 195 196 197 198
        //if(isGlobalWP)
        //{
            //isLocalWP = false;
        //}
        //else
pixhawk's avatar
pixhawk committed
199
        {
pixhawk's avatar
pixhawk committed
200
            const QVector<Waypoint *> &waypoints = uas->getWaypointManager()->getWaypointList();
201 202 203 204
            if (waypoints.size() > 0)
            {
                Waypoint *last = waypoints.at(waypoints.size()-1);
                Waypoint *wp = new Waypoint(0, (qRound(mavX*100))/100., (qRound(mavY*100))/100., (qRound(mavZ*100))/100., (qRound(mavYaw*100))/100., last->getAutoContinue(), false, last->getOrbit(), last->getHoldTime());
pixhawk's avatar
pixhawk committed
205
                uas->getWaypointManager()->addWaypoint(wp);
206 207 208 209
            }
            else
            {
                Waypoint *wp = new Waypoint(0, (qRound(mavX*100))/100., (qRound(mavY*100))/100., (qRound(mavZ*100))/100., (qRound(mavYaw*100))/100., true, true, 0.15, 2000);
pixhawk's avatar
pixhawk committed
210
                uas->getWaypointManager()->addWaypoint(wp);
211 212
            }

213
             //isLocalWP = true;
pixhawk's avatar
pixhawk committed
214
        }
pixhawk's avatar
pixhawk committed
215
    }
216
    */
pixhawk's avatar
pixhawk committed
217 218
}

pixhawk's avatar
pixhawk committed
219 220 221 222 223
void WaypointList::updateStatusLabel(const QString &string)
{
    m_ui->statusLabel->setText(string);
}

224
void WaypointList::changeCurrentWaypoint(quint16 seq)
pixhawk's avatar
pixhawk committed
225
{
226
    if (uas) {
pixhawk's avatar
pixhawk committed
227
        uas->getWaypointManager()->setCurrentWaypoint(seq);
228
    }
pixhawk's avatar
pixhawk committed
229 230
}

231
void WaypointList::currentWaypointChanged(quint16 seq)
232
{
233
    if (uas) {
pixhawk's avatar
pixhawk committed
234
        const QVector<Waypoint *> &waypoints = uas->getWaypointManager()->getWaypointList();
235

236 237
        if (seq < waypoints.size()) {
            for(int i = 0; i < waypoints.size(); i++) {
238 239
                WaypointView* widget = wpViews.find(waypoints[i]).value();

240
                if (waypoints[i]->getId() == seq) {
241
                    widget->setCurrent(true);
242
                } else {
243 244 245 246 247 248 249
                    widget->setCurrent(false);
                }
            }
        }
    }
}

250 251 252 253 254 255 256
void WaypointList::updateWaypoint(int uas, Waypoint* wp)
{
    Q_UNUSED(uas);
    WaypointView *wpv = wpViews.value(wp);
    wpv->updateValues();
}

257
void WaypointList::waypointListChanged()
pixhawk's avatar
pixhawk committed
258
{
259
    if (uas) {
pixhawk's avatar
pixhawk committed
260 261 262 263
        // Prevent updates to prevent visual flicker
        this->setUpdatesEnabled(false);
        const QVector<Waypoint *> &waypoints = uas->getWaypointManager()->getWaypointList();

264
        if (!wpViews.empty()) {
265 266
            QMapIterator<Waypoint*,WaypointView*> viewIt(wpViews);
            viewIt.toFront();
267
            while(viewIt.hasNext()) {
268 269 270
                viewIt.next();
                Waypoint *cur = viewIt.key();
                int i;
271 272
                for (i = 0; i < waypoints.size(); i++) {
                    if (waypoints[i] == cur) {
273
                        break;
lm's avatar
lm committed
274 275
                    }
                }
276
                if (i == waypoints.size()) {
277 278 279 280
                    WaypointView* widget = wpViews.find(cur).value();
                    widget->hide();
                    listLayout->removeWidget(widget);
                    wpViews.remove(cur);
lm's avatar
lm committed
281
                }
pixhawk's avatar
pixhawk committed
282 283
            }
        }
284

285
        // then add/update the views for each waypoint in the list
286
        for(int i = 0; i < waypoints.size(); i++) {
287
            Waypoint *wp = waypoints[i];
288
            if (!wpViews.contains(wp)) {
289 290 291 292 293 294 295 296 297 298 299 300
                WaypointView* wpview = new WaypointView(wp, this);
                wpViews.insert(wp, wpview);
                connect(wpview, SIGNAL(moveDownWaypoint(Waypoint*)),    this, SLOT(moveDown(Waypoint*)));
                connect(wpview, SIGNAL(moveUpWaypoint(Waypoint*)),      this, SLOT(moveUp(Waypoint*)));
                connect(wpview, SIGNAL(removeWaypoint(Waypoint*)),      this, SLOT(removeWaypoint(Waypoint*)));
                connect(wpview, SIGNAL(currentWaypointChanged(quint16)), this, SLOT(currentWaypointChanged(quint16)));
                connect(wpview, SIGNAL(changeCurrentWaypoint(quint16)), this, SLOT(changeCurrentWaypoint(quint16)));
                listLayout->insertWidget(i, wpview);
            }
            WaypointView *wpv = wpViews.value(wp);

            //check if ordering has changed
301
            if(listLayout->itemAt(i)->widget() != wpv) {
302 303 304
                listLayout->removeWidget(wpv);
                listLayout->insertWidget(i, wpv);
            }
lm's avatar
lm committed
305

306 307 308
            wpv->updateValues();    // update the values of the ui elements in the view
        }
        this->setUpdatesEnabled(true);
lm's avatar
lm committed
309
        loadFileGlobalWP = false;
310
    }
lm's avatar
lm committed
311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365
}

//void WaypointList::waypointListChanged()
//{
//    if (uas)
//    {
//        // Prevent updates to prevent visual flicker
//        this->setUpdatesEnabled(false);
//        // Get all waypoints
//        const QVector<Waypoint *> &waypoints = uas->getWaypointManager()->getWaypointList();

////        // Store the current state, then check which widgets to update
////        // and which ones to delete
////        QList<Waypoint*> oldWaypoints = wpViews.keys();

////        foreach (Waypoint* wp, waypoints)
////        {
////            WaypointView* wpview;
////            // Create any new waypoint
////            if (!wpViews.contains(wp))
////            {
////                wpview = new WaypointView(wp, this);
////                wpViews.insert(wp, wpview);
////                connect(wpview, SIGNAL(moveDownWaypoint(Waypoint*)),    this, SLOT(moveDown(Waypoint*)));
////                connect(wpview, SIGNAL(moveUpWaypoint(Waypoint*)),      this, SLOT(moveUp(Waypoint*)));
////                connect(wpview, SIGNAL(removeWaypoint(Waypoint*)),      this, SLOT(removeWaypoint(Waypoint*)));
////                connect(wpview, SIGNAL(currentWaypointChanged(quint16)), this, SLOT(currentWaypointChanged(quint16)));
////                connect(wpview, SIGNAL(changeCurrentWaypoint(quint16)), this, SLOT(changeCurrentWaypoint(quint16)));
////                listLayout->addWidget(wpview);
////            }
////            else
////            {
////                // Update existing waypoints
////                wpview = wpViews.value(wp);

////            }
////            // Mark as updated by removing from old list
////            oldWaypoints.removeAt(oldWaypoints.indexOf(wp));

////            wpview->updateValues();    // update the values of the ui elements in the view

////        }

////        // The old list now contains all wps to be deleted
////        foreach (Waypoint* wp, oldWaypoints)
////        {
////            // Delete waypoint view and entry in list
////            WaypointView* wpv = wpViews.value(wp);
////            if (wpv)
////            {
////                listLayout->removeWidget(wpv);
////                delete wpv;
////            }
////            wpViews.remove(wp);
////        }
366

pixhawk's avatar
pixhawk committed
367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385
//        if (!wpViews.empty())
//        {
//            QMapIterator<Waypoint*,WaypointView*> viewIt(wpViews);
//            viewIt.toFront();
//            while(viewIt.hasNext())
//            {
//                viewIt.next();
//                Waypoint *cur = viewIt.key();
//                int i;
//                for (i = 0; i < waypoints.size(); i++)
//                {
//                    if (waypoints[i] == cur)
//                    {
//                        break;
//                    }
//                }
//                if (i == waypoints.size())
//                {
//                    WaypointView* widget = wpViews.find(cur).value();
lm's avatar
lm committed
386 387 388 389 390
//                    if (widget)
//                    {
//                        widget->hide();
//                        listLayout->removeWidget(widget);
//                    }
pixhawk's avatar
pixhawk committed
391 392 393 394
//                    wpViews.remove(cur);
//                }
//            }
//        }
395

pixhawk's avatar
pixhawk committed
396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414
//        // then add/update the views for each waypoint in the list
//        for(int i = 0; i < waypoints.size(); i++)
//        {
//            Waypoint *wp = waypoints[i];
//            if (!wpViews.contains(wp))
//            {
//                WaypointView* wpview = new WaypointView(wp, this);
//                wpViews.insert(wp, wpview);
//                connect(wpview, SIGNAL(moveDownWaypoint(Waypoint*)),    this, SLOT(moveDown(Waypoint*)));
//                connect(wpview, SIGNAL(moveUpWaypoint(Waypoint*)),      this, SLOT(moveUp(Waypoint*)));
//                connect(wpview, SIGNAL(removeWaypoint(Waypoint*)),      this, SLOT(removeWaypoint(Waypoint*)));
//                connect(wpview, SIGNAL(currentWaypointChanged(quint16)), this, SLOT(currentWaypointChanged(quint16)));
//                connect(wpview, SIGNAL(changeCurrentWaypoint(quint16)), this, SLOT(changeCurrentWaypoint(quint16)));
//            }
//            WaypointView *wpv = wpViews.value(wp);
//            wpv->updateValues();    // update the values of the ui elements in the view
//            listLayout->addWidget(wpv);

//        }
lm's avatar
lm committed
415 416 417 418
//        this->setUpdatesEnabled(true);
//    }
////    loadFileGlobalWP = false;
//}
pixhawk's avatar
pixhawk committed
419

420
void WaypointList::moveUp(Waypoint* wp)
pixhawk's avatar
pixhawk committed
421
{
422
    if (uas) {
pixhawk's avatar
pixhawk committed
423
        const QVector<Waypoint *> &waypoints = uas->getWaypointManager()->getWaypointList();
424 425 426

        //get the current position of wp in the local storage
        int i;
427
        for (i = 0; i < waypoints.size(); i++) {
428 429
            if (waypoints[i] == wp)
                break;
430 431
        }

432
        // if wp was found and its not the first entry, move it
433
        if (i < waypoints.size() && i > 0) {
pixhawk's avatar
pixhawk committed
434
            uas->getWaypointManager()->moveWaypoint(i, i-1);
pixhawk's avatar
pixhawk committed
435 436 437 438
        }
    }
}

439
void WaypointList::moveDown(Waypoint* wp)
pixhawk's avatar
pixhawk committed
440
{
441
    if (uas) {
pixhawk's avatar
pixhawk committed
442
        const QVector<Waypoint *> &waypoints = uas->getWaypointManager()->getWaypointList();
443

444 445
        //get the current position of wp in the local storage
        int i;
446
        for (i = 0; i < waypoints.size(); i++) {
447 448
            if (waypoints[i] == wp)
                break;
pixhawk's avatar
pixhawk committed
449 450
        }

451
        // if wp was found and its not the last entry, move it
452
        if (i < waypoints.size()-1) {
pixhawk's avatar
pixhawk committed
453
            uas->getWaypointManager()->moveWaypoint(i, i+1);
pixhawk's avatar
pixhawk committed
454 455 456 457 458 459
        }
    }
}

void WaypointList::removeWaypoint(Waypoint* wp)
{
460
    if (uas) {
pixhawk's avatar
pixhawk committed
461
        uas->getWaypointManager()->removeWaypoint(wp->getId());
pixhawk's avatar
pixhawk committed
462 463 464 465 466 467 468 469 470 471 472 473 474 475
    }
}

void WaypointList::changeEvent(QEvent *e)
{
    switch (e->type()) {
    case QEvent::LanguageChange:
        m_ui->retranslateUi(this);
        break;
    default:
        break;
    }
}

476 477 478 479


void WaypointList::on_clearWPListButton_clicked()
{
480

tecnosapiens's avatar
tecnosapiens committed
481

482 483 484 485 486 487
    if (uas) {
        emit clearPathclicked();
        const QVector<Waypoint *> &waypoints = uas->getWaypointManager()->getWaypointList();
        while(!waypoints.isEmpty()) { //for(int i = 0; i <= waypoints.size(); i++)
            WaypointView* widget = wpViews.find(waypoints[0]).value();
            widget->remove();
488
        }
489
    } else {
lm's avatar
lm committed
490 491 492 493 494
//        if(isGlobalWP)
//        {
//           emit clearPathclicked();
//        }
    }
495 496
}

pixhawk's avatar
pixhawk committed
497
///** @brief The MapWidget informs that a waypoint global was changed on the map */
498

pixhawk's avatar
pixhawk committed
499 500 501 502 503 504 505 506
//void WaypointList::waypointGlobalChanged(QPointF coordinate, int indexWP)
//{
//    if (uas)
//    {
//        const QVector<Waypoint *> &waypoints = uas->getWaypointManager()->getWaypointList();
//        if (waypoints.size() > 0)
//        {
//            Waypoint *temp = waypoints.at(indexWP);
507

pixhawk's avatar
pixhawk committed
508 509
//            temp->setX(coordinate.x());
//            temp->setY(coordinate.y());
510

pixhawk's avatar
pixhawk committed
511 512 513 514
//            //WaypointGlobalView* widget = wpGlobalViews.find(waypoints[indexWP]).value();
//            //widget->updateValues();
//        }
//    }
515 516


pixhawk's avatar
pixhawk committed
517
//}
518

519 520 521 522 523 524 525 526 527 528 529 530 531
///** @brief The MapWidget informs that a waypoint global was changed on the map */

//void WaypointList::waypointGlobalPositionChanged(Waypoint* wp)
//{
//    QPointF coordinate;
//    coordinate.setX(wp->getX());
//    coordinate.setY(wp->getY());

//   emit ChangeWaypointGlobalPosition(wp->getId(), coordinate);


//}

532
void WaypointList::clearWPWidget()
533
{
534 535 536 537 538 539 540
    if (uas) {
        const QVector<Waypoint *> &waypoints = uas->getWaypointManager()->getWaypointList();
        while(!waypoints.isEmpty()) { //for(int i = 0; i <= waypoints.size(); i++)
            WaypointView* widget = wpViews.find(waypoints[0]).value();
            widget->remove();
        }
    }
541
}
542

pixhawk's avatar
pixhawk committed
543 544 545 546
//void WaypointList::setIsLoadFileWP()
//{
//    loadFileGlobalWP = true;
//}
547

pixhawk's avatar
pixhawk committed
548 549 550 551 552 553
//void WaypointList::setIsReadGlobalWP(bool value)
//{
//    // FIXME James Check this
//    Q_UNUSED(value);
//    // readGlobalWP = value;
//}