Skip to content
WaypointEditableView.h 3.07 KiB
Newer Older
pixhawk's avatar
pixhawk committed
/*===================================================================
QGroundControl Open Source Ground Control Station
pixhawk's avatar
pixhawk committed

(c) 2009, 2010 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
pixhawk's avatar
pixhawk committed

This file is part of the QGROUNDCONTROL project
pixhawk's avatar
pixhawk committed

    QGROUNDCONTROL is free software: you can redistribute it and/or modify
pixhawk's avatar
pixhawk committed
    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.
    QGROUNDCONTROL is distributed in the hope that it will be useful,
pixhawk's avatar
pixhawk committed
    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.
pixhawk's avatar
pixhawk committed
    You should have received a copy of the GNU General Public License
    along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
pixhawk's avatar
pixhawk committed
======================================================================*/

/**
 * @file
 *   @brief Displays one waypoint
 *
 *   @author Lorenz Meier <mavteam@student.ethz.ch>
 *   @author Benjamin Knecht <mavteam@student.ethz.ch>
 *   @author Petri Tanskanen <mavteam@student.ethz.ch>
pixhawk's avatar
pixhawk committed
 *
 */

#ifndef WAYPOINTEDITABLEVIEW_H
#define WAYPOINTEDITABLEVIEW_H
pixhawk's avatar
pixhawk committed

#include <QtGui/QWidget>
#include "Waypoint.h"
#include <iostream>
pixhawk's avatar
pixhawk committed

enum QGC_WAYPOINTEDITABLEVIEW_MODE {
    QGC_WAYPOINTEDITABLEVIEW_MODE_NAV,
    QGC_WAYPOINTEDITABLEVIEW_MODE_CONDITION,
    QGC_WAYPOINTEDITABLEVIEW_MODE_DO,
    QGC_WAYPOINTEDITABLEVIEW_MODE_DIRECT_EDITING
namespace Ui
{
pixhawk's avatar
pixhawk committed
}
pixhawk's avatar
pixhawk committed
//class Ui_QGCCustomWaypointAction;
//class Ui_QGCMissionDoWidget;
class QGCMissionDoWidget;
class QGCMissionConditionWidget;
class QGCMissionOther;
pixhawk's avatar
pixhawk committed
    Q_OBJECT
pixhawk's avatar
pixhawk committed
public:
    explicit WaypointEditableView(Waypoint* wp, QWidget* parent);
    virtual ~WaypointEditableView();
pixhawk's avatar
pixhawk committed
public:
pixhawk's avatar
pixhawk committed
    void setCurrent(bool state);
pixhawk's avatar
pixhawk committed
public slots:
    void moveUp();
    void moveDown();
    void remove();
pixhawk's avatar
pixhawk committed
    /** @brief Waypoint matching this widget has been deleted */
    void deleted(QObject* waypoint);
pixhawk's avatar
pixhawk committed
    void changedAutoContinue(int);
    void updateFrameView(int frame);
    void changedFrame(int state);
    void updateActionView(int action);
    void changedAction(int state);
pixhawk's avatar
pixhawk committed
    void changedCurrent(int);
protected slots:
    void changeViewMode(QGC_WAYPOINTEDITABLEVIEW_MODE mode);
pixhawk's avatar
pixhawk committed
protected:
    virtual void changeEvent(QEvent *e);
    Waypoint* wp;
    // Special widgets extendending the
    // waypoint view to mission capabilities
pixhawk's avatar
pixhawk committed
    QGCMissionDoWidget* MissionDoJumpWidget;
    QGCMissionConditionWidget* MissionConditionDelayWidget;
    QGCMissionOther* MissionOtherWidget;
pixhawk's avatar
pixhawk committed
private:
pixhawk's avatar
pixhawk committed
signals:
    void moveUpWaypoint(Waypoint*);
    void moveDownWaypoint(Waypoint*);
    void removeWaypoint(Waypoint*);
    //void currentWaypointChanged(quint16); //unused
    void changeCurrentWaypoint(quint16);
pixhawk's avatar
pixhawk committed
    void setYaw(double);
pixhawk's avatar
pixhawk committed
};