]> git.sur5r.net Git - minitube/blob - src/ytregions.cpp
Imported Upstream version 2.0
[minitube] / src / ytregions.cpp
1 #include "ytregions.h"
2
3 YTRegions::YTRegions() : QObject() { }
4
5 const QList<YTRegion> & YTRegions::list() {
6     static QList<YTRegion> list;
7     if (list.isEmpty()) {
8         list << r(tr("Algeria"), "DZ")
9              << r(tr("Argentina"), "AR")
10              << r(tr("Australia"), "AU")
11              << r(tr("Belgium"), "BE")
12              << r(tr("Brazil"), "BR")
13              << r(tr("Canada"), "CA")
14              << r(tr("Chile"), "CL")
15              << r(tr("Colombia"), "CO")
16              << r(tr("Czech Republic"), "CZ")
17              << r(tr("Egypt"), "EG")
18              << r(tr("France"), "FR")
19              << r(tr("Germany"), "DE")
20              << r(tr("Ghana"), "GH")
21              << r(tr("Greece"), "GR")
22              << r(tr("Hong Kong"), "HK")
23              << r(tr("Hungary"), "HU")
24              << r(tr("India"), "IN")
25              << r(tr("Indonesia"), "ID")
26              << r(tr("Ireland"), "IE")
27              << r(tr("Israel"), "IL")
28              << r(tr("Italy"), "IT")
29              << r(tr("Japan"), "JP")
30              << r(tr("Jordan"), "JO")
31              << r(tr("Kenya"), "KE")
32              << r(tr("Malaysia"), "MY")
33              << r(tr("Mexico"), "MX")
34              << r(tr("Morocco"), "MA")
35              << r(tr("Netherlands"), "NL")
36              << r(tr("New Zealand"), "NZ")
37              << r(tr("Nigeria"), "NG")
38              << r(tr("Peru"), "PE")
39              << r(tr("Philippines"), "PH")
40              << r(tr("Poland"), "PL")
41              << r(tr("Russia"), "RU")
42              << r(tr("Saudi Arabia"), "SA")
43              << r(tr("Singapore"), "SG")
44              << r(tr("South Africa"), "ZA")
45              << r(tr("South Korea"), "KR")
46              << r(tr("Spain"), "ES")
47              << r(tr("Sweden"), "SE")
48              << r(tr("Taiwan"), "TW")
49              << r(tr("Tunisia"), "TN")
50              << r(tr("Turkey"), "TR")
51              << r(tr("Uganda"), "UG")
52              << r(tr("United Arab Emirates"), "AE")
53              << r(tr("United Kingdom"), "GB")
54              << r(tr("Yemen"), "YE");
55 /*
56         list << r(QLocale::Algeria, "DZ")
57              << r(QLocale::Argentina, "AR")
58              << r(QLocale::Australia, "AU")
59              << r(QLocale::Belgium, "BE")
60              << r(QLocale::Brazil, "BR")
61              << r(QLocale::Canada, "CA")
62              << r(QLocale::Chile, "CL")
63              << r(QLocale::Colombia, "CO")
64              << r(QLocale::CzechRepublic, "CZ")
65              << r(QLocale::Egypt, "EG")
66              << r(QLocale::France, "FR")
67              << r(QLocale::Germany, "DE")
68              << r(QLocale::Ghana, "GH")
69              << r(QLocale::Greece, "GR")
70              << r(QLocale::HongKong, "HK")
71              << r(QLocale::Hungary, "HU")
72              << r(QLocale::India, "IN")
73              << r(QLocale::Indonesia, "ID")
74              << r(QLocale::Ireland, "IE")
75              << r(QLocale::Israel, "IL")
76              << r(QLocale::Italy, "IT")
77              << r(QLocale::Japan, "JP")
78              << r(QLocale::Jordan, "JO")
79              << r(QLocale::Kenya, "KE")
80              << r(QLocale::Malaysia, "MY")
81              << r(QLocale::Mexico, "MX")
82              << r(QLocale::Morocco, "MA")
83              << r(QLocale::Netherlands, "NL")
84              << r(QLocale::NewZealand, "NZ")
85              << r(QLocale::Nigeria, "NG")
86              << r(QLocale::Peru, "PE")
87              << r(QLocale::Philippines, "PH")
88              << r(QLocale::Poland, "PL")
89              << r(QLocale::RussianFederation, "RU")
90              << r(QLocale::SaudiArabia, "SA")
91              << r(QLocale::Singapore, "SG")
92              << r(QLocale::SouthAfrica, "ZA")
93              << r(QLocale::RepublicOfKorea, "KR")
94              << r(QLocale::Spain, "ES")
95              << r(QLocale::Sweden, "SE")
96              << r(QLocale::Taiwan, "TW")
97              << r(QLocale::Tunisia, "TN")
98              << r(QLocale::Turkey, "TR")
99              << r(QLocale::Uganda, "UG")
100              << r(QLocale::UnitedArabEmirates, "AE")
101              << r(QLocale::UnitedKingdom, "GB")
102              << r(QLocale::Yemen, "YE");
103              */
104         qSort(list);
105     }
106     return list;
107 }
108
109 YTRegion YTRegions::r(QString name, QString id) {
110     YTRegion r = {id, name};
111     return r;
112 }
113
114 const YTRegion & YTRegions::localRegion() {
115     static YTRegion region;
116     if (region.name.isEmpty()) {
117         QString country = QLocale::system().name().right(2);
118         foreach (YTRegion r, list())
119             if (r.id == country) {
120                 region = r;
121                 break;
122             } // else qDebug() << r.id << country;
123     }
124     return region;
125 }
126
127 const YTRegion & YTRegions::worldwideRegion() {
128     static YTRegion region = {"", tr("Worldwide")};
129     return region;
130 }
131
132 void YTRegions::setRegion(QString regionId) {
133     QSettings settings;
134     settings.setValue("regionId", regionId);
135 }
136
137 QString YTRegions::currentRegionId() {
138     QSettings settings;
139     return settings.value("regionId").toString();
140 }
141
142 YTRegion YTRegions::currentRegion() {
143     return regionById(currentRegionId());
144 }
145
146 YTRegion YTRegions::regionById(QString id) {
147     if (id.isEmpty()) return worldwideRegion();
148     YTRegion region;
149     foreach (YTRegion r, list())
150         if (r.id == id) {
151             region = r;
152             break;
153         }
154     if (region.name.isEmpty()) return worldwideRegion();
155     return region;
156 }
157
158 QIcon YTRegions::iconForRegionId(QString regionId) {
159     if (regionId.isEmpty()) return QIcon(":images/worldwide.png");
160     return QIcon(":flags/" + regionId.toLower() + ".png");
161 }