Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorHans Goudey <h.goudey@me.com>2020-09-25 23:51:56 +0300
committerHans Goudey <h.goudey@me.com>2020-09-25 23:51:56 +0300
commit9b6c5268bc2092614ec5b3fa1f6b98731cad4622 (patch)
treeb74ab4a53f9de726e2428a9f9849c13a1f096fa2 /source
parent4842dd022f35f2f474d0ef96e03b4b18daa498dd (diff)
Cleanup: Decrease indentation by returning early
Where the if statement was just a check for an error or an unhandled condition and there are no else statements, the rest of the function doesn't need to be indented.
Diffstat (limited to 'source')
-rw-r--r--source/blender/editors/interface/interface.c447
1 files changed, 223 insertions, 224 deletions
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c
index 99f2066a656..bdc00b985bc 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.c
@@ -721,25 +721,22 @@ static bool ui_but_equals_old(const uiBut *but, const uiBut *oldbut)
uiBut *ui_but_find_old(uiBlock *block_old, const uiBut *but_new)
{
- uiBut *but_old = NULL;
LISTBASE_FOREACH (uiBut *, but, &block_old->buttons) {
if (ui_but_equals_old(but_new, but)) {
- but_old = but;
- break;
+ return but;
}
}
- return but_old;
+ return NULL;
}
+
uiBut *ui_but_find_new(uiBlock *block_new, const uiBut *but_old)
{
- uiBut *but_new = NULL;
LISTBASE_FOREACH (uiBut *, but, &block_new->buttons) {
if (ui_but_equals_old(but, but_old)) {
- but_new = but;
- break;
+ return but;
}
}
- return but_new;
+ return NULL;
}
static bool ui_but_extra_icons_equals_old(const uiButExtraOpIcon *new_extra_icon,
@@ -1063,48 +1060,53 @@ static void ui_menu_block_set_keyaccels(uiBlock *block)
/* For PIE-menus. */
UI_BTYPE_ROW) ||
(but->flag & UI_HIDDEN)) {
- /* pass */
+ continue;
}
- else if (but->menu_key == '\0') {
- if (but->str && but->str[0]) {
- const char *str_pt = but->str;
- uchar menu_key;
- do {
- menu_key = tolower(*str_pt);
- if ((menu_key >= 'a' && menu_key <= 'z') && !(menu_key_mask & 1 << (menu_key - 'a'))) {
- menu_key_mask |= 1 << (menu_key - 'a');
- break;
- }
- if (pass == 0) {
- /* Skip to next delimiter on first pass (be picky) */
- while (isalpha(*str_pt)) {
- str_pt++;
- }
+ if (but->menu_key != '\0') {
+ continue;
+ }
- if (*str_pt) {
- str_pt++;
- }
- }
- else {
- /* just step over every char second pass and find first usable key */
- str_pt++;
- }
- } while (*str_pt);
+ if (but->str == NULL || but->str[0] == '\0') {
+ continue;
+ }
- if (*str_pt) {
- but->menu_key = menu_key;
- }
- else {
- /* run second pass */
- tot_missing++;
+ const char *str_pt = but->str;
+ uchar menu_key;
+ do {
+ menu_key = tolower(*str_pt);
+ if ((menu_key >= 'a' && menu_key <= 'z') && !(menu_key_mask & 1 << (menu_key - 'a'))) {
+ menu_key_mask |= 1 << (menu_key - 'a');
+ break;
+ }
+
+ if (pass == 0) {
+ /* Skip to next delimiter on first pass (be picky) */
+ while (isalpha(*str_pt)) {
+ str_pt++;
}
- /* if all keys have been used just exit, unlikely */
- if (menu_key_mask == (1 << 26) - 1) {
- return;
+ if (*str_pt) {
+ str_pt++;
}
}
+ else {
+ /* just step over every char second pass and find first usable key */
+ str_pt++;
+ }
+ } while (*str_pt);
+
+ if (*str_pt) {
+ but->menu_key = menu_key;
+ }
+ else {
+ /* run second pass */
+ tot_missing++;
+ }
+
+ /* if all keys have been used just exit, unlikely */
+ if (menu_key_mask == (1 << 26) - 1) {
+ return;
}
}
@@ -1129,23 +1131,24 @@ void ui_but_add_shortcut(uiBut *but, const char *shortcut_str, const bool do_str
}
/* without this, just allow stripping of the shortcut */
- if (shortcut_str) {
- char *butstr_orig;
+ if (shortcut_str == NULL) {
+ return;
+ }
- if (but->str != but->strdata) {
- butstr_orig = but->str; /* free after using as source buffer */
- }
- else {
- butstr_orig = BLI_strdup(but->str);
- }
- BLI_snprintf(
- but->strdata, sizeof(but->strdata), "%s" UI_SEP_CHAR_S "%s", butstr_orig, shortcut_str);
- MEM_freeN(butstr_orig);
- but->str = but->strdata;
- but->flag |= UI_BUT_HAS_SEP_CHAR;
- but->drawflag |= UI_BUT_HAS_SHORTCUT;
- ui_but_update(but);
+ char *butstr_orig;
+ if (but->str != but->strdata) {
+ butstr_orig = but->str; /* free after using as source buffer */
}
+ else {
+ butstr_orig = BLI_strdup(but->str);
+ }
+ BLI_snprintf(
+ but->strdata, sizeof(but->strdata), "%s" UI_SEP_CHAR_S "%s", butstr_orig, shortcut_str);
+ MEM_freeN(butstr_orig);
+ but->str = but->strdata;
+ but->flag |= UI_BUT_HAS_SEP_CHAR;
+ but->drawflag |= UI_BUT_HAS_SHORTCUT;
+ ui_but_update(but);
}
/* -------------------------------------------------------------------- */
@@ -1325,72 +1328,75 @@ static bool ui_but_event_property_operator_string(const bContext *C,
/* Don't use the button again. */
but = NULL;
+ if (prop == NULL) {
+ return NULL;
+ }
+
/* this version is only for finding hotkeys for properties
* (which get set via context using operators) */
- if (prop) {
- /* to avoid massive slowdowns on property panels, for now, we only check the
- * hotkeys for Editor / Scene settings...
- *
- * TODO: userpref settings?
- */
- char *data_path = NULL;
+ /* to avoid massive slowdowns on property panels, for now, we only check the
+ * hotkeys for Editor / Scene settings...
+ *
+ * TODO: userpref settings?
+ */
+ char *data_path = NULL;
- if (ptr->owner_id) {
- ID *id = ptr->owner_id;
+ if (ptr->owner_id) {
+ ID *id = ptr->owner_id;
- if (GS(id->name) == ID_SCR) {
- /* screen/editor property
- * NOTE: in most cases, there is actually no info for backwards tracing
- * how to get back to ID from the editor data we may be dealing with
- */
- if (RNA_struct_is_a(ptr->type, &RNA_Space)) {
- /* data should be directly on here... */
- data_path = BLI_sprintfN("space_data.%s", RNA_property_identifier(prop));
- }
- else if (RNA_struct_is_a(ptr->type, &RNA_Area)) {
- /* data should be directly on here... */
- const char *prop_id = RNA_property_identifier(prop);
- /* Hack since keys access 'type', UI shows 'ui_type'. */
- if (STREQ(prop_id, "ui_type")) {
- prop_id = "type";
- prop_enum_value >>= 16;
- prop = RNA_struct_find_property(ptr, prop_id);
-
- opnames = ctx_enum_opnames_for_Area_ui_type;
- opnames_len = ARRAY_SIZE(ctx_enum_opnames_for_Area_ui_type);
- prop_enum_value_id = "space_type";
- prop_enum_value_is_int = true;
- }
- else {
- data_path = BLI_sprintfN("area.%s", prop_id);
- }
+ if (GS(id->name) == ID_SCR) {
+ /* screen/editor property
+ * NOTE: in most cases, there is actually no info for backwards tracing
+ * how to get back to ID from the editor data we may be dealing with
+ */
+ if (RNA_struct_is_a(ptr->type, &RNA_Space)) {
+ /* data should be directly on here... */
+ data_path = BLI_sprintfN("space_data.%s", RNA_property_identifier(prop));
+ }
+ else if (RNA_struct_is_a(ptr->type, &RNA_Area)) {
+ /* data should be directly on here... */
+ const char *prop_id = RNA_property_identifier(prop);
+ /* Hack since keys access 'type', UI shows 'ui_type'. */
+ if (STREQ(prop_id, "ui_type")) {
+ prop_id = "type";
+ prop_enum_value >>= 16;
+ prop = RNA_struct_find_property(ptr, prop_id);
+
+ opnames = ctx_enum_opnames_for_Area_ui_type;
+ opnames_len = ARRAY_SIZE(ctx_enum_opnames_for_Area_ui_type);
+ prop_enum_value_id = "space_type";
+ prop_enum_value_is_int = true;
}
else {
- /* special exceptions for common nested data in editors... */
- if (RNA_struct_is_a(ptr->type, &RNA_DopeSheet)) {
- /* dopesheet filtering options... */
- data_path = BLI_sprintfN("space_data.dopesheet.%s", RNA_property_identifier(prop));
- }
- else if (RNA_struct_is_a(ptr->type, &RNA_FileSelectParams)) {
- /* Filebrowser options... */
- data_path = BLI_sprintfN("space_data.params.%s", RNA_property_identifier(prop));
- }
+ data_path = BLI_sprintfN("area.%s", prop_id);
}
}
- else if (GS(id->name) == ID_SCE) {
- if (RNA_struct_is_a(ptr->type, &RNA_ToolSettings)) {
- /* Tool-settings property:
- * NOTE: tool-settings is usually accessed directly (i.e. not through scene). */
- data_path = RNA_path_from_ID_to_property(ptr, prop);
+ else {
+ /* special exceptions for common nested data in editors... */
+ if (RNA_struct_is_a(ptr->type, &RNA_DopeSheet)) {
+ /* dopesheet filtering options... */
+ data_path = BLI_sprintfN("space_data.dopesheet.%s", RNA_property_identifier(prop));
}
- else {
- /* scene property */
- char *path = RNA_path_from_ID_to_property(ptr, prop);
+ else if (RNA_struct_is_a(ptr->type, &RNA_FileSelectParams)) {
+ /* Filebrowser options... */
+ data_path = BLI_sprintfN("space_data.params.%s", RNA_property_identifier(prop));
+ }
+ }
+ }
+ else if (GS(id->name) == ID_SCE) {
+ if (RNA_struct_is_a(ptr->type, &RNA_ToolSettings)) {
+ /* Tool-settings property:
+ * NOTE: tool-settings is usually accessed directly (i.e. not through scene). */
+ data_path = RNA_path_from_ID_to_property(ptr, prop);
+ }
+ else {
+ /* scene property */
+ char *path = RNA_path_from_ID_to_property(ptr, prop);
- if (path) {
- data_path = BLI_sprintfN("scene.%s", path);
- MEM_freeN(path);
- }
+ if (path) {
+ data_path = BLI_sprintfN("scene.%s", path);
+ MEM_freeN(path);
+ }
#if 0
else {
printf("ERROR in %s(): Couldn't get path for scene property - %s\n",
@@ -1398,69 +1404,68 @@ static bool ui_but_event_property_operator_string(const bContext *C,
RNA_property_identifier(prop));
}
#endif
- }
}
- else {
- // puts("other id");
- }
-
- // printf("prop shortcut: '%s' (%s)\n", RNA_property_identifier(prop), data_path);
- }
-
- /* we have a datapath! */
- if (data_path || (prop_enum_value_ok && prop_enum_value_id)) {
- /* create a property to host the "datapath" property we're sending to the operators */
- IDProperty *prop_path;
-
- const IDPropertyTemplate val = {0};
- prop_path = IDP_New(IDP_GROUP, &val, __func__);
- if (data_path) {
- IDP_AddToGroup(prop_path, IDP_NewString(data_path, "data_path", strlen(data_path) + 1));
- }
- if (prop_enum_value_ok) {
- const EnumPropertyItem *item;
- bool free;
- RNA_property_enum_items((bContext *)C, ptr, prop, &item, NULL, &free);
- const int index = RNA_enum_from_value(item, prop_enum_value);
- if (index != -1) {
- IDProperty *prop_value;
- if (prop_enum_value_is_int) {
- const int value = item[index].value;
- prop_value = IDP_New(IDP_INT,
- &(IDPropertyTemplate){
- .i = value,
- },
- prop_enum_value_id);
- }
- else {
- const char *id = item[index].identifier;
- prop_value = IDP_NewString(id, prop_enum_value_id, strlen(id) + 1);
- }
- IDP_AddToGroup(prop_path, prop_value);
+ }
+ else {
+ // puts("other id");
+ }
+
+ // printf("prop shortcut: '%s' (%s)\n", RNA_property_identifier(prop), data_path);
+ }
+
+ /* we have a datapath! */
+ if (data_path || (prop_enum_value_ok && prop_enum_value_id)) {
+ /* create a property to host the "datapath" property we're sending to the operators */
+ IDProperty *prop_path;
+
+ const IDPropertyTemplate val = {0};
+ prop_path = IDP_New(IDP_GROUP, &val, __func__);
+ if (data_path) {
+ IDP_AddToGroup(prop_path, IDP_NewString(data_path, "data_path", strlen(data_path) + 1));
+ }
+ if (prop_enum_value_ok) {
+ const EnumPropertyItem *item;
+ bool free;
+ RNA_property_enum_items((bContext *)C, ptr, prop, &item, NULL, &free);
+ const int index = RNA_enum_from_value(item, prop_enum_value);
+ if (index != -1) {
+ IDProperty *prop_value;
+ if (prop_enum_value_is_int) {
+ const int value = item[index].value;
+ prop_value = IDP_New(IDP_INT,
+ &(IDPropertyTemplate){
+ .i = value,
+ },
+ prop_enum_value_id);
}
else {
- opnames_len = 0; /* Do nothing. */
- }
- if (free) {
- MEM_freeN((void *)item);
+ const char *id = item[index].identifier;
+ prop_value = IDP_NewString(id, prop_enum_value_id, strlen(id) + 1);
}
+ IDP_AddToGroup(prop_path, prop_value);
}
+ else {
+ opnames_len = 0; /* Do nothing. */
+ }
+ if (free) {
+ MEM_freeN((void *)item);
+ }
+ }
- /* check each until one works... */
+ /* check each until one works... */
- for (int i = 0; (i < opnames_len) && (opnames[i]); i++) {
- if (WM_key_event_operator_string(
- C, opnames[i], WM_OP_INVOKE_REGION_WIN, prop_path, false, buf, buf_len)) {
- found = true;
- break;
- }
+ for (int i = 0; (i < opnames_len) && (opnames[i]); i++) {
+ if (WM_key_event_operator_string(
+ C, opnames[i], WM_OP_INVOKE_REGION_WIN, prop_path, false, buf, buf_len)) {
+ found = true;
+ break;
}
+ }
- /* cleanup */
- IDP_FreeProperty(prop_path);
- if (data_path) {
- MEM_freeN(data_path);
- }
+ /* cleanup */
+ IDP_FreeProperty(prop_path);
+ if (data_path) {
+ MEM_freeN(data_path);
}
}
@@ -2199,15 +2204,12 @@ void UI_block_lock_clear(uiBlock *block)
/* for buttons pointing to color for example */
void ui_but_v3_get(uiBut *but, float vec[3])
{
- PropertyRNA *prop;
- int a;
-
if (but->editvec) {
copy_v3_v3(vec, but->editvec);
}
if (but->rnaprop) {
- prop = but->rnaprop;
+ PropertyRNA *prop = but->rnaprop;
zero_v3(vec);
@@ -2219,7 +2221,7 @@ void ui_but_v3_get(uiBut *but, float vec[3])
}
else {
tot = min_ii(tot, 3);
- for (a = 0; a < tot; a++) {
+ for (int a = 0; a < tot; a++) {
vec[a] = RNA_property_float_get_index(&but->rnapoin, prop, a);
}
}
@@ -2602,17 +2604,19 @@ static double ui_get_but_scale_unit(uiBut *but, double value)
/* str will be overwritten */
void ui_but_convert_to_unit_alt_name(uiBut *but, char *str, size_t maxlen)
{
- if (ui_but_is_unit(but)) {
- UnitSettings *unit = but->block->unit;
- const int unit_type = UI_but_unit_type_get(but);
- char *orig_str;
+ if (!ui_but_is_unit(but)) {
+ return;
+ }
+
+ UnitSettings *unit = but->block->unit;
+ const int unit_type = UI_but_unit_type_get(but);
+ char *orig_str;
- orig_str = BLI_strdup(str);
+ orig_str = BLI_strdup(str);
- BKE_unit_name_to_alt(str, maxlen, orig_str, unit->system, RNA_SUBTYPE_UNIT_VALUE(unit_type));
+ BKE_unit_name_to_alt(str, maxlen, orig_str, unit->system, RNA_SUBTYPE_UNIT_VALUE(unit_type));
- MEM_freeN(orig_str);
- }
+ MEM_freeN(orig_str);
}
/**
@@ -2663,29 +2667,30 @@ static float ui_get_but_step_unit(uiBut *but, float step_default)
const double step = BKE_unit_closest_scalar(scale_step, but->block->unit->system, unit_type);
/* -1 is an error value */
- if (step != -1.0) {
- const double scale_unit = ui_get_but_scale_unit(but, 1.0);
- const double step_unit = BKE_unit_closest_scalar(
- scale_unit, but->block->unit->system, unit_type);
- double step_final;
-
- BLI_assert(step > 0.0);
-
- step_final = (step / scale_unit) / (double)UI_PRECISION_FLOAT_SCALE;
-
- if (step == step_unit) {
- /* Logic here is to scale by the original 'step_orig'
- * only when the unit step matches the scaled step.
- *
- * This is needed for units that don't have a wide range of scales (degrees for eg.).
- * Without this we can't select between a single degree, or a 10th of a degree.
- */
- step_final *= step_orig;
- }
+ if (step == -1.0f) {
+ return step_default;
+ }
+
+ const double scale_unit = ui_get_but_scale_unit(but, 1.0);
+ const double step_unit = BKE_unit_closest_scalar(
+ scale_unit, but->block->unit->system, unit_type);
+ double step_final;
+
+ BLI_assert(step > 0.0);
+
+ step_final = (step / scale_unit) / (double)UI_PRECISION_FLOAT_SCALE;
- return (float)step_final;
+ if (step == step_unit) {
+ /* Logic here is to scale by the original 'step_orig'
+ * only when the unit step matches the scaled step.
+ *
+ * This is needed for units that don't have a wide range of scales (degrees for eg.).
+ * Without this we can't select between a single degree, or a 10th of a degree.
+ */
+ step_final *= step_orig;
}
- return step_default;
+
+ return (float)step_final;
}
/**
@@ -3169,31 +3174,25 @@ static double soft_range_round_down(double value, double max)
void ui_but_range_set_hard(uiBut *but)
{
- if (but->rnaprop) {
- const PropertyType type = RNA_property_type(but->rnaprop);
- double hardmin, hardmax;
+ if (but->rnaprop == NULL) {
+ return;
+ }
- /* clamp button range to something reasonable in case
- * we get -inf/inf from RNA properties */
- if (type == PROP_INT) {
- int imin, imax;
+ const PropertyType type = RNA_property_type(but->rnaprop);
- RNA_property_int_range(&but->rnapoin, but->rnaprop, &imin, &imax);
- hardmin = (imin == INT_MIN) ? -1e4 : imin;
- hardmax = (imin == INT_MAX) ? 1e4 : imax;
- }
- else if (type == PROP_FLOAT) {
- float fmin, fmax;
-
- RNA_property_float_range(&but->rnapoin, but->rnaprop, &fmin, &fmax);
- hardmin = (fmin == -FLT_MAX) ? (float)-1e4 : fmin;
- hardmax = (fmax == FLT_MAX) ? (float)1e4 : fmax;
- }
- else {
- return;
- }
- but->hardmin = hardmin;
- but->hardmax = hardmax;
+ /* clamp button range to something reasonable in case
+ * we get -inf/inf from RNA properties */
+ if (type == PROP_INT) {
+ int imin, imax;
+ RNA_property_int_range(&but->rnapoin, but->rnaprop, &imin, &imax);
+ but->hardmin = (imin == INT_MIN) ? -1e4 : imin;
+ but->hardmax = (imin == INT_MAX) ? 1e4 : imax;
+ }
+ else if (type == PROP_FLOAT) {
+ float fmin, fmax;
+ RNA_property_float_range(&but->rnapoin, but->rnaprop, &fmin, &fmax);
+ but->hardmin = (fmin == -FLT_MAX) ? (float)-1e4 : fmin;
+ but->hardmax = (fmax == FLT_MAX) ? (float)1e4 : fmax;
}
}