diff options
Diffstat (limited to 'plugins/Quotes/src/QuotesProviderVisitorFormater.cpp')
-rw-r--r-- | plugins/Quotes/src/QuotesProviderVisitorFormater.cpp | 106 |
1 files changed, 37 insertions, 69 deletions
diff --git a/plugins/Quotes/src/QuotesProviderVisitorFormater.cpp b/plugins/Quotes/src/QuotesProviderVisitorFormater.cpp index 4b58a3af51..b6bb075b88 100644 --- a/plugins/Quotes/src/QuotesProviderVisitorFormater.cpp +++ b/plugins/Quotes/src/QuotesProviderVisitorFormater.cpp @@ -19,15 +19,12 @@ const tstring& CQuotesProviderVisitorFormater::GetResult()const void CQuotesProviderVisitorFormater::Visit(const CQuotesProviderDukasCopy&)
{
if (_T('d') == m_chr || _T('D') == m_chr)
- {
m_sResult = Quotes_DBGetStringT(m_hContact, QUOTES_MODULE_NAME, DB_STR_QUOTE_DESCRIPTION);
- }
}
void CQuotesProviderVisitorFormater::Visit(const CQuotesProviderGoogle&)
{
- switch (m_chr)
- {
+ switch (m_chr) {
case _T('F'):
m_sResult = Quotes_DBGetStringT(m_hContact, QUOTES_MODULE_NAME, DB_STR_FROM_DESCRIPTION);
break;
@@ -43,41 +40,33 @@ void CQuotesProviderVisitorFormater::Visit(const CQuotesProviderGoogle&) }
}
-namespace
+static bool get_fetch_time(MCONTACT hContact, time_t& rTime)
{
- bool get_fetch_time(MCONTACT hContact, time_t& rTime)
- {
- DBVARIANT dbv;
- if (db_get(hContact, QUOTES_MODULE_NAME, DB_STR_QUOTE_FETCH_TIME, &dbv) || (DBVT_DWORD != dbv.type))
- return false;
-
- rTime = dbv.dVal;
- return true;
- }
+ DBVARIANT dbv;
+ if (db_get(hContact, QUOTES_MODULE_NAME, DB_STR_QUOTE_FETCH_TIME, &dbv) || (DBVT_DWORD != dbv.type))
+ return false;
- tstring format_fetch_time(const CQuotesProviderBase&, MCONTACT hContact, const tstring& rsFormat)
- {
- time_t nTime;
- if (true == get_fetch_time(hContact, nTime))
- {
- boost::posix_time::ptime time = boost::date_time::c_local_adjustor<boost::posix_time::ptime>::utc_to_local(boost::posix_time::from_time_t(nTime));
- tostringstream k;
- k.imbue(std::locale(GetSystemLocale(), new ttime_facet(rsFormat.c_str())));
- k << time;
- return k.str();
- }
+ rTime = dbv.dVal;
+ return true;
+}
- return tstring();
+static tstring format_fetch_time(const CQuotesProviderBase&, MCONTACT hContact, const tstring& rsFormat)
+{
+ time_t nTime;
+ if (true == get_fetch_time(hContact, nTime)) {
+ boost::posix_time::ptime time = boost::date_time::c_local_adjustor<boost::posix_time::ptime>::utc_to_local(boost::posix_time::from_time_t(nTime));
+ tostringstream k;
+ k.imbue(std::locale(GetSystemLocale(), new ttime_facet(rsFormat.c_str())));
+ k << time;
+ return k.str();
}
+
+ return tstring();
}
void CQuotesProviderVisitorFormater::Visit(const CQuotesProviderBase& rProvider)
{
- switch (m_chr)
- {
- // default:
- // m_sResult = m_chr;
- // break;
+ switch (m_chr) {
case _T('%'):
case _T('\t'):
case _T('\\'):
@@ -90,23 +79,19 @@ void CQuotesProviderVisitorFormater::Visit(const CQuotesProviderBase& rProvider) m_sResult = Quotes_DBGetStringT(m_hContact, QUOTES_MODULE_NAME, DB_STR_QUOTE_SYMBOL);
break;
case _T('X'):
- //m_sResult = format_fetch_time(rProvider,m_hContact,_T("%H:%M:%S"));
m_sResult = format_fetch_time(rProvider, m_hContact, Quotes_GetTimeFormat(true));
break;
case _T('x'):
- //m_sResult = format_fetch_time(rProvider,m_hContact,_T("%d.%m.%y"));
m_sResult = format_fetch_time(rProvider, m_hContact, Quotes_GetDateFormat(true));
break;
case _T('t'):
- {
- tstring sFrmt = Quotes_GetDateFormat(true);
- sFrmt += _T(" ");
- sFrmt += Quotes_GetTimeFormat(true);
- m_sResult = format_fetch_time(rProvider, m_hContact, sFrmt);
-
- //m_sResult = format_fetch_time(rProvider,m_hContact,_T("%d.%m.%y %H:%M:%S"));
- }
- break;
+ {
+ tstring sFrmt = Quotes_GetDateFormat(true);
+ sFrmt += _T(" ");
+ sFrmt += Quotes_GetTimeFormat(true);
+ m_sResult = format_fetch_time(rProvider, m_hContact, sFrmt);
+ }
+ break;
case _T('r'):
case _T('R'):
FormatDoubleHelper(DB_STR_QUOTE_CURR_VALUE);
@@ -114,19 +99,12 @@ void CQuotesProviderVisitorFormater::Visit(const CQuotesProviderBase& rProvider) case _T('p'):
FormatDoubleHelper(DB_STR_QUOTE_PREV_VALUE);
break;
- // case _T('c'):
- // FormatChangeValueHelper(false);
- // break;
- // case _T('C'):
- // FormatChangeValueHelper(true);
- // break;
}
}
void CQuotesProviderVisitorFormater::Visit(const CQuotesProviderGoogleFinance&/* rProvider*/)
{
- switch (m_chr)
- {
+ switch (m_chr) {
case _T('o'):
FormatDoubleHelper(DB_STR_GOOGLE_FINANCE_OPEN_VALUE);
break;
@@ -142,21 +120,17 @@ void CQuotesProviderVisitorFormater::Visit(const CQuotesProviderGoogleFinance&/* }
}
-namespace
+tstring format_double(double dValue, int nWidth)
{
- tstring format_double(double dValue, int nWidth)
- {
- tostringstream o;
- o.imbue(GetSystemLocale());
+ tostringstream o;
+ o.imbue(GetSystemLocale());
- if (nWidth > 0 && nWidth <= 9)
- {
- o << std::setprecision(nWidth) << std::showpoint << std::fixed;
- }
- o << dValue;
+ if (nWidth > 0 && nWidth <= 9)
+ o << std::setprecision(nWidth) << std::showpoint << std::fixed;
- return o.str();
- }
+ o << dValue;
+
+ return o.str();
}
void CQuotesProviderVisitorFormater::FormatDoubleHelper(LPCSTR pszDbSet,
@@ -164,19 +138,14 @@ void CQuotesProviderVisitorFormater::FormatDoubleHelper(LPCSTR pszDbSet, {
double d = 0.0;
if (true == Quotes_DBReadDouble(m_hContact, QUOTES_MODULE_NAME, pszDbSet, d))
- {
m_sResult = format_double(d, m_nWidth);
- }
else
- {
m_sResult = sInvalid;
- }
}
void CQuotesProviderVisitorFormater::Visit(const CQuotesProviderYahoo&)
{
- switch (m_chr)
- {
+ switch (m_chr) {
case _T('o'):
FormatDoubleHelper(DB_STR_YAHOO_OPEN_VALUE);
break;
@@ -196,5 +165,4 @@ void CQuotesProviderVisitorFormater::Visit(const CQuotesProviderYahoo&) m_sResult = Quotes_DBGetStringT(m_hContact, QUOTES_MODULE_NAME, DB_STR_QUOTE_DESCRIPTION);
break;
}
-
}
|