Index: src/ch/CfgProperties.cpp =================================================================== diff -u -N -r3493e9fc470285b0a0b417d50be281467a071eb7 -rcdf6a22ddf857f56ce2e27e26d8cd6f0b8034b2e --- src/ch/CfgProperties.cpp (.../CfgProperties.cpp) (revision 3493e9fc470285b0a0b417d50be281467a071eb7) +++ src/ch/CfgProperties.cpp (.../CfgProperties.cpp) (revision cdf6a22ddf857f56ce2e27e26d8cd6f0b8034b2e) @@ -19,95 +19,100 @@ *************************************************************************/ #include "stdafx.h" #include "CfgProperties.h" +#include "../libicpf/config_property.h" -#ifdef _DEBUG -#define new DEBUG_NEW +#ifdef DEBUG +#define new DEBUG NEW #endif -bool RegisterProperties(CConfigManager* pManager) +bool RegisterProperties(icpf::config* pManager) { - pManager->RegisterBoolProperty(_T("Program"), _T("Enabled clipboard monitoring"), false); - pManager->RegisterIntProperty(_T("Program"), _T("Monitor scan interval"), 1000); - pManager->RegisterBoolProperty(_T("Program"), _T("Reload after restart"), false); - pManager->RegisterBoolProperty(_T("Program"), _T("Shutdown system after finished"), false); - pManager->RegisterIntProperty(_T("Program"), _T("Time before shutdown"), 10000); - pManager->RegisterBoolProperty(_T("Program"), _T("Force shutdown"), false); - pManager->RegisterIntProperty(_T("Program"), _T("Autosave interval"), 30000); - pManager->RegisterIntProperty(_T("Program"), _T("Process priority class"), NORMAL_PRIORITY_CLASS); - pManager->RegisterStringProperty(_T("Program"), _T("Autosave directory"), _T("\\"), RF_PATH); - pManager->RegisterStringProperty(_T("Program"), _T("Plugins directory"), _T("\\Plugins\\"), RF_PATH); - pManager->RegisterStringProperty(_T("Program"), _T("Help directory"), _T("\\Help\\"), RF_PATH); - pManager->RegisterStringProperty(_T("Program"), _T("Language"), _T("\\Langs\\English.lng")); - pManager->RegisterStringProperty(_T("Program"), _T("Languages directory"), _T("\\Langs\\"), RF_PATH); + const long long llHour = 3600UL*1000UL; +// const long long llMinute = 60UL*1000UL; + const long long llSecond = 1000UL; - pManager->RegisterIntProperty(_T("Status dialog"), _T("Status refresh interval"), 1000); - pManager->RegisterBoolProperty(_T("Status dialog"), _T("Show details"), true); - pManager->RegisterBoolProperty(_T("Status dialog"), _T("Auto remove finished"), false); + pManager->register_bool(_t("Program/Enabled clipboard monitoring"), false); + pManager->register_signed_num(_t("Program/Monitor scan interval"), 1000, 0, llHour); + pManager->register_bool(_t("Program/Reload after restart"), false); + pManager->register_bool(_t("Program/Shutdown system after finished"), false); + pManager->register_signed_num(_t("Program/Time before shutdown"), 10000, 0, 24*llHour); + pManager->register_bool(_t("Program/Force shutdown"), false); + pManager->register_signed_num(_t("Program/Autosave interval"), 30*llSecond, 0, 24*llHour); + pManager->register_signed_num(_t("Program/Process priority class"), NORMAL_PRIORITY_CLASS, 0, 0xffffffff); + pManager->register_string(_t("Program/Autosave directory"), _t("\\"), icpf::property::flag_path); + pManager->register_string(_t("Program/Plugins directory"), _t("\\Plugins\\"), icpf::property::flag_path); + pManager->register_string(_t("Program/Help directory"), _t("\\Help\\"), icpf::property::flag_path); + pManager->register_string(_t("Program/Language"), _t("\\Langs\\English.lng")); + pManager->register_string(_t("Program/Languages directory"), _t("\\Langs\\"), icpf::property::flag_path); - pManager->RegisterIntProperty(_T("Folder dialog"), _T("Dialog width"), -1); - pManager->RegisterIntProperty(_T("Folder dialog"), _T("Dialog height"), -1); - pManager->RegisterIntProperty(_T("Folder dialog"), _T("Shortcut list style"), 1); - pManager->RegisterBoolProperty(_T("Folder dialog"), _T("Extended view"), true); - pManager->RegisterBoolProperty(_T("Folder dialog"), _T("Ignore shell dialogs"), false); + pManager->register_signed_num(_t("Status dialog/Status refresh interval"), 1000, 0, 24*llHour); + pManager->register_bool(_t("Status dialog/Show details"), true); + pManager->register_bool(_t("Status dialog/Auto remove finished"), false); - pManager->RegisterBoolProperty(_T("Mini view"), _T("Show filenames"), true); - pManager->RegisterBoolProperty(_T("Mini view"), _T("Show single tasks"), true); - pManager->RegisterIntProperty(_T("Mini view"), _T("Miniview refresh interval"), 200); - pManager->RegisterBoolProperty(_T("Mini view"), _T("Autoshow when run"), true); - pManager->RegisterBoolProperty(_T("Mini view"), _T("Autohide when empty"), true); - pManager->RegisterBoolProperty(_T("Mini view"), _T("Use smooth progress"), true); + pManager->register_signed_num(_t("Folder dialog/Dialog width"), -1, -1, 32767); + pManager->register_signed_num(_t("Folder dialog/Dialog height"), -1, -1, 32767); + pManager->register_signed_num(_t("Folder dialog/Shortcut list style"), 1, 0, 3); + pManager->register_bool(_t("Folder dialog/Extended view"), true); + pManager->register_bool(_t("Folder dialog/Ignore shell dialogs"), false); - pManager->RegisterBoolProperty(_T("Copying/moving"), _T("Use auto-complete files"), true); - pManager->RegisterBoolProperty(_T("Copying/moving"), _T("Always set destination attributes"), true); - pManager->RegisterBoolProperty(_T("Copying/moving"), _T("Always set destination time"), true); - pManager->RegisterBoolProperty(_T("Copying/moving"), _T("Protect read-only files"), false); - pManager->RegisterIntProperty(_T("Copying/moving"), _T("Limit max operations"), 1); - pManager->RegisterBoolProperty(_T("Copying/moving"), _T("Read tasks size before blocking"), true); - pManager->RegisterIntProperty(_T("Copying/moving"), _T("Show visual feedback"), 2); - pManager->RegisterBoolProperty(_T("Copying/moving"), _T("Use timed feedback dialogs"), false); - pManager->RegisterIntProperty(_T("Copying/moving"), _T("Feedback time"), 60000); - pManager->RegisterBoolProperty(_T("Copying/moving"), _T("Auto retry on error"), true); - pManager->RegisterIntProperty(_T("Copying/moving"), _T("Auto retry interval"), 10000); - pManager->RegisterIntProperty(_T("Copying/moving"), _T("Default priority"), THREAD_PRIORITY_NORMAL); - pManager->RegisterBoolProperty(_T("Copying/moving"), _T("Disable priority boost"), false); - pManager->RegisterBoolProperty(_T("Copying/moving"), _T("Delete files after finished"), true); - pManager->RegisterBoolProperty(_T("Copying/moving"), _T("Create log file"), true); + pManager->register_bool(_t("Mini view/Show filenames"), true); + pManager->register_bool(_t("Mini view/Show single tasks"), true); + pManager->register_signed_num(_t("Mini view/Miniview refresh interval"), 200, 0, 24*llHour); + pManager->register_bool(_t("Mini view/Autoshow when run"), true); + pManager->register_bool(_t("Mini view/Autohide when empty"), true); + pManager->register_bool(_t("Mini view/Use smooth progress"), true); - pManager->RegisterBoolProperty(_T("Shell"), _T("Show 'Copy' command"), true); - pManager->RegisterBoolProperty(_T("Shell"), _T("Show 'Move' command"), true); - pManager->RegisterBoolProperty(_T("Shell"), _T("Show 'Copy/move special' command"), true); - pManager->RegisterBoolProperty(_T("Shell"), _T("Show 'Paste' command"), true); - pManager->RegisterBoolProperty(_T("Shell"), _T("Show 'Paste special' command"), true); - pManager->RegisterBoolProperty(_T("Shell"), _T("Show 'Copy to' command"), true); - pManager->RegisterBoolProperty(_T("Shell"), _T("Show 'Move to' command"), true); - pManager->RegisterBoolProperty(_T("Shell"), _T("Show 'Copy to/Move to special' command"), true); - pManager->RegisterBoolProperty(_T("Shell"), _T("Show free space along with shortcut"), true); - pManager->RegisterBoolProperty(_T("Shell"), _T("Show shell icons in shortcuts menu"), false); - pManager->RegisterBoolProperty(_T("Shell"), _T("Use drag&drop default menu item override"), true); - pManager->RegisterIntProperty(_T("Shell"), _T("Default action when dragging"), 3); + pManager->register_bool(_t("Copying/Use auto-complete files"), true); + pManager->register_bool(_t("Copying/Always set destination attributes"), true); + pManager->register_bool(_t("Copying/Always set destination time"), true); + pManager->register_bool(_t("Copying/Protect read-only files"), false); + pManager->register_signed_num(_t("Copying/Limit max operations"), 1, 0, 0xffffffff); + pManager->register_bool(_t("Copying/Read tasks size before blocking"), true); + pManager->register_signed_num(_t("Copying/Show visual feedback"), 2, 0, 2); + pManager->register_bool(_t("Copying/Use timed feedback dialogs"), false); + pManager->register_signed_num(_t("Copying/Feedback time"), 60*llSecond, 0, 24*llHour); + pManager->register_bool(_t("Copying/Auto retry on error"), true); + pManager->register_signed_num(_t("Copying/Auto retry interval"), 10*llSecond, 0, 24*llHour); + pManager->register_signed_num(_t("Copying/Default priority"), THREAD_PRIORITY_NORMAL, 0, 0xffffffff); + pManager->register_bool(_t("Copying/Disable priority boost"), false); + pManager->register_bool(_t("Copying/Delete files after finished"), true); + pManager->register_bool(_t("Copying/Create log file"), true); - pManager->RegisterBoolProperty(_T("Buffer"), _T("Use only default buffer"), false); - pManager->RegisterIntProperty(_T("Buffer"), _T("Default buffer size"), 2097152); - pManager->RegisterIntProperty(_T("Buffer"), _T("One physical disk buffer size"), 4194304); - pManager->RegisterIntProperty(_T("Buffer"), _T("Two different hard disks buffer size"), 524288); - pManager->RegisterIntProperty(_T("Buffer"), _T("CD buffer size"), 262144); - pManager->RegisterIntProperty(_T("Buffer"), _T("LAN buffer size"), 131072); - pManager->RegisterBoolProperty(_T("Buffer"), _T("Use no buffering for large files"), true); - pManager->RegisterIntProperty(_T("Buffer"), _T("Large files lower boundary limit"), 2097152); + pManager->register_bool(_t("Shell/Show 'Copy' command"), true); + pManager->register_bool(_t("Shell/Show 'Move' command"), true); + pManager->register_bool(_t("Shell/Show 'Copy,move special' command"), true); + pManager->register_bool(_t("Shell/Show 'Paste' command"), true); + pManager->register_bool(_t("Shell/Show 'Paste special' command"), true); + pManager->register_bool(_t("Shell/Show 'Copy to' command"), true); + pManager->register_bool(_t("Shell/Show 'Move to' command"), true); + pManager->register_bool(_t("Shell/Show 'Copy to,Move to special' command"), true); + pManager->register_bool(_t("Shell/Show free space along with shortcut"), true); + pManager->register_bool(_t("Shell/Show shell icons in shortcuts menu"), false); + pManager->register_bool(_t("Shell/Use drag&drop default menu item override"), true); + pManager->register_signed_num(_t("Shell/Default action when dragging"), 3, 0, 0xffffffff); - pManager->RegisterStringProperty(_T("Log file"), _T("Path to main log file"), _T("\\ch.log")); - pManager->RegisterBoolProperty(_T("Log file"), _T("Enable logging"), true); - pManager->RegisterBoolProperty(_T("Log file"), _T("Enable log size limitation"), true); - pManager->RegisterIntProperty(_T("Log file"), _T("Max log size limit"), 65535); - pManager->RegisterBoolProperty(_T("Log file"), _T("Precise log size limiting"), false); - pManager->RegisterIntProperty(_T("Log file"), _T("Truncation buffer size"), 65535, PDL_PARANOID); + pManager->register_bool(_t("Buffer/Use only default buffer"), false); + pManager->register_signed_num(_t("Buffer/Default buffer size"), 2097152, 1, 0xffffffff); + pManager->register_signed_num(_t("Buffer/One physical disk buffer size"), 4194304, 1, 0xffffffff); + pManager->register_signed_num(_t("Buffer/Two different hard disks buffer size"), 524288, 1, 0xffffffff); + pManager->register_signed_num(_t("Buffer/CD buffer size"), 262144, 1, 0xffffffff); + pManager->register_signed_num(_t("Buffer/LAN buffer size"), 131072, 1, 0xffffffff); + pManager->register_bool(_t("Buffer/Use no buffering for large files"), true); + pManager->register_signed_num(_t("Buffer/Large files lower boundary limit"), 2097152, 1, 0xffffffff); - pManager->RegisterBoolProperty(_T("Sounds"), _T("Play sounds"), true); - pManager->RegisterStringProperty(_T("Sounds"), _T("Error sound path"), _T("\\media\\chord.wav")); - pManager->RegisterStringProperty(_T("Sounds"), _T("Finished sound path"), _T("\\media\\ding.wav")); + pManager->register_string(_t("Log file/Path to main log file"), _t("\\ch.log")); + pManager->register_bool(_t("Log file/Enable logging"), true); + pManager->register_bool(_t("Log file/Enable log size limitation"), true); + pManager->register_signed_num(_t("Log file/Max log size limit"), 65535, 1024, 0xffffffff); + pManager->register_bool(_t("Log file/Precise log size limiting"), false); + pManager->register_signed_num(_t("Log file/Truncation buffer size"), 65535, 1024, 0xffffffff); - pManager->RegisterStringArrayProperty(_T("Shortcuts")); - pManager->RegisterStringArrayProperty(_T("Recent paths")); + pManager->register_bool(_t("Sounds/Play sounds"), true); + pManager->register_string(_t("Sounds/Error sound path"), _t("\\media\\chord.wav"), icpf::property::flag_path); + pManager->register_string(_t("Sounds/Finished sound path"), _t("\\media\\ding.wav"), icpf::property::flag_path); + pManager->register_string(_t("Shortcuts/Shortcut"), _t(""), icpf::property::flag_array); + pManager->register_string(_t("Recent paths/Path"), _t(""), icpf::property::flag_array); + return true; }