Warning, /multimedia/plasmatube/src/ui/loginflow/AddInvidiousPage.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com> 0002 // SPDX-License-Identifier: GPL-3.0-or-later 0003 0004 import QtQuick 0005 import QtQuick.Controls as QQC2 0006 import QtQuick.Layouts 0007 import QtQuick.Window 0008 import QtQml.Models 0009 0010 import org.kde.kirigami as Kirigami 0011 import org.kde.kirigamiaddons.formcard as FormCard 0012 import org.kde.kitemmodels as KItemModels 0013 import org.kde.plasmatube 0014 0015 FormCard.FormCardPage { 0016 id: root 0017 0018 title: i18nc("@title:window", "Add Invidious Source") 0019 0020 function addSource(url) { 0021 PlasmaTube.sourceManager.createInvidiousSource(url); 0022 if (root.Window.window !== applicationWindow()) { 0023 root.Window.window.close(); 0024 } 0025 } 0026 0027 FormCard.FormHeader { 0028 title: i18n("Select a instance") 0029 } 0030 0031 FormCard.FormCard { 0032 FormCard.FormTextFieldDelegate { 0033 id: searchDelegate 0034 label: i18n("Search") 0035 placeholderText: i18n("invidious.io") 0036 } 0037 0038 FormCard.FormDelegateSeparator {} 0039 0040 Repeater { 0041 model: KItemModels.KSortFilterProxyModel { 0042 id: filterModel 0043 0044 sourceModel: InvidiousInstancesModel {} 0045 0046 filterString: searchDelegate.text 0047 filterRoleName: "url" 0048 } 0049 0050 delegate: ColumnLayout { 0051 required property int index 0052 required property string url 0053 0054 FormCard.FormDelegateSeparator { 0055 visible: index !== 0 0056 } 0057 0058 FormCard.FormButtonDelegate { 0059 text: url 0060 onClicked: root.addSource(url) 0061 } 0062 } 0063 } 0064 0065 FormCard.FormTextDelegate { 0066 text: i18n("No public instances found.") 0067 visible: filterModel.count === 0 0068 } 0069 0070 FormCard.FormDelegateSeparator { 0071 visible: searchDelegate.text.length !== 0 0072 } 0073 0074 FormCard.FormButtonDelegate { 0075 text: searchDelegate.text 0076 visible: searchDelegate.text.length !== 0 0077 onClicked: root.addSource(searchDelegate.text) 0078 } 0079 } 0080 }