Warning, /network/tokodon/src/content/ui/LanguageSelector.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-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0003 0004 import QtQuick 0005 import QtQuick.Controls 2 as QQC2 0006 import QtQuick.Layouts 0007 import org.kde.kirigami 2 as Kirigami 0008 import org.kde.tokodon 0009 import QtQuick.Templates 2.15 as T 0010 import org.kde.kirigamiaddons.delegates as Delegates 0011 import org.kde.kirigamiaddons.components as Components 0012 import org.kde.kitemmodels 0013 0014 import "Components" 0015 0016 Components.MessageDialog { 0017 id: controlRoot 0018 0019 property alias listView: listView 0020 0021 signal codeSelected(code: string) 0022 0023 parent: applicationWindow().overlay 0024 0025 title: i18nc("@title", "Select Language") 0026 0027 implicitWidth: Kirigami.Units.gridUnit * 30 0028 implicitHeight: Kirigami.Units.gridUnit * 30 0029 0030 padding: 0 0031 0032 header: ColumnLayout { 0033 width: parent.width 0034 spacing: 0 0035 0036 RowLayout { 0037 Layout.margins: Kirigami.Units.smallSpacing 0038 Kirigami.Heading { 0039 Layout.leftMargin: Kirigami.Units.smallSpacing 0040 Layout.rightMargin: Kirigami.Units.smallSpacing 0041 Layout.fillWidth: true 0042 text: controlRoot.title 0043 } 0044 0045 QQC2.ToolButton { 0046 icon.name: "dialog-close" 0047 text: i18nc("@action:button", "Close") 0048 display: QQC2.Button.IconOnly 0049 } 0050 } 0051 0052 Kirigami.Separator { 0053 Layout.fillWidth: true 0054 } 0055 } 0056 0057 footer: null 0058 0059 onOpened: listView.positionViewAtIndex(listView.currentIndex, ListView.Center) 0060 0061 contentItem: ListView { 0062 id: listView 0063 0064 clip: true 0065 0066 Kirigami.Theme.colorSet: Kirigami.Theme.View 0067 0068 currentIndex: -1 0069 model: KSortFilterProxyModel{ 0070 sourceModel: RawLanguageModel {} 0071 sortRoleName: "preferred" 0072 sortOrder: Qt.DescendingOrder 0073 } 0074 0075 delegate: Delegates.RoundedItemDelegate { 0076 id: delegate 0077 0078 required property int index 0079 required property string name 0080 required property string code 0081 required property bool preferred 0082 0083 highlighted: ListView.isCurrentItem 0084 text: name 0085 icon.source: preferred ? "favorite" : undefined 0086 0087 onClicked: { 0088 controlRoot.codeSelected(code); 0089 controlRoot.close(); 0090 } 0091 } 0092 } 0093 }