Filtering on history!
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Adsooi 2022-02-01 09:59:31 +01:00
parent 600027a707
commit 3f107f1ba4
Signed by: Ad5001
GPG key ID: EF45F9C6AFE20160
4 changed files with 138 additions and 91 deletions

View file

@ -18,6 +18,7 @@
import QtQuick.Controls 2.12 import QtQuick.Controls 2.12
import QtQuick 2.12 import QtQuick 2.12
import eu.ad5001.LogarithmPlotter.Setting 1.0 as Setting
import "../js/utils.js" as Utils import "../js/utils.js" as Utils
@ -32,11 +33,9 @@ import "../js/utils.js" as Utils
\sa LogarithmPlotter, Settings, ObjectLists \sa LogarithmPlotter, Settings, ObjectLists
*/ */
ScrollView { Item {
id: historyBrowser id: historyBrowser
ScrollBar.horizontal.visible: false
/*! /*!
\qmlproperty int HistoryBrowser::actionWidth \qmlproperty int HistoryBrowser::actionWidth
Width of the actions. Width of the actions.
@ -49,6 +48,22 @@ ScrollView {
*/ */
property bool darkTheme: isDarkTheme() property bool darkTheme: isDarkTheme()
Setting.TextSetting {
id: filterInput
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
placeholderText: "Filter..."
}
ScrollView {
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.top: filterInput.bottom
ScrollBar.horizontal.visible: false
Flickable { Flickable {
width: parent.width width: parent.width
height: parent.height height: parent.height
@ -71,6 +86,7 @@ ScrollView {
isRedo: true isRedo: true
idx: index idx: index
darkTheme: historyBrowser.darkTheme darkTheme: historyBrowser.darkTheme
hidden: !(filterInput.value == "" || content.includes(filterInput.value))
} }
} }
} }
@ -119,6 +135,7 @@ ScrollView {
isRedo: false isRedo: false
idx: index idx: index
darkTheme: historyBrowser.darkTheme darkTheme: historyBrowser.darkTheme
hidden: !(filterInput.value == "" || content.includes(filterInput.value))
} }
} }
} }
@ -134,6 +151,7 @@ ScrollView {
visible: history.undoCount > 0 visible: history.undoCount > 0
} }
} }
}
/*! /*!
\qmlmethod bool HistoryBrowser::isDarkTheme() \qmlmethod bool HistoryBrowser::isDarkTheme()

View file

@ -49,10 +49,15 @@ Button {
*/ */
property int idx property int idx
/*! /*!
\qmlproperty int HistoryItem::idx \qmlproperty bool HistoryItem::darkTheme
true when the system is running with a dark theme, false otherwise. true when the system is running with a dark theme, false otherwise.
*/ */
property bool darkTheme property bool darkTheme
/*!
\qmlproperty bool HistoryItem::hidden
true when the item is filtered out, false otherwise.
*/
property bool hidden: false
/*! /*!
\qmlproperty int HistoryItem::historyAction \qmlproperty int HistoryItem::historyAction
Associated history action. Associated history action.
@ -69,12 +74,18 @@ Button {
Color of the history action. Color of the history action.
*/ */
readonly property color clr: historyAction.color(darkTheme) readonly property color clr: historyAction.color(darkTheme)
/*!
\qmlproperty string HistoryItem::clr
Label description of the history item.
*/
readonly property string content: historyAction.getReadableString()
height: Math.max(actionHeight, label.height + 15) height: hidden ? 8 : Math.max(actionHeight, label.height + 15)
LinearGradient { LinearGradient {
anchors.fill: parent anchors.fill: parent
visible: !hidden
start: Qt.point(0, 0) start: Qt.point(0, 0)
end: Qt.point(parent.width, 0) end: Qt.point(parent.width, 0)
gradient: Gradient { gradient: Gradient {
@ -85,11 +96,12 @@ Button {
Setting.Icon { Setting.Icon {
id: icon id: icon
width: 18
height: 18
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: 6 anchors.leftMargin: 6
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
visible: !hidden
width: 18
height: 18
color: sysPalette.windowText color: sysPalette.windowText
source: `../icons/history/${historyAction.icon()}.svg` source: `../icons/history/${historyAction.icon()}.svg`
@ -102,6 +114,7 @@ Button {
anchors.leftMargin: 6 anchors.leftMargin: 6
anchors.rightMargin: 20 anchors.rightMargin: 20
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
visible: !hidden
font.pixelSize: 14 font.pixelSize: 14
text: historyAction.getHTMLString().replace(/\$\{tag_color\}/g, clr) text: historyAction.getHTMLString().replace(/\$\{tag_color\}/g, clr)
textFormat: Text.RichText textFormat: Text.RichText
@ -109,11 +122,21 @@ Button {
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
} }
//text: historyAction.getReadableString() Rectangle {
id: hiddenDot
anchors.centerIn: parent
visible: hidden
width: 5
height: 5
radius: 5
color: sysPalette.windowText
}
//text: content
ToolTip.visible: hovered ToolTip.visible: hovered
ToolTip.delay: 200 ToolTip.delay: 200
ToolTip.text: historyAction.getReadableString() ToolTip.text: content
onClicked: { onClicked: {
if(isRedo) if(isRedo)

View file

@ -77,7 +77,7 @@ ListView {
Label { Label {
id: typeHeaderText id: typeHeaderText
verticalAlignment: TextInput.AlignVCenter verticalAlignment: TextInput.AlignVCenter
text: Objects.types[objType].displayTypeMultiple() + ":" text: qsTranslate("control", "%1: ").arg(Objects.types[objType].displayTypeMultiple())
font.pixelSize: 20 font.pixelSize: 20
} }
} }

View file

@ -63,6 +63,11 @@ Item {
Value of the input. Value of the input.
*/ */
property alias value: input.text property alias value: input.text
/*!
\qmlproperty string TextSetting::placeholderText
Value of the input.
*/
property alias placeholderText: input.placeholderText
/*! /*!
\qmlproperty string TextSetting::label \qmlproperty string TextSetting::label
Label of the setting. Label of the setting.
@ -92,7 +97,8 @@ Item {
anchors.top: parent.top anchors.top: parent.top
verticalAlignment: TextInput.AlignVCenter verticalAlignment: TextInput.AlignVCenter
//color: sysPalette.windowText //color: sysPalette.windowText
text: qsTranslate("control", "%1: ").arg(control.label) text: visible ? qsTranslate("control", "%1: ").arg(control.label) : ""
visible: control.label != ""
} }
@ -101,10 +107,10 @@ Item {
anchors.top: parent.top anchors.top: parent.top
anchors.left: labelItem.right anchors.left: labelItem.right
anchors.leftMargin: 5 anchors.leftMargin: 5
width: control.width - labelItem.width - iconLabel.width - 10 width: control.width - (labelItem.visible ? labelItem.width + 5 : 0) - iconLabel.width - 5
height: parent.height height: parent.height
verticalAlignment: TextInput.AlignVCenter verticalAlignment: TextInput.AlignVCenter
horizontalAlignment: TextInput.AlignHCenter horizontalAlignment: control.label == "" ? TextInput.AlignLeft : TextInput.AlignHCenter
color: sysPalette.windowText color: sysPalette.windowText
focus: true focus: true
text: control.defValue text: control.defValue