summaryrefslogtreecommitdiff
path: root/protocols/CurrencyRates
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/CurrencyRates')
-rw-r--r--protocols/CurrencyRates/docs/Utility/ExchangeRates.xml518
-rw-r--r--protocols/CurrencyRates/src/CurrencyRatesProviderBase.cpp19
-rw-r--r--protocols/CurrencyRates/src/CurrencyRatesProviderBase.h1
-rw-r--r--protocols/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.cpp35
-rw-r--r--protocols/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.h10
-rw-r--r--protocols/CurrencyRates/src/DBUtils.h2
-rw-r--r--protocols/CurrencyRates/src/EconomicRateInfo.h5
-rw-r--r--protocols/CurrencyRates/src/SettingsDlg.cpp3
8 files changed, 549 insertions, 44 deletions
diff --git a/protocols/CurrencyRates/docs/Utility/ExchangeRates.xml b/protocols/CurrencyRates/docs/Utility/ExchangeRates.xml
new file mode 100644
index 0000000000..6e2aa08b03
--- /dev/null
+++ b/protocols/CurrencyRates/docs/Utility/ExchangeRates.xml
@@ -0,0 +1,518 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<Provider>
+ <name>Exchange Rates API</name>
+ <ref>https://exchangeratesapi.io/</ref>
+ <url>http://api.exchangeratesapi.io/v1/latest</url>
+
+<section>
+ <name>Currencies</name>
+ <currencyrate>
+ <id>AED</id><symbol>AED</symbol><description>United Arab Emirates Dirham (AED)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>AFN</id><symbol>AFN</symbol><description>Afghan Afghani (AFN)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>ALL</id><symbol>ALL</symbol><description>Albanian Lek (ALL)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>AMD</id><symbol>AMD</symbol><description>Armenian Dram (AMD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>ANG</id><symbol>ANG</symbol><description>Netherlands Antillean Gulden (ANG)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>AOA</id><symbol>AOA</symbol><description>Angolan Kwanza (AOA)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>ARS</id><symbol>ARS</symbol><description>Argentine Peso (ARS)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>AUD</id><symbol>AUD</symbol><description>Australian Dollar (AUD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>AWG</id><symbol>AWG</symbol><description>Aruban Florin (AWG)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>AZN</id><symbol>AZN</symbol><description>Azerbaijani Manat (AZN)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BAM</id><symbol>BAM</symbol><description>Bosnia-Herzegovina Convertible Mark (BAM)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BBD</id><symbol>BBD</symbol><description>Barbadian Dollar (BBD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BDT</id><symbol>BDT</symbol><description>Bangladeshi Taka (BDT)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BGN</id><symbol>BGN</symbol><description>Bulgarian Lev (BGN)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BHD</id><symbol>BHD</symbol><description>Bahraini Dinar (BHD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BIF</id><symbol>BIF</symbol><description>Burundian Franc (BIF)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BMD</id><symbol>BMD</symbol><description>Bermudan Dollar (BMD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BND</id><symbol>BND</symbol><description>Brunei Dollar (BND)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BOB</id><symbol>BOB</symbol><description>Bolivian Boliviano (BOB)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BRL</id><symbol>BRL</symbol><description>Brazilian Real (BRL)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BSD</id><symbol>BSD</symbol><description>Bahamian Dollar (BSD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BTC</id><symbol>BTC</symbol><description>Bitcoin (BTC)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BTN</id><symbol>BTN</symbol><description>Bhutanese Ngultrum (BTN)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BWP</id><symbol>BWP</symbol><description>Botswana Pula (BWP)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BYN</id><symbol>BYN</symbol><description>Belarusian Ruble (BYN)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BYR</id><symbol>BYR</symbol><description>Belarusian Ruble (2000–2016) (BYR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>BZD</id><symbol>BZD</symbol><description>Belize Dollar (BZD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>CAD</id><symbol>CAD</symbol><description>Canadian Dollar (CAD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>CDF</id><symbol>CDF</symbol><description>Congolese Franc (CDF)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>CHF</id><symbol>CHF</symbol><description>Swiss Franc (CHF)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>CLF</id><symbol>CLF</symbol><description>Chilean Unit of Account (UF) (CLF)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>CLP</id><symbol>CLP</symbol><description>Chilean Peso (CLP)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>CNH</id><symbol>CNH</symbol><description>CNH (CNH)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>CNY</id><symbol>CNY</symbol><description>Chinese Yuan (CNY)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>COP</id><symbol>COP</symbol><description>Colombian Peso (COP)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>CRC</id><symbol>CRC</symbol><description>Costa Rican Colón (CRC)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>CUP</id><symbol>CUP</symbol><description>Cuban Peso (CUP)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>CVE</id><symbol>CVE</symbol><description>Cape Verdean Escudo (CVE)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>CZK</id><symbol>CZK</symbol><description>Czech Koruna (CZK)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>DEM</id><symbol>DEM</symbol><description>German Mark (DEM)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>DJF</id><symbol>DJF</symbol><description>Djiboutian Franc (DJF)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>DKK</id><symbol>DKK</symbol><description>Danish Krone (DKK)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>DOP</id><symbol>DOP</symbol><description>Dominican Peso (DOP)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>DZD</id><symbol>DZD</symbol><description>Algerian Dinar (DZD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>EGP</id><symbol>EGP</symbol><description>Egyptian Pound (EGP)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>ERN</id><symbol>ERN</symbol><description>Eritrean Nakfa (ERN)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>ETB</id><symbol>ETB</symbol><description>Ethiopian Birr (ETB)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>EUR</id><symbol>EUR</symbol><description>Euro (EUR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>FIM</id><symbol>FIM</symbol><description>Finnish Markka (FIM)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>FJD</id><symbol>FJD</symbol><description>Fijian Dollar (FJD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>FKP</id><symbol>FKP</symbol><description>Falkland Islands Pound (FKP)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>FRF</id><symbol>FRF</symbol><description>French Franc (FRF)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>GBP</id><symbol>GBP</symbol><description>British Pound (GBP)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>GEL</id><symbol>GEL</symbol><description>Georgian Lari (GEL)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>GHS</id><symbol>GHS</symbol><description>Ghanaian Cedi (GHS)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>GIP</id><symbol>GIP</symbol><description>Gibraltar Pound (GIP)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>GMD</id><symbol>GMD</symbol><description>Gambian Dalasi (GMD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>GNF</id><symbol>GNF</symbol><description>Guinean Franc (GNF)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>GTQ</id><symbol>GTQ</symbol><description>Guatemalan Quetzal (GTQ)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>GYD</id><symbol>GYD</symbol><description>Guyanaese Dollar (GYD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>HKD</id><symbol>HKD</symbol><description>Hong Kong Dollar (HKD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>HNL</id><symbol>HNL</symbol><description>Honduran Lempira (HNL)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>HRK</id><symbol>HRK</symbol><description>Croatian Kuna (HRK)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>HTG</id><symbol>HTG</symbol><description>Haitian Gourde (HTG)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>HUF</id><symbol>HUF</symbol><description>Hungarian Forint (HUF)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>IDR</id><symbol>IDR</symbol><description>Indonesian Rupiah (IDR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>IEP</id><symbol>IEP</symbol><description>Irish Pound (IEP)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>ILS</id><symbol>ILS</symbol><description>Israeli New Shekel (ILS)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>INR</id><symbol>INR</symbol><description>Indian Rupee (INR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>IQD</id><symbol>IQD</symbol><description>Iraqi Dinar (IQD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>IRR</id><symbol>IRR</symbol><description>Iranian Rial (IRR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>ISK</id><symbol>ISK</symbol><description>Icelandic Króna (ISK)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>ITL</id><symbol>ITL</symbol><description>Italian Lira (ITL)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>JMD</id><symbol>JMD</symbol><description>Jamaican Dollar (JMD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>JOD</id><symbol>JOD</symbol><description>Jordanian Dinar (JOD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>JPY</id><symbol>JPY</symbol><description>Japanese Yen (JPY)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>KES</id><symbol>KES</symbol><description>Kenyan Shilling (KES)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>KGS</id><symbol>KGS</symbol><description>Kyrgystani Som (KGS)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>KHR</id><symbol>KHR</symbol><description>Cambodian Riel (KHR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>KMF</id><symbol>KMF</symbol><description>Comorian Franc (KMF)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>KPW</id><symbol>KPW</symbol><description>North Korean Won (KPW)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>KRW</id><symbol>KRW</symbol><description>South Korean Won (KRW)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>KWD</id><symbol>KWD</symbol><description>Kuwaiti Dinar (KWD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>KYD</id><symbol>KYD</symbol><description>Cayman Islands Dollar (KYD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>KZT</id><symbol>KZT</symbol><description>Kazakhstani Tenge (KZT)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>LAK</id><symbol>LAK</symbol><description>Laotian Kip (LAK)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>LBP</id><symbol>LBP</symbol><description>Lebanese Pound (LBP)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>LKR</id><symbol>LKR</symbol><description>Sri Lankan Rupee (LKR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>LRD</id><symbol>LRD</symbol><description>Liberian Dollar (LRD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>LSL</id><symbol>LSL</symbol><description>Lesotho Loti (LSL)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>LTL</id><symbol>LTL</symbol><description>Lithuanian Litas (LTL)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>LVL</id><symbol>LVL</symbol><description>Latvian Lats (LVL)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>LYD</id><symbol>LYD</symbol><description>Libyan Dinar (LYD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>MAD</id><symbol>MAD</symbol><description>Moroccan Dirham (MAD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>MDL</id><symbol>MDL</symbol><description>Moldovan Leu (MDL)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>MGA</id><symbol>MGA</symbol><description>Malagasy Ariary (MGA)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>MKD</id><symbol>MKD</symbol><description>Macedonian Denar (MKD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>MNT</id><symbol>MNT</symbol><description>Mongolian Tugrik (MNT)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>MOP</id><symbol>MOP</symbol><description>Macanese Pataca (MOP)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>MRO</id><symbol>MRO</symbol><description>Mauritanian Ouguiya (MRO)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>MUR</id><symbol>MUR</symbol><description>Mauritian Rupee (MUR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>MVR</id><symbol>MVR</symbol><description>Maldivian Rufiyaa (MVR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>MWK</id><symbol>MWK</symbol><description>Malawian Kwacha (MWK)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>MXN</id><symbol>MXN</symbol><description>Mexican Peso (MXN)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>MYR</id><symbol>MYR</symbol><description>Malaysian Ringgit (MYR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>MZN</id><symbol>MZN</symbol><description>Mozambican Metical (MZN)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>NAD</id><symbol>NAD</symbol><description>Namibian Dollar (NAD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>NGN</id><symbol>NGN</symbol><description>Nigerian Naira (NGN)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>NIO</id><symbol>NIO</symbol><description>Nicaraguan Córdoba (NIO)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>NOK</id><symbol>NOK</symbol><description>Norwegian Krone (NOK)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>NPR</id><symbol>NPR</symbol><description>Nepalese Rupee (NPR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>NZD</id><symbol>NZD</symbol><description>New Zealand Dollar (NZD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>OMR</id><symbol>OMR</symbol><description>Omani Rial (OMR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>PAB</id><symbol>PAB</symbol><description>Panamanian Balboa (PAB)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>PEN</id><symbol>PEN</symbol><description>Peruvian Nuevo Sol (PEN)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>PGK</id><symbol>PGK</symbol><description>Papua New Guinean Kina (PGK)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>PHP</id><symbol>PHP</symbol><description>Philippine Peso (PHP)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>PKG</id><symbol>PKG</symbol><description>PKG (PKG)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>PKR</id><symbol>PKR</symbol><description>Pakistani Rupee (PKR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>PLN</id><symbol>PLN</symbol><description>Polish Zloty (PLN)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>PYG</id><symbol>PYG</symbol><description>Paraguayan Guarani (PYG)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>QAR</id><symbol>QAR</symbol><description>Qatari Riyal (QAR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>RON</id><symbol>RON</symbol><description>New Romanian Leu (RON)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>RSD</id><symbol>RSD</symbol><description>Serbian Dinar (RSD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>RUB</id><symbol>RUB</symbol><description>Russian Ruble (RUB)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>RWF</id><symbol>RWF</symbol><description>Rwandan Franc (RWF)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>SAR</id><symbol>SAR</symbol><description>Saudi Riyal (SAR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>SBD</id><symbol>SBD</symbol><description>Solomon Islands Dollar (SBD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>SCR</id><symbol>SCR</symbol><description>Seychellois Rupee (SCR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>SDG</id><symbol>SDG</symbol><description>Sudanese Pound (SDG)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>SEK</id><symbol>SEK</symbol><description>Swedish Krona (SEK)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>SGD</id><symbol>SGD</symbol><description>Singapore Dollar (SGD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>SHP</id><symbol>SHP</symbol><description>St. Helena Pound (SHP)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>SKK</id><symbol>SKK</symbol><description>Slovak Koruna (SKK)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>SLL</id><symbol>SLL</symbol><description>Sierra Leonean Leone (SLL)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>SOS</id><symbol>SOS</symbol><description>Somali Shilling (SOS)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>SRD</id><symbol>SRD</symbol><description>Surinamese Dollar (SRD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>STD</id><symbol>STD</symbol><description>São Tomé and Príncipe Dobra (STD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>SVC</id><symbol>SVC</symbol><description>Salvadoran Colón (SVC)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>SYP</id><symbol>SYP</symbol><description>Syrian Pound (SYP)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>SZL</id><symbol>SZL</symbol><description>Swazi Lilangeni (SZL)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>THB</id><symbol>THB</symbol><description>Thai Baht (THB)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>TJS</id><symbol>TJS</symbol><description>Tajikistani Somoni (TJS)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>TMT</id><symbol>TMT</symbol><description>Turkmenistani Manat (TMT)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>TND</id><symbol>TND</symbol><description>Tunisian Dinar (TND)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>TOP</id><symbol>TOP</symbol><description>Tongan Paʻanga (TOP)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>TRY</id><symbol>TRY</symbol><description>Turkish Lira (TRY)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>TTD</id><symbol>TTD</symbol><description>Trinidad and Tobago Dollar (TTD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>TWD</id><symbol>TWD</symbol><description>New Taiwan Dollar (TWD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>TZS</id><symbol>TZS</symbol><description>Tanzanian Shilling (TZS)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>UAH</id><symbol>UAH</symbol><description>Ukrainian Hryvnia (UAH)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>UGX</id><symbol>UGX</symbol><description>Ugandan Shilling (UGX)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>USD</id><symbol>USD</symbol><description>United States Dollar (USD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>UYU</id><symbol>UYU</symbol><description>Uruguayan Peso (UYU)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>UZS</id><symbol>UZS</symbol><description>Uzbekistani Som (UZS)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>VEF</id><symbol>VEF</symbol><description>Venezuelan Bolívar (VEF)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>VND</id><symbol>VND</symbol><description>Vietnamese Dong (VND)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>VUV</id><symbol>VUV</symbol><description>Vanuatu Vatu (VUV)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>WST</id><symbol>WST</symbol><description>Samoan Tala (WST)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>XAF</id><symbol>XAF</symbol><description>Central African CFA Franc (FCFA)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>XCD</id><symbol>XCD</symbol><description>East Caribbean Dollar (XCD)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>XDR</id><symbol>XDR</symbol><description>Special Drawing Rights (XDR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>XOF</id><symbol>XOF</symbol><description>West African CFA Franc (CFA)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>XPF</id><symbol>XPF</symbol><description>CFP Franc (CFPF)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>YER</id><symbol>YER</symbol><description>Yemeni Rial (YER)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>ZAR</id><symbol>ZAR</symbol><description>South African Rand (ZAR)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>ZMK</id><symbol>ZMK</symbol><description>Zambian Kwacha (1968–2012) (ZMK)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>ZMW</id><symbol>ZMW</symbol><description>Zambian Kwacha (ZMW)</description>
+ </currencyrate>
+ <currencyrate>
+ <id>ZWL</id><symbol>ZWL</symbol><description>Zimbabwean Dollar (2009) (ZWL)</description>
+ </currencyrate>
+</section>
+</Provider> \ No newline at end of file
diff --git a/protocols/CurrencyRates/src/CurrencyRatesProviderBase.cpp b/protocols/CurrencyRates/src/CurrencyRatesProviderBase.cpp
index 94dd3cf6b0..70eef9954e 100644
--- a/protocols/CurrencyRates/src/CurrencyRatesProviderBase.cpp
+++ b/protocols/CurrencyRates/src/CurrencyRatesProviderBase.cpp
@@ -138,7 +138,7 @@ bool CCurrencyRatesProviderBase::Init()
{
bool bSucceded = (m_pXMLInfo == nullptr);
if (!m_pXMLInfo)
- m_pXMLInfo = new CXMLFileInfo(init_xml_info(DB_DEF_IniFileName, bSucceded));
+ m_pXMLInfo = new CXMLFileInfo(init_xml_info(GetXmlFilename(), bSucceded));
return bSucceded;
}
@@ -786,6 +786,11 @@ void CCurrencyRatesProviderBase::RefreshContact(MCONTACT hContact)
void CCurrencyRatesProviderBase::FillFormat(TFormatSpecificators &array) const
{
+ array.push_back(CFormatSpecificator(L"%F", LPGENW("From Currency Full Name")));
+ array.push_back(CFormatSpecificator(L"%f", LPGENW("From Currency Short Name")));
+ array.push_back(CFormatSpecificator(L"%I", LPGENW("Into Currency Full Name")));
+ array.push_back(CFormatSpecificator(L"%i", LPGENW("Into Currency Short Name")));
+ array.push_back(CFormatSpecificator(L"%s", LPGENW("Short notation for \"%f/%i\"")));
array.push_back(CFormatSpecificator(L"%S", LPGENW("Source of information")));
array.push_back(CFormatSpecificator(L"%r", LPGENW("Rate value")));
array.push_back(CFormatSpecificator(L"%d", LPGENW("Rate delta")));
@@ -870,6 +875,18 @@ CMStringW CCurrencyRatesProviderBase::FormatSymbol(MCONTACT hContact, wchar_t c,
case 's':
ret = g_plugin.getMStringW(hContact, DB_STR_CURRENCYRATE_SYMBOL);
break;
+ case 'F':
+ ret = g_plugin.getMStringW(hContact, DB_STR_FROM_DESCRIPTION);
+ break;
+ case 'f':
+ ret = g_plugin.getMStringW(hContact, DB_STR_FROM_ID);
+ break;
+ case 'I':
+ ret = g_plugin.getMStringW(hContact, DB_STR_TO_DESCRIPTION);
+ break;
+ case 'i':
+ ret = g_plugin.getMStringW(hContact, DB_STR_TO_ID);
+ break;
case 'X':
ret = format_fetch_time(hContact, CurrencyRates_GetTimeFormat(true));
break;
diff --git a/protocols/CurrencyRates/src/CurrencyRatesProviderBase.h b/protocols/CurrencyRates/src/CurrencyRatesProviderBase.h
index 47227297d4..034efff5d6 100644
--- a/protocols/CurrencyRates/src/CurrencyRatesProviderBase.h
+++ b/protocols/CurrencyRates/src/CurrencyRatesProviderBase.h
@@ -109,6 +109,7 @@ protected:
static void SetContactStatus(MCONTACT hContact, int nNewStatus);
void WriteContactRate(MCONTACT hContact, double dRate, const CMStringW &rsSymbol = L"");
+ virtual wchar_t* GetXmlFilename() const = 0;
virtual void RefreshCurrencyRates(TContacts &anContacts) = 0;
protected:
diff --git a/protocols/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.cpp b/protocols/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.cpp
index cea1fff5b7..01c06810f7 100644
--- a/protocols/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.cpp
+++ b/protocols/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.cpp
@@ -35,6 +35,11 @@ CCurrencyRatesProviderCurrencyConverter::~CCurrencyRatesProviderCurrencyConverte
{
}
+wchar_t *CCurrencyRatesProviderCurrencyConverter::GetXmlFilename() const
+{
+ return L"CC.xml";
+}
+
void CCurrencyRatesProviderCurrencyConverter::RefreshCurrencyRates(TContacts &anContacts)
{
CHTTPSession http;
@@ -162,36 +167,6 @@ MCONTACT CCurrencyRatesProviderCurrencyConverter::GetContactByID(const CMStringW
return NULL;
}
-void CCurrencyRatesProviderCurrencyConverter::FillFormat(TFormatSpecificators &array) const
-{
- CSuper::FillFormat(array);
-
- array.push_back(CFormatSpecificator(L"%F", LPGENW("From Currency Full Name")));
- array.push_back(CFormatSpecificator(L"%f", LPGENW("From Currency Short Name")));
- array.push_back(CFormatSpecificator(L"%I", LPGENW("Into Currency Full Name")));
- array.push_back(CFormatSpecificator(L"%i", LPGENW("Into Currency Short Name")));
- array.push_back(CFormatSpecificator(L"%s", LPGENW("Short notation for \"%f/%i\"")));
-}
-
-CMStringW CCurrencyRatesProviderCurrencyConverter::FormatSymbol(MCONTACT hContact, wchar_t c, int nWidth) const
-{
- switch (c) {
- case 'F':
- return g_plugin.getMStringW(hContact, DB_STR_FROM_DESCRIPTION);
-
- case 'f':
- return g_plugin.getMStringW(hContact, DB_STR_FROM_ID);
-
- case 'I':
- return g_plugin.getMStringW(hContact, DB_STR_TO_DESCRIPTION);
-
- case 'i':
- return g_plugin.getMStringW(hContact, DB_STR_TO_ID);
- }
-
- return CSuper::FormatSymbol(hContact, c, nWidth);
-}
-
MCONTACT CCurrencyRatesProviderCurrencyConverter::ImportContact(const TiXmlNode *pRoot)
{
const char *sFromID = nullptr, *sToID = nullptr;
diff --git a/protocols/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.h b/protocols/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.h
index 2d87b02256..fdf22be32c 100644
--- a/protocols/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.h
+++ b/protocols/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.h
@@ -1,11 +1,5 @@
#pragma once
-#define DB_STR_FROM_ID "FromID"
-#define DB_STR_TO_ID "ToID"
-#define DB_STR_FROM_DESCRIPTION "FromDesc"
-#define DB_STR_TO_DESCRIPTION "ToDesc"
-
-
class CCurrencyRatesProviderCurrencyConverter : public CCurrencyRatesProviderBase
{
public:
@@ -23,9 +17,9 @@ public:
MCONTACT GetContactByID(const CMStringW &rsFromID, const CMStringW &rsToID) const;
private:
- void FillFormat(TFormatSpecificators &) const override;
void RefreshCurrencyRates(TContacts &anContacts) override;
+ wchar_t* GetXmlFilename() const override;
+
MCONTACT ImportContact(const TiXmlNode*) override;
- CMStringW FormatSymbol(MCONTACT hContact, wchar_t c, int nWidth) const override;
};
diff --git a/protocols/CurrencyRates/src/DBUtils.h b/protocols/CurrencyRates/src/DBUtils.h
index ed133c2a22..4b5013c101 100644
--- a/protocols/CurrencyRates/src/DBUtils.h
+++ b/protocols/CurrencyRates/src/DBUtils.h
@@ -7,8 +7,6 @@
#define DB_KEY_StatusMsgFormat "CC_StatusMessageFormat"
#define DB_DEF_StatusMsgFormat L""
-#define DB_DEF_IniFileName L"CC.xml"
-
#define DB_KEY_ApiKey "CC_ApiKey"
#define DB_KEY_DisplayNameFormat "CC_DspNameFrmt"
diff --git a/protocols/CurrencyRates/src/EconomicRateInfo.h b/protocols/CurrencyRates/src/EconomicRateInfo.h
index 3b55b7f0ad..3eaccc45e3 100644
--- a/protocols/CurrencyRates/src/EconomicRateInfo.h
+++ b/protocols/CurrencyRates/src/EconomicRateInfo.h
@@ -11,6 +11,10 @@ enum ERefreshRateType
RRT_HOURS = 2
};
+#define DB_STR_FROM_ID "FromID"
+#define DB_STR_TO_ID "ToID"
+#define DB_STR_FROM_DESCRIPTION "FromDesc"
+#define DB_STR_TO_DESCRIPTION "ToDesc"
#define DB_STR_ENABLE_LOG "EnableLog"
#define DB_STR_CURRENCYRATE_PROVIDER "CurrencyRateProvider"
#define DB_STR_CURRENCYRATE_ID "CurrencyRateID"
@@ -20,7 +24,6 @@ enum ERefreshRateType
#define DB_STR_CURRENCYRATE_CURR_VALUE "CurrentCurrencyRateValue"
#define DB_STR_CURRENCYRATE_FETCH_TIME "FetchTime"
-
enum ELogMode
{
lmDisabled = 0x0000,
diff --git a/protocols/CurrencyRates/src/SettingsDlg.cpp b/protocols/CurrencyRates/src/SettingsDlg.cpp
index e22a12c3a5..134d504553 100644
--- a/protocols/CurrencyRates/src/SettingsDlg.cpp
+++ b/protocols/CurrencyRates/src/SettingsDlg.cpp
@@ -146,10 +146,9 @@ INT_PTR CALLBACK EditPopupSettingsDlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM
n = IDC_DELAYCUSTOM;
break;
case CPopupSettings::delayPermanent:
+ default:
n = IDC_DELAYPERMANENT;
break;
- default:
- assert(!"Unknown delay mode. Please, fix it");
}
::CheckRadioButton(hWnd, IDC_DELAYFROMPU, IDC_DELAYPERMANENT, n);