Browse Source

AppMessages: Add search in log category

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
QGC4.4
Patrick José Pereira 5 years ago
parent
commit
978f5da71a
  1. 102
      src/QmlControls/AppMessages.qml

102
src/QmlControls/AppMessages.qml

@ -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 {
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()
}
} }
} }
} }

Loading…
Cancel
Save