source: filezilla/trunk/fuentes/src/interface/timeformatting.cpp @ 130

Last change on this file since 130 was 130, checked in by jrpelegrina, 4 years ago

First release to xenial

File size: 1.9 KB
Line 
1#include <filezilla.h>
2#include "timeformatting.h"
3#include "Options.h"
4#include <option_change_event_handler.h>
5
6namespace {
7
8class Impl : public COptionChangeEventHandler
9{
10public:
11        Impl()
12        {
13                InitFormat();
14
15                RegisterOption(OPTION_DATE_FORMAT);
16                RegisterOption(OPTION_TIME_FORMAT);
17        }
18
19        void InitFormat()
20        {
21                wxString dateFormat = COptions::Get()->GetOption(OPTION_DATE_FORMAT);
22                wxString timeFormat = COptions::Get()->GetOption(OPTION_TIME_FORMAT);
23
24                if (dateFormat == _T("1"))
25                        m_dateFormat = _T("%Y-%m-%d");
26                else if (!dateFormat.empty() && dateFormat[0] == '2') {
27                        dateFormat = dateFormat.Mid(1);
28                        if (CDateTime::VerifyFormat(dateFormat)) {
29                                m_dateFormat = dateFormat;
30                        }
31                        else {
32                                m_dateFormat = _T("%x");
33                        }
34                }
35                else
36                        m_dateFormat = _T("%x");
37
38                m_dateTimeFormat = m_dateFormat;
39                m_dateTimeFormat += ' ';
40
41                if (timeFormat == _T("1"))
42                        m_dateTimeFormat += _T("%H:%M");
43                else if (!timeFormat.empty() && timeFormat[0] == '2') {
44                        timeFormat = timeFormat.Mid(1);
45                        if (CDateTime::VerifyFormat(timeFormat)) {
46                                m_dateTimeFormat += timeFormat;
47                        }
48                        else {
49                                m_dateTimeFormat += _T("%X");
50                        }
51                }
52                else
53                        m_dateTimeFormat += _T("%X");
54        }
55
56        virtual void OnOptionsChanged(changed_options_t const&)
57        {
58                InitFormat();
59        }
60
61        wxString m_dateFormat;
62        wxString m_dateTimeFormat;
63};
64
65Impl& GetImpl()
66{
67        static Impl impl;
68        return impl;
69}
70}
71
72wxString CTimeFormat::Format(CDateTime const& time)
73{
74        wxString ret;
75        if (time.IsValid()) {
76                if( time.GetAccuracy() > CDateTime::days ) {
77                        ret = FormatDateTime(time);
78                }
79                else {
80                        ret = FormatDate(time);
81                }
82        }
83        return ret;
84}
85
86wxString CTimeFormat::FormatDateTime(CDateTime const& time)
87{
88        Impl& impl = GetImpl();
89
90        return time.Format(impl.m_dateTimeFormat, CDateTime::local);
91}
92
93wxString CTimeFormat::FormatDate(CDateTime const& time)
94{
95        Impl& impl = GetImpl();
96
97        return time.Format(impl.m_dateFormat, CDateTime::local);
98}
Note: See TracBrowser for help on using the repository browser.