source: filezilla/trunk/fuentes/src/interface/settings/optionspage_dateformatting.cpp @ 3185

Last change on this file since 3185 was 3185, checked in by jrpelegrina, 2 years ago

Update new version: 3.15.02

File size: 3.2 KB
Line 
1#include <filezilla.h>
2
3#include "../Options.h"
4#include "settingsdialog.h"
5#include "optionspage.h"
6#include "optionspage_dateformatting.h"
7
8BEGIN_EVENT_TABLE(COptionsPageDateFormatting, COptionsPage)
9EVT_RADIOBUTTON(wxID_ANY, COptionsPageDateFormatting::OnRadioChanged)
10END_EVENT_TABLE()
11
12bool COptionsPageDateFormatting::LoadPage()
13{
14        bool failure = false;
15
16        const wxString& dateFormat = m_pOptions->GetOption(OPTION_DATE_FORMAT);
17        if (dateFormat == _T("1"))
18                SetRCheck(XRCID("ID_DATEFORMAT_ISO"), true, failure);
19        else if (!dateFormat.empty() && dateFormat[0] == '2')
20        {
21                SetRCheck(XRCID("ID_DATEFORMAT_CUSTOM"), true, failure);
22                SetText(XRCID("ID_CUSTOM_DATEFORMAT"), dateFormat.Mid(1), failure);
23        }
24        else
25                SetRCheck(XRCID("ID_DATEFORMAT_DEFAULT"), true, failure);
26
27        const wxString& timeFormat = m_pOptions->GetOption(OPTION_TIME_FORMAT);
28        if (timeFormat == _T("1"))
29                SetRCheck(XRCID("ID_TIMEFORMAT_ISO"), true, failure);
30        else if (!timeFormat.empty() && timeFormat[0] == '2')
31        {
32                SetRCheck(XRCID("ID_TIMEFORMAT_CUSTOM"), true, failure);
33                SetText(XRCID("ID_CUSTOM_TIMEFORMAT"), timeFormat.Mid(1), failure);
34        }
35        else
36                SetRCheck(XRCID("ID_TIMEFORMAT_DEFAULT"), true, failure);
37
38        if (!failure)
39                SetCtrlState();
40
41        return !failure;
42}
43
44bool COptionsPageDateFormatting::SavePage()
45{
46        wxString dateFormat;
47        if (GetRCheck(XRCID("ID_DATEFORMAT_CUSTOM")))
48                dateFormat = _T("2") + XRCCTRL(*this, "ID_CUSTOM_DATEFORMAT", wxTextCtrl)->GetValue();
49        else if (GetRCheck(XRCID("ID_DATEFORMAT_ISO")))
50                dateFormat = _T("1");
51        else
52                dateFormat = _T("0");
53        m_pOptions->SetOption(OPTION_DATE_FORMAT, dateFormat);
54
55        wxString timeFormat;
56        if (GetRCheck(XRCID("ID_TIMEFORMAT_CUSTOM")))
57                timeFormat = _T("2") + XRCCTRL(*this, "ID_CUSTOM_TIMEFORMAT", wxTextCtrl)->GetValue();
58        else if (GetRCheck(XRCID("ID_TIMEFORMAT_ISO")))
59                timeFormat = _T("1");
60        else
61                timeFormat = _T("0");
62        m_pOptions->SetOption(OPTION_TIME_FORMAT, timeFormat);
63
64        return true;
65}
66
67bool COptionsPageDateFormatting::Validate()
68{
69        if (GetRCheck(XRCID("ID_DATEFORMAT_CUSTOM"))) {
70                wxString const dateformat = XRCCTRL(*this, "ID_CUSTOM_DATEFORMAT", wxTextCtrl)->GetValue();
71                if (dateformat.empty()) {
72                        return DisplayError(_T("ID_CUSTOM_DATEFORMAT"), _("Please enter a custom date format."));
73                }
74                if (!fz::datetime::verify_format(dateformat.ToStdWstring())) {
75                        return DisplayError(_T("ID_CUSTOM_DATEFORMAT"), _("The custom date format is invalid or contains unsupported format specifiers."));
76                }
77        }
78
79        if (GetRCheck(XRCID("ID_TIMEFORMAT_CUSTOM"))) {
80                wxString const timeformat = XRCCTRL(*this, "ID_CUSTOM_TIMEFORMAT", wxTextCtrl)->GetValue();
81                if (timeformat.empty()) {
82                        return DisplayError(_T("ID_CUSTOM_TIMEFORMAT"), _("Please enter a custom time format."));
83                }
84                if (!fz::datetime::verify_format(timeformat.ToStdWstring())) {
85                        return DisplayError(_T("ID_CUSTOM_TIMEFORMAT"), _("The custom time format is invalid or contains unsupported format specifiers."));
86                }
87        }
88
89        return true;
90}
91
92void COptionsPageDateFormatting::OnRadioChanged(wxCommandEvent&)
93{
94        SetCtrlState();
95}
96
97void COptionsPageDateFormatting::SetCtrlState()
98{
99        XRCCTRL(*this, "ID_CUSTOM_DATEFORMAT", wxTextCtrl)->Enable(GetRCheck(XRCID("ID_DATEFORMAT_CUSTOM")));
100        XRCCTRL(*this, "ID_CUSTOM_TIMEFORMAT", wxTextCtrl)->Enable(GetRCheck(XRCID("ID_TIMEFORMAT_CUSTOM")));
101}
Note: See TracBrowser for help on using the repository browser.