1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-18 08:54:15 +01:00

OP-1245 Added separate spinbox for period when throttled or periodically is chosen.

Added empty placeholder methods for some functions.
This commit is contained in:
m_thread 2014-03-08 17:28:46 +01:00
parent cbe4eea01e
commit d25eb01583
3 changed files with 113 additions and 11 deletions

View File

@ -227,6 +227,47 @@ Rectangle {
} }
} }
Component {
id: spinnerEditableDelegate
Item {
Text {
width: parent.width
anchors.left: parent.left
anchors.verticalCenter: parent.verticalCenter
elide: styleData.elideMode
text: styleData.value !== undefined && (logManager.uavoEntries[styleData.row].setting > 1) ?
parseInt(logManager.uavoEntries[styleData.row].period) + " ms" : "-"
color: styleData.textColor
//visible: !styleData.selected && (logManager.uavoEntries[styleData.row].setting <= 1)
enabled: (logManager.uavoEntries[styleData.row].setting > 1)
}
Loader {
id: loaderEditor
anchors.fill: parent
Connections {
target: loaderEditor.item
onValueChanged: {
logManager.uavoEntries[styleData.row].period = loaderEditor.item.value
}
}
sourceComponent: styleData.selected && (logManager.uavoEntries[styleData.row].setting > 1) ? editor : null
Component {
id: editor
SpinBox {
id: spinner
decimals: 0
minimumValue: 0
maximumValue: 1000 * 60 * 60 //1h
suffix: "ms"
stepSize: 10
value: styleData.value
}
}
}
}
}
TableView { TableView {
id: settingsTable id: settingsTable
Layout.fillWidth: true Layout.fillWidth: true
@ -243,7 +284,7 @@ Rectangle {
TableViewColumn { TableViewColumn {
role: "name"; role: "name";
title: qsTr("UAVObject"); title: qsTr("UAVObject");
width: 200; width: 250;
delegate: delegate:
Text { Text {
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
@ -256,9 +297,16 @@ Rectangle {
TableViewColumn { TableViewColumn {
role: "setting"; role: "setting";
title: qsTr("Settings"); title: qsTr("Settings");
width: 200; width: 160;
delegate: comboEditableDelegate delegate: comboEditableDelegate
} }
TableViewColumn {
role: "period";
title: qsTr("Period");
width: 120;
delegate: spinnerEditableDelegate
}
} }
RowLayout { RowLayout {
Layout.fillWidth: true Layout.fillWidth: true
@ -268,16 +316,19 @@ Rectangle {
enabled: !logManager.disableControls && logManager.boardConnected enabled: !logManager.disableControls && logManager.boardConnected
text: qsTr("Load...") text: qsTr("Load...")
activeFocusOnPress: true activeFocusOnPress: true
onClicked: logManager.loadSettings()
} }
Button { Button {
enabled: !logManager.disableControls && logManager.boardConnected enabled: !logManager.disableControls && logManager.boardConnected
text: qsTr("Save...") text: qsTr("Save...")
activeFocusOnPress: true activeFocusOnPress: true
onClicked: logManager.saveSettings()
} }
Button { Button {
enabled: !logManager.disableControls && logManager.boardConnected enabled: !logManager.disableControls && logManager.boardConnected
text: qsTr("Reset") text: qsTr("Reset")
activeFocusOnPress: true activeFocusOnPress: true
onClicked: logManager.resetSettings()
} }
Rectangle { Rectangle {
Layout.fillWidth: true Layout.fillWidth: true
@ -286,11 +337,13 @@ Rectangle {
enabled: !logManager.disableControls && logManager.boardConnected enabled: !logManager.disableControls && logManager.boardConnected
text: qsTr("Apply to board") text: qsTr("Apply to board")
activeFocusOnPress: true activeFocusOnPress: true
onClicked: logManager.applySettingsToBoard()
} }
Button { Button {
enabled: !logManager.disableControls && logManager.boardConnected enabled: !logManager.disableControls && logManager.boardConnected
text: qsTr("Save to board") text: qsTr("Save to board")
activeFocusOnPress: true activeFocusOnPress: true
onClicked: logManager.saveSettingsToBoard()
} }
} }
} }

View File

@ -80,6 +80,9 @@ FlightLogManager::~FlightLogManager()
while (!m_logEntries.isEmpty()) { while (!m_logEntries.isEmpty()) {
delete m_logEntries.takeFirst(); delete m_logEntries.takeFirst();
} }
while (!m_uavoEntries.isEmpty()) {
delete m_uavoEntries.takeFirst();
}
} }
void addLogEntries(QQmlListProperty<ExtendedDebugLogEntry> *list, ExtendedDebugLogEntry *entry) void addLogEntries(QQmlListProperty<ExtendedDebugLogEntry> *list, ExtendedDebugLogEntry *entry)
@ -377,6 +380,33 @@ void FlightLogManager::cancelExportLogs()
m_cancelDownload = true; m_cancelDownload = true;
} }
void FlightLogManager::loadSettings()
{
}
void FlightLogManager::saveSettings()
{
}
void FlightLogManager::resetSettings()
{
foreach (UAVOLogSettingsWrapper *wrapper, m_uavoEntries) {
wrapper->setSetting(UAVOLogSettingsWrapper::DISABLED);
}
}
void FlightLogManager::applySettingsToBoard()
{
}
void FlightLogManager::saveSettingsToBoard()
{
}
void FlightLogManager::updateFlightEntries(quint16 currentFlight) void FlightLogManager::updateFlightEntries(quint16 currentFlight)
{ {
Q_UNUSED(currentFlight); Q_UNUSED(currentFlight);
@ -408,8 +438,7 @@ void FlightLogManager::setupUAVOWrappers()
void FlightLogManager::setupLogSettings() void FlightLogManager::setupLogSettings()
{ {
m_logSettings << tr("Disabled") << tr("When updated") << tr("Every 10ms") << tr("Every 50ms") << tr("Every 100ms") m_logSettings << tr("Disabled") << tr("When updated") << tr("Throttled") << tr("Periodically");
<< tr("Every 500ms") << tr("Every second") << tr("Every 5s") << tr("Every 10s") << tr("Every 30s") << tr("Every minute");
} }
void FlightLogManager::setupLogStatuses() void FlightLogManager::setupLogStatuses()
@ -495,7 +524,7 @@ UAVOLogSettingsWrapper::UAVOLogSettingsWrapper() : QObject()
{} {}
UAVOLogSettingsWrapper::UAVOLogSettingsWrapper(UAVObject *object) : QObject(), UAVOLogSettingsWrapper::UAVOLogSettingsWrapper(UAVObject *object) : QObject(),
m_object(object), m_setting(DISABLED) m_object(object), m_setting(DISABLED), m_period(0)
{} {}
UAVOLogSettingsWrapper::~UAVOLogSettingsWrapper() UAVOLogSettingsWrapper::~UAVOLogSettingsWrapper()

View File

@ -46,10 +46,10 @@ class UAVOLogSettingsWrapper : public QObject {
Q_OBJECT Q_OBJECT
Q_PROPERTY(QString name READ name NOTIFY nameChanged) Q_PROPERTY(QString name READ name NOTIFY nameChanged)
Q_PROPERTY(int setting READ setting WRITE setSetting NOTIFY settingChanged) Q_PROPERTY(int setting READ setting WRITE setSetting NOTIFY settingChanged)
Q_PROPERTY(int period READ period WRITE setPeriod NOTIFY periodChanged)
public: public:
enum UAVLogSetting {DISABLED = 0, ON_CHANGE, EVERY_10MS, EVERY_50MS, EVERY_100MS, enum UAVLogSetting {DISABLED = 0, ON_CHANGE, THROTTLED, PERIODICALLY};
EVERY_500MS, EVERY_1S, EVERY_5S, EVERY_10S, EVERY_30S, EVERY_1M};
explicit UAVOLogSettingsWrapper(); explicit UAVOLogSettingsWrapper();
explicit UAVOLogSettingsWrapper(UAVObject* object); explicit UAVOLogSettingsWrapper(UAVObject* object);
@ -65,22 +65,37 @@ public:
return m_setting; return m_setting;
} }
int period() const
{
return m_period;
}
public slots: public slots:
void setSetting(int setting) void setSetting(int setting)
{ {
if (m_setting != (int)setting) { if (m_setting != setting) {
m_setting = (int)setting; m_setting = setting;
emit settingChanged((int)setting); emit settingChanged(setting);
}
}
void setPeriod(int arg)
{
if (m_period != arg) {
m_period = arg;
emit periodChanged(arg);
} }
} }
signals: signals:
void settingChanged(int setting); void settingChanged(int setting);
void nameChanged(); void nameChanged(QString name);
void periodChanged(int period);
private: private:
UAVObject *m_object; UAVObject *m_object;
int m_setting; int m_setting;
int m_period;
}; };
class ExtendedDebugLogEntry : public DebugLogEntry { class ExtendedDebugLogEntry : public DebugLogEntry {
@ -203,6 +218,11 @@ public slots:
void retrieveLogs(int flightToRetrieve = -1); void retrieveLogs(int flightToRetrieve = -1);
void exportLogs(); void exportLogs();
void cancelExportLogs(); void cancelExportLogs();
void loadSettings();
void saveSettings();
void resetSettings();
void applySettingsToBoard();
void saveSettingsToBoard();
void setDisableControls(bool arg) void setDisableControls(bool arg)
{ {