Cleanup: split WM_keyconfig_new into new/ensure functions

Use less ambiguous naming where new(..) always returns new data.
This commit is contained in:
Campbell Barton
2023-08-31 17:33:19 +10:00
parent 9a1c66d503
commit 54e2aaf9ad
3 changed files with 24 additions and 17 deletions

View File

@@ -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(

View File

@@ -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);

View File

@@ -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)