Clone
ixen <ixen@copyhandler.com>
committed
on 27 Oct 11
Moved to chcore: task's configuration management, filesystem management, stats management and progress management.
LoggerImprovements + 5 more
src/ch/CfgProperties.h (+20 -20)
4 4 *                                                                         *
5 5 *   This program is free software; you can redistribute it and/or modify  *
6 6 *   it under the terms of the GNU Library General Public License          *
7 7 *   (version 2) as published by the Free Software Foundation;             *
8 8 *                                                                         *
9 9 *   This program is distributed in the hope that it will be useful,       *
10 10 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
11 11 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
12 12 *   GNU General Public License for more details.                          *
13 13 *                                                                         *
14 14 *   You should have received a copy of the GNU Library General Public     *
15 15 *   License along with this program; if not, write to the                 *
16 16 *   Free Software Foundation, Inc.,                                       *
17 17 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
18 18 ***************************************************************************/
19 19 #ifndef __PROPERTYTYPES_H__
20 20 #define __PROPERTYTYPES_H__
21 21
22 22 #pragma once
23 23
24   #include "TTaskConfiguration.h"
  24 #include "../libchcore/TTaskConfiguration.h"
25 25
26 26 namespace chcore { class TConfig; }
27 27
28 28 // properties definitions
29 29 enum ECHProperties
30 30 {
31 31         PP_PCLIPBOARDMONITORING = 0,
32 32         PP_PMONITORSCANINTERVAL,
33 33         PP_PRELOADAFTERRESTART,
34 34         PP_PCHECK_FOR_UPDATES_FREQUENCY,
35 35         PP_PUPDATE_CHECK_FOR_BETA,
36 36         PP_PSHUTDOWNAFTREFINISHED,
37 37         PP_PTIMEBEFORESHUTDOWN,
38 38         PP_PFORCESHUTDOWN,
39 39         PP_PAUTOSAVEINTERVAL,
40 40         PP_PPROCESSPRIORITYCLASS,
41 41         PP_PLANGUAGE,
42 42
43 43         PP_STATUSREFRESHINTERVAL,
44 44         PP_STATUSSHOWDETAILS,
 
131 131         template<> struct PropData<enum_id>\
132 132         {\
133 133                 typedef val_type value_type;\
134 134                 static value_type GetDefaultValue() { return def_value; }\
135 135                 static const wchar_t* GetPropertyName() { return val_name; }\
136 136                 static const wchar_t* GetPropertyNamePrefix() { return _T(""); }\
137 137         }
138 138
139 139 #define PROPERTY_MINMAX(enum_id, val_type, val_name, def_value, min_val, max_val)\
140 140         template<> struct PropData<enum_id>\
141 141         {\
142 142                 typedef val_type value_type;\
143 143                 static value_type GetDefaultValue() { return def_value; }\
144 144                 static const wchar_t* GetPropertyName() { return val_name; }\
145 145                 static const wchar_t* GetPropertyNamePrefix() { return _T(""); }\
146 146         }
147 147
148 148 #define ADAPT_TASK_PROPERTY(enum_id, task_enum_id)\
149 149         template<> struct PropData<enum_id>\
150 150 {\
151           typedef TaskPropData<task_enum_id>::value_type value_type;\
152           static value_type GetDefaultValue() { return TaskPropData<task_enum_id>::GetDefaultValue(); }\
153           static const wchar_t* GetPropertyName() { return TaskPropData<task_enum_id>::GetPropertyName(); }\
  151         typedef chcore::TaskPropData<task_enum_id>::value_type value_type;\
  152         static value_type GetDefaultValue() { return chcore::TaskPropData<task_enum_id>::GetDefaultValue(); }\
  153         static const wchar_t* GetPropertyName() { return chcore::TaskPropData<task_enum_id>::GetPropertyName(); }\
154 154         static const wchar_t* GetPropertyNamePrefix() { return BRANCH_TASK_SETTINGS _T("."); }\
155 155 }
156 156
157 157 const long long Hour = 3600UL*1000UL;
158 158 const long long Minute = 60UL*1000UL;
159 159 const long long Second = 1000UL;
160 160
161 161 typedef std::vector<CString> CStringVector;
162 162
163 163 ///////////////////////////////////////////////////////////////////////////////////////////////
164 164 // General settings
165 165 PROPERTY(PP_PCLIPBOARDMONITORING, bool, _T("CHConfig.General.Program.EnableClipboardMonitoring"), false);
166 166 PROPERTY_MINMAX(PP_PMONITORSCANINTERVAL, unsigned int, _T("CHConfig.General.Program.ClipboardMonitorScanInterval"), 1000, 0, 3600UL*1000UL);
167 167 PROPERTY(PP_PRELOADAFTERRESTART, bool, _T("CHConfig.General.Program.RunWithSystem"), false);
168 168
169 169 PROPERTY_MINMAX(PP_PCHECK_FOR_UPDATES_FREQUENCY, unsigned int, _T("CHConfig.General.Program.Updates.Frequency"), eFreq_Weekly, eFreq_Never, eFreq_Max - 1);
170 170 PROPERTY(PP_PUPDATE_CHECK_FOR_BETA, bool, _T("CHConfig.General.Program.Updates.CheckForBetaVersions"), true);
171 171
172 172 PROPERTY(PP_PPROCESSPRIORITYCLASS, int, _T("CHConfig.General.Program.ProcessPriority"), NORMAL_PRIORITY_CLASS);
173 173 PROPERTY(PP_PLANGUAGE, CString, _T("CHConfig.General.Program.Language"), _T("<PROGRAM>\\Langs\\English.lng"));
 
194 194 PROPERTY(PP_MVSHOWSINGLETASKS, bool, _T("CHConfig.GUI.MiniView.ShowSingleTasks"), true);
195 195 PROPERTY_MINMAX(PP_MVREFRESHINTERVAL, unsigned int, _T("CHConfig.GUI.MiniView.RefreshInterval"), 200, 0, 24*Hour);
196 196 PROPERTY(PP_MVAUTOSHOWWHENRUN, bool, _T("CHConfig.GUI.MiniView.AutoShowOnStartup"), true);
197 197 PROPERTY(PP_MVAUTOHIDEWHENEMPTY, bool, _T("CHConfig.GUI.MiniView.AutohideWhenEmpty"), true);
198 198 PROPERTY(PP_MVUSESMOOTHPROGRESS, bool, _T("CHConfig.GUI.MiniView.UseSmoothProgress"), true);
199 199
200 200 // Core engine
201 201 PROPERTY_MINMAX(PP_PAUTOSAVEINTERVAL, unsigned int, _T("CHConfig.Core.AutosaveInterval"), 30*Second, 0, 24*Hour);
202 202
203 203 PROPERTY(PP_PSHUTDOWNAFTREFINISHED, bool, _T("CHConfig.Core.Shutdown.ShutdownSystemAfterFinished"), false);
204 204 PROPERTY_MINMAX(PP_PTIMEBEFORESHUTDOWN, int, _T("CHConfig.Core.Shutdown.TimeBeforeShutdown"), 10000, 0, 24*Hour);
205 205 PROPERTY(PP_PFORCESHUTDOWN, bool, _T("CHConfig.Core.Shutdown.ForceShutdown"), false);
206 206
207 207 PROPERTY(PP_SNDPLAYSOUNDS, bool, _T("CHConfig.Core.Notifications.Sounds.Enable"), true);
208 208 PROPERTY(PP_SNDERRORSOUNDPATH, CString, _T("CHConfig.Core.Notifications.Sounds.ErrorSoundPath"), _T("<WINDOWS>\\media\\chord.wav"));
209 209 PROPERTY(PP_SNDFINISHEDSOUNDPATH, CString, _T("CHConfig.Core.Notifications.Sounds.FinishedSoundPath"), _T("<WINDOWS>\\media\\ding.wav"));
210 210
211 211 PROPERTY(PP_CMLIMITMAXOPERATIONS, unsigned int, _T("CHConfig.Core.Operation.LimitMaxOperations"), 1);
212 212
213 213 // Task default settings (see TTaskConfiguration.h)
214   ADAPT_TASK_PROPERTY(PP_BFUSEONLYDEFAULT, eTO_UseOnlyDefaultBuffer);
215   ADAPT_TASK_PROPERTY(PP_BFDEFAULT, eTO_DefaultBufferSize);
216   ADAPT_TASK_PROPERTY(PP_BFONEDISK, eTO_OneDiskBufferSize);
217   ADAPT_TASK_PROPERTY(PP_BFTWODISKS, eTO_TwoDisksBufferSize);
218   ADAPT_TASK_PROPERTY(PP_BFCD, eTO_CDBufferSize);
219   ADAPT_TASK_PROPERTY(PP_BFLAN, eTO_LANBufferSize);
220   ADAPT_TASK_PROPERTY(PP_BFUSENOBUFFERING, eTO_DisableBuffering);
221   ADAPT_TASK_PROPERTY(PP_BFBOUNDARYLIMIT, eTO_DisableBufferingMinSize);
  214 ADAPT_TASK_PROPERTY(PP_BFUSEONLYDEFAULT, chcore::eTO_UseOnlyDefaultBuffer);
  215 ADAPT_TASK_PROPERTY(PP_BFDEFAULT, chcore::eTO_DefaultBufferSize);
  216 ADAPT_TASK_PROPERTY(PP_BFONEDISK, chcore::eTO_OneDiskBufferSize);
  217 ADAPT_TASK_PROPERTY(PP_BFTWODISKS, chcore::eTO_TwoDisksBufferSize);
  218 ADAPT_TASK_PROPERTY(PP_BFCD, chcore::eTO_CDBufferSize);
  219 ADAPT_TASK_PROPERTY(PP_BFLAN, chcore::eTO_LANBufferSize);
  220 ADAPT_TASK_PROPERTY(PP_BFUSENOBUFFERING, chcore::eTO_DisableBuffering);
  221 ADAPT_TASK_PROPERTY(PP_BFBOUNDARYLIMIT, chcore::eTO_DisableBufferingMinSize);
222 222
223   ADAPT_TASK_PROPERTY(PP_CMSETDESTATTRIBUTES, eTO_SetDestinationAttributes);
224   ADAPT_TASK_PROPERTY(PP_CMSETDESTDATE, eTO_SetDestinationDateTime);
225   ADAPT_TASK_PROPERTY(PP_CMPROTECTROFILES, eTO_ProtectReadOnlyFiles);
226   ADAPT_TASK_PROPERTY(PP_CMREADSIZEBEFOREBLOCKING, eTO_ScanDirectoriesBeforeBlocking);
227   ADAPT_TASK_PROPERTY(PP_CMDEFAULTPRIORITY, eTO_ThreadPriority);
228   ADAPT_TASK_PROPERTY(PP_CMDISABLEPRIORITYBOOST, eTO_DisablePriorityBoost);
229   ADAPT_TASK_PROPERTY(PP_CMDELETEAFTERFINISHED, eTO_DeleteInSeparateSubTask);
  223 ADAPT_TASK_PROPERTY(PP_CMSETDESTATTRIBUTES, chcore::eTO_SetDestinationAttributes);
  224 ADAPT_TASK_PROPERTY(PP_CMSETDESTDATE, chcore::eTO_SetDestinationDateTime);
  225 ADAPT_TASK_PROPERTY(PP_CMPROTECTROFILES, chcore::eTO_ProtectReadOnlyFiles);
  226 ADAPT_TASK_PROPERTY(PP_CMREADSIZEBEFOREBLOCKING, chcore::eTO_ScanDirectoriesBeforeBlocking);
  227 ADAPT_TASK_PROPERTY(PP_CMDEFAULTPRIORITY, chcore::eTO_ThreadPriority);
  228 ADAPT_TASK_PROPERTY(PP_CMDISABLEPRIORITYBOOST, chcore::eTO_DisablePriorityBoost);
  229 ADAPT_TASK_PROPERTY(PP_CMDELETEAFTERFINISHED, chcore::eTO_DeleteInSeparateSubTask);
230 230
231 231 // Shell extension
232 232 PROPERTY(PP_SHSHOWCOPY, bool, _T("CHConfig.ShellExtension.ShowCommands.Copy"), true);
233 233 PROPERTY(PP_SHSHOWMOVE, bool, _T("CHConfig.ShellExtension.ShowCommands.Move"), true);
234 234 PROPERTY(PP_SHSHOWCOPYMOVE, bool, _T("CHConfig.ShellExtension.ShowCommands.CopyMoveSpecial"), true);
235 235 PROPERTY(PP_SHSHOWPASTE, bool, _T("CHConfig.ShellExtension.ShowCommands.Paste"), true);
236 236 PROPERTY(PP_SHSHOWPASTESPECIAL, bool, _T("CHConfig.ShellExtension.ShowCommands.PasteSpecial"), true);
237 237 PROPERTY(PP_SHSHOWCOPYTO, bool, _T("CHConfig.ShellExtension.ShowCommands.CopyTo"), true);
238 238 PROPERTY(PP_SHSHOWMOVETO, bool, _T("CHConfig.ShellExtension.ShowCommands.MoveTo"), true);
239 239 PROPERTY(PP_SHSHOWCOPYMOVETO, bool, _T("CHConfig.ShellExtension.ShowCommands.CopyToMoveToSpecial"), true);
240 240 PROPERTY(PP_SHSHOWFREESPACE, bool, _T("CHConfig.ShellExtension.ShowFreeSpaceAlongShortcuts"), true);
241 241 PROPERTY(PP_SHSHOWSHELLICONS, bool, _T("CHConfig.ShellExtension.ShowShortcutsShellIcons"), false);
242 242 PROPERTY(PP_SHINTERCEPTDRAGDROP, bool, _T("CHConfig.ShellExtension.InterceptDragDrop"), true);
243 243 PROPERTY(PP_SHINTERCEPTKEYACTIONS, bool, _T("CHConfig.ShellExtension.InterceptKeyboardActions"), true);
244 244 PROPERTY(PP_SHINTERCEPTCTXMENUACTIONS, bool, _T("CHConfig.ShellExtension.InterceptDefaultContextMenuActions"), false);
245 245
246 246 // Invisible options
247 247 PROPERTY_MINMAX(PP_LAST_UPDATE_TIMESTAMP, long long, _T("CHConfig.RuntimeState.LastCheckedForUpdates"), 0, 0, LLONG_MAX);
248 248
249 249 /////////////////////////////////////////////////////////////////////////////////////////////