| 
									
										
										
										
											2024-03-07 15:28:31 +01:00
										 |  |  | ///////////////////////////////////////////////////////////////////////////////////
 | 
					
						
							|  |  |  | // Copyright (C) 2024 Edouard Griffiths, F4EXB <f4exb06@gmail.com>               //
 | 
					
						
							|  |  |  | //                                                                               //
 | 
					
						
							|  |  |  | // This program is free software; you can redistribute it and/or modify          //
 | 
					
						
							|  |  |  | // it under the terms of the GNU General Public License as published by          //
 | 
					
						
							|  |  |  | // the Free Software Foundation as version 3 of the License, or                  //
 | 
					
						
							|  |  |  | // (at your option) any later version.                                           //
 | 
					
						
							|  |  |  | //                                                                               //
 | 
					
						
							|  |  |  | // This program is distributed in the hope that it will be useful,               //
 | 
					
						
							|  |  |  | // but WITHOUT ANY WARRANTY; without even the implied warranty of                //
 | 
					
						
							|  |  |  | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the                  //
 | 
					
						
							|  |  |  | // GNU General Public License V3 for more details.                               //
 | 
					
						
							|  |  |  | //                                                                               //
 | 
					
						
							|  |  |  | // You should have received a copy of the GNU General Public License             //
 | 
					
						
							|  |  |  | // along with this program. If not, see <http://www.gnu.org/licenses/>.          //
 | 
					
						
							|  |  |  | ///////////////////////////////////////////////////////////////////////////////////
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // This source code file was last time modified by Arvo ES1JA on 20190224
 | 
					
						
							|  |  |  | // All changes are shown in the patch file coming together with the full JTDX source code.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  | #Sov Mil Order of Malta:   15:  28:  EU:   41.90:   -12.43:    -1.0:  1A:
 | 
					
						
							|  |  |  |     #1A;
 | 
					
						
							|  |  |  | #Spratly Islands:          26:  50:  AS:    9.88:  -114.23:    -8.0:  1S:
 | 
					
						
							|  |  |  |     #1S,9M0,BV9S;
 | 
					
						
							|  |  |  | #Monaco:                   14:  27:  EU:   43.73:    -7.40:    -1.0:  3A:
 | 
					
						
							|  |  |  |     #3A;
 | 
					
						
							|  |  |  | #Heard Island:             39:  68:  AF:  -53.08:   -73.50:    -5.0:  VK0H:
 | 
					
						
							|  |  |  |     #=VK0IR;
 | 
					
						
							|  |  |  | #Macquarie Island:         30:  60:  OC:  -54.60:  -158.88:   -10.0:  VK0M:
 | 
					
						
							|  |  |  |     #=VK0KEV;
 | 
					
						
							|  |  |  | #Cocos-Keeling:            29:  54:  OC:  -12.15:   -96.82:    -6.5:  VK9C:
 | 
					
						
							|  |  |  |     #AX9C,AX9Y,VH9C,VH9Y,VI9C,VI9Y,VJ9C,VJ9Y,VK9C,VK9Y,VL9C,VL9Y,VM9C,VM9Y,
 | 
					
						
							|  |  |  |     #VN9C,VN9Y,VZ9C,VZ9Y,=VK9AA;
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "countrydat.h"
 | 
					
						
							|  |  |  | #include <QFile>
 | 
					
						
							|  |  |  | #include <QTextStream>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const CountryDat::CountryInfo CountryDat::nullCountry = CountryDat::CountryInfo{"", "?", "where?", "", ""}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void CountryDat::init() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2024-03-08 15:36:03 +01:00
										 |  |  |     _countries.clear(); | 
					
						
							| 
									
										
										
										
											2024-03-07 15:28:31 +01:00
										 |  |  |     _name.clear(); | 
					
						
							|  |  |  |     _name.insert("where?","where?"); | 
					
						
							|  |  |  |     _name.insert("Sov Mil Order of Malta","Sov Mil Order of Malta"); | 
					
						
							|  |  |  |     _name.insert("Spratly Islands","Spratly Is."); | 
					
						
							|  |  |  |     _name.insert("Monaco","Monaco"); | 
					
						
							|  |  |  |     _name.insert("Agalega & St. Brandon","Agalega & St. Brandon"); | 
					
						
							|  |  |  |     _name.insert("Mauritius","Mauritius"); | 
					
						
							|  |  |  |     _name.insert("Rodriguez Island","Rodriguez Is."); | 
					
						
							|  |  |  |     _name.insert("Equatorial Guinea","Equatorial Guinea"); | 
					
						
							|  |  |  |     _name.insert("Annobon Island","Annobon Is."); | 
					
						
							|  |  |  |     _name.insert("Fiji","Fiji"); | 
					
						
							|  |  |  |     _name.insert("Conway Reef","Conway Reef"); | 
					
						
							|  |  |  |     _name.insert("Rotuma Island","Rotuma Is."); | 
					
						
							|  |  |  |     _name.insert("Kingdom of Eswatini","Kingdom of Eswatini"); | 
					
						
							|  |  |  |     _name.insert("Tunisia","Tunisia"); | 
					
						
							|  |  |  |     _name.insert("Vietnam","Vietnam"); | 
					
						
							|  |  |  |     _name.insert("Guinea","Guinea"); | 
					
						
							|  |  |  |     _name.insert("Bouvet","Bouvet"); | 
					
						
							|  |  |  |     _name.insert("Peter 1 Island","Peter 1 Is."); | 
					
						
							|  |  |  |     _name.insert("Azerbaijan","Azerbaijan"); | 
					
						
							|  |  |  |     _name.insert("Georgia","Georgia"); | 
					
						
							|  |  |  |     _name.insert("Montenegro","Montenegro"); | 
					
						
							|  |  |  |     _name.insert("Sri Lanka","Sri Lanka"); | 
					
						
							|  |  |  |     _name.insert("ITU HQ","ITU HQ"); | 
					
						
							|  |  |  |     _name.insert("United Nations HQ","United Nations HQ"); | 
					
						
							|  |  |  |     _name.insert("Vienna Intl Ctr","Vienna Intl Ctr"); | 
					
						
							|  |  |  |     _name.insert("Timor - Leste","Timor - Leste"); | 
					
						
							|  |  |  |     _name.insert("Israel","Israel"); | 
					
						
							|  |  |  |     _name.insert("Libya","Libya"); | 
					
						
							|  |  |  |     _name.insert("Cyprus","Cyprus"); | 
					
						
							|  |  |  |     _name.insert("Tanzania","Tanzania"); | 
					
						
							|  |  |  |     _name.insert("Nigeria","Nigeria"); | 
					
						
							|  |  |  |     _name.insert("Madagascar","Madagascar"); | 
					
						
							|  |  |  |     _name.insert("Mauritania","Mauritania"); | 
					
						
							|  |  |  |     _name.insert("Niger","Niger"); | 
					
						
							|  |  |  |     _name.insert("Togo","Togo"); | 
					
						
							|  |  |  |     _name.insert("Samoa","Samoa"); | 
					
						
							|  |  |  |     _name.insert("Uganda","Uganda"); | 
					
						
							|  |  |  |     _name.insert("Kenya","Kenya"); | 
					
						
							|  |  |  |     _name.insert("Senegal","Senegal"); | 
					
						
							|  |  |  |     _name.insert("Jamaica","Jamaica"); | 
					
						
							|  |  |  |     _name.insert("Yemen","Yemen"); | 
					
						
							|  |  |  |     _name.insert("Lesotho","Lesotho"); | 
					
						
							|  |  |  |     _name.insert("Malawi","Malawi"); | 
					
						
							|  |  |  |     _name.insert("Algeria","Algeria"); | 
					
						
							|  |  |  |     _name.insert("Barbados","Barbados"); | 
					
						
							|  |  |  |     _name.insert("Maldives","Maldives"); | 
					
						
							|  |  |  |     _name.insert("Guyana","Guyana"); | 
					
						
							|  |  |  |     _name.insert("Croatia","Croatia"); | 
					
						
							|  |  |  |     _name.insert("Ghana","Ghana"); | 
					
						
							|  |  |  |     _name.insert("Malta","Malta"); | 
					
						
							|  |  |  |     _name.insert("Zambia","Zambia"); | 
					
						
							|  |  |  |     _name.insert("Kuwait","Kuwait"); | 
					
						
							|  |  |  |     _name.insert("Sierra Leone","Sierra Leone"); | 
					
						
							|  |  |  |     _name.insert("West Malaysia","W. Malaysia"); | 
					
						
							|  |  |  |     _name.insert("East Malaysia","E. Malaysia"); | 
					
						
							|  |  |  |     _name.insert("Nepal","Nepal"); | 
					
						
							|  |  |  |     _name.insert("Dem. Rep. of the Congo","Dem. Rep. of the Congo"); | 
					
						
							|  |  |  |     _name.insert("Burundi","Burundi"); | 
					
						
							|  |  |  |     _name.insert("Singapore","Singapore"); | 
					
						
							|  |  |  |     _name.insert("Rwanda","Rwanda"); | 
					
						
							|  |  |  |     _name.insert("Trinidad & Tobago","Trinidad & Tobago"); | 
					
						
							|  |  |  |     _name.insert("Botswana","Botswana"); | 
					
						
							|  |  |  |     _name.insert("Tonga","Tonga"); | 
					
						
							|  |  |  |     _name.insert("Oman","Oman"); | 
					
						
							|  |  |  |     _name.insert("Bhutan","Bhutan"); | 
					
						
							|  |  |  |     _name.insert("United Arab Emirates","United Arab Emirates"); | 
					
						
							|  |  |  |     _name.insert("Qatar","Qatar"); | 
					
						
							|  |  |  |     _name.insert("Bahrain","Bahrain"); | 
					
						
							|  |  |  |     _name.insert("Pakistan","Pakistan"); | 
					
						
							|  |  |  |     _name.insert("Scarborough Reef","Scarborough Reef"); | 
					
						
							|  |  |  |     _name.insert("Taiwan","Taiwan"); | 
					
						
							|  |  |  |     _name.insert("Pratas Island","Pratas Is."); | 
					
						
							|  |  |  |     _name.insert("China","China"); | 
					
						
							|  |  |  |     _name.insert("Nauru","Nauru"); | 
					
						
							|  |  |  |     _name.insert("Andorra","Andorra"); | 
					
						
							|  |  |  |     _name.insert("The Gambia","The Gambia"); | 
					
						
							|  |  |  |     _name.insert("Bahamas","Bahamas"); | 
					
						
							|  |  |  |     _name.insert("Mozambique","Mozambique"); | 
					
						
							|  |  |  |     _name.insert("Chile","Chile"); | 
					
						
							|  |  |  |     _name.insert("San Felix & San Ambrosio","San Felix & San Ambrosio"); | 
					
						
							|  |  |  |     _name.insert("Easter Island","Easter Is."); | 
					
						
							|  |  |  |     _name.insert("Juan Fernandez Islands","Juan Fernandez Is."); | 
					
						
							|  |  |  |     _name.insert("Antarctica","Antarctica"); | 
					
						
							|  |  |  |     _name.insert("Cuba","Cuba"); | 
					
						
							|  |  |  |     _name.insert("Morocco","Morocco"); | 
					
						
							|  |  |  |     _name.insert("Bolivia","Bolivia"); | 
					
						
							|  |  |  |     _name.insert("Portugal","Portugal"); | 
					
						
							|  |  |  |     _name.insert("Madeira Islands","Madeira Is."); | 
					
						
							|  |  |  |     _name.insert("Azores","Azores"); | 
					
						
							|  |  |  |     _name.insert("Uruguay","Uruguay"); | 
					
						
							|  |  |  |     _name.insert("Sable Island","Sable Is."); | 
					
						
							|  |  |  |     _name.insert("St. Paul Island","St. Paul Is."); | 
					
						
							|  |  |  |     _name.insert("Angola","Angola"); | 
					
						
							|  |  |  |     _name.insert("Cape Verde","Cape Verde"); | 
					
						
							|  |  |  |     _name.insert("Comoros","Comoros"); | 
					
						
							|  |  |  |     _name.insert("Fed. Rep. of Germany","Germany"); | 
					
						
							|  |  |  |     _name.insert("Philippines","Philippines"); | 
					
						
							|  |  |  |     _name.insert("Eritrea","Eritrea"); | 
					
						
							|  |  |  |     _name.insert("Palestine","Palestine"); | 
					
						
							|  |  |  |     _name.insert("North Cook Islands","N. Cook Is."); | 
					
						
							|  |  |  |     _name.insert("South Cook Islands","S. Cook Is."); | 
					
						
							|  |  |  |     _name.insert("Niue","Niue"); | 
					
						
							|  |  |  |     _name.insert("Bosnia-Herzegovina","Bosnia-Herzegovina"); | 
					
						
							|  |  |  |     _name.insert("Spain","Spain"); | 
					
						
							|  |  |  |     _name.insert("Balearic Islands","Balearic Is."); | 
					
						
							|  |  |  |     _name.insert("Canary Islands","Canary Is."); | 
					
						
							|  |  |  |     _name.insert("Ceuta & Melilla","Ceuta & Melilla"); | 
					
						
							|  |  |  |     _name.insert("Ireland","Ireland"); | 
					
						
							|  |  |  |     _name.insert("Armenia","Armenia"); | 
					
						
							|  |  |  |     _name.insert("Liberia","Liberia"); | 
					
						
							|  |  |  |     _name.insert("Iran","Iran"); | 
					
						
							|  |  |  |     _name.insert("Moldova","Moldova"); | 
					
						
							|  |  |  |     _name.insert("Estonia","Estonia"); | 
					
						
							|  |  |  |     _name.insert("Ethiopia","Ethiopia"); | 
					
						
							|  |  |  |     _name.insert("Belarus","Belarus"); | 
					
						
							|  |  |  |     _name.insert("Kyrgyzstan","Kyrgyzstan"); | 
					
						
							|  |  |  |     _name.insert("Tajikistan","Tajikistan"); | 
					
						
							|  |  |  |     _name.insert("Turkmenistan","Turkmenistan"); | 
					
						
							|  |  |  |     _name.insert("France","France"); | 
					
						
							|  |  |  |     _name.insert("Guadeloupe","Guadeloupe"); | 
					
						
							|  |  |  |     _name.insert("Mayotte","Mayotte"); | 
					
						
							|  |  |  |     _name.insert("St. Barthelemy","St. Barthelemy"); | 
					
						
							|  |  |  |     _name.insert("New Caledonia","New Caledonia"); | 
					
						
							|  |  |  |     _name.insert("Chesterfield Islands","Chesterfield Is."); | 
					
						
							|  |  |  |     _name.insert("Martinique","Martinique"); | 
					
						
							|  |  |  |     _name.insert("French Polynesia","Fr. Polynesia"); | 
					
						
							|  |  |  |     _name.insert("Austral Islands","Austral Is."); | 
					
						
							|  |  |  |     _name.insert("Clipperton Island","Clipperton Is."); | 
					
						
							|  |  |  |     _name.insert("Marquesas Islands","Marquesas Is."); | 
					
						
							|  |  |  |     _name.insert("St. Pierre & Miquelo","St. Pierre & Miquelo"); | 
					
						
							|  |  |  |     _name.insert("Reunion Island","Reunion Is."); | 
					
						
							|  |  |  |     _name.insert("St. Martin","St. Martin"); | 
					
						
							|  |  |  |     _name.insert("Glorioso Islands","Glorioso Is."); | 
					
						
							|  |  |  |     _name.insert("Juan de Nova, Europa","Juan de Nova, Europa"); | 
					
						
							|  |  |  |     _name.insert("Tromelin Island","Tromelin Is."); | 
					
						
							|  |  |  |     _name.insert("Crozet Island","Crozet Is."); | 
					
						
							|  |  |  |     _name.insert("Kerguelen Islands","Kerguelen Is."); | 
					
						
							|  |  |  |     _name.insert("Amsterdam & St. Paul Is.","Amsterdam & St. Paul Is."); | 
					
						
							|  |  |  |     _name.insert("Wallis & Futuna Islands","Wallis & Futuna Is."); | 
					
						
							|  |  |  |     _name.insert("French Guiana","Fr. Guiana"); | 
					
						
							|  |  |  |     _name.insert("England","England"); | 
					
						
							|  |  |  |     _name.insert("Isle of Man","Isle of Man"); | 
					
						
							|  |  |  |     _name.insert("Northern Ireland","N. Ireland"); | 
					
						
							|  |  |  |     _name.insert("Jersey","Jersey"); | 
					
						
							|  |  |  |     _name.insert("Shetland Islands","Shetland Is."); | 
					
						
							|  |  |  |     _name.insert("Scotland","Scotland"); | 
					
						
							|  |  |  |     _name.insert("Guernsey","Guernsey"); | 
					
						
							|  |  |  |     _name.insert("Wales","Wales"); | 
					
						
							|  |  |  |     _name.insert("Solomon Islands","Solomon Is."); | 
					
						
							|  |  |  |     _name.insert("Temotu Province","Temotu Province"); | 
					
						
							|  |  |  |     _name.insert("Hungary","Hungary"); | 
					
						
							|  |  |  |     _name.insert("Switzerland","Switzerland"); | 
					
						
							|  |  |  |     _name.insert("Liechtenstein","Liechtenstein"); | 
					
						
							|  |  |  |     _name.insert("Ecuador","Ecuador"); | 
					
						
							|  |  |  |     _name.insert("Galapagos Islands","Galapagos Is."); | 
					
						
							|  |  |  |     _name.insert("Haiti","Haiti"); | 
					
						
							|  |  |  |     _name.insert("Dominican Republic","Dominican Rep."); | 
					
						
							|  |  |  |     _name.insert("Colombia","Colombia"); | 
					
						
							|  |  |  |     _name.insert("San Andres & Providencia","San Andres & Providencia"); | 
					
						
							|  |  |  |     _name.insert("Malpelo Island","Malpelo Is."); | 
					
						
							|  |  |  |     _name.insert("Republic of Korea","Rep. of Korea"); | 
					
						
							|  |  |  |     _name.insert("Panama","Panama"); | 
					
						
							|  |  |  |     _name.insert("Honduras","Honduras"); | 
					
						
							|  |  |  |     _name.insert("Thailand","Thailand"); | 
					
						
							|  |  |  |     _name.insert("Vatican City","Vatican City"); | 
					
						
							|  |  |  |     _name.insert("Saudi Arabia","Saudi Arabia"); | 
					
						
							|  |  |  |     _name.insert("Italy","Italy"); | 
					
						
							|  |  |  |     _name.insert("African Italy","AF Italy"); | 
					
						
							|  |  |  |     _name.insert("Sardinia","Sardinia"); | 
					
						
							|  |  |  |     _name.insert("Sicily","Sicily"); | 
					
						
							|  |  |  |     _name.insert("Djibouti","Djibouti"); | 
					
						
							|  |  |  |     _name.insert("Grenada","Grenada"); | 
					
						
							|  |  |  |     _name.insert("Guinea-Bissau","Guinea-Bissau"); | 
					
						
							|  |  |  |     _name.insert("St. Lucia","St. Lucia"); | 
					
						
							|  |  |  |     _name.insert("Dominica","Dominica"); | 
					
						
							|  |  |  |     _name.insert("St. Vincent","St. Vincent"); | 
					
						
							|  |  |  |     _name.insert("Japan","Japan"); | 
					
						
							|  |  |  |     _name.insert("Minami Torishima","Minami Torishima"); | 
					
						
							|  |  |  |     _name.insert("Ogasawara","Ogasawara"); | 
					
						
							|  |  |  |     _name.insert("Mongolia","Mongolia"); | 
					
						
							|  |  |  |     _name.insert("Svalbard","Svalbard"); | 
					
						
							|  |  |  |     _name.insert("Bear Island","Bear Is."); | 
					
						
							|  |  |  |     _name.insert("Jan Mayen","Jan Mayen"); | 
					
						
							|  |  |  |     _name.insert("Jordan","Jordan"); | 
					
						
							|  |  |  |     _name.insert("United States","U.S.A."); | 
					
						
							|  |  |  |     _name.insert("Guantanamo Bay","Guantanamo Bay"); | 
					
						
							|  |  |  |     _name.insert("Mariana Islands","Mariana Is."); | 
					
						
							|  |  |  |     _name.insert("Baker & Howland Islands","Baker & Howland Is."); | 
					
						
							|  |  |  |     _name.insert("Guam","Guam"); | 
					
						
							|  |  |  |     _name.insert("Johnston Island","Johnston Is."); | 
					
						
							|  |  |  |     _name.insert("Midway Island","Midway Is."); | 
					
						
							|  |  |  |     _name.insert("Palmyra & Jarvis Islands","Palmyra & Jarvis Is."); | 
					
						
							|  |  |  |     _name.insert("Hawaii","Hawaii"); | 
					
						
							|  |  |  |     _name.insert("Kure Island","Kure Is."); | 
					
						
							|  |  |  |     _name.insert("American Samoa","American Samoa"); | 
					
						
							|  |  |  |     _name.insert("Swains Island","Swains Is."); | 
					
						
							|  |  |  |     _name.insert("Wake Island","Wake Is."); | 
					
						
							|  |  |  |     _name.insert("Alaska","Alaska"); | 
					
						
							|  |  |  |     _name.insert("Navassa Island","Navassa Is."); | 
					
						
							|  |  |  |     _name.insert("US Virgin Islands","US Virgin Is."); | 
					
						
							|  |  |  |     _name.insert("Puerto Rico","Puerto Rico"); | 
					
						
							|  |  |  |     _name.insert("Desecheo Island","Desecheo Is."); | 
					
						
							|  |  |  |     _name.insert("Norway","Norway"); | 
					
						
							|  |  |  |     _name.insert("Argentina","Argentina"); | 
					
						
							|  |  |  |     _name.insert("Luxembourg","Luxembourg"); | 
					
						
							|  |  |  |     _name.insert("Lithuania","Lithuania"); | 
					
						
							|  |  |  |     _name.insert("Bulgaria","Bulgaria"); | 
					
						
							|  |  |  |     _name.insert("Peru","Peru"); | 
					
						
							|  |  |  |     _name.insert("Lebanon","Lebanon"); | 
					
						
							|  |  |  |     _name.insert("Austria","Austria"); | 
					
						
							|  |  |  |     _name.insert("Finland","Finland"); | 
					
						
							|  |  |  |     _name.insert("Aland Islands","Aland Is."); | 
					
						
							|  |  |  |     _name.insert("Market Reef","Market Reef"); | 
					
						
							|  |  |  |     _name.insert("Czech Republic","Czech Rep."); | 
					
						
							|  |  |  |     _name.insert("Slovak Republic","Slovak Rep."); | 
					
						
							|  |  |  |     _name.insert("Belgium","Belgium"); | 
					
						
							|  |  |  |     _name.insert("Greenland","Greenland"); | 
					
						
							|  |  |  |     _name.insert("Faroe Islands","Faroe Is."); | 
					
						
							|  |  |  |     _name.insert("Denmark","Denmark"); | 
					
						
							|  |  |  |     _name.insert("Papua New Guinea","Papua New Guinea"); | 
					
						
							|  |  |  |     _name.insert("Aruba","Aruba"); | 
					
						
							|  |  |  |     _name.insert("DPR of Korea","DPR of Korea"); | 
					
						
							|  |  |  |     _name.insert("Netherlands","Netherlands"); | 
					
						
							|  |  |  |     _name.insert("Curacao","Curacao"); | 
					
						
							|  |  |  |     _name.insert("Bonaire","Bonaire"); | 
					
						
							|  |  |  |     _name.insert("Saba & St. Eustatius","Saba & St. Eustatius"); | 
					
						
							|  |  |  |     _name.insert("Sint Maarten","Sint Maarten"); | 
					
						
							|  |  |  |     _name.insert("Brazil","Brazil"); | 
					
						
							|  |  |  |     _name.insert("Fernando de Noronha","Fernando de Noronha"); | 
					
						
							|  |  |  |     _name.insert("St. Peter & St. Paul","St. Peter & St. Paul"); | 
					
						
							|  |  |  |     _name.insert("Trindade & Martim Vaz","Trindade & Martim Vaz"); | 
					
						
							|  |  |  |     _name.insert("Suriname","Suriname"); | 
					
						
							|  |  |  |     _name.insert("Franz Josef Land","Franz Josef Land"); | 
					
						
							|  |  |  |     _name.insert("Western Sahara","Western Sahara"); | 
					
						
							|  |  |  |     _name.insert("Bangladesh","Bangladesh"); | 
					
						
							|  |  |  |     _name.insert("Slovenia","Slovenia"); | 
					
						
							|  |  |  |     _name.insert("Seychelles","Seychelles"); | 
					
						
							|  |  |  |     _name.insert("Sao Tome & Principe","Sao Tome & Principe"); | 
					
						
							|  |  |  |     _name.insert("Sweden","Sweden"); | 
					
						
							|  |  |  |     _name.insert("Poland","Poland"); | 
					
						
							|  |  |  |     _name.insert("Sudan","Sudan"); | 
					
						
							|  |  |  |     _name.insert("Egypt","Egypt"); | 
					
						
							|  |  |  |     _name.insert("Greece","Greece"); | 
					
						
							|  |  |  |     _name.insert("Mount Athos","Mount Athos"); | 
					
						
							|  |  |  |     _name.insert("Dodecanese","Dodecanese"); | 
					
						
							|  |  |  |     _name.insert("Crete","Crete"); | 
					
						
							|  |  |  |     _name.insert("Tuvalu","Tuvalu"); | 
					
						
							|  |  |  |     _name.insert("Western Kiribati","W. Kiribati"); | 
					
						
							|  |  |  |     _name.insert("Central Kiribati","C. Kiribati"); | 
					
						
							|  |  |  |     _name.insert("Eastern Kiribati","E. Kiribati"); | 
					
						
							|  |  |  |     _name.insert("Banaba Island","Banaba Is."); | 
					
						
							|  |  |  |     _name.insert("Somalia","Somalia"); | 
					
						
							|  |  |  |     _name.insert("San Marino","San Marino"); | 
					
						
							|  |  |  |     _name.insert("Palau","Palau"); | 
					
						
							|  |  |  |     _name.insert("Asiatic Turkey","AS Turkey"); | 
					
						
							|  |  |  |     _name.insert("European Turkey","EU Turkey"); | 
					
						
							|  |  |  |     _name.insert("Iceland","Iceland"); | 
					
						
							|  |  |  |     _name.insert("Guatemala","Guatemala"); | 
					
						
							|  |  |  |     _name.insert("Costa Rica","Costa Rica"); | 
					
						
							|  |  |  |     _name.insert("Cocos Island","Cocos Is."); | 
					
						
							|  |  |  |     _name.insert("Cameroon","Cameroon"); | 
					
						
							|  |  |  |     _name.insert("Corsica","Corsica"); | 
					
						
							|  |  |  |     _name.insert("Central African Republic","C. African Rep."); | 
					
						
							|  |  |  |     _name.insert("Republic of the Congo","Rep. of the Congo"); | 
					
						
							|  |  |  |     _name.insert("Gabon","Gabon"); | 
					
						
							|  |  |  |     _name.insert("Chad","Chad"); | 
					
						
							|  |  |  |     _name.insert("Cote d'Ivoire","Cote d'Ivoire"); | 
					
						
							|  |  |  |     _name.insert("Benin","Benin"); | 
					
						
							|  |  |  |     _name.insert("Mali","Mali"); | 
					
						
							|  |  |  |     _name.insert("European Russia","EU Russia"); | 
					
						
							|  |  |  |     _name.insert("Kaliningrad","Kaliningrad"); | 
					
						
							|  |  |  |     _name.insert("Asiatic Russia","AS Russia"); | 
					
						
							|  |  |  |     _name.insert("Uzbekistan","Uzbekistan"); | 
					
						
							|  |  |  |     _name.insert("Kazakhstan","Kazakhstan"); | 
					
						
							|  |  |  |     _name.insert("Ukraine","Ukraine"); | 
					
						
							|  |  |  |     _name.insert("Antigua & Barbuda","Antigua & Barbuda"); | 
					
						
							|  |  |  |     _name.insert("Belize","Belize"); | 
					
						
							|  |  |  |     _name.insert("St. Kitts & Nevis","St. Kitts & Nevis"); | 
					
						
							|  |  |  |     _name.insert("Namibia","Namibia"); | 
					
						
							|  |  |  |     _name.insert("Micronesia","Micronesia"); | 
					
						
							|  |  |  |     _name.insert("Marshall Islands","Marshall Is."); | 
					
						
							|  |  |  |     _name.insert("Brunei Darussalam","Brunei Darussalam"); | 
					
						
							|  |  |  |     _name.insert("Canada","Canada"); | 
					
						
							|  |  |  |     _name.insert("Australia","Australia"); | 
					
						
							|  |  |  |     _name.insert("Heard Island","Heard Is."); | 
					
						
							|  |  |  |     _name.insert("Macquarie Island","Macquarie Is."); | 
					
						
							|  |  |  |     _name.insert("Cocos (Keeling) Islands","Cocos (Keeling) Is."); | 
					
						
							|  |  |  |     _name.insert("Lord Howe Island","Lord Howe Is."); | 
					
						
							|  |  |  |     _name.insert("Mellish Reef","Mellish Reef"); | 
					
						
							|  |  |  |     _name.insert("Norfolk Island","Norfolk Is."); | 
					
						
							|  |  |  |     _name.insert("Willis Island","Willis Is."); | 
					
						
							|  |  |  |     _name.insert("Christmas Island","Christmas Is."); | 
					
						
							|  |  |  |     _name.insert("Anguilla","Anguilla"); | 
					
						
							|  |  |  |     _name.insert("Montserrat","Montserrat"); | 
					
						
							|  |  |  |     _name.insert("British Virgin Islands","British Virgin Is."); | 
					
						
							|  |  |  |     _name.insert("Turks & Caicos Islands","Turks & Caicos Is."); | 
					
						
							|  |  |  |     _name.insert("Pitcairn Island","Pitcairn Is."); | 
					
						
							|  |  |  |     _name.insert("Ducie Island","Ducie Is."); | 
					
						
							|  |  |  |     _name.insert("Falkland Islands","Falkland Is."); | 
					
						
							|  |  |  |     _name.insert("South Georgia Island","S. Georgia Is."); | 
					
						
							|  |  |  |     _name.insert("South Shetland Islands","S. Shetland Is."); | 
					
						
							|  |  |  |     _name.insert("South Orkney Islands","S. Orkney Is."); | 
					
						
							|  |  |  |     _name.insert("South Sandwich Islands","S. Sandwich Is."); | 
					
						
							|  |  |  |     _name.insert("Bermuda","Bermuda"); | 
					
						
							|  |  |  |     _name.insert("Chagos Islands","Chagos Is."); | 
					
						
							|  |  |  |     _name.insert("Hong Kong","Hong Kong"); | 
					
						
							|  |  |  |     _name.insert("India","India"); | 
					
						
							|  |  |  |     _name.insert("Andaman & Nicobar Is.","Andaman & Nicobar Is."); | 
					
						
							|  |  |  |     _name.insert("Lakshadweep Islands","Lakshadweep Is."); | 
					
						
							|  |  |  |     _name.insert("Mexico","Mexico"); | 
					
						
							|  |  |  |     _name.insert("Revillagigedo","Revillagigedo"); | 
					
						
							|  |  |  |     _name.insert("Burkina Faso","Burkina Faso"); | 
					
						
							|  |  |  |     _name.insert("Cambodia","Cambodia"); | 
					
						
							|  |  |  |     _name.insert("Laos","Laos"); | 
					
						
							|  |  |  |     _name.insert("Macao","Macao"); | 
					
						
							|  |  |  |     _name.insert("Myanmar","Myanmar"); | 
					
						
							|  |  |  |     _name.insert("Afghanistan","Afghanistan"); | 
					
						
							|  |  |  |     _name.insert("Indonesia","Indonesia"); | 
					
						
							|  |  |  |     _name.insert("Iraq","Iraq"); | 
					
						
							|  |  |  |     _name.insert("Vanuatu","Vanuatu"); | 
					
						
							|  |  |  |     _name.insert("Syria","Syria"); | 
					
						
							|  |  |  |     _name.insert("Latvia","Latvia"); | 
					
						
							|  |  |  |     _name.insert("Nicaragua","Nicaragua"); | 
					
						
							|  |  |  |     _name.insert("Romania","Romania"); | 
					
						
							|  |  |  |     _name.insert("El Salvador","El Salvador"); | 
					
						
							|  |  |  |     _name.insert("Serbia","Serbia"); | 
					
						
							|  |  |  |     _name.insert("Venezuela","Venezuela"); | 
					
						
							|  |  |  |     _name.insert("Aves Island","Aves Is."); | 
					
						
							|  |  |  |     _name.insert("Zimbabwe","Zimbabwe"); | 
					
						
							|  |  |  |     _name.insert("North Macedonia","N. Macedonia"); | 
					
						
							|  |  |  |     _name.insert("Republic of Kosovo","Rep. of Kosovo"); | 
					
						
							|  |  |  |     _name.insert("Republic of South Sudan","Rep. of S. Sudan"); | 
					
						
							|  |  |  |     _name.insert("Albania","Albania"); | 
					
						
							|  |  |  |     _name.insert("Gibraltar","Gibraltar"); | 
					
						
							|  |  |  |     _name.insert("UK Base Areas on Cyprus","UK Base Areas on Cyprus"); | 
					
						
							|  |  |  |     _name.insert("St. Helena","St. Helena"); | 
					
						
							|  |  |  |     _name.insert("Ascension Island","Ascension Is."); | 
					
						
							|  |  |  |     _name.insert("Tristan da Cunha & Gough","Tristan da Cunha & Gough"); | 
					
						
							|  |  |  |     _name.insert("Cayman Islands","Cayman Is."); | 
					
						
							|  |  |  |     _name.insert("Tokelau Islands","Tokelau Is."); | 
					
						
							|  |  |  |     _name.insert("New Zealand","New Zealand"); | 
					
						
							|  |  |  |     _name.insert("Chatham Islands","Chatham Is."); | 
					
						
							|  |  |  |     _name.insert("Kermadec Islands","Kermadec Is."); | 
					
						
							|  |  |  |     _name.insert("N.Z. Subantarctic Is.","N.Z. Subantarctic Is."); | 
					
						
							|  |  |  |     _name.insert("Paraguay","Paraguay"); | 
					
						
							|  |  |  |     _name.insert("South Africa","S. Africa"); | 
					
						
							|  |  |  |     _name.insert("Pr. Edward & Marion Is.","Pr. Edward & Marion Is."); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QString CountryDat::_extractName(const QString line) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int s1 = line.indexOf(':'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (s1>=0) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         QString name = line.left(s1); | 
					
						
							|  |  |  |         return _name.value(name,name); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return ""; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QString CountryDat::_extractMasterPrefix(const QString line) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int s1 = line.lastIndexOf(' '); | 
					
						
							|  |  |  |     int s2 = line.lastIndexOf(':'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (s1 >= 0 && s1 < s2) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         QString pfx = line.mid(s1, s2-s1); | 
					
						
							|  |  |  |         return pfx.toUpper(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return ""; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QString CountryDat::_extractContinent(const QString line) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int s1; | 
					
						
							|  |  |  |     s1 = line.indexOf(':'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (s1>=0) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         s1 = line.indexOf(':',s1+1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (s1>=0) | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             s1 = line.indexOf(':',s1+1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if (s1>=0) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 s1 = line.indexOf(':',s1+1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 if (s1>=0) | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                      QString cont = line.mid(s1-2, 2); | 
					
						
							|  |  |  |                      return cont; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return ""; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QString CountryDat::_extractITUZ(const QString line) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int s1; | 
					
						
							|  |  |  |     s1 = line.indexOf(':'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (s1>=0) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         s1 = line.indexOf(':',s1+1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (s1>=0) | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             s1 = line.indexOf(':',s1+1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if (s1>=0) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 QString cont = line.mid(s1-2, 2); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 if (cont.size() == 1) { | 
					
						
							|  |  |  |                     cont = " " + cont; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 return cont; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return ""; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QString CountryDat::_extractCQZ(const QString line) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int s1; | 
					
						
							|  |  |  |     s1 = line.indexOf(':'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (s1>=0) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         s1 = line.indexOf(':',s1+1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (s1>=0) | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             QString cont = line.mid(s1-2, 2); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if (cont.size() == 1) { | 
					
						
							|  |  |  |                 cont = " " + cont; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             return cont; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return ""; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QString CountryDat::_removeBrackets(QString &line, const QString a, const QString b) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     QString res = ""; | 
					
						
							|  |  |  |     int s1 = line.indexOf(a); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     while (s1 >= 0) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         int s2 = line.indexOf(b); | 
					
						
							|  |  |  |         res += line.mid(s1+1,s2-s1-1); | 
					
						
							|  |  |  |         line = line.left(s1) + line.mid(s2+1,-1); | 
					
						
							|  |  |  |         s1 = line.indexOf(a); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return res; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QStringList CountryDat::_extractPrefix(QString &line, bool &more) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     QString a; | 
					
						
							|  |  |  |     line = line.remove(" \n"); | 
					
						
							|  |  |  |     line = line.replace(" ",""); | 
					
						
							|  |  |  |     a = _removeBrackets(line,"<",">"); | 
					
						
							|  |  |  |     a = _removeBrackets(line,"~","~"); | 
					
						
							|  |  |  |     int s1 = line.indexOf(';'); | 
					
						
							|  |  |  |     more = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (s1 >= 0) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         line = line.left(s1); | 
					
						
							|  |  |  |         more = false; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QStringList r = line.split(','); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return r; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void CountryDat::load() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2024-03-08 15:36:03 +01:00
										 |  |  |     _countries.clear(); | 
					
						
							| 
									
										
										
										
											2024-03-07 15:28:31 +01:00
										 |  |  |     QFile inputFile(":/data/cty.dat"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (inputFile.open(QIODevice::ReadOnly)) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         QTextStream in(&inputFile); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         while (!in.atEnd()) | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             QString line1 = in.readLine(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if (!in.atEnd()) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 QString line2 = in.readLine(); | 
					
						
							|  |  |  |                 QString masterPrefix, country, cqz, ituz, continent; | 
					
						
							|  |  |  |                 cqz = _extractCQZ(line1); | 
					
						
							|  |  |  |                 ituz = _extractITUZ(line1); | 
					
						
							|  |  |  |                 continent = _extractContinent(line1); | 
					
						
							|  |  |  |                 masterPrefix = _extractMasterPrefix(line1).trimmed(); | 
					
						
							|  |  |  |                 country = _extractName(line1).trimmed(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 if (!masterPrefix.isEmpty() || !country.isEmpty()) | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                     bool more = true; | 
					
						
							|  |  |  |                     QStringList prefixs; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     while (more) | 
					
						
							|  |  |  |                     { | 
					
						
							|  |  |  |                         QStringList p = _extractPrefix(line2,more); | 
					
						
							|  |  |  |                         prefixs += p; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                         if (more) { | 
					
						
							|  |  |  |                             line2 = in.readLine(); | 
					
						
							|  |  |  |                         } | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     QString p,_cqz,_ituz,_continent; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     foreach(p,prefixs) | 
					
						
							|  |  |  |                     { | 
					
						
							|  |  |  |                         if (!p.isEmpty()) | 
					
						
							|  |  |  |                         { | 
					
						
							|  |  |  |                             _cqz = _removeBrackets(p,"(",")"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                             if (_cqz.isEmpty()) { | 
					
						
							|  |  |  |                                 _cqz = cqz; | 
					
						
							|  |  |  |                             } | 
					
						
							|  |  |  |                             if (_cqz.size() == 1) { | 
					
						
							|  |  |  |                                 _cqz = "0" + _cqz; | 
					
						
							|  |  |  |                             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                             _ituz = _removeBrackets(p,"[","]"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                             if (_ituz.isEmpty()) { | 
					
						
							|  |  |  |                                 _ituz = ituz; | 
					
						
							|  |  |  |                             } | 
					
						
							|  |  |  |                             if (_ituz.size() == 1) { | 
					
						
							|  |  |  |                                 _ituz = "0" + _ituz; | 
					
						
							|  |  |  |                             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                             _continent = _removeBrackets(p,"{","}"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                             if (_continent.isEmpty()) { | 
					
						
							|  |  |  |                                 _continent = continent; | 
					
						
							|  |  |  |                             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                             _countries.insert(p, CountryInfo{_continent, masterPrefix, country, _cqz, _ituz}); | 
					
						
							|  |  |  |                         } | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         inputFile.close(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |