intcur_scheme;// -1 is none user scheme applied, and points to the default setting which at first in 'schemes'
std::vector<OPTSCHEME>schemes;// NOTE: the first is always the default setting, and (cur_scheme + 1) is the user customizing setting, -1 is the default setting
booloperator==(conststd::string&n)
{
returnname==n;
}
}DEVCFG;
classhg_settingdialog:publicQDialog
{
Q_OBJECT
DEVCFG*schemes_;
intcur_ind_;// [0, scheme size - 2] will be replaced when click 'OK' button, if want to add new item, set it to -1; add ONE on it when accept source
typedefstruct_changed_opt
{
intopt;
QVariantval;
booloperator==(constint&ind)
{
returnopt==ind;
}
}CHANGEDOPT;
std::vector<CHANGEDOPT>default_vals_;// values which changed
std::vector<CHANGEDOPT>init_vals_;// values when initialize controls
std::vector<CHANGEDOPT>changed_opts_;// values which changed
intchanged_count_;
boolsave_;
voidrefresh_control_value(intop_id);
boolis_covered(std::vector<OPTVAL>&org,std::vector<OPTVAL>&now);// if all options in org are inclued in now, then return true