From 978f5da71a91d257d079d9276f00e9108ee4734f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20Jos=C3=A9=20Pereira?= Date: Tue, 21 Apr 2020 16:49:20 -0300 Subject: [PATCH] AppMessages: Add search in log category MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Patrick José Pereira --- src/QmlControls/AppMessages.qml | 102 +++++++++++++++++++++----------- 1 file changed, 67 insertions(+), 35 deletions(-) diff --git a/src/QmlControls/AppMessages.qml b/src/QmlControls/AppMessages.qml index 6fcbc62f4..51505d141 100644 --- a/src/QmlControls/AppMessages.qml +++ b/src/QmlControls/AppMessages.qml @@ -11,6 +11,7 @@ import QtQuick 2.3 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.4 import QtQuick.Dialogs 1.2 +import QtQuick.Layouts 1.12 import QGroundControl 1.0 import QGroundControl.Palette 1.0 @@ -28,47 +29,78 @@ Item { Component { id: filtersDialogComponent QGCViewDialog { - QGCFlickable { - anchors.fill: parent - contentHeight: categoryColumn.height - clip: true - Column { - id: categoryColumn + ColumnLayout { + anchors.fill: parent + RowLayout { + spacing: ScreenTools.defaultFontPixelHeight / 2 + Layout.alignment: Qt.AlignVCenter + 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 - 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 - QGCButton { - text: qsTr("Set All") - onClicked: categoryRepeater.setAllLogs(true) - } - 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() - } + Repeater { + id: categoryRepeater + model: QGroundControl.loggingCategories() - QGCCheckBox { - text: modelData - checked: QGroundControl.categoryLoggingOn(modelData) - onClicked: { - QGroundControl.setCategoryLoggingOn(modelData, checked) + 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 { + text: modelData + visible: searchText.text ? text.match(`(${searchText.text})`, "i") : true + checked: QGroundControl.categoryLoggingOn(modelData) + onClicked: { + QGroundControl.setCategoryLoggingOn(modelData, checked) + QGroundControl.updateLoggingFilterRules() + } } } } -- 2.22.0