Commit 76e8afff authored by Don Gagne's avatar Don Gagne

Widget container for QML

parent 2607ff74
/*=====================================================================
QGroundControl Open Source Ground Control Station
(c) 2009 - 2014 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
This file is part of the QGROUNDCONTROL project
QGROUNDCONTROL 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.
QGROUNDCONTROL 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 QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
======================================================================*/
/// @file
/// @author Don Gagne <don@thegagnes.com>
#include "QGCQmlWidgetHolder.h"
QGCQmlWidgetHolder::QGCQmlWidgetHolder(QWidget *parent) :
QWidget(parent)
{
_ui.setupUi(this);
}
QGCQmlWidgetHolder::~QGCQmlWidgetHolder()
{
}
void QGCQmlWidgetHolder::setAutoPilot(AutoPilotPlugin* autoPilot)
{
_ui.qmlWidget->rootContext()->setContextProperty("autopilot", autoPilot);
}
void QGCQmlWidgetHolder::setSource(const QUrl& qmlUrl)
{
_ui.qmlWidget->setSource(qmlUrl);
_ui.qmlWidget->setMinimumSize(_ui.qmlWidget->rootObject()->width(), _ui.qmlWidget->rootObject()->height());
}
/*=====================================================================
QGroundControl Open Source Ground Control Station
(c) 2009 - 2014 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
This file is part of the QGROUNDCONTROL project
QGROUNDCONTROL 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.
QGROUNDCONTROL 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 QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
======================================================================*/
#ifndef QGCQmlWidgetHolder_h
#define QGCQmlWidgetHolder_h
/// @file
/// @author Don Gagne <don@thegagnes.com>
#include <QWidget>
#include "ui_QGCQmlWidgetHolder.h"
#include "AutoPilotPlugin.h"
namespace Ui {
class QGCQmlWidgetHolder;
}
/// This is used to create widgets which are implemented in QML.
class QGCQmlWidgetHolder : public QWidget
{
Q_OBJECT
public:
explicit QGCQmlWidgetHolder(QWidget *parent = 0);
~QGCQmlWidgetHolder();
/// Sets the UAS into the widget which in turn will load facts into the context
void setAutoPilot(AutoPilotPlugin* autoPilot);
/// Sets the QML into the control
void setSource(const QUrl& qmlUrl);
private:
Ui::QGCQmlWidgetHolder _ui;
};
#endif
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QGCQmlWidgetHolder</class>
<widget class="QWidget" name="QGCQmlWidgetHolder">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QGCQuickWidget" name="qmlWidget" native="true"/>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>QGCQuickWidget</class>
<extends>QQuickWidget</extends>
<header>QGCQuickWidget.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment