Commit a4d63612 authored by DonLakeFlyer's avatar DonLakeFlyer

Fix all the horribly broken stuff

parent b6dc73b1
...@@ -7,25 +7,25 @@ ...@@ -7,25 +7,25 @@
* *
****************************************************************************/ ****************************************************************************/
/// @file
/// @author Don Gagne <don@thegagnes.com>
import QtQuick 2.3 import QtQuick 2.3
import QtQuick.Controls 1.2 import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.4 import QtQuick.Controls.Styles 1.4
import QtQuick.Dialogs 1.2 import QtQuick.Dialogs 1.2
import QGroundControl 1.0
import QGroundControl.Palette 1.0 import QGroundControl.Palette 1.0
import QGroundControl.Controls 1.0 import QGroundControl.Controls 1.0
import QGroundControl.Controllers 1.0 import QGroundControl.Controllers 1.0
import QGroundControl.ScreenTools 1.0 import QGroundControl.ScreenTools 1.0
QGCView { QGCView {
id: qgcView
viewPanel: panel viewPanel: panel
property real _margins: ScreenTools.defaultFontPixelHeight property var _activeVehicle: QGroundControl.multiVehicleManager.parameterReadyVehicleAvailable ? QGroundControl.multiVehicleManager.activeVehicle : null
property string _emptyText: "<p>" + property real _margins: ScreenTools.defaultFontPixelHeight
property string _noVehicleText: qsTr("No vehicle connected")
property string _assignQmlFile: "<p>" +
"You can create your own commands and parameter editing user interface in this widget. " + "You can create your own commands and parameter editing user interface in this widget. " +
"You do this by providing your own Qml file. " + "You do this by providing your own Qml file. " +
"This support is a work in progress and the details may change somewhat in the future. " + "This support is a work in progress and the details may change somewhat in the future. " +
...@@ -34,29 +34,42 @@ QGCView { ...@@ -34,29 +34,42 @@ QGCView {
"So make sure to test your changes thoroughly before using them in flight.</p>" + "So make sure to test your changes thoroughly before using them in flight.</p>" +
"<p>Click 'Load Custom Qml file' to provide your custom qml file.</p>" + "<p>Click 'Load Custom Qml file' to provide your custom qml file.</p>" +
"<p>Click 'Reset' to reset to none.</p>" + "<p>Click 'Reset' to reset to none.</p>" +
"<p>Example usage: http://www.qgroundcontrol.org/custom_command_qml_widgets</p>" "<p>Example usage: http://https://dev.qgroundcontrol.com/en/tools/custom_command_widget.html</p>"
QGCPalette { id: qgcPal; colorGroupEnabled: enabled }
CustomCommandWidgetController {
id: controller
factPanel: panel
onCustomQmlFileChanged: _updateLoader()
}
QGCPalette { id: qgcPal; colorGroupEnabled: enabled } Component.onCompleted: _updateLoader()
CustomCommandWidgetController { id: controller; factPanel: panel }
on_ActiveVehicleChanged: _updateLoader()
function _updateLoader() {
loader.sourceComponent = undefined
loader.visible = false
textOutput.text = _noVehicleText
if (_activeVehicle) {
if (controller.customQmlFile == "") {
textOutput.text = _assignQmlFile
} else {
loader.source = controller.customQmlFile
}
}
}
QGCViewPanel { QGCViewPanel {
id: panel id: panel
anchors.fill: parent anchors.fill: parent
Rectangle { Rectangle {
anchors.fill: parent anchors.fill: parent
color: qgcPal.window color: qgcPal.window
QGCLabel {
id: textOutput
anchors.margins: _margins
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: buttonRow.top
wrapMode: Text.WordWrap
textFormat: Text.RichText
text: _emptyText
visible: !loader.visible
}
Loader { Loader {
id: loader id: loader
anchors.margins: _margins anchors.margins: _margins
...@@ -64,37 +77,42 @@ QGCView { ...@@ -64,37 +77,42 @@ QGCView {
anchors.right: parent.right anchors.right: parent.right
anchors.top: parent.top anchors.top: parent.top
anchors.bottom: buttonRow.top anchors.bottom: buttonRow.top
source: controller.customQmlFile
visible: false visible: false
onStatusChanged: { onStatusChanged: {
loader.visible = true
if (loader.status == Loader.Error) { if (loader.status == Loader.Error) {
if (sourceComponent.status == Component.Error) { textOutput.text = sourceComponent.errorString()
textOutput.text = sourceComponent.errorString() } else if (loader.status == Loader.Ready) {
loader.visible = false loader.visible = true
}
} }
} }
} }
QGCLabel {
id: textOutput
anchors.fill: loader
wrapMode: Text.WordWrap
textFormat: Text.RichText
visible: !loader.visible
}
Row { Row {
id: buttonRow id: buttonRow
spacing: ScreenTools.defaultFontPixelWidth spacing: ScreenTools.defaultFontPixelWidth
anchors.margins: _margins anchors.margins: _margins
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
QGCButton { QGCButton {
text: qsTr("Load Custom Qml file...") text: qsTr("Load Custom Qml file...")
width: ScreenTools.defaultFontPixelWidth * 22 width: ScreenTools.defaultFontPixelWidth * 22
onClicked: controller.selectQmlFile() onClicked: controller.selectQmlFile()
} }
QGCButton { QGCButton {
text: qsTr("Reset") text: qsTr("Reset")
width: ScreenTools.defaultFontPixelWidth * 22 width: ScreenTools.defaultFontPixelWidth * 22
onClicked: { onClicked: controller.clearQmlFile()
controller.clearQmlFile()
loader.visible = false
textOutput.text = _emptyText
}
} }
} }
} }
......
...@@ -28,7 +28,6 @@ CustomCommandWidgetController::CustomCommandWidgetController(void) : ...@@ -28,7 +28,6 @@ CustomCommandWidgetController::CustomCommandWidgetController(void) :
} }
QSettings settings; QSettings settings;
_customQmlFile = settings.value(_settingsKey).toString(); _customQmlFile = settings.value(_settingsKey).toString();
connect(qgcApp()->toolbox()->multiVehicleManager(), &MultiVehicleManager::activeVehicleChanged, this, &CustomCommandWidgetController::_activeVehicleChanged);
} }
void CustomCommandWidgetController::sendCommand(int commandId, QVariant componentId, QVariant confirm, QVariant param1, QVariant param2, QVariant param3, QVariant param4, QVariant param5, QVariant param6, QVariant param7) void CustomCommandWidgetController::sendCommand(int commandId, QVariant componentId, QVariant confirm, QVariant param1, QVariant param2, QVariant param3, QVariant param4, QVariant param5, QVariant param6, QVariant param7)
...@@ -43,13 +42,6 @@ void CustomCommandWidgetController::sendCommand(int commandId, QVariant componen ...@@ -43,13 +42,6 @@ void CustomCommandWidgetController::sendCommand(int commandId, QVariant componen
} }
} }
void CustomCommandWidgetController::_activeVehicleChanged(Vehicle* activeVehicle)
{
if (activeVehicle) {
_vehicle = activeVehicle;
}
}
void CustomCommandWidgetController::selectQmlFile(void) void CustomCommandWidgetController::selectQmlFile(void)
{ {
QSettings settings; QSettings settings;
......
...@@ -32,9 +32,6 @@ public: ...@@ -32,9 +32,6 @@ public:
signals: signals:
void customQmlFileChanged (const QString& customQmlFile); void customQmlFileChanged (const QString& customQmlFile);
private slots:
void _activeVehicleChanged (Vehicle* activeVehicle);
private: private:
Vehicle* _vehicle; Vehicle* _vehicle;
QString _customQmlFile; QString _customQmlFile;
......
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