Cleanup: split WM_keyconfig_new into new/ensure functions
Use less ambiguous naming where new(..) always returns new data.
This commit is contained in:
@@ -492,6 +492,11 @@ static void rna_KeyMap_remove(wmKeyConfig *keyconfig, ReportList *reports, Point
|
||||
RNA_POINTER_INVALIDATE(keymap_ptr);
|
||||
}
|
||||
|
||||
wmKeyConfig *rna_KeyConfig_new(wmWindowManager *wm, const char *idname)
|
||||
{
|
||||
return WM_keyconfig_ensure(wm, idname, true);
|
||||
}
|
||||
|
||||
static void rna_KeyConfig_remove(wmWindowManager *wm, ReportList *reports, PointerRNA *keyconf_ptr)
|
||||
{
|
||||
wmKeyConfig *keyconf = static_cast<wmKeyConfig *>(keyconf_ptr->data);
|
||||
@@ -1294,7 +1299,7 @@ void RNA_api_keyconfigs(StructRNA *srna)
|
||||
FunctionRNA *func;
|
||||
PropertyRNA *parm;
|
||||
|
||||
func = RNA_def_function(srna, "new", "WM_keyconfig_new_user"); /* add_keyconfig */
|
||||
func = RNA_def_function(srna, "new", "rna_KeyConfig_new"); /* add_keyconfig */
|
||||
parm = RNA_def_string(func, "name", nullptr, 0, "Name", "");
|
||||
RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_REQUIRED);
|
||||
parm = RNA_def_pointer(
|
||||
|
||||
@@ -20,7 +20,7 @@ void WM_keyconfig_init(bContext *C);
|
||||
void WM_keyconfig_reload(bContext *C);
|
||||
|
||||
wmKeyConfig *WM_keyconfig_new(wmWindowManager *wm, const char *idname, bool user_defined);
|
||||
wmKeyConfig *WM_keyconfig_new_user(wmWindowManager *wm, const char *idname);
|
||||
wmKeyConfig *WM_keyconfig_ensure(wmWindowManager *wm, const char *idname, bool user_defined);
|
||||
bool WM_keyconfig_remove(wmWindowManager *wm, wmKeyConfig *keyconf);
|
||||
void WM_keyconfig_clear(wmKeyConfig *keyconf);
|
||||
void WM_keyconfig_free(wmKeyConfig *keyconf);
|
||||
|
||||
@@ -260,6 +260,22 @@ static void wm_keymap_diff_item_free(wmKeyMapDiffItem *kmdi)
|
||||
* \{ */
|
||||
|
||||
wmKeyConfig *WM_keyconfig_new(wmWindowManager *wm, const char *idname, bool user_defined)
|
||||
{
|
||||
BLI_assert(!BLI_findstring(&wm->keyconfigs, idname, offsetof(wmKeyConfig, idname)));
|
||||
/* Create new configuration. */
|
||||
wmKeyConfig *keyconf = static_cast<wmKeyConfig *>(
|
||||
MEM_callocN(sizeof(wmKeyConfig), "wmKeyConfig"));
|
||||
STRNCPY(keyconf->idname, idname);
|
||||
BLI_addtail(&wm->keyconfigs, keyconf);
|
||||
|
||||
if (user_defined) {
|
||||
keyconf->flag |= KEYCONF_USER;
|
||||
}
|
||||
|
||||
return keyconf;
|
||||
}
|
||||
|
||||
wmKeyConfig *WM_keyconfig_ensure(wmWindowManager *wm, const char *idname, bool user_defined)
|
||||
{
|
||||
wmKeyConfig *keyconf = static_cast<wmKeyConfig *>(
|
||||
BLI_findstring(&wm->keyconfigs, idname, offsetof(wmKeyConfig, idname)));
|
||||
@@ -279,21 +295,7 @@ wmKeyConfig *WM_keyconfig_new(wmWindowManager *wm, const char *idname, bool user
|
||||
return keyconf;
|
||||
}
|
||||
|
||||
/* Create new configuration. */
|
||||
keyconf = static_cast<wmKeyConfig *>(MEM_callocN(sizeof(wmKeyConfig), "wmKeyConfig"));
|
||||
STRNCPY(keyconf->idname, idname);
|
||||
BLI_addtail(&wm->keyconfigs, keyconf);
|
||||
|
||||
if (user_defined) {
|
||||
keyconf->flag |= KEYCONF_USER;
|
||||
}
|
||||
|
||||
return keyconf;
|
||||
}
|
||||
|
||||
wmKeyConfig *WM_keyconfig_new_user(wmWindowManager *wm, const char *idname)
|
||||
{
|
||||
return WM_keyconfig_new(wm, idname, true);
|
||||
return WM_keyconfig_new(wm, idname, user_defined);
|
||||
}
|
||||
|
||||
bool WM_keyconfig_remove(wmWindowManager *wm, wmKeyConfig *keyconf)
|
||||
|
||||
Reference in New Issue
Block a user