UserActions::ActionType UserActions::GetGroupActions(const wxString& group) const { wxString key = _T( "/Groups/" ) + group + _T( "/Opts/Actions" ); if (cfg().HasEntry(key)) // Backward compatibility. { wxLogMessage(_T( "loading deprecated group actions and updating config" )); UserActions::ActionType action = (UserActions::ActionType)cfg().Read(key, (long)UserActions::ActNone); cfg().DeleteEntry(key); SetGroupActions(group, action); return action; } key = _T( "/Groups/" ) + group + _T( "/Opts/ActionsList" ); if (!cfg().Exists(key)) return UserActions::ActNone; key += _T( "/" ); int mask = 1; int result = 0; for (auto config : m_configActionNames) { if (cfg().Read(key + config, 0l)) { result |= mask; } mask <<= 1; } if (result == 0) return UserActions::ActNone; return (UserActions::ActionType)result; }
void UserActions::ChangeAction(const wxString& group, const ActionType action, bool add) { ActionType old = m_groupActions[group]; old = (ActionType)(add ? (old | action) : (old & ~action)); SetGroupActions(group, old); Init(); UpdateUI(); }
void UserActions::AddGroup(const wxString& group) { if (!cfg().Exists(_T( "/Groups/" ) + group)) { //set defaults SetGroupActions(group, UserActions::ActNone); SetGroupHLColor(defaultHLcolor, group); } Init(); UpdateUI(); }