Warning, /utilities/toad/src/ui/Footer.qml is written in an unsupported language. File is not indexed.

0001 // SPDX-FileCopyrightText: 2022 Felipe Kinoshita <kinofhek@gmail.com>
0002 // SPDX-License-Identifier: GPL-3.0-or-later
0003 
0004 import QtQuick 2.15
0005 import QtQuick.Controls 2.15 as QQC2
0006 import QtQuick.Layouts 1.15
0007 import org.kde.kirigami 2.19 as Kirigami
0008 
0009 import org.kde.tasks 1.0
0010 
0011 Kirigami.ActionTextField {
0012     id: control
0013 
0014     required property TasksModel tasksModel
0015     property bool searching: page.searching
0016 
0017     onSearchingChanged: {
0018         if (page.searching) {
0019             forceActiveFocus()
0020 
0021             if (text == "/") {
0022                 return
0023             }
0024             text = text.length <= 0 ? "/" : `/${text}`
0025         } else {
0026             text = text.slice(1)
0027         }
0028     }
0029 
0030     placeholderText: i18n("Type the new task's title hereā€¦")
0031 
0032     function addTask() {
0033         if (page.searching) {
0034             return
0035         }
0036         if (text.length > 0 && text.trim()) {
0037             control.tasksModel.add(text)
0038         }
0039         text = ""
0040     }
0041 
0042     rightActions: Kirigami.Action {
0043         id: rightAction
0044         icon.name: "list-add"
0045         visible: control.text.length > 0
0046         tooltip: i18n("Add Task")
0047         onTriggered: control.addTask()
0048     }
0049     onAccepted: control.addTask()
0050     onTextChanged: {
0051         if (text.startsWith("/")) {
0052             page.searching = true
0053             rightAction.visible = false
0054             page.currentSearchText = text
0055         } else {
0056             page.searching = false
0057             rightAction.visible = true
0058         }
0059     }
0060 
0061     background: Rectangle {
0062         Kirigami.Theme.inherit: false
0063         Kirigami.Theme.colorSet: Kirigami.Theme.View
0064         color: Kirigami.Theme.backgroundColor
0065         Kirigami.Separator {
0066             anchors {
0067                 top: parent.top
0068                 left: parent.left
0069                 right: parent.right
0070             }
0071         }
0072     }
0073 }