• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdegraphics API Reference
  • KDE Home
  • Contact Us
 

libs/libkexiv2/libkexiv2

  • sources
  • kde-4.14
  • kdegraphics
  • libs
  • libkexiv2
  • libkexiv2
countryselector.cpp
Go to the documentation of this file.
1 
26 #include "countryselector.h"
27 
28 // Qt includes
29 
30 #include <QMap>
31 #include <QVariant>
32 
33 // KDE includes
34 
35 #include <klocale.h>
36 #include <kdebug.h>
37 
38 namespace KExiv2Iface
39 {
40 
41 class CountrySelector::Private
42 {
43 public:
44 
45  Private()
46  {
47  // We cannot use KLocale::allCountriesList() here because KDE only
48  // support 2 characters country codes. XMP require 3 characters country
49  // following ISO 3166 (http://userpage.chemie.fu-berlin.de/diverse/doc/ISO_3166.html)
50 
51  // Standard ISO 3166 country codes.
52 
53  countryCodeMap.insert( "AFG", i18n("Afghanistan") );
54  countryCodeMap.insert( "ALB", i18n("Albania") );
55  countryCodeMap.insert( "DZA", i18n("Algeria") );
56  countryCodeMap.insert( "ASM", i18n("American Samoa") );
57  countryCodeMap.insert( "AND", i18n("Andorra") );
58  countryCodeMap.insert( "AGO", i18n("Angola") );
59  countryCodeMap.insert( "AIA", i18n("Anguilla") );
60  countryCodeMap.insert( "AGO", i18n("Angola") );
61  countryCodeMap.insert( "ATA", i18n("Antarctica") );
62  countryCodeMap.insert( "ATG", i18n("Antigua and Barbuda") );
63  countryCodeMap.insert( "ARG", i18n("Argentina") );
64  countryCodeMap.insert( "ARM", i18n("Armenia") );
65  countryCodeMap.insert( "ABW", i18n("Aruba") );
66  countryCodeMap.insert( "AUS", i18n("Australia") );
67  countryCodeMap.insert( "AUT", i18n("Austria") );
68  countryCodeMap.insert( "AZE", i18n("Azerbaijan") );
69  countryCodeMap.insert( "BHS", i18n("Bahamas") );
70  countryCodeMap.insert( "BHR", i18n("Bahrain") );
71  countryCodeMap.insert( "BGD", i18n("Bangladesh") );
72  countryCodeMap.insert( "BRB", i18n("Barbados") );
73  countryCodeMap.insert( "BLR", i18n("Belarus") );
74  countryCodeMap.insert( "BEL", i18n("Belgium") );
75  countryCodeMap.insert( "BLZ", i18n("Belize") );
76  countryCodeMap.insert( "BEN", i18n("Benin") );
77  countryCodeMap.insert( "BMU", i18n("Bermuda") );
78  countryCodeMap.insert( "BTN", i18n("Bhutan") );
79  countryCodeMap.insert( "BOL", i18n("Bolivia") );
80  countryCodeMap.insert( "BIH", i18n("Bosnia and Herzegovina") );
81  countryCodeMap.insert( "BWA", i18n("Botswana") );
82  countryCodeMap.insert( "BVT", i18n("Bouvet Island") );
83  countryCodeMap.insert( "BRA", i18n("Brazil") );
84  countryCodeMap.insert( "IOT", i18n("British Indian Ocean Territory") );
85  countryCodeMap.insert( "VGB", i18n("British Virgin Islands") );
86  countryCodeMap.insert( "BRN", i18n("Brunei Darussalam") );
87  countryCodeMap.insert( "BGR", i18n("Bulgaria") );
88  countryCodeMap.insert( "BFA", i18n("Burkina Faso") );
89  countryCodeMap.insert( "BDI", i18n("Burundi") );
90  countryCodeMap.insert( "KHM", i18n("Cambodia") );
91  countryCodeMap.insert( "CMR", i18n("Cameroon") );
92  countryCodeMap.insert( "CAN", i18n("Canada") );
93  countryCodeMap.insert( "CPV", i18n("Cape Verde") );
94  countryCodeMap.insert( "CYM", i18n("Cayman Islands") );
95  countryCodeMap.insert( "CAF", i18n("Central African Republic") );
96  countryCodeMap.insert( "TCD", i18n("Chad") );
97  countryCodeMap.insert( "CHL", i18n("Chile") );
98  countryCodeMap.insert( "CHN", i18n("China") );
99  countryCodeMap.insert( "CXR", i18n("Christmas Island ") );
100  countryCodeMap.insert( "CCK", i18n("Cocos Islands") );
101  countryCodeMap.insert( "COL", i18n("Colombia") );
102  countryCodeMap.insert( "COM", i18n("Comoros") );
103  countryCodeMap.insert( "COD", i18n("Zaire") );
104  countryCodeMap.insert( "COG", i18n("Congo") );
105  countryCodeMap.insert( "COK", i18n("Cook Islands") );
106  countryCodeMap.insert( "CRI", i18n("Costa Rica") );
107  countryCodeMap.insert( "CIV", i18n("Ivory Coast") );
108  countryCodeMap.insert( "CUB", i18n("Cuba") );
109  countryCodeMap.insert( "CYP", i18n("Cyprus") );
110  countryCodeMap.insert( "CZE", i18n("Czech Republic") );
111  countryCodeMap.insert( "DNK", i18n("Denmark") );
112  countryCodeMap.insert( "DJI", i18n("Djibouti") );
113  countryCodeMap.insert( "DMA", i18n("Dominica") );
114  countryCodeMap.insert( "DOM", i18n("Dominican Republic") );
115  countryCodeMap.insert( "ECU", i18n("Ecuador") );
116  countryCodeMap.insert( "EGY", i18n("Egypt") );
117  countryCodeMap.insert( "SLV", i18n("El Salvador") );
118  countryCodeMap.insert( "GNQ", i18n("Equatorial Guinea") );
119  countryCodeMap.insert( "ERI", i18n("Eritrea") );
120  countryCodeMap.insert( "EST", i18n("Estonia") );
121  countryCodeMap.insert( "ETH", i18n("Ethiopia") );
122  countryCodeMap.insert( "FRO", i18n("Faeroe Islands") );
123  countryCodeMap.insert( "FLK", i18n("Falkland Islands") );
124  countryCodeMap.insert( "FJI", i18n("Fiji Islands") );
125  countryCodeMap.insert( "FIN", i18n("Finland") );
126  countryCodeMap.insert( "FRA", i18n("France") );
127  countryCodeMap.insert( "GUF", i18n("French Guiana") );
128  countryCodeMap.insert( "PYF", i18n("French Polynesia") );
129  countryCodeMap.insert( "ATF", i18n("French Southern Territories") );
130  countryCodeMap.insert( "GAB", i18n("Gabon") );
131  countryCodeMap.insert( "GMB", i18n("Gambia") );
132  countryCodeMap.insert( "GEO", i18n("Georgia") );
133  countryCodeMap.insert( "DEU", i18n("Germany") );
134  countryCodeMap.insert( "GHA", i18n("Ghana") );
135  countryCodeMap.insert( "GIB", i18n("Gibraltar") );
136  countryCodeMap.insert( "GRC", i18n("Greece") );
137  countryCodeMap.insert( "GRL", i18n("Greenland") );
138  countryCodeMap.insert( "GRD", i18n("Grenada") );
139  countryCodeMap.insert( "GLP", i18n("Guadaloupe") );
140  countryCodeMap.insert( "GUM", i18n("Guam") );
141  countryCodeMap.insert( "GTM", i18n("Guatemala") );
142  countryCodeMap.insert( "GIN", i18n("Guinea") );
143  countryCodeMap.insert( "GNB", i18n("Guinea-Bissau") );
144  countryCodeMap.insert( "GUY", i18n("Guyana") );
145  countryCodeMap.insert( "HTI", i18n("Haiti") );
146  countryCodeMap.insert( "HMD", i18n("Heard and McDonald Islands") );
147  countryCodeMap.insert( "VAT", i18n("Vatican") );
148  countryCodeMap.insert( "HND", i18n("Honduras") );
149  countryCodeMap.insert( "HKG", i18n("Hong Kong") );
150  countryCodeMap.insert( "HRV", i18n("Croatia") );
151  countryCodeMap.insert( "HUN", i18n("Hungary") );
152  countryCodeMap.insert( "ISL", i18n("Iceland") );
153  countryCodeMap.insert( "IND", i18n("India") );
154  countryCodeMap.insert( "IDN", i18n("Indonesia") );
155  countryCodeMap.insert( "IRN", i18n("Iran") );
156  countryCodeMap.insert( "IRQ", i18n("Iraq") );
157  countryCodeMap.insert( "IRL", i18n("Ireland") );
158  countryCodeMap.insert( "ISR", i18n("Israel") );
159  countryCodeMap.insert( "ITA", i18n("Italy") );
160  countryCodeMap.insert( "JAM", i18n("Jamaica") );
161  countryCodeMap.insert( "JPN", i18n("Japan") );
162  countryCodeMap.insert( "JOR", i18n("Jordan") );
163  countryCodeMap.insert( "KAZ", i18n("Kazakhstan") );
164  countryCodeMap.insert( "KEN", i18n("Kenya") );
165  countryCodeMap.insert( "KIR", i18n("Kiribati") );
166  countryCodeMap.insert( "PRK", i18n("North-Korea") );
167  countryCodeMap.insert( "KOR", i18n("South-Korea") );
168  countryCodeMap.insert( "KWT", i18n("Kuwait") );
169  countryCodeMap.insert( "KGZ", i18n("Kyrgyz Republic") );
170  countryCodeMap.insert( "LAO", i18n("Lao") );
171  countryCodeMap.insert( "LVA", i18n("Latvia") );
172  countryCodeMap.insert( "LBN", i18n("Lebanon") );
173  countryCodeMap.insert( "LSO", i18n("Lesotho") );
174  countryCodeMap.insert( "LBR", i18n("Liberia") );
175  countryCodeMap.insert( "LBY", i18n("Libyan Arab Jamahiriya") );
176  countryCodeMap.insert( "LIE", i18n("Liechtenstein") );
177  countryCodeMap.insert( "LTU", i18n("Lithuania") );
178  countryCodeMap.insert( "LUX", i18n("Luxembourg") );
179  countryCodeMap.insert( "MAC", i18n("Macao") );
180  countryCodeMap.insert( "MKD", i18n("Macedonia") );
181  countryCodeMap.insert( "MDG", i18n("Madagascar") );
182  countryCodeMap.insert( "MWI", i18n("Malawi") );
183  countryCodeMap.insert( "MYS", i18n("Malaysia") );
184  countryCodeMap.insert( "MDV", i18n("Maldives") );
185  countryCodeMap.insert( "MLI", i18n("Mali") );
186  countryCodeMap.insert( "MLT", i18n("Malta") );
187  countryCodeMap.insert( "MHL", i18n("Marshall Islands") );
188  countryCodeMap.insert( "MTQ", i18n("Martinique") );
189  countryCodeMap.insert( "MRT", i18n("Mauritania") );
190  countryCodeMap.insert( "MUS", i18n("Mauritius") );
191  countryCodeMap.insert( "MYT", i18n("Mayotte") );
192  countryCodeMap.insert( "MEX", i18n("Mexico") );
193  countryCodeMap.insert( "FSM", i18n("Micronesia") );
194  countryCodeMap.insert( "MDA", i18n("Moldova") );
195  countryCodeMap.insert( "MCO", i18n("Monaco") );
196  countryCodeMap.insert( "MNG", i18n("Mongolia") );
197  countryCodeMap.insert( "MSR", i18n("Montserrat") );
198  countryCodeMap.insert( "MAR", i18n("Morocco") );
199  countryCodeMap.insert( "MOZ", i18n("Mozambique") );
200  countryCodeMap.insert( "MMR", i18n("Myanmar") );
201  countryCodeMap.insert( "NAM", i18n("Namibia") );
202  countryCodeMap.insert( "NRU", i18n("Nauru") );
203  countryCodeMap.insert( "NPL", i18n("Nepal") );
204  countryCodeMap.insert( "ANT", i18n("Netherlands Antilles") );
205  countryCodeMap.insert( "NLD", i18n("Netherlands") );
206  countryCodeMap.insert( "NCL", i18n("New Caledonia") );
207  countryCodeMap.insert( "NZL", i18n("New Zealand") );
208  countryCodeMap.insert( "NIC", i18n("Nicaragua") );
209  countryCodeMap.insert( "NER", i18n("Niger") );
210  countryCodeMap.insert( "NGA", i18n("Nigeria") );
211  countryCodeMap.insert( "NIU", i18n("Niue") );
212  countryCodeMap.insert( "NFK", i18n("Norfolk Island") );
213  countryCodeMap.insert( "MNP", i18n("Northern Mariana Islands") );
214  countryCodeMap.insert( "NOR", i18n("Norway") );
215  countryCodeMap.insert( "OMN", i18n("Oman") );
216  countryCodeMap.insert( "PAK", i18n("Pakistan") );
217  countryCodeMap.insert( "PLW", i18n("Palau") );
218  countryCodeMap.insert( "PSE", i18n("Palestinian Territory") );
219  countryCodeMap.insert( "PAN", i18n("Panama") );
220  countryCodeMap.insert( "PNG", i18n("Papua New Guinea") );
221  countryCodeMap.insert( "PRY", i18n("Paraguay") );
222  countryCodeMap.insert( "PER", i18n("Peru") );
223  countryCodeMap.insert( "PHL", i18n("Philippines") );
224  countryCodeMap.insert( "PCN", i18n("Pitcairn Island") );
225  countryCodeMap.insert( "POL", i18n("Poland") );
226  countryCodeMap.insert( "PRT", i18n("Portugal") );
227  countryCodeMap.insert( "PRI", i18n("Puerto Rico") );
228  countryCodeMap.insert( "QAT", i18n("Qatar") );
229  countryCodeMap.insert( "REU", i18n("Reunion") );
230  countryCodeMap.insert( "ROU", i18n("Romania") );
231  countryCodeMap.insert( "RUS", i18n("Russian Federation") );
232  countryCodeMap.insert( "RWA", i18n("Rwanda") );
233  countryCodeMap.insert( "SHN", i18n("St. Helena") );
234  countryCodeMap.insert( "KNA", i18n("St. Kitts and Nevis") );
235  countryCodeMap.insert( "LCA", i18n("St. Lucia") );
236  countryCodeMap.insert( "SPM", i18n("St. Pierre and Miquelon") );
237  countryCodeMap.insert( "VCT", i18n("St. Vincent and the Grenadines") );
238  countryCodeMap.insert( "WSM", i18n("Samoa") );
239  countryCodeMap.insert( "SMR", i18n("San Marino") );
240  countryCodeMap.insert( "STP", i18n("Sao Tome and Principe") );
241  countryCodeMap.insert( "SAU", i18n("Saudi Arabia") );
242  countryCodeMap.insert( "SEN", i18n("Senegal") );
243  countryCodeMap.insert( "SCG", i18n("Serbia and Montenegro") );
244  countryCodeMap.insert( "SYC", i18n("Seychelles") );
245  countryCodeMap.insert( "SLE", i18n("Sierra Leone") );
246  countryCodeMap.insert( "SGP", i18n("Singapore") );
247  countryCodeMap.insert( "SVK", i18n("Slovakia") );
248  countryCodeMap.insert( "SVN", i18n("Slovenia") );
249  countryCodeMap.insert( "SLB", i18n("Solomon Islands") );
250  countryCodeMap.insert( "SOM", i18n("Somalia") );
251  countryCodeMap.insert( "ZAF", i18n("South Africa") );
252  countryCodeMap.insert( "SGS", i18n("South Georgia and the South Sandwich Islands") );
253  countryCodeMap.insert( "ESP", i18n("Spain") );
254  countryCodeMap.insert( "LKA", i18n("Sri Lanka") );
255  countryCodeMap.insert( "SDN", i18n("Sudan") );
256  countryCodeMap.insert( "SUR", i18n("Suriname") );
257  countryCodeMap.insert( "SJM", i18n("Svalbard & Jan Mayen Islands") );
258  countryCodeMap.insert( "SWZ", i18n("Swaziland") );
259  countryCodeMap.insert( "SWE", i18n("Sweden") );
260  countryCodeMap.insert( "CHE", i18n("Switzerland") );
261  countryCodeMap.insert( "SYR", i18n("Syrian Arab Republic") );
262  countryCodeMap.insert( "TWN", i18n("Taiwan") );
263  countryCodeMap.insert( "TJK", i18n("Tajikistan") );
264  countryCodeMap.insert( "TZA", i18n("Tanzania") );
265  countryCodeMap.insert( "THA", i18n("Thailand") );
266  countryCodeMap.insert( "TLS", i18n("Timor-Leste") );
267  countryCodeMap.insert( "TGO", i18n("Togo") );
268  countryCodeMap.insert( "TKL", i18n("Tokelau Islands") );
269  countryCodeMap.insert( "TON", i18n("Tonga") );
270  countryCodeMap.insert( "TTO", i18n("Trinidad and Tobago") );
271  countryCodeMap.insert( "TUN", i18n("Tunisia") );
272  countryCodeMap.insert( "TUR", i18n("Turkey") );
273  countryCodeMap.insert( "TKM", i18n("Turkmenistan") );
274  countryCodeMap.insert( "TCA", i18n("Turks and Caicos Islands") );
275  countryCodeMap.insert( "TUV", i18n("Tuvalu") );
276  countryCodeMap.insert( "VIR", i18n("US Virgin Islands") );
277  countryCodeMap.insert( "UGA", i18n("Uganda") );
278  countryCodeMap.insert( "UKR", i18n("Ukraine") );
279  countryCodeMap.insert( "ARE", i18n("United Arab Emirates") );
280  countryCodeMap.insert( "GBR", i18n("United Kingdom") );
281  countryCodeMap.insert( "UMI", i18n("United States Minor Outlying Islands") );
282  countryCodeMap.insert( "USA", i18n("United States of America") );
283  countryCodeMap.insert( "URY", i18n("Uruguay, Eastern Republic of") );
284  countryCodeMap.insert( "UZB", i18n("Uzbekistan") );
285  countryCodeMap.insert( "VUT", i18n("Vanuatu") );
286  countryCodeMap.insert( "VEN", i18n("Venezuela") );
287  countryCodeMap.insert( "VNM", i18n("Viet Nam") );
288  countryCodeMap.insert( "WLF", i18n("Wallis and Futuna Islands ") );
289  countryCodeMap.insert( "ESH", i18n("Western Sahara") );
290  countryCodeMap.insert( "YEM", i18n("Yemen") );
291  countryCodeMap.insert( "ZMB", i18n("Zambia") );
292  countryCodeMap.insert( "ZWE", i18n("Zimbabwe") );
293 
294  // Supplemental IPTC/IIM country codes.
295 
296  countryCodeMap.insert( "XUN", i18n("United Nations") );
297  countryCodeMap.insert( "XEU", i18n("European Union") );
298  countryCodeMap.insert( "XSP", i18n("Space") );
299  countryCodeMap.insert( "XSE", i18n("At Sea") );
300  countryCodeMap.insert( "XIF", i18n("In Flight") );
301  countryCodeMap.insert( "XEN", i18n("England") );
302  countryCodeMap.insert( "XSC", i18n("Scotland") );
303  countryCodeMap.insert( "XNI", i18n("Northern Ireland") );
304  countryCodeMap.insert( "XWA", i18n("Wales") );
305  countryCodeMap.insert( "PSE", i18n("Palestine") );
306  countryCodeMap.insert( "GZA", i18n("Gaza") );
307  countryCodeMap.insert( "JRO", i18n("Jericho") );
308  }
309 
310  typedef QMap<QString, QString> CountryCodeMap;
311 
312  CountryCodeMap countryCodeMap;
313 };
314 
315 CountrySelector::CountrySelector(QWidget* parent)
316  : KComboBox(parent), d(new Private)
317 {
318  for (Private::CountryCodeMap::Iterator it = d->countryCodeMap.begin();
319  it != d->countryCodeMap.end(); ++it)
320  {
321  addItem(QString("%1 - %2").arg(it.key()).arg(it.value()));
322  }
323 
324  model()->sort(0);
325 
326  insertSeparator(count());
327  addItem(i18nc("Unknown country", "Unknown"));
328 }
329 
330 CountrySelector::~CountrySelector()
331 {
332  delete d;
333 }
334 
335 void CountrySelector::setCountry(const QString& countryCode)
336 {
337  // NOTE: if countryCode is empty or do not matches code map, unknow is selected from the list.
338 
339  int id = count()-1;
340  for (int i = 0 ; i < d->countryCodeMap.count() ; i++)
341  {
342  if (itemText(i).left(3) == countryCode)
343  {
344  id = i;
345  break;
346  }
347  }
348  setCurrentIndex(id);
349 
350  kDebug() << count() << " :: " << id;
351 }
352 
353 bool CountrySelector::country(QString& countryCode, QString& countryName)
354 {
355  // Unknow is selected ?
356  if (currentIndex() == count()-1)
357  return false;
358 
359  countryName = currentText().mid(6);
360  countryCode = currentText().left(3);
361  return true;
362 }
363 
364 QString CountrySelector::countryForCode(const QString& countryCode)
365 {
366  Private priv;
367  return (priv.countryCodeMap[countryCode]);
368 }
369 
370 } // namespace KExiv2Iface
QWidget
KExiv2Iface::CountrySelector::country
bool country(QString &countryCode, QString &countryName)
Definition: countryselector.cpp:353
KExiv2Iface::CountrySelector::setCountry
void setCountry(const QString &countryCode)
Definition: countryselector.cpp:335
KExiv2Iface::CountrySelector::~CountrySelector
~CountrySelector()
Definition: countryselector.cpp:330
QMap< QString, QString >
QString
QString::mid
QString mid(int position, int n) const
countryselector.h
===========================================================This file is a part of digiKam project htt...
KComboBox
QString::left
QString left(int n) const
KExiv2Iface::CountrySelector::countryForCode
static QString countryForCode(const QString &countryCode)
Definition: countryselector.cpp:364
QMap< QString, QString >::Iterator
typedef Iterator
KExiv2Iface::CountrySelector::CountrySelector
CountrySelector(QWidget *parent)
Definition: countryselector.cpp:315
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:19:39 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

libs/libkexiv2/libkexiv2

Skip menu "libs/libkexiv2/libkexiv2"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdegraphics API Reference

Skip menu "kdegraphics API Reference"
  •     libkdcraw
  •     libkexiv2
  •     libkipi
  •     libksane
  • okular

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal