Simplified some names in countries.
This commit is contained in:
parent
df02bbb0a3
commit
a230e83778
6 changed files with 28 additions and 28 deletions
|
@ -10,7 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
namespace Countries {
|
namespace Countries {
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
const std::array<CountryInfo, 231> List = { {
|
const std::array<Info, 231> FallbackList = { {
|
||||||
{ "Afghanistan", "AF", "93" },
|
{ "Afghanistan", "AF", "93" },
|
||||||
{ "Albania", "AL", "355" },
|
{ "Albania", "AL", "355" },
|
||||||
{ "Algeria", "DZ", "213" },
|
{ "Algeria", "DZ", "213" },
|
||||||
|
@ -244,29 +244,29 @@ const std::array<CountryInfo, 231> List = { {
|
||||||
{ "Zimbabwe", "ZW", "263" },
|
{ "Zimbabwe", "ZW", "263" },
|
||||||
} };
|
} };
|
||||||
|
|
||||||
QHash<QString, const CountryInfo *> ByCode;
|
QHash<QString, const Info *> ByCode;
|
||||||
QHash<QString, const CountryInfo *> ByISO2;
|
QHash<QString, const Info *> ByISO2;
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
const std::array<CountryInfo, 231> &Countries() {
|
const std::array<Info, 231> &List() {
|
||||||
return List;
|
return FallbackList;
|
||||||
}
|
}
|
||||||
|
|
||||||
const QHash<QString, const CountryInfo *> &CountriesByCode() {
|
const QHash<QString, const Info *> &InfoByCode() {
|
||||||
if (ByCode.isEmpty()) {
|
if (ByCode.isEmpty()) {
|
||||||
ByCode.reserve(List.size());
|
ByCode.reserve(FallbackList.size());
|
||||||
for (const auto &entry : List) {
|
for (const auto &entry : FallbackList) {
|
||||||
ByCode.insert(entry.code, &entry);
|
ByCode.insert(entry.code, &entry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ByCode;
|
return ByCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
const QHash<QString, const CountryInfo *> &CountriesByISO2() {
|
const QHash<QString, const Info *> &InfoByISO2() {
|
||||||
if (ByISO2.isEmpty()) {
|
if (ByISO2.isEmpty()) {
|
||||||
ByISO2.reserve(List.size());
|
ByISO2.reserve(FallbackList.size());
|
||||||
for (const auto &entry : List) {
|
for (const auto &entry : FallbackList) {
|
||||||
ByISO2.insert(entry.iso2, &entry);
|
ByISO2.insert(entry.iso2, &entry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -274,7 +274,7 @@ const QHash<QString, const CountryInfo *> &CountriesByISO2() {
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ValidPhoneCode(QString fullCode) {
|
QString ValidPhoneCode(QString fullCode) {
|
||||||
const auto &byCode = CountriesByCode();
|
const auto &byCode = InfoByCode();
|
||||||
while (fullCode.length()) {
|
while (fullCode.length()) {
|
||||||
const auto i = byCode.constFind(fullCode);
|
const auto i = byCode.constFind(fullCode);
|
||||||
if (i != byCode.cend()) {
|
if (i != byCode.cend()) {
|
||||||
|
@ -286,13 +286,13 @@ QString ValidPhoneCode(QString fullCode) {
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CountryNameByISO2(const QString &iso) {
|
QString CountryNameByISO2(const QString &iso) {
|
||||||
const auto &byISO2 = CountriesByISO2();
|
const auto &byISO2 = InfoByISO2();
|
||||||
const auto i = byISO2.constFind(iso);
|
const auto i = byISO2.constFind(iso);
|
||||||
return (i != byISO2.cend()) ? QString::fromUtf8((*i)->name) : QString();
|
return (i != byISO2.cend()) ? QString::fromUtf8((*i)->name) : QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CountryISO2ByPhone(const QString &phone) {
|
QString CountryISO2ByPhone(const QString &phone) {
|
||||||
const auto &byCode = CountriesByCode();
|
const auto &byCode = InfoByCode();
|
||||||
const auto code = ValidPhoneCode(phone);
|
const auto code = ValidPhoneCode(phone);
|
||||||
const auto i = byCode.find(code);
|
const auto i = byCode.find(code);
|
||||||
return (i != byCode.cend()) ? QString::fromUtf8((*i)->iso2) : QString();
|
return (i != byCode.cend()) ? QString::fromUtf8((*i)->iso2) : QString();
|
||||||
|
|
|
@ -10,17 +10,17 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
|
|
||||||
namespace Countries {
|
namespace Countries {
|
||||||
|
|
||||||
struct CountryInfo {
|
struct Info {
|
||||||
const char *name = nullptr;
|
const char *name = nullptr;
|
||||||
const char *iso2 = nullptr;
|
const char *iso2 = nullptr;
|
||||||
const char *code = nullptr;
|
const char *code = nullptr;
|
||||||
const char *alternativeName = nullptr;
|
const char *alternativeName = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
[[nodiscard]] const std::array<CountryInfo, 231> &Countries();
|
[[nodiscard]] const std::array<Info, 231> &List();
|
||||||
|
|
||||||
[[nodiscard]] const QHash<QString, const CountryInfo *> &CountriesByCode();
|
[[nodiscard]] const QHash<QString, const Info *> &InfoByCode();
|
||||||
[[nodiscard]] const QHash<QString, const CountryInfo *> &CountriesByISO2();
|
[[nodiscard]] const QHash<QString, const Info *> &InfoByISO2();
|
||||||
|
|
||||||
[[nodiscard]] QString ValidPhoneCode(QString fullCode);
|
[[nodiscard]] QString ValidPhoneCode(QString fullCode);
|
||||||
[[nodiscard]] QString CountryNameByISO2(const QString &iso);
|
[[nodiscard]] QString CountryNameByISO2(const QString &iso);
|
||||||
|
|
|
@ -64,7 +64,7 @@ private:
|
||||||
void updateSelectedRow();
|
void updateSelectedRow();
|
||||||
void updateRow(int index);
|
void updateRow(int index);
|
||||||
void setPressed(int pressed);
|
void setPressed(int pressed);
|
||||||
const std::vector<not_null<const Countries::CountryInfo*>> ¤t() const;
|
const std::vector<not_null<const Countries::Info*>> ¤t() const;
|
||||||
|
|
||||||
Type _type = Type::Phones;
|
Type _type = Type::Phones;
|
||||||
int _rowHeight = 0;
|
int _rowHeight = 0;
|
||||||
|
@ -76,8 +76,8 @@ private:
|
||||||
|
|
||||||
std::vector<std::unique_ptr<RippleAnimation>> _ripples;
|
std::vector<std::unique_ptr<RippleAnimation>> _ripples;
|
||||||
|
|
||||||
std::vector<not_null<const Countries::CountryInfo*>> _list;
|
std::vector<not_null<const Countries::Info*>> _list;
|
||||||
std::vector<not_null<const Countries::CountryInfo*>> _filtered;
|
std::vector<not_null<const Countries::Info*>> _filtered;
|
||||||
base::flat_map<QChar, std::vector<int>> _byLetter;
|
base::flat_map<QChar, std::vector<int>> _byLetter;
|
||||||
std::vector<std::vector<QString>> _namesList;
|
std::vector<std::vector<QString>> _namesList;
|
||||||
|
|
||||||
|
@ -174,7 +174,7 @@ CountrySelectBox::Inner::Inner(
|
||||||
, _rowHeight(st::countryRowHeight) {
|
, _rowHeight(st::countryRowHeight) {
|
||||||
setAttribute(Qt::WA_OpaquePaintEvent);
|
setAttribute(Qt::WA_OpaquePaintEvent);
|
||||||
|
|
||||||
const auto &byISO2 = Countries::CountriesByISO2();
|
const auto &byISO2 = Countries::InfoByISO2();
|
||||||
|
|
||||||
if (byISO2.contains(iso)) {
|
if (byISO2.contains(iso)) {
|
||||||
LastValidISO = iso;
|
LastValidISO = iso;
|
||||||
|
@ -188,7 +188,7 @@ CountrySelectBox::Inner::Inner(
|
||||||
if (lastValid) {
|
if (lastValid) {
|
||||||
_list.emplace_back(lastValid);
|
_list.emplace_back(lastValid);
|
||||||
}
|
}
|
||||||
for (const auto &entry : Countries::Countries()) {
|
for (const auto &entry : Countries::List()) {
|
||||||
if (&entry != lastValid) {
|
if (&entry != lastValid) {
|
||||||
_list.emplace_back(&entry);
|
_list.emplace_back(&entry);
|
||||||
}
|
}
|
||||||
|
@ -424,7 +424,7 @@ void CountrySelectBox::Inner::updateSelected(QPoint localPos) {
|
||||||
}
|
}
|
||||||
|
|
||||||
auto CountrySelectBox::Inner::current() const
|
auto CountrySelectBox::Inner::current() const
|
||||||
-> const std::vector<not_null<const Countries::CountryInfo*>> & {
|
-> const std::vector<not_null<const Countries::Info*>> & {
|
||||||
return _filter.isEmpty() ? _list : _filtered;
|
return _filter.isEmpty() ? _list : _filtered;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "styles/style_widgets.h"
|
#include "styles/style_widgets.h"
|
||||||
|
|
||||||
namespace Countries {
|
namespace Countries {
|
||||||
struct CountryInfo;
|
struct Info;
|
||||||
} // namespace Countries
|
} // namespace Countries
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
|
|
|
@ -114,7 +114,7 @@ void CountryInput::onChooseCode(const QString &code) {
|
||||||
Ui::hideLayer();
|
Ui::hideLayer();
|
||||||
_chosenIso = QString();
|
_chosenIso = QString();
|
||||||
if (code.length()) {
|
if (code.length()) {
|
||||||
const auto &byCode = Countries::CountriesByCode();
|
const auto &byCode = Countries::InfoByCode();
|
||||||
const auto i = byCode.constFind(code);
|
const auto i = byCode.constFind(code);
|
||||||
if (i != byCode.cend()) {
|
if (i != byCode.cend()) {
|
||||||
const auto info = *i;
|
const auto info = *i;
|
||||||
|
@ -132,7 +132,7 @@ void CountryInput::onChooseCode(const QString &code) {
|
||||||
bool CountryInput::chooseCountry(const QString &iso) {
|
bool CountryInput::chooseCountry(const QString &iso) {
|
||||||
Ui::hideLayer();
|
Ui::hideLayer();
|
||||||
|
|
||||||
const auto &byISO2 = Countries::CountriesByISO2();
|
const auto &byISO2 = Countries::InfoByISO2();
|
||||||
const auto i = byISO2.constFind(iso);
|
const auto i = byISO2.constFind(iso);
|
||||||
const auto info = (i != byISO2.cend()) ? (*i) : nullptr;
|
const auto info = (i != byISO2.cend()) ? (*i) : nullptr;
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "styles/style_widgets.h"
|
#include "styles/style_widgets.h"
|
||||||
|
|
||||||
namespace Data {
|
namespace Data {
|
||||||
struct CountryInfo;
|
struct Info;
|
||||||
} // namespace Data
|
} // namespace Data
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
|
|
Loading…
Reference in a new issue