matrixion/resources/qml/dialogs/PhoneNumberInputDialog.qml
2023-10-30 22:17:28 -04:00

1471 lines
41 KiB
QML

// SPDX-FileCopyrightText: Nheko Contributors
//
// SPDX-License-Identifier: GPL-3.0-or-later
import ".."
import QtQuick 2.12
import QtQuick.Controls 2.5
import QtQuick.Layouts 1.3
import im.nheko 1.0
ApplicationWindow {
id: inputDialog
property alias echoMode: statusInput.echoMode
property alias prompt: promptLabel.text
signal accepted(string countryCode, string text)
flags: Qt.Dialog
height: fontMetrics.lineSpacing * 7
modality: Qt.NonModal
width: 350
footer: DialogButtonBox {
standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel
onAccepted: {
inputDialog.accepted(numberPrefix.model.get(numberPrefix.currentIndex).i, statusInput.text);
inputDialog.close();
}
onRejected: {
inputDialog.close();
}
}
GridLayout {
anchors.fill: parent
anchors.margins: Nheko.paddingMedium
columnSpacing: Nheko.paddingMedium
columns: 2
rowSpacing: Nheko.paddingMedium
Label {
id: promptLabel
Layout.columnSpan: 2
color: palette.text
}
ComboBox {
id: numberPrefix
editable: false
delegate: ItemDelegate {
text: n + " (" + p + ")"
}
// taken from https://gitlab.com/whisperfish/whisperfish/-/blob/master/qml/js/countries.js
//n=name,i=ISO,p=prefix -- see countries.js.md for source
model: ListModel {
ListElement {
i: "AF"
n: "Afghanistan"
p: "+93"
}
ListElement {
i: "AX"
n: "Åland Islands"
p: "+358 18"
}
ListElement {
i: "AL"
n: "Albania"
p: "+355"
}
ListElement {
i: "DZ"
n: "Algeria"
p: "+213"
}
ListElement {
i: "AS"
n: "American Samoa"
p: "+1 684"
}
ListElement {
i: "AD"
n: "Andorra"
p: "+376"
}
ListElement {
i: "AO"
n: "Angola"
p: "+244"
}
ListElement {
i: "AI"
n: "Anguilla"
p: "+1 264"
}
ListElement {
i: "AG"
n: "Antigua and Barbuda"
p: "+1 268"
}
ListElement {
i: "AR"
n: "Argentina"
p: "+54"
}
ListElement {
i: "AM"
n: "Armenia"
p: "+374"
}
ListElement {
i: "AW"
n: "Aruba"
p: "+297"
}
ListElement {
i: "SH"
n: "Ascension"
p: "+247"
}
ListElement {
i: "AU"
n: "Australia"
p: "+61"
}
ListElement {
i: "AQ"
n: "Australian Antarctic Territory"
p: "+672 1"
}
//ListElement{n:"Australian External Territories";i:"";p:"+672"} // NO ISO
ListElement {
i: "AT"
n: "Austria"
p: "+43"
}
ListElement {
i: "AZ"
n: "Azerbaijan"
p: "+994"
}
ListElement {
i: "BS"
n: "Bahamas"
p: "+1 242"
}
ListElement {
i: "BH"
n: "Bahrain"
p: "+973"
}
ListElement {
i: "BD"
n: "Bangladesh"
p: "+880"
}
ListElement {
i: "BB"
n: "Barbados"
p: "+1 246"
}
ListElement {
i: "AG"
n: "Barbuda"
p: "+1 268"
}
ListElement {
i: "BY"
n: "Belarus"
p: "+375"
}
ListElement {
i: "BE"
n: "Belgium"
p: "+32"
}
ListElement {
i: "BZ"
n: "Belize"
p: "+501"
}
ListElement {
i: "BJ"
n: "Benin"
p: "+229"
}
ListElement {
i: "BM"
n: "Bermuda"
p: "+1 441"
}
ListElement {
i: "BT"
n: "Bhutan"
p: "+975"
}
ListElement {
i: "BO"
n: "Bolivia"
p: "+591"
}
ListElement {
i: "BQ"
n: "Bonaire"
p: "+599 7"
}
ListElement {
i: "BA"
n: "Bosnia and Herzegovina"
p: "+387"
}
ListElement {
i: "BW"
n: "Botswana"
p: "+267"
}
ListElement {
i: "BR"
n: "Brazil"
p: "+55"
}
ListElement {
i: "IO"
n: "British Indian Ocean Territory"
p: "+246"
}
ListElement {
i: "BN"
n: "Brunei Darussalam"
p: "+673"
}
ListElement {
i: "BG"
n: "Bulgaria"
p: "+359"
}
ListElement {
i: "BF"
n: "Burkina Faso"
p: "+226"
}
ListElement {
i: "BI"
n: "Burundi"
p: "+257"
}
ListElement {
i: "KH"
n: "Cambodia"
p: "+855"
}
ListElement {
i: "CM"
n: "Cameroon"
p: "+237"
}
ListElement {
i: "CA"
n: "Canada"
p: "+1"
}
ListElement {
i: "CV"
n: "Cape Verde"
p: "+238"
}
//ListElement{n:"Caribbean Netherlands";i:"";p:"+599 3"} // NO ISO
//ListElement{n:"Caribbean Netherlands";i:"";p:"+599 4"} // NO ISO
//ListElement{n:"Caribbean Netherlands";i:"";p:"+599 7"} // NO ISO
ListElement {
i: "KY"
n: "Cayman Islands"
p: "+1 345"
}
ListElement {
i: "CF"
n: "Central African Republic"
p: "+236"
}
ListElement {
i: "TD"
n: "Chad"
p: "+235"
}
ListElement {
i: "NZ"
n: "Chatham Island (New Zealand)"
p: "+64"
}
ListElement {
i: "CL"
n: "Chile"
p: "+56"
}
ListElement {
i: "CN"
n: "China"
p: "+86"
}
ListElement {
i: "CX"
n: "Christmas Island"
p: "+61 89164"
}
ListElement {
i: "CC"
n: "Cocos (Keeling) Islands"
p: "+61 89162"
}
ListElement {
i: "CO"
n: "Colombia"
p: "+57"
}
ListElement {
i: "KM"
n: "Comoros"
p: "+269"
}
ListElement {
i: "CD"
n: "Congo (Democratic Republic of the)"
p: "+243"
}
ListElement {
i: "CG"
n: "Congo"
p: "+242"
}
ListElement {
i: "CK"
n: "Cook Islands"
p: "+682"
}
ListElement {
i: "CR"
n: "Costa Rica"
p: "+506"
}
ListElement {
i: "CI"
n: "Côte d'Ivoire"
p: "+225"
}
ListElement {
i: "HR"
n: "Croatia"
p: "+385"
}
ListElement {
i: "CU"
n: "Cuba"
p: "+53"
}
ListElement {
i: "CW"
n: "Curaçao"
p: "+599 9"
}
ListElement {
i: "CY"
n: "Cyprus"
p: "+357"
}
ListElement {
i: "CZ"
n: "Czech Republic"
p: "+420"
}
ListElement {
i: "DK"
n: "Denmark"
p: "+45"
}
//ListElement{n:"Diego Garcia";i:"";p:"+246"} // NO ISO, OCC. BY GB
ListElement {
i: "DJ"
n: "Djibouti"
p: "+253"
}
ListElement {
i: "DM"
n: "Dominica"
p: "+1 767"
}
ListElement {
i: "DO"
n: "Dominican Republic"
p: "+1 809"
}
ListElement {
i: "DO"
n: "Dominican Republic"
p: "+1 829"
}
ListElement {
i: "DO"
n: "Dominican Republic"
p: "+1 849"
}
ListElement {
i: "CL"
n: "Easter Island"
p: "+56"
}
ListElement {
i: "EC"
n: "Ecuador"
p: "+593"
}
ListElement {
i: "EG"
n: "Egypt"
p: "+20"
}
ListElement {
i: "SV"
n: "El Salvador"
p: "+503"
}
ListElement {
i: "GQ"
n: "Equatorial Guinea"
p: "+240"
}
ListElement {
i: "ER"
n: "Eritrea"
p: "+291"
}
ListElement {
i: "EE"
n: "Estonia"
p: "+372"
}
ListElement {
i: "SZ"
n: "eSwatini"
p: "+268"
}
ListElement {
i: "ET"
n: "Ethiopia"
p: "+251"
}
ListElement {
i: "FK"
n: "Falkland Islands (Malvinas)"
p: "+500"
}
ListElement {
i: "FO"
n: "Faroe Islands"
p: "+298"
}
ListElement {
i: "FJ"
n: "Fiji"
p: "+679"
}
ListElement {
i: "FI"
n: "Finland"
p: "+358"
}
ListElement {
i: "FR"
n: "France"
p: "+33"
}
//ListElement{n:"French Antilles";i:"";p:"+596"} // NO ISO
ListElement {
i: "GF"
n: "French Guiana"
p: "+594"
}
ListElement {
i: "PF"
n: "French Polynesia"
p: "+689"
}
ListElement {
i: "GA"
n: "Gabon"
p: "+241"
}
ListElement {
i: "GM"
n: "Gambia"
p: "+220"
}
ListElement {
i: "GE"
n: "Georgia"
p: "+995"
}
ListElement {
i: "DE"
n: "Germany"
p: "+49"
}
ListElement {
i: "GH"
n: "Ghana"
p: "+233"
}
ListElement {
i: "GI"
n: "Gibraltar"
p: "+350"
}
ListElement {
i: "GR"
n: "Greece"
p: "+30"
}
ListElement {
i: "GL"
n: "Greenland"
p: "+299"
}
ListElement {
i: "GD"
n: "Grenada"
p: "+1 473"
}
ListElement {
i: "GP"
n: "Guadeloupe"
p: "+590"
}
ListElement {
i: "GU"
n: "Guam"
p: "+1 671"
}
ListElement {
i: "GT"
n: "Guatemala"
p: "+502"
}
ListElement {
i: "GG"
n: "Guernsey"
p: "+44 1481"
}
ListElement {
i: "GG"
n: "Guernsey"
p: "+44 7781"
}
ListElement {
i: "GG"
n: "Guernsey"
p: "+44 7839"
}
ListElement {
i: "GG"
n: "Guernsey"
p: "+44 7911"
}
ListElement {
i: "GW"
n: "Guinea-Bissau"
p: "+245"
}
ListElement {
i: "GN"
n: "Guinea"
p: "+224"
}
ListElement {
i: "GY"
n: "Guyana"
p: "+592"
}
ListElement {
i: "HT"
n: "Haiti"
p: "+509"
}
ListElement {
i: "HN"
n: "Honduras"
p: "+504"
}
ListElement {
i: "HK"
n: "Hong Kong"
p: "+852"
}
ListElement {
i: "HU"
n: "Hungary"
p: "+36"
}
ListElement {
i: "IS"
n: "Iceland"
p: "+354"
}
ListElement {
i: "IN"
n: "India"
p: "+91"
}
ListElement {
i: "ID"
n: "Indonesia"
p: "+62"
}
ListElement {
i: "IR"
n: "Iran"
p: "+98"
}
ListElement {
i: "IQ"
n: "Iraq"
p: "+964"
}
ListElement {
i: "IE"
n: "Ireland"
p: "+353"
}
ListElement {
i: "IM"
n: "Isle of Man"
p: "+44 1624"
}
ListElement {
i: "IM"
n: "Isle of Man"
p: "+44 7524"
}
ListElement {
i: "IM"
n: "Isle of Man"
p: "+44 7624"
}
ListElement {
i: "IM"
n: "Isle of Man"
p: "+44 7924"
}
ListElement {
i: "IL"
n: "Israel"
p: "+972"
}
ListElement {
i: "IT"
n: "Italy"
p: "+39"
}
ListElement {
i: "JM"
n: "Jamaica"
p: "+1 876"
}
ListElement {
i: "SJ"
n: "Jan Mayen"
p: "+47 79"
}
ListElement {
i: "JP"
n: "Japan"
p: "+81"
}
ListElement {
i: "JE"
n: "Jersey"
p: "+44 1534"
}
ListElement {
i: "JO"
n: "Jordan"
p: "+962"
}
ListElement {
i: "KZ"
n: "Kazakhstan"
p: "+7 6"
}
ListElement {
i: "KZ"
n: "Kazakhstan"
p: "+7 7"
}
ListElement {
i: "KE"
n: "Kenya"
p: "+254"
}
ListElement {
i: "KI"
n: "Kiribati"
p: "+686"
}
ListElement {
i: "KP"
n: "Korea (North)"
p: "+850"
}
ListElement {
i: "KR"
n: "Korea (South)"
p: "+82"
}
// TEMP. CODE
ListElement {
i: "XK"
n: "Kosovo"
p: "+383"
}
ListElement {
i: "KW"
n: "Kuwait"
p: "+965"
}
ListElement {
i: "KG"
n: "Kyrgyzstan"
p: "+996"
}
ListElement {
i: "LA"
n: "Laos"
p: "+856"
}
ListElement {
i: "LV"
n: "Latvia"
p: "+371"
}
ListElement {
i: "LB"
n: "Lebanon"
p: "+961"
}
ListElement {
i: "LS"
n: "Lesotho"
p: "+266"
}
ListElement {
i: "LR"
n: "Liberia"
p: "+231"
}
ListElement {
i: "LY"
n: "Libya"
p: "+218"
}
ListElement {
i: "LI"
n: "Liechtenstein"
p: "+423"
}
ListElement {
i: "LT"
n: "Lithuania"
p: "+370"
}
ListElement {
i: "LU"
n: "Luxembourg"
p: "+352"
}
ListElement {
i: "MO"
n: "Macau (Macao)"
p: "+853"
}
ListElement {
i: "MG"
n: "Madagascar"
p: "+261"
}
ListElement {
i: "MW"
n: "Malawi"
p: "+265"
}
ListElement {
i: "MY"
n: "Malaysia"
p: "+60"
}
ListElement {
i: "MV"
n: "Maldives"
p: "+960"
}
ListElement {
i: "ML"
n: "Mali"
p: "+223"
}
ListElement {
i: "MT"
n: "Malta"
p: "+356"
}
ListElement {
i: "MH"
n: "Marshall Islands"
p: "+692"
}
ListElement {
i: "MQ"
n: "Martinique"
p: "+596"
}
ListElement {
i: "MR"
n: "Mauritania"
p: "+222"
}
ListElement {
i: "MU"
n: "Mauritius"
p: "+230"
}
ListElement {
i: "YT"
n: "Mayotte"
p: "+262 269"
}
ListElement {
i: "YT"
n: "Mayotte"
p: "+262 639"
}
ListElement {
i: "MX"
n: "Mexico"
p: "+52"
}
ListElement {
i: "FM"
n: "Micronesia (Federated States of)"
p: "+691"
}
ListElement {
i: "US"
n: "Midway Island (USA)"
p: "+1 808"
}
ListElement {
i: "MD"
n: "Moldova"
p: "+373"
}
ListElement {
i: "MC"
n: "Monaco"
p: "+377"
}
ListElement {
i: "MN"
n: "Mongolia"
p: "+976"
}
ListElement {
i: "ME"
n: "Montenegro"
p: "+382"
}
ListElement {
i: "MS"
n: "Montserrat"
p: "+1 664"
}
ListElement {
i: "MA"
n: "Morocco"
p: "+212"
}
ListElement {
i: "MZ"
n: "Mozambique"
p: "+258"
}
ListElement {
i: "MM"
n: "Myanmar"
p: "+95"
}
// NO OWN ISO, DISPUTED
ListElement {
i: "AZ"
n: "Nagorno-Karabakh"
p: "+374 47"
}
// NO OWN ISO, DISPUTED
ListElement {
i: "AZ"
n: "Nagorno-Karabakh"
p: "+374 97"
}
ListElement {
i: "NA"
n: "Namibia"
p: "+264"
}
ListElement {
i: "NR"
n: "Nauru"
p: "+674"
}
ListElement {
i: "NP"
n: "Nepal"
p: "+977"
}
ListElement {
i: "NL"
n: "Netherlands"
p: "+31"
}
ListElement {
i: "KN"
n: "Nevis"
p: "+1 869"
}
ListElement {
i: "NC"
n: "New Caledonia"
p: "+687"
}
ListElement {
i: "NZ"
n: "New Zealand"
p: "+64"
}
ListElement {
i: "NI"
n: "Nicaragua"
p: "+505"
}
ListElement {
i: "NG"
n: "Nigeria"
p: "+234"
}
ListElement {
i: "NE"
n: "Niger"
p: "+227"
}
ListElement {
i: "NU"
n: "Niue"
p: "+683"
}
ListElement {
i: "NF"
n: "Norfolk Island"
p: "+672 3"
}
// OCC. BY TR
ListElement {
i: "CY"
n: "Northern Cyprus"
p: "+90 392"
}
ListElement {
i: "GB"
n: "Northern Ireland"
p: "+44 28"
}
ListElement {
i: "MP"
n: "Northern Mariana Islands"
p: "+1 670"
}
ListElement {
i: "MK"
n: "North Macedonia"
p: "+389"
}
ListElement {
i: "NO"
n: "Norway"
p: "+47"
}
ListElement {
i: "OM"
n: "Oman"
p: "+968"
}
ListElement {
i: "PK"
n: "Pakistan"
p: "+92"
}
ListElement {
i: "PW"
n: "Palau"
p: "+680"
}
ListElement {
i: "PS"
n: "Palestine (State of)"
p: "+970"
}
ListElement {
i: "PA"
n: "Panama"
p: "+507"
}
ListElement {
i: "PG"
n: "Papua New Guinea"
p: "+675"
}
ListElement {
i: "PY"
n: "Paraguay"
p: "+595"
}
ListElement {
i: "PE"
n: "Peru"
p: "+51"
}
ListElement {
i: "PH"
n: "Philippines"
p: "+63"
}
ListElement {
i: "PN"
n: "Pitcairn Islands"
p: "+64"
}
ListElement {
i: "PL"
n: "Poland"
p: "+48"
}
ListElement {
i: "PT"
n: "Portugal"
p: "+351"
}
ListElement {
i: "PR"
n: "Puerto Rico"
p: "+1 787"
}
ListElement {
i: "PR"
n: "Puerto Rico"
p: "+1 939"
}
ListElement {
i: "QA"
n: "Qatar"
p: "+974"
}
ListElement {
i: "RE"
n: "Réunion"
p: "+262"
}
ListElement {
i: "RO"
n: "Romania"
p: "+40"
}
ListElement {
i: "RU"
n: "Russia"
p: "+7"
}
ListElement {
i: "RW"
n: "Rwanda"
p: "+250"
}
ListElement {
i: "BQ"
n: "Saba"
p: "+599 4"
}
ListElement {
i: "BL"
n: "Saint Barthélemy"
p: "+590"
}
ListElement {
i: "SH"
n: "Saint Helena"
p: "+290"
}
ListElement {
i: "KN"
n: "Saint Kitts and Nevis"
p: "+1 869"
}
ListElement {
i: "LC"
n: "Saint Lucia"
p: "+1 758"
}
ListElement {
i: "MF"
n: "Saint Martin (France)"
p: "+590"
}
ListElement {
i: "PM"
n: "Saint Pierre and Miquelon"
p: "+508"
}
ListElement {
i: "VC"
n: "Saint Vincent and the Grenadines"
p: "+1 784"
}
ListElement {
i: "WS"
n: "Samoa"
p: "+685"
}
ListElement {
i: "SM"
n: "San Marino"
p: "+378"
}
ListElement {
i: "ST"
n: "São Tomé and Príncipe"
p: "+239"
}
ListElement {
i: "SA"
n: "Saudi Arabia"
p: "+966"
}
ListElement {
i: "SN"
n: "Senegal"
p: "+221"
}
ListElement {
i: "RS"
n: "Serbia"
p: "+381"
}
ListElement {
i: "SC"
n: "Seychelles"
p: "+248"
}
ListElement {
i: "SL"
n: "Sierra Leone"
p: "+232"
}
ListElement {
i: "SG"
n: "Singapore"
p: "+65"
}
ListElement {
i: "BQ"
n: "Sint Eustatius"
p: "+599 3"
}
ListElement {
i: "SX"
n: "Sint Maarten (Netherlands)"
p: "+1 721"
}
ListElement {
i: "SK"
n: "Slovakia"
p: "+421"
}
ListElement {
i: "SI"
n: "Slovenia"
p: "+386"
}
ListElement {
i: "SB"
n: "Solomon Islands"
p: "+677"
}
ListElement {
i: "SO"
n: "Somalia"
p: "+252"
}
ListElement {
i: "ZA"
n: "South Africa"
p: "+27"
}
ListElement {
i: "GS"
n: "South Georgia and the South Sandwich Islands"
p: "+500"
}
// NO OWN ISO, DISPUTED
ListElement {
i: "GE"
n: "South Ossetia"
p: "+995 34"
}
ListElement {
i: "SS"
n: "South Sudan"
p: "+211"
}
ListElement {
i: "ES"
n: "Spain"
p: "+34"
}
ListElement {
i: "LK"
n: "Sri Lanka"
p: "+94"
}
ListElement {
i: "SD"
n: "Sudan"
p: "+249"
}
ListElement {
i: "SR"
n: "Suriname"
p: "+597"
}
ListElement {
i: "SJ"
n: "Svalbard"
p: "+47 79"
}
ListElement {
i: "SE"
n: "Sweden"
p: "+46"
}
ListElement {
i: "CH"
n: "Switzerland"
p: "+41"
}
ListElement {
i: "SY"
n: "Syria"
p: "+963"
}
ListElement {
i: "SJ"
n: "Taiwan"
p: "+886"
}
ListElement {
i: "TJ"
n: "Tajikistan"
p: "+992"
}
ListElement {
i: "TZ"
n: "Tanzania"
p: "+255"
}
ListElement {
i: "TH"
n: "Thailand"
p: "+66"
}
ListElement {
i: "TL"
n: "Timor-Leste"
p: "+670"
}
ListElement {
i: "TG"
n: "Togo"
p: "+228"
}
ListElement {
i: "TK"
n: "Tokelau"
p: "+690"
}
ListElement {
i: "TO"
n: "Tonga"
p: "+676"
}
ListElement {
i: "MD"
n: "Transnistria"
p: "+373 2"
}
ListElement {
i: "MD"
n: "Transnistria"
p: "+373 5"
}
ListElement {
i: "TT"
n: "Trinidad and Tobago"
p: "+1 868"
}
ListElement {
i: "SH"
n: "Tristan da Cunha"
p: "+290 8"
}
ListElement {
i: "TN"
n: "Tunisia"
p: "+216"
}
ListElement {
i: "TR"
n: "Turkey"
p: "+90"
}
ListElement {
i: "TM"
n: "Turkmenistan"
p: "+993"
}
ListElement {
i: "TC"
n: "Turks and Caicos Islands"
p: "+1 649"
}
ListElement {
i: "TV"
n: "Tuvalu"
p: "+688"
}
ListElement {
i: "UG"
n: "Uganda"
p: "+256"
}
ListElement {
i: "UA"
n: "Ukraine"
p: "+380"
}
ListElement {
i: "AE"
n: "United Arab Emirates"
p: "+971"
}
ListElement {
i: "GB"
n: "United Kingdom"
p: "+44"
}
ListElement {
i: "US"
n: "United States"
p: "+1"
}
ListElement {
i: "UY"
n: "Uruguay"
p: "+598"
}
ListElement {
i: "UZ"
n: "Uzbekistan"
p: "+998"
}
ListElement {
i: "VU"
n: "Vanuatu"
p: "+678"
}
ListElement {
i: "VA"
n: "Vatican City State (Holy See)"
p: "+379"
}
ListElement {
i: "VA"
n: "Vatican City State (Holy See)"
p: "+39 06 698"
}
ListElement {
i: "VE"
n: "Venezuela"
p: "+58"
}
ListElement {
i: "VN"
n: "Vietnam"
p: "+84"
}
ListElement {
i: "VG"
n: "Virgin Islands (British)"
p: "+1 284"
}
ListElement {
i: "VI"
n: "Virgin Islands (US)"
p: "+1 340"
}
ListElement {
i: "US"
n: "Wake Island (USA)"
p: "+1 808"
}
ListElement {
i: "WF"
n: "Wallis and Futuna"
p: "+681"
}
ListElement {
i: "YE"
n: "Yemen"
p: "+967"
}
ListElement {
i: "ZM"
n: "Zambia"
p: "+260"
}
// NO OWN ISO, DISPUTED?
ListElement {
i: "TZ"
n: "Zanzibar"
p: "+255 24"
}
ListElement {
i: "ZW"
n: "Zimbabwe"
p: "+263"
}
}
}
MatrixTextField {
id: statusInput
Layout.fillWidth: true
}
}
}