mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-05 13:28:40 +00:00
eliminate old pending entity code; do not build missing entity interface if data is actually present (but frontend cache still suggests missing)
This commit is contained in:
+3
-65
@@ -5356,24 +5356,6 @@ DF_VIEW_CMD_FUNCTION_DEF(PendingEntity)
|
|||||||
{
|
{
|
||||||
default:break;
|
default:break;
|
||||||
|
|
||||||
// rjf: pick file
|
|
||||||
case DF_CoreCmdKind_PickFile:
|
|
||||||
{
|
|
||||||
DF_Entity *missing_file = df_entity_from_handle(pves->pick_file_override_target);
|
|
||||||
String8 pick_string = cmd->params.file_path;
|
|
||||||
if(!df_entity_is_nil(missing_file) && pick_string.size != 0)
|
|
||||||
{
|
|
||||||
DF_Entity *replacement = df_entity_from_path(pick_string, DF_EntityFromPathFlag_OpenAsNeeded|DF_EntityFromPathFlag_OpenMissing);
|
|
||||||
view->entity = df_handle_from_entity(replacement);
|
|
||||||
DF_CmdParams p = df_cmd_params_from_view(ws, panel, view);
|
|
||||||
p.entity = df_handle_from_entity(missing_file);
|
|
||||||
p.file_path = pick_string;
|
|
||||||
df_cmd_params_mark_slot(&p, DF_CmdParamSlot_Entity);
|
|
||||||
df_cmd_params_mark_slot(&p, DF_CmdParamSlot_FilePath);
|
|
||||||
df_push_cmd__root(&p, df_cmd_spec_from_core_cmd_kind(DF_CoreCmdKind_SetFileReplacementPath));
|
|
||||||
}
|
|
||||||
}break;
|
|
||||||
|
|
||||||
// rjf: gather deferred commands to redispatch when entity is ready
|
// rjf: gather deferred commands to redispatch when entity is ready
|
||||||
case DF_CoreCmdKind_GoToLine:
|
case DF_CoreCmdKind_GoToLine:
|
||||||
case DF_CoreCmdKind_GoToAddress:
|
case DF_CoreCmdKind_GoToAddress:
|
||||||
@@ -5442,52 +5424,8 @@ DF_VIEW_CMD_FUNCTION_DEF(PendingEntity)
|
|||||||
|
|
||||||
DF_VIEW_UI_FUNCTION_DEF(PendingEntity)
|
DF_VIEW_UI_FUNCTION_DEF(PendingEntity)
|
||||||
{
|
{
|
||||||
// rjf: grab state
|
view->loading_t = view->loading_t_target = 1.f;
|
||||||
DF_PendingEntityViewState *pves = df_view_user_state(view, DF_PendingEntityViewState);
|
df_gfx_request_frame();
|
||||||
DF_Entity *entity = df_entity_from_handle(view->entity);
|
|
||||||
|
|
||||||
// rjf: entity is missing -> notify user
|
|
||||||
if(entity->flags & DF_EntityFlag_IsMissing)
|
|
||||||
{
|
|
||||||
UI_WidthFill UI_HeightFill UI_Column UI_Padding(ui_pct(1, 0))
|
|
||||||
{
|
|
||||||
Temp scratch = scratch_begin(0, 0);
|
|
||||||
String8 full_path = df_full_path_from_entity(scratch.arena, entity);
|
|
||||||
UI_PrefWidth(ui_children_sum(1)) UI_PrefHeight(ui_em(3, 1))
|
|
||||||
UI_Row UI_Padding(ui_pct(1, 0))
|
|
||||||
UI_PrefWidth(ui_text_dim(10, 1))
|
|
||||||
UI_TextColor(df_rgba_from_theme_color(DF_ThemeColor_FailureBackground))
|
|
||||||
{
|
|
||||||
UI_Font(ui_icon_font()) ui_label(df_g_icon_kind_text_table[DF_IconKind_WarningBig]);
|
|
||||||
ui_labelf("Could not find \"%S\".", full_path);
|
|
||||||
}
|
|
||||||
UI_PrefHeight(ui_em(3, 1))
|
|
||||||
UI_Row UI_Padding(ui_pct(1, 0))
|
|
||||||
UI_PrefWidth(ui_text_dim(10, 1))
|
|
||||||
UI_TextColor(df_rgba_from_theme_color(DF_ThemeColor_ActionText))
|
|
||||||
UI_BackgroundColor(df_rgba_from_theme_color(DF_ThemeColor_ActionBackground))
|
|
||||||
UI_BorderColor(df_rgba_from_theme_color(DF_ThemeColor_ActionBorder))
|
|
||||||
UI_CornerRadius(ui_top_font_size()/3)
|
|
||||||
UI_PrefWidth(ui_text_dim(10, 1))
|
|
||||||
UI_Focus(UI_FocusKind_On)
|
|
||||||
if(ui_clicked(ui_buttonf("Find alternative...")))
|
|
||||||
{
|
|
||||||
DF_CmdParams params = df_cmd_params_from_view(ws, panel, view);
|
|
||||||
params.cmd_spec = df_cmd_spec_from_core_cmd_kind(DF_CoreCmdKind_PickFile);
|
|
||||||
df_cmd_params_mark_slot(¶ms, DF_CmdParamSlot_CmdSpec);
|
|
||||||
df_push_cmd__root(¶ms, df_cmd_spec_from_core_cmd_kind(DF_CoreCmdKind_RunCommand));
|
|
||||||
pves->pick_file_override_target = df_handle_from_entity(entity);
|
|
||||||
}
|
|
||||||
scratch_end(scratch);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// rjf: entity is still loading -> loading animation
|
|
||||||
else
|
|
||||||
{
|
|
||||||
view->loading_t = view->loading_t_target = 1.f;
|
|
||||||
df_gfx_request_frame();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
@@ -5950,7 +5888,7 @@ DF_VIEW_UI_FUNCTION_DEF(Code)
|
|||||||
//////////////////////////////
|
//////////////////////////////
|
||||||
//- rjf: build missing & override interface
|
//- rjf: build missing & override interface
|
||||||
//
|
//
|
||||||
if(entity_is_missing)
|
if(entity_is_missing && !text_info_is_ready)
|
||||||
{
|
{
|
||||||
UI_WidthFill UI_HeightFill UI_Column UI_Padding(ui_pct(1, 0))
|
UI_WidthFill UI_HeightFill UI_Column UI_Padding(ui_pct(1, 0))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -101,7 +101,6 @@ struct DF_PendingEntityViewState
|
|||||||
{
|
{
|
||||||
Arena *deferred_cmd_arena;
|
Arena *deferred_cmd_arena;
|
||||||
DF_CmdList deferred_cmds;
|
DF_CmdList deferred_cmds;
|
||||||
DF_Handle pick_file_override_target;
|
|
||||||
Arena *complete_cfg_arena;
|
Arena *complete_cfg_arena;
|
||||||
DF_CfgNode *complete_cfg_root;
|
DF_CfgNode *complete_cfg_root;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user