Warning, /pim/itinerary/src/app/CountryComboBox.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 SPDX-FileCopyrightText: 2021-2022 Volker Krause <vkrause@kde.org>
0003 SPDX-License-Identifier: LGPL-2.0-or-later
0004 */
0005
0006 import QtQuick
0007 import QtQuick.Controls as QQC2
0008 import org.kde.i18n.localeData
0009
0010 /** Combo box for showing a list of countries.
0011 * The model is expected to be an array of ISO 3166-1 alpha 2 codes.
0012 */
0013 QQC2.ComboBox {
0014 id: root
0015
0016 /** The currently selected country, as a KCountry object. */
0017 readonly property var currentCountry: Country.fromAlpha2(currentValue)
0018
0019 /** Initially selected country. */
0020 property string initialCountry
0021
0022 onModelChanged: {
0023 model = model.sort((lhs, rhs) => { return Country.fromAlpha2(lhs).name.localeCompare(Country.fromAlpha2(rhs).name); });
0024 }
0025
0026 displayText: currentCountry ? (currentCountry.emojiFlag + ' ' + currentCountry.name) : ""
0027
0028 delegate: QQC2.ItemDelegate {
0029 id: delegate
0030 text: {
0031 const c = Country.fromAlpha2(modelData);
0032 return c.emojiFlag + ' ' + c.name;
0033 }
0034 width: parent ? parent.width : undefined
0035
0036 Accessible.name: Country.fromAlpha2(modelData).name
0037 Accessible.onPressAction: delegate.clicked()
0038 }
0039
0040 Component.onCompleted: {
0041 if (initialCountry) {
0042 currentIndex = indexOfValue(initialCountry);
0043 }
0044 }
0045
0046 Accessible.name: currentCountry.name
0047 Accessible.description: i18n("Select country")
0048 Accessible.onPressAction: root.popup.open()
0049 }