Move prune (all remotes) setting to git config page
[TortoiseGit.git] / src / TortoiseProc / Settings / SetDialogs2.cpp
blobde5729afee2ca11dfeb143fe0e576dc07323685b
1 // TortoiseGit - a Windows shell extension for easy version control
3 // Copyright (C) 2008-2016, 2019-2020 - 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.
20 #include "stdafx.h"
21 #include "TortoiseProc.h"
22 #include "SetMainPage.h"
23 #include "AppUtils.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_bSortTagsReversed(FALSE)
36 , m_bAutocompletion(FALSE)
37 , m_dwAutocompletionTimeout(0)
38 , m_dwMaxHistory(25)
39 , m_bAutoSelect(TRUE)
40 , m_bShowGitexeTimings(TRUE)
41 , m_bNoSounds(FALSE)
42 , m_bBranchesIncludeFetchHead(TRUE)
43 , m_bNoAutoselectMissing(FALSE)
44 , m_bMailmap(FALSE)
46 m_regAutoCloseGitProgress = CRegDWORD(L"Software\\TortoiseGit\\AutoCloseGitProgress");
47 m_regUseRecycleBin = CRegDWORD(L"Software\\TortoiseGit\\RevertWithRecycleBin", TRUE);
48 m_regConfirmKillProcess = CRegDWORD(L"Software\\TortoiseGit\\ConfirmKillProcess", FALSE);
49 m_bConfirmKillProcess = m_regConfirmKillProcess;
50 m_regSyncDialogRandomPos = CRegDWORD(L"Software\\TortoiseGit\\SyncDialogRandomPos", FALSE);
51 m_bSyncDialogRandomPos = m_regSyncDialogRandomPos;
52 m_regRefCompareHideUnchanged = CRegDWORD(L"Software\\TortoiseGit\\RefCompareHideUnchanged", FALSE);
53 m_bRefCompareHideUnchanged = m_regRefCompareHideUnchanged;
54 m_regSortTagsReversed = CRegDWORD(L"Software\\TortoiseGit\\SortTagsReversed", FALSE);
55 m_bSortTagsReversed = m_regSortTagsReversed;
56 m_regAutocompletion = CRegDWORD(L"Software\\TortoiseGit\\Autocompletion", TRUE);
57 m_bAutocompletion = m_regAutocompletion;
58 m_regAutocompletionTimeout = CRegDWORD(L"Software\\TortoiseGit\\AutocompleteParseTimeout", 5);
59 m_dwAutocompletionTimeout = m_regAutocompletionTimeout;
60 m_regMaxHistory = CRegDWORD(L"Software\\TortoiseGit\\MaxHistoryItems", 25);
61 m_dwMaxHistory = m_regMaxHistory;
62 m_regAutoSelect = CRegDWORD(L"Software\\TortoiseGit\\SelectFilesForCommit", TRUE);
63 m_bAutoSelect = m_regAutoSelect;
64 m_regStripCommentedLines = CRegDWORD(L"Software\\TortoiseGit\\StripCommentedLines", FALSE);
65 m_bStripCommentedLines = m_regStripCommentedLines;
66 m_regShowGitexeTimings = CRegDWORD(L"Software\\TortoiseGit\\ShowGitexeTimings", TRUE);
67 m_bShowGitexeTimings = m_regShowGitexeTimings;
68 m_regNoSounds = CRegDWORD(L"Software\\TortoiseGit\\NoSounds", FALSE);
69 m_bNoSounds = m_regNoSounds;
70 m_regBranchesIncludeFetchHead = CRegDWORD(L"Software\\TortoiseGit\\BranchesIncludeFetchHead", TRUE);
71 m_bBranchesIncludeFetchHead = m_regBranchesIncludeFetchHead;
72 m_regNoAutoselectMissing = CRegDWORD(L"Software\\TortoiseGit\\AutoselectMissingFiles", FALSE);
73 m_bNoAutoselectMissing = m_regNoAutoselectMissing;
74 m_regMailmap = CRegDWORD(L"Software\\TortoiseGit\\UseMailmap", TRUE);
77 CSetDialogs2::~CSetDialogs2()
81 void CSetDialogs2::DoDataExchange(CDataExchange* pDX)
83 ISettingsPropPage::DoDataExchange(pDX);
84 DDX_Control(pDX, IDC_AUTOCLOSECOMBO, m_cAutoCloseGitProgress);
85 DDX_Check(pDX, IDC_USERECYCLEBIN, m_bUseRecycleBin);
86 DDX_Check(pDX, IDC_CONFIRMKILLPROCESS, m_bConfirmKillProcess);
87 DDX_Check(pDX, IDC_SYNCDIALOGRANDOMPOS, m_bSyncDialogRandomPos);
88 DDX_Check(pDX, IDC_REFCOMPAREHIDEUNCHANGED, m_bRefCompareHideUnchanged);
89 DDX_Check(pDX, IDC_SORTTAGSREVERSED, m_bSortTagsReversed);
90 DDX_Check(pDX, IDC_AUTOCOMPLETION, m_bAutocompletion);
91 DDX_Text(pDX, IDC_AUTOCOMPLETIONTIMEOUT, m_dwAutocompletionTimeout);
92 DDV_MinMaxUInt(pDX, m_dwAutocompletionTimeout, 1, 100);
93 DDX_Text(pDX, IDC_MAXHISTORY, m_dwMaxHistory);
94 DDV_MinMaxUInt(pDX, m_dwMaxHistory, 1, 100);
95 DDX_Check(pDX, IDC_SELECTFILESONCOMMIT, m_bAutoSelect);
96 DDX_Check(pDX, IDC_STRIPCOMMENTEDLINES, m_bStripCommentedLines);
97 DDX_Check(pDX, IDC_PROGRESSDLG_SHOW_TIMES, m_bShowGitexeTimings);
98 DDX_Check(pDX, IDC_NOSOUNDS, m_bNoSounds);
99 DDX_Check(pDX, IDC_BRANCHESINCLUDEFETCHHEAD, m_bBranchesIncludeFetchHead);
100 DDX_Check(pDX, IDC_NOAUTOSELECTMISSING, m_bNoAutoselectMissing);
101 DDX_Check(pDX, IDC_USEMAILMAP, m_bMailmap);
104 BEGIN_MESSAGE_MAP(CSetDialogs2, ISettingsPropPage)
105 ON_CBN_SELCHANGE(IDC_AUTOCLOSECOMBO, OnCbnSelchangeAutoclosecombo)
106 ON_BN_CLICKED(IDC_USERECYCLEBIN, OnChange)
107 ON_BN_CLICKED(IDC_CONFIRMKILLPROCESS, OnChange)
108 ON_BN_CLICKED(IDC_SYNCDIALOGRANDOMPOS, OnChange)
109 ON_BN_CLICKED(IDC_REFCOMPAREHIDEUNCHANGED, OnChange)
110 ON_BN_CLICKED(IDC_SORTTAGSREVERSED, OnChange)
111 ON_BN_CLICKED(IDC_AUTOCOMPLETION, OnChange)
112 ON_EN_CHANGE(IDC_AUTOCOMPLETIONTIMEOUT, OnChange)
113 ON_EN_CHANGE(IDC_MAXHISTORY, OnChange)
114 ON_BN_CLICKED(IDC_SELECTFILESONCOMMIT, OnChange)
115 ON_BN_CLICKED(IDC_STRIPCOMMENTEDLINES, OnChange)
116 ON_BN_CLICKED(IDC_PROGRESSDLG_SHOW_TIMES, OnChange)
117 ON_BN_CLICKED(IDC_NOSOUNDS, OnChange)
118 ON_BN_CLICKED(IDC_BRANCHESINCLUDEFETCHHEAD, OnChange)
119 ON_BN_CLICKED(IDC_NOAUTOSELECTMISSING, OnChange)
120 ON_BN_CLICKED(IDC_USEMAILMAP, OnChange)
121 END_MESSAGE_MAP()
123 // CSetDialogs2 message handlers
124 BOOL CSetDialogs2::OnInitDialog()
126 ISettingsPropPage::OnInitDialog();
128 AdjustControlSize(IDC_USERECYCLEBIN);
129 AdjustControlSize(IDC_CONFIRMKILLPROCESS);
130 AdjustControlSize(IDC_SYNCDIALOGRANDOMPOS);
131 AdjustControlSize(IDC_REFCOMPAREHIDEUNCHANGED);
132 AdjustControlSize(IDC_SORTTAGSREVERSED);
133 AdjustControlSize(IDC_AUTOCOMPLETION);
134 AdjustControlSize(IDC_SELECTFILESONCOMMIT);
135 AdjustControlSize(IDC_STRIPCOMMENTEDLINES);
136 AdjustControlSize(IDC_PROGRESSDLG_SHOW_TIMES);
137 AdjustControlSize(IDC_NOSOUNDS);
138 AdjustControlSize(IDC_BRANCHESINCLUDEFETCHHEAD);
139 AdjustControlSize(IDC_NOAUTOSELECTMISSING);
140 AdjustControlSize(IDC_USEMAILMAP);
142 EnableToolTips();
144 int ind = m_cAutoCloseGitProgress.AddString(CString(MAKEINTRESOURCE(IDS_PROGRS_CLOSE_MANUAL)));
145 m_cAutoCloseGitProgress.SetItemData(ind, AUTOCLOSE_NO);
146 ind = m_cAutoCloseGitProgress.AddString(CString(MAKEINTRESOURCE(IDS_PROGRS_CLOSE_NOPTIONS)));
147 m_cAutoCloseGitProgress.SetItemData(ind, AUTOCLOSE_IF_NO_OPTIONS);
148 ind = m_cAutoCloseGitProgress.AddString(CString(MAKEINTRESOURCE(IDS_PROGRS_CLOSE_NOERROR)));
149 m_cAutoCloseGitProgress.SetItemData(ind, AUTOCLOSE_IF_NO_ERRORS);
151 m_dwAutoCloseGitProgress = m_regAutoCloseGitProgress;
152 m_bUseRecycleBin = m_regUseRecycleBin;
153 m_bMailmap = m_regMailmap;
155 for (int i = 0; i < m_cAutoCloseGitProgress.GetCount(); ++i)
156 if (m_cAutoCloseGitProgress.GetItemData(i) == m_dwAutoCloseGitProgress)
157 m_cAutoCloseGitProgress.SetCurSel(i);
159 CString temp;
161 m_tooltips.AddTool(IDC_AUTOCLOSECOMBO, IDS_SETTINGS_AUTOCLOSE_TT);
162 m_tooltips.AddTool(IDC_USERECYCLEBIN, IDS_SETTINGS_USERECYCLEBIN_TT);
163 m_tooltips.AddTool(IDC_CONFIRMKILLPROCESS, IDS_SETTINGS_CONFIRMKILLPROCESS_TT);
164 m_tooltips.AddTool(IDC_SYNCDIALOGRANDOMPOS, IDS_SYNCDIALOGRANDOMPOS_TT);
165 m_tooltips.AddTool(IDC_REFCOMPAREHIDEUNCHANGED, IDS_REFCOMPAREHIDEUNCHANGED_TT);
166 m_tooltips.AddTool(IDC_SORTTAGSREVERSED, IDS_SORTTAGSREVERSED_TT);
167 m_tooltips.AddTool(IDC_AUTOCOMPLETION, IDS_SETTINGS_AUTOCOMPLETION_TT);
168 m_tooltips.AddTool(IDC_AUTOCOMPLETIONTIMEOUT, IDS_SETTINGS_AUTOCOMPLETIONTIMEOUT_TT);
169 m_tooltips.AddTool(IDC_AUTOCOMPLETIONTIMEOUTLABEL, IDS_SETTINGS_AUTOCOMPLETIONTIMEOUT_TT);
170 m_tooltips.AddTool(IDC_MAXHISTORY, IDS_SETTINGS_MAXHISTORY_TT);
171 m_tooltips.AddTool(IDC_MAXHISTORYLABEL, IDS_SETTINGS_MAXHISTORY_TT);
172 m_tooltips.AddTool(IDC_SELECTFILESONCOMMIT, IDS_SETTINGS_SELECTFILESONCOMMIT_TT);
174 UpdateData(FALSE);
175 return TRUE;
178 void CSetDialogs2::OnChange()
180 SetModified();
183 BOOL CSetDialogs2::OnApply()
185 UpdateData();
187 Store(static_cast<DWORD>(m_dwAutoCloseGitProgress), m_regAutoCloseGitProgress);
188 Store(m_bUseRecycleBin, m_regUseRecycleBin);
189 Store(m_bConfirmKillProcess, m_regConfirmKillProcess);
190 Store(m_bSyncDialogRandomPos, m_regSyncDialogRandomPos);
191 Store(m_bRefCompareHideUnchanged, m_regRefCompareHideUnchanged);
192 Store(m_bSortTagsReversed, m_regSortTagsReversed);
193 Store(m_bMailmap, m_regMailmap);
195 Store(m_bAutocompletion, m_regAutocompletion);
196 Store(m_dwAutocompletionTimeout, m_regAutocompletionTimeout);
197 Store(m_dwMaxHistory, m_regMaxHistory);
198 Store(m_bAutoSelect, m_regAutoSelect);
199 Store(m_bStripCommentedLines, m_regStripCommentedLines);
200 Store(m_bShowGitexeTimings, m_regShowGitexeTimings);
201 Store(m_bNoSounds, m_regNoSounds);
202 Store(m_bBranchesIncludeFetchHead, m_regBranchesIncludeFetchHead);
203 Store(m_bNoAutoselectMissing, m_regNoAutoselectMissing);
205 SetModified(FALSE);
206 return ISettingsPropPage::OnApply();
209 void CSetDialogs2::OnCbnSelchangeAutoclosecombo()
211 if (m_cAutoCloseGitProgress.GetCurSel() != CB_ERR)
213 m_dwAutoCloseGitProgress = m_cAutoCloseGitProgress.GetItemData(m_cAutoCloseGitProgress.GetCurSel());
215 SetModified();