Index: src/ch/CfgProperties.h =================================================================== diff -u -N -r9ea1e103b5fa4ddfebf8028f121ce16e917eec04 -r1d7d79169d480a02e335b8b0a4919f9c78d58325 --- src/ch/CfgProperties.h (.../CfgProperties.h) (revision 9ea1e103b5fa4ddfebf8028f121ce16e917eec04) +++ src/ch/CfgProperties.h (.../CfgProperties.h) (revision 1d7d79169d480a02e335b8b0a4919f9c78d58325) @@ -21,6 +21,8 @@ #pragma once +#include "TTaskConfiguration.h" + class TConfig; // properties definitions @@ -115,6 +117,11 @@ eFreq_Max }; +/////////////////////////////////////////////////////////////////////////////////////////////// +// specific branches in configuration + +#define BRANCH_TASK_SETTINGS _T("CHConfig.TaskSettings") + ///////////////////////////////////////////////////////////////////////////////////////////// // Properties definitions @@ -126,6 +133,7 @@ typedef val_type value_type;\ static value_type GetDefaultValue() { return def_value; }\ static const wchar_t* GetPropertyName() { return val_name; }\ + static const wchar_t* GetPropertyNamePrefix() { return _T(""); }\ } #define PROPERTY_MINMAX(enum_id, val_type, val_name, def_value, min_val, max_val)\ @@ -134,14 +142,25 @@ typedef val_type value_type;\ static value_type GetDefaultValue() { return def_value; }\ static const wchar_t* GetPropertyName() { return val_name; }\ + static const wchar_t* GetPropertyNamePrefix() { return _T(""); }\ } +#define ADAPT_TASK_PROPERTY(enum_id, task_enum_id)\ + template<> struct PropData\ +{\ + typedef TaskPropData::value_type value_type;\ + static value_type GetDefaultValue() { return TaskPropData::GetDefaultValue(); }\ + static const wchar_t* GetPropertyName() { return TaskPropData::GetPropertyName(); }\ + static const wchar_t* GetPropertyNamePrefix() { return BRANCH_TASK_SETTINGS _T("."); }\ +} + const long long Hour = 3600UL*1000UL; const long long Minute = 60UL*1000UL; const long long Second = 1000UL; typedef std::vector CStringVector; +/////////////////////////////////////////////////////////////////////////////////////////////// // General settings PROPERTY(PP_PCLIPBOARDMONITORING, bool, _T("CHConfig.General.Program.EnableClipboardMonitoring"), false); PROPERTY_MINMAX(PP_PMONITORSCANINTERVAL, unsigned int, _T("CHConfig.General.Program.ClipboardMonitorScanInterval"), 1000, 0, 3600UL*1000UL); @@ -191,22 +210,23 @@ PROPERTY(PP_CMLIMITMAXOPERATIONS, unsigned int, _T("CHConfig.Core.Operation.LimitMaxOperations"), 1); -PROPERTY(PP_CMSETDESTATTRIBUTES, bool, _T("CHConfig.Core.Operation.SetDestinationAttributes"), true); -PROPERTY(PP_CMSETDESTDATE, bool, _T("CHConfig.Core.Operation.SetDestinationTime"), true); -PROPERTY(PP_CMPROTECTROFILES, bool, _T("CHConfig.Core.Operation.ProtectReadOnlyFiles"), true); -PROPERTY(PP_CMREADSIZEBEFOREBLOCKING, bool, _T("CHConfig.Core.Operation.ScanForFilesBeforeBlocking"), true); -PROPERTY(PP_CMDEFAULTPRIORITY, int, _T("CHConfig.Core.Operation.Thread.Priority"), THREAD_PRIORITY_NORMAL); -PROPERTY(PP_CMDISABLEPRIORITYBOOST, bool, _T("CHConfig.Core.Operation.Thread.DisablePriorityBoost"), false); -PROPERTY(PP_CMDELETEAFTERFINISHED, bool, _T("CHConfig.Core.Operation.DeleteDilesInSeparateOperation"), true); +// Task default settings (see TTaskConfiguration.h) +ADAPT_TASK_PROPERTY(PP_BFUSEONLYDEFAULT, eTO_UseOnlyDefaultBuffer); +ADAPT_TASK_PROPERTY(PP_BFDEFAULT, eTO_DefaultBufferSize); +ADAPT_TASK_PROPERTY(PP_BFONEDISK, eTO_OneDiskBufferSize); +ADAPT_TASK_PROPERTY(PP_BFTWODISKS, eTO_TwoDisksBufferSize); +ADAPT_TASK_PROPERTY(PP_BFCD, eTO_CDBufferSize); +ADAPT_TASK_PROPERTY(PP_BFLAN, eTO_LANBufferSize); +ADAPT_TASK_PROPERTY(PP_BFUSENOBUFFERING, eTO_DisableBuffering); +ADAPT_TASK_PROPERTY(PP_BFBOUNDARYLIMIT, eTO_DisableBufferingMinSize); -PROPERTY(PP_BFUSEONLYDEFAULT, bool, _T("CHConfig.Core.Operation.Buffer.UseOnlyDefaultBuffer"), false); -PROPERTY_MINMAX(PP_BFDEFAULT, unsigned int, _T("CHConfig.Core.Operation.Buffer.DefaultBufferSize"), 2097152, 1, 0xffffffff); -PROPERTY_MINMAX(PP_BFONEDISK, unsigned int, _T("CHConfig.Core.Operation.Buffer.OnePhysicalDiskSize"), 4194304, 1, 0xffffffff); -PROPERTY_MINMAX(PP_BFTWODISKS, unsigned int, _T("CHConfig.Core.Operation.Buffer.TwoPhysicalDisksSize"), 524288, 1, 0xffffffff); -PROPERTY_MINMAX(PP_BFCD, unsigned int, _T("CHConfig.Core.Operation.Buffer.CDSize"), 262144, 1, 0xffffffff); -PROPERTY_MINMAX(PP_BFLAN, unsigned int, _T("CHConfig.Core.Operation.Buffer.LANSize"), 131072, 1, 0xffffffff); -PROPERTY(PP_BFUSENOBUFFERING, bool, _T("CHConfig.Core.Operation.Buffering.DisableBufferingForLargeFiles"), true); -PROPERTY_MINMAX(PP_BFBOUNDARYLIMIT, int, _T("CHConfig.Core.Operation.Buffering.MinSizeOfFileToDisableBuffering"), 2097152, 1, 0xffffffff); +ADAPT_TASK_PROPERTY(PP_CMSETDESTATTRIBUTES, eTO_SetDestinationAttributes); +ADAPT_TASK_PROPERTY(PP_CMSETDESTDATE, eTO_SetDestinationDateTime); +ADAPT_TASK_PROPERTY(PP_CMPROTECTROFILES, eTO_ProtectReadOnlyFiles); +ADAPT_TASK_PROPERTY(PP_CMREADSIZEBEFOREBLOCKING, eTO_ScanDirectoriesBeforeBlocking); +ADAPT_TASK_PROPERTY(PP_CMDEFAULTPRIORITY, eTO_ThreadPriority); +ADAPT_TASK_PROPERTY(PP_CMDISABLEPRIORITYBOOST, eTO_DisablePriorityBoost); +ADAPT_TASK_PROPERTY(PP_CMDELETEAFTERFINISHED, eTO_DeleteInSeparateSubTask); // Shell extension PROPERTY(PP_SHSHOWCOPY, bool, _T("CHConfig.ShellExtension.ShowCommands.Copy"), true); @@ -220,8 +240,8 @@ PROPERTY(PP_SHSHOWFREESPACE, bool, _T("CHConfig.ShellExtension.ShowFreeSpaceAlongShortcuts"), true); PROPERTY(PP_SHSHOWSHELLICONS, bool, _T("CHConfig.ShellExtension.ShowShortcutsShellIcons"), false); PROPERTY(PP_SHINTERCEPTDRAGDROP, bool, _T("CHConfig.ShellExtension.InterceptDragDrop"), true); -PROPERTY(PP_SHINTERCEPTKEYACTIONS, bool, _T("CHConfig.ShellExtension.ShowCommands.InterceptKeyboardActions"), true); -PROPERTY(PP_SHINTERCEPTCTXMENUACTIONS, bool, _T("CHConfig.ShellExtension.ShowCommands.InterceptDefaultContextMenuActions"), false); +PROPERTY(PP_SHINTERCEPTKEYACTIONS, bool, _T("CHConfig.ShellExtension.InterceptKeyboardActions"), true); +PROPERTY(PP_SHINTERCEPTCTXMENUACTIONS, bool, _T("CHConfig.ShellExtension.InterceptDefaultContextMenuActions"), false); // Invisible options PROPERTY_MINMAX(PP_LAST_UPDATE_TIMESTAMP, long long, _T("CHConfig.RuntimeState.LastCheckedForUpdates"), 0, 0, LLONG_MAX); @@ -233,20 +253,20 @@ typename PropData::value_type GetPropValue(const TConfig& rConfig) { typename PropData::value_type tValue; - rConfig.GetValue(PropData::GetPropertyName(), tValue, PropData::GetDefaultValue()); + rConfig.GetValue(CString(PropData::GetPropertyNamePrefix()) + PropData::GetPropertyName(), tValue, PropData::GetDefaultValue()); return tValue; } template bool GetPropValue(const TConfig& rConfig, typename PropData::value_type& rValue) { - return rConfig.GetValue(PropData::GetPropertyName(), rValue, PropData::GetDefaultValue()); + return rConfig.GetValue(CString(PropData::GetPropertyNamePrefix()) + PropData::GetPropertyName(), rValue, PropData::GetDefaultValue()); } template void SetPropValue(TConfig& rConfig, const typename PropData::value_type& rValue) { - rConfig.SetValue(PropData::GetPropertyName(), rValue); + rConfig.SetValue(CString(PropData::GetPropertyNamePrefix()) + PropData::GetPropertyName(), rValue); } #endif