Warning, /network/angelfish/src/contents/ui/SettingsSearchEnginePage.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2020 Rinigus <rinigus.git@gmail.com> 0002 // SPDX-FileCopyrightText: 2020 Jonah BrĂ¼chert <jbb@kaidan.im> 0003 // SPDX-License-Identifier: GPL-2.0-or-later 0004 0005 import QtQuick 2.3 0006 import QtQuick.Controls 2.4 as Controls 0007 import QtQuick.Layouts 1.11 0008 0009 import org.kde.kirigami 2.7 as Kirigami 0010 import org.kde.kirigamiaddons.formcard 1.0 as FormCard 0011 0012 import org.kde.angelfish 1.0 0013 0014 Kirigami.ScrollablePage { 0015 id: root 0016 title: i18n("Search Engine") 0017 0018 leftPadding: 0 0019 rightPadding: 0 0020 topPadding: Kirigami.Units.gridUnit 0021 bottomPadding: Kirigami.Units.gridUnit 0022 0023 Kirigami.Theme.colorSet: Kirigami.Theme.Window 0024 Kirigami.Theme.inherit: false 0025 0026 property string baseUrl: Settings.searchBaseUrl 0027 0028 ColumnLayout { 0029 id: list 0030 spacing: 0 0031 0032 property string customName: i18n("Custom") 0033 0034 FormCard.FormHeader { 0035 title: root.title 0036 } 0037 0038 FormCard.FormCard { 0039 Layout.fillWidth: true 0040 0041 Repeater { 0042 model: ListModel { 0043 id: searchEngines 0044 0045 ListElement { 0046 title: "Bing" 0047 url: "https://www.bing.com/search?q=" 0048 } 0049 0050 ListElement { 0051 title: "DuckDuckGo" 0052 url: "https://start.duckduckgo.com/?q=" 0053 } 0054 0055 ListElement { 0056 title: "Ecosia" 0057 url: "https://www.ecosia.org/search?q=" 0058 } 0059 0060 ListElement { 0061 title: "Google" 0062 url: "https://www.google.com/search?q=" 0063 } 0064 0065 ListElement { 0066 title: "Lilo" 0067 url: "https://search.lilo.org/searchweb.php?q=" 0068 } 0069 0070 ListElement { 0071 title: "Peekier" 0072 url: "https://peekier.com/#!" 0073 } 0074 0075 ListElement { 0076 title: "Qwant" 0077 url: "https://www.qwant.com/?q=" 0078 } 0079 0080 ListElement { 0081 title: "Qwant Junior" 0082 url: "https://www.qwantjunior.com/?q=" 0083 } 0084 0085 ListElement { 0086 title: "StartPage" 0087 url: "https://www.startpage.com/do/dsearch?query=" 0088 } 0089 0090 ListElement { 0091 title: "Swisscows" 0092 url: "https://swisscows.com/web?query=" 0093 } 0094 0095 ListElement { 0096 title: "Wikipedia" 0097 url: "https://wikipedia.org/wiki/Special:Search?search=" 0098 } 0099 } 0100 0101 delegate: FormCard.FormRadioDelegate { 0102 checked: model.url === baseUrl 0103 text: model.title 0104 onClicked: { 0105 if (model.title !== list.customName) 0106 baseUrl = model.url; 0107 else { 0108 searchEnginePopup.open(); 0109 } 0110 // restore property binding 0111 checked = Qt.binding(function() { return (model.url === baseUrl) }); 0112 } 0113 } 0114 } 0115 } 0116 0117 // custom search engine input sheet 0118 InputSheet { 0119 id: searchEnginePopup 0120 title: i18n("Search Engine") 0121 description: i18n("Base URL of your preferred search engine") 0122 text: Settings.searchCustomUrl 0123 onAccepted: { 0124 const url = UrlUtils.urlFromUserInput(searchEnginePopup.text); 0125 Settings.searchCustomUrl = url; 0126 baseUrl = url; 0127 searchEngines.setProperty(searchEngines.count - 1, "url", url); 0128 } 0129 } 0130 } 0131 0132 onBaseUrlChanged: { 0133 Settings.searchBaseUrl = UrlUtils.urlFromUserInput(baseUrl); 0134 } 0135 0136 Component.onCompleted: { 0137 searchEngines.append({ "title": list.customName, "url": Settings.searchCustomUrl }); 0138 } 0139 }