Fixed issue #2096: Allow to disable blue text-label about git.exe execution timings...
[TortoiseGit.git] / src / TortoiseProc / Settings / SetDialogs2.cpp
blob4d4d0ed9a1ffd3ee0fb811b9f018ce3563b7cbb7
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.
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_bAutocompletion(FALSE)
36 , m_dwAutocompletionTimeout(0)
37 , m_dwMaxHistory(25)
38 , m_bAutoSelect(TRUE)
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)
97 END_MESSAGE_MAP()
99 // CSetDialogs2 message handlers
100 BOOL CSetDialogs2::OnInitDialog()
102 ISettingsPropPage::OnInitDialog();
104 EnableToolTips();
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);
120 CString temp;
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);
135 UpdateData(FALSE);
136 return TRUE;
139 BOOL CSetDialogs2::PreTranslateMessage(MSG* pMsg)
141 m_tooltips.RelayEvent(pMsg);
142 return ISettingsPropPage::PreTranslateMessage(pMsg);
145 void CSetDialogs2::OnChange()
147 SetModified();
150 BOOL CSetDialogs2::OnApply()
152 UpdateData();
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);
167 SetModified(FALSE);
168 return ISettingsPropPage::OnApply();
171 void CSetDialogs2::OnCbnSelchangeAutoclosecombo()
173 if (m_cAutoCloseGitProgress.GetCurSel() != CB_ERR)
175 m_dwAutoCloseGitProgress = m_cAutoCloseGitProgress.GetItemData(m_cAutoCloseGitProgress.GetCurSel());
177 SetModified();