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