Fix file selection alignment bug, add refresh buttons, polish UI

Replace fragile index-based file selection with direct pointer binding
via g_object_set_data on listbox rows in both UnitsView and ShellsView.
Add Refresh buttons to all three tabs (Units, Shells, Plans). Add status
bar notifications for shell and plan file loads. Wrap control panels in
labeled GtkFrame containers across all tabs. Improve config tab layout
with better typography, spacing, width constraint, and resolved path
status indicators.
This commit is contained in:
Chris Punches
2026-03-14 17:58:36 -04:00
parent 73960149fd
commit 85ad809887
7 changed files with 300 additions and 183 deletions

View File

@@ -47,7 +47,7 @@ private:
GtkWidget* entry_exec_arg_;
GtkWidget* entry_source_cmd_;
int current_file_idx_ = -1;
ShellsFile* selected_file_ = nullptr;
int current_shell_idx_ = -1;
bool loading_ = false;
bool file_dirty_ = false;
@@ -57,6 +57,7 @@ private:
void load_shell(int idx);
void clear_editor();
void mark_file_dirty();
GtkListBoxRow* find_file_row(ShellsFile* sf);
static void on_file_selected(GtkListBox* box, GtkListBoxRow* row, gpointer data);
static void on_new_file(GtkButton* btn, gpointer data);