1 // TortoiseGit - a Windows shell extension for easy version control
3 // Copyright (C) 2008-2014 - TortoiseGit
4 // Copyright (C) 2003-2008 - TortoiseSVN
6 // This program is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU General Public License
8 // as published by the Free Software Foundation; either version 2
9 // of the License, or (at your option) any later version.
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, write to the Free Software Foundation,
18 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 #include "TortoiseProc.h"
22 #include "SetMainPage.h"
24 #include "ProgressDlg.h"
25 #include "SetDialogs2.h"
27 IMPLEMENT_DYNAMIC(CSetDialogs2
, ISettingsPropPage
)
28 CSetDialogs2::CSetDialogs2()
29 : ISettingsPropPage(CSetDialogs2::IDD
)
30 , m_dwAutoCloseGitProgress(AUTOCLOSE_NO
)
31 , m_bUseRecycleBin(TRUE
)
32 , m_bConfirmKillProcess(FALSE
)
33 , m_bSyncDialogRandomPos(FALSE
)
34 , m_bRefCompareHideUnchanged(FALSE
)
35 , m_bAutocompletion(FALSE
)
36 , m_dwAutocompletionTimeout(0)
39 , m_bShowGitexeTimings(TRUE
)
41 m_regAutoCloseGitProgress
= CRegDWORD(_T("Software\\TortoiseGit\\AutoCloseGitProgress"));
42 m_regUseRecycleBin
= CRegDWORD(_T("Software\\TortoiseGit\\RevertWithRecycleBin"), TRUE
);
43 m_regConfirmKillProcess
= CRegDWORD(_T("Software\\TortoiseGit\\ConfirmKillProcess"), FALSE
);
44 m_bConfirmKillProcess
= (BOOL
)m_regConfirmKillProcess
;
45 m_regSyncDialogRandomPos
= CRegDWORD(_T("Software\\TortoiseGit\\SyncDialogRandomPos"), FALSE
);
46 m_bSyncDialogRandomPos
= (BOOL
)m_regSyncDialogRandomPos
;
47 m_regRefCompareHideUnchanged
= CRegDWORD(_T("Software\\TortoiseGit\\RefCompareHideUnchanged"), FALSE
);
48 m_bRefCompareHideUnchanged
= (BOOL
)m_regRefCompareHideUnchanged
;
49 m_regAutocompletion
= CRegDWORD(_T("Software\\TortoiseGit\\Autocompletion"), TRUE
);
50 m_bAutocompletion
= (DWORD
)m_regAutocompletion
;
51 m_regAutocompletionTimeout
= CRegDWORD(_T("Software\\TortoiseGit\\AutocompleteParseTimeout"), 5);
52 m_dwAutocompletionTimeout
= (DWORD
)m_regAutocompletionTimeout
;
53 m_regMaxHistory
= CRegDWORD(_T("Software\\TortoiseGit\\MaxHistoryItems"), 25);
54 m_dwMaxHistory
= (DWORD
)m_regMaxHistory
;
55 m_regAutoSelect
= CRegDWORD(_T("Software\\TortoiseGit\\SelectFilesForCommit"), TRUE
);
56 m_bAutoSelect
= (BOOL
)(DWORD
)m_regAutoSelect
;
57 m_regStripCommentedLines
= CRegDWORD(_T("Software\\TortoiseGit\\StripCommentedLines"), FALSE
);
58 m_bStripCommentedLines
= (BOOL
)(DWORD
)m_regStripCommentedLines
;
59 m_regShowGitexeTimings
= CRegDWORD(_T("Software\\TortoiseGit\\ShowGitexeTimings"), TRUE
);
60 m_bShowGitexeTimings
= (BOOL
)(DWORD
)m_regShowGitexeTimings
;
63 CSetDialogs2::~CSetDialogs2()
67 void CSetDialogs2::DoDataExchange(CDataExchange
* pDX
)
69 ISettingsPropPage::DoDataExchange(pDX
);
70 DDX_Control(pDX
, IDC_AUTOCLOSECOMBO
, m_cAutoCloseGitProgress
);
71 DDX_Check(pDX
, IDC_USERECYCLEBIN
, m_bUseRecycleBin
);
72 DDX_Check(pDX
, IDC_CONFIRMKILLPROCESS
, m_bConfirmKillProcess
);
73 DDX_Check(pDX
, IDC_SYNCDIALOGRANDOMPOS
, m_bSyncDialogRandomPos
);
74 DDX_Check(pDX
, IDC_REFCOMPAREHIDEUNCHANGED
, m_bRefCompareHideUnchanged
);
75 DDX_Check(pDX
, IDC_AUTOCOMPLETION
, m_bAutocompletion
);
76 DDX_Text(pDX
, IDC_AUTOCOMPLETIONTIMEOUT
, m_dwAutocompletionTimeout
);
77 DDV_MinMaxUInt(pDX
, m_dwAutocompletionTimeout
, 1, 100);
78 DDX_Text(pDX
, IDC_MAXHISTORY
, m_dwMaxHistory
);
79 DDV_MinMaxUInt(pDX
, m_dwMaxHistory
, 1, 100);
80 DDX_Check(pDX
, IDC_SELECTFILESONCOMMIT
, m_bAutoSelect
);
81 DDX_Check(pDX
, IDC_STRIPCOMMENTEDLINES
, m_bStripCommentedLines
);
82 DDX_Check(pDX
, IDC_PROGRESSDLG_SHOW_TIMES
, m_bShowGitexeTimings
);
85 BEGIN_MESSAGE_MAP(CSetDialogs2
, ISettingsPropPage
)
86 ON_CBN_SELCHANGE(IDC_AUTOCLOSECOMBO
, OnCbnSelchangeAutoclosecombo
)
87 ON_BN_CLICKED(IDC_USERECYCLEBIN
, OnChange
)
88 ON_BN_CLICKED(IDC_CONFIRMKILLPROCESS
, OnChange
)
89 ON_BN_CLICKED(IDC_SYNCDIALOGRANDOMPOS
, OnChange
)
90 ON_BN_CLICKED(IDC_REFCOMPAREHIDEUNCHANGED
, OnChange
)
91 ON_BN_CLICKED(IDC_AUTOCOMPLETION
, OnChange
)
92 ON_EN_CHANGE(IDC_AUTOCOMPLETIONTIMEOUT
, OnChange
)
93 ON_EN_CHANGE(IDC_MAXHISTORY
, OnChange
)
94 ON_BN_CLICKED(IDC_SELECTFILESONCOMMIT
, OnChange
)
95 ON_BN_CLICKED(IDC_STRIPCOMMENTEDLINES
, OnChange
)
96 ON_BN_CLICKED(IDC_PROGRESSDLG_SHOW_TIMES
, OnChange
)
99 // CSetDialogs2 message handlers
100 BOOL
CSetDialogs2::OnInitDialog()
102 ISettingsPropPage::OnInitDialog();
106 int ind
= m_cAutoCloseGitProgress
.AddString(CString(MAKEINTRESOURCE(IDS_PROGRS_CLOSE_MANUAL
)));
107 m_cAutoCloseGitProgress
.SetItemData(ind
, AUTOCLOSE_NO
);
108 ind
= m_cAutoCloseGitProgress
.AddString(CString(MAKEINTRESOURCE(IDS_PROGRS_CLOSE_NOPTIONS
)));
109 m_cAutoCloseGitProgress
.SetItemData(ind
, AUTOCLOSE_IF_NO_OPTIONS
);
110 ind
= m_cAutoCloseGitProgress
.AddString(CString(MAKEINTRESOURCE(IDS_PROGRS_CLOSE_NOERROR
)));
111 m_cAutoCloseGitProgress
.SetItemData(ind
, AUTOCLOSE_IF_NO_ERRORS
);
113 m_dwAutoCloseGitProgress
= m_regAutoCloseGitProgress
;
114 m_bUseRecycleBin
= m_regUseRecycleBin
;
116 for (int i
= 0; i
< m_cAutoCloseGitProgress
.GetCount(); ++i
)
117 if (m_cAutoCloseGitProgress
.GetItemData(i
) == m_dwAutoCloseGitProgress
)
118 m_cAutoCloseGitProgress
.SetCurSel(i
);
122 m_tooltips
.Create(this);
123 m_tooltips
.AddTool(IDC_AUTOCLOSECOMBO
, IDS_SETTINGS_AUTOCLOSE_TT
);
124 m_tooltips
.AddTool(IDC_USERECYCLEBIN
, IDS_SETTINGS_USERECYCLEBIN_TT
);
125 m_tooltips
.AddTool(IDC_CONFIRMKILLPROCESS
, IDS_SETTINGS_CONFIRMKILLPROCESS_TT
);
126 m_tooltips
.AddTool(IDC_SYNCDIALOGRANDOMPOS
, IDS_SYNCDIALOGRANDOMPOS_TT
);
127 m_tooltips
.AddTool(IDC_REFCOMPAREHIDEUNCHANGED
, IDS_REFCOMPAREHIDEUNCHANGED_TT
);
128 m_tooltips
.AddTool(IDC_AUTOCOMPLETION
, IDS_SETTINGS_AUTOCOMPLETION_TT
);
129 m_tooltips
.AddTool(IDC_AUTOCOMPLETIONTIMEOUT
, IDS_SETTINGS_AUTOCOMPLETIONTIMEOUT_TT
);
130 m_tooltips
.AddTool(IDC_AUTOCOMPLETIONTIMEOUTLABEL
, IDS_SETTINGS_AUTOCOMPLETIONTIMEOUT_TT
);
131 m_tooltips
.AddTool(IDC_MAXHISTORY
, IDS_SETTINGS_MAXHISTORY_TT
);
132 m_tooltips
.AddTool(IDC_MAXHISTORYLABEL
, IDS_SETTINGS_MAXHISTORY_TT
);
133 m_tooltips
.AddTool(IDC_SELECTFILESONCOMMIT
, IDS_SETTINGS_SELECTFILESONCOMMIT_TT
);
139 BOOL
CSetDialogs2::PreTranslateMessage(MSG
* pMsg
)
141 m_tooltips
.RelayEvent(pMsg
);
142 return ISettingsPropPage::PreTranslateMessage(pMsg
);
145 void CSetDialogs2::OnChange()
150 BOOL
CSetDialogs2::OnApply()
154 Store((DWORD
)m_dwAutoCloseGitProgress
, m_regAutoCloseGitProgress
);
155 Store (m_bUseRecycleBin
, m_regUseRecycleBin
);
156 Store (m_bConfirmKillProcess
, m_regConfirmKillProcess
);
157 Store (m_bSyncDialogRandomPos
, m_regSyncDialogRandomPos
);
158 Store (m_bRefCompareHideUnchanged
, m_regRefCompareHideUnchanged
);
160 Store (m_bAutocompletion
, m_regAutocompletion
);
161 Store (m_dwAutocompletionTimeout
, m_regAutocompletionTimeout
);
162 Store (m_dwMaxHistory
, m_regMaxHistory
);
163 Store (m_bAutoSelect
, m_regAutoSelect
);
164 Store (m_bStripCommentedLines
, m_regStripCommentedLines
);
165 Store(m_bShowGitexeTimings
, m_regShowGitexeTimings
);
168 return ISettingsPropPage::OnApply();
171 void CSetDialogs2::OnCbnSelchangeAutoclosecombo()
173 if (m_cAutoCloseGitProgress
.GetCurSel() != CB_ERR
)
175 m_dwAutoCloseGitProgress
= m_cAutoCloseGitProgress
.GetItemData(m_cAutoCloseGitProgress
.GetCurSel());