Commit 978f5da7 authored by Patrick José Pereira's avatar Patrick José Pereira

AppMessages: Add search in log category

Signed-off-by: 's avatarPatrick José Pereira <patrickelectric@gmail.com>
parent cd7a5f81
...@@ -11,6 +11,7 @@ import QtQuick 2.3 ...@@ -11,6 +11,7 @@ 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 QtQuick.Layouts 1.12
import QGroundControl 1.0 import QGroundControl 1.0
import QGroundControl.Palette 1.0 import QGroundControl.Palette 1.0
...@@ -28,47 +29,78 @@ Item { ...@@ -28,47 +29,78 @@ Item {
Component { Component {
id: filtersDialogComponent id: filtersDialogComponent
QGCViewDialog { QGCViewDialog {
QGCFlickable { ColumnLayout {
anchors.fill: parent anchors.fill: parent
contentHeight: categoryColumn.height RowLayout {
clip: true spacing: ScreenTools.defaultFontPixelHeight / 2
Column { Layout.alignment: Qt.AlignVCenter
id: categoryColumn Layout.fillHeight: true
Layout.fillWidth: true
QGCLabel {
text: qsTr("Search:")
}
QGCTextField {
id: searchText
text: ""
Layout.fillWidth: true
enabled: true
}
QGCButton {
text: qsTr("Clear")
onClicked: searchText.text = ""
}
}
Row {
spacing: ScreenTools.defaultFontPixelHeight / 2 spacing: ScreenTools.defaultFontPixelHeight / 2
Row { QGCButton {
text: qsTr("Set All")
onClicked: categoryRepeater.setAllLogs(true)
}
QGCButton {
text: qsTr("Clear All")
onClicked: categoryRepeater.setAllLogs(false)
}
}
QGCFlickable {
Layout.fillHeight: true
Layout.fillWidth: true
contentHeight: categoryColumn.height
clip: true
Column {
id: categoryColumn
spacing: ScreenTools.defaultFontPixelHeight / 2 spacing: ScreenTools.defaultFontPixelHeight / 2
QGCButton { Repeater {
text: qsTr("Set All") id: categoryRepeater
onClicked: categoryRepeater.setAllLogs(true) model: QGroundControl.loggingCategories()
}
QGCButton {
text: qsTr("Clear All")
onClicked: categoryRepeater.setAllLogs(false)
}
}
Repeater {
id: categoryRepeater
model: QGroundControl.loggingCategories()
function setAllLogs(value) {
var logCategories = QGroundControl.loggingCategories()
for (var category of logCategories) {
QGroundControl.setCategoryLoggingOn(category, value)
}
QGroundControl.updateLoggingFilterRules()
// Update model for repeater
categoryRepeater.model = undefined
categoryRepeater.model = QGroundControl.loggingCategories()
}
QGCCheckBox { function setAllLogs(value) {
text: modelData var logCategories = QGroundControl.loggingCategories()
checked: QGroundControl.categoryLoggingOn(modelData) for (var category of logCategories) {
onClicked: { QGroundControl.setCategoryLoggingOn(category, value)
QGroundControl.setCategoryLoggingOn(modelData, checked) }
QGroundControl.updateLoggingFilterRules() QGroundControl.updateLoggingFilterRules()
// Update model for repeater
categoryRepeater.model = undefined
categoryRepeater.model = QGroundControl.loggingCategories()
}
QGCCheckBox {
text: modelData
visible: searchText.text ? text.match(`(${searchText.text})`, "i") : true
checked: QGroundControl.categoryLoggingOn(modelData)
onClicked: {
QGroundControl.setCategoryLoggingOn(modelData, checked)
QGroundControl.updateLoggingFilterRules()
}
} }
} }
} }
......
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