summaryrefslogtreecommitdiff
path: root/plugins/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.cpp
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2019-02-21 14:59:21 +0300
committerGeorge Hazan <ghazan@miranda.im>2019-02-21 14:59:21 +0300
commit98e5dab950ab976bbf244dc21e7bfe2353722d45 (patch)
tree5f937fa1375e3803091fbf984fd983aaf3d0527b /plugins/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.cpp
parenta7d1b6c89d200736226183753ffc88f094c3bc16 (diff)
crap with Visitor class totally destroyed
Diffstat (limited to 'plugins/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.cpp')
-rw-r--r--plugins/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.cpp43
1 files changed, 37 insertions, 6 deletions
diff --git a/plugins/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.cpp b/plugins/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.cpp
index 669812a0ee..252271467d 100644
--- a/plugins/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.cpp
+++ b/plugins/CurrencyRates/src/CurrencyRatesProviderCurrencyConverter.cpp
@@ -254,12 +254,6 @@ CCurrencyRatesProviderCurrencyConverter::~CCurrencyRatesProviderCurrencyConverte
{
}
-void CCurrencyRatesProviderCurrencyConverter::Accept(CCurrencyRatesProviderVisitor &visitor) const
-{
- CCurrencyRatesProviderBase::Accept(visitor);
- visitor.Visit(*this);
-}
-
void CCurrencyRatesProviderCurrencyConverter::ShowPropertyPage(WPARAM wp, OPTIONSDIALOGPAGE &odp)
{
odp.pszTemplate = MAKEINTRESOURCEA(IDD_DIALOG_OPT_GOOGLE);
@@ -409,3 +403,40 @@ void CCurrencyRatesProviderCurrencyConverter::FillFormat(TFormatSpecificators &a
array.push_back(CFormatSpecificator(L"%i", TranslateT("Into Currency Short Name")));
array.push_back(CFormatSpecificator(L"%s", TranslateT("Short notation for \"%f/%i\"")));
}
+
+tstring CCurrencyRatesProviderCurrencyConverter::FormatSymbol(MCONTACT hContact, wchar_t c, int nWidth) const
+{
+ switch (c) {
+ case 'F':
+ return CurrencyRates_DBGetStringW(hContact, CURRENCYRATES_MODULE_NAME, DB_STR_FROM_DESCRIPTION);
+
+ case 'f':
+ return CurrencyRates_DBGetStringW(hContact, CURRENCYRATES_MODULE_NAME, DB_STR_FROM_ID);
+
+ case 'I':
+ return CurrencyRates_DBGetStringW(hContact, CURRENCYRATES_MODULE_NAME, DB_STR_TO_DESCRIPTION);
+
+ case 'i':
+ return CurrencyRates_DBGetStringW(hContact, CURRENCYRATES_MODULE_NAME, DB_STR_TO_ID);
+ }
+
+ return CSuper::FormatSymbol(hContact, c, nWidth);
+}
+
+MCONTACT CCurrencyRatesProviderCurrencyConverter::ImportContact(const TiXmlNode *pRoot)
+{
+ const char *sFromID = nullptr, *sToID = nullptr;
+
+ for (auto *pNode : TiXmlFilter(pRoot, "Setting")) {
+ TNameValue Item = parse_setting_node(pNode);
+ if (!mir_strcmpi(Item.first, DB_STR_FROM_ID))
+ sFromID = Item.second;
+ else if (!mir_strcmpi(Item.first, DB_STR_TO_ID))
+ sToID = Item.second;
+ }
+
+ if (sFromID && sToID)
+ return GetContactByID(Utf2T(sFromID).get(), Utf2T(sToID).get());
+
+ return 0;
+}