ui: the events list is a slide-over page; the left pane, its divider and the header toggle are gone
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
cb098eff75
commit
8c866300d8
12 files changed
+244
-350
No files matched your search
+9
-4
@@ -11,7 +11,7 @@
|
||||
//
|
||||
// Below them, the Events block: one compact row per cached event (marker, title, time; no thumbnails),
|
||||
// a Manage button for the full list, and one click on a row to replay it. Its rows are built from the
|
||||
// same `event_store->list()` and the same `event_row_title()` as the events pane, so the two cannot
|
||||
// same `event_store->list()` and the same `event_row_title()` as the events page, so the two cannot
|
||||
// disagree.
|
||||
|
||||
#include "ui_app.hpp"
|
||||
@@ -249,11 +249,16 @@ const char* dock_event_marker(const App& app, const EventRecord& r) {
|
||||
return " ";
|
||||
}
|
||||
|
||||
/// Opens the `events` page. The page's list is rebuilt only while the page is open (see `record_event()`),
|
||||
/// so it is refreshed here, once, before the page shows: the slide-over has no on-open hook, and the list
|
||||
/// is small. The button is not a child of either list, so the rebuild cannot free the widget it runs from.
|
||||
void on_manage_events(GtkButton*, gpointer user) {
|
||||
slideover_open(*static_cast<App*>(user), "events");
|
||||
App& app = *static_cast<App*>(user);
|
||||
refresh_events_pane(app);
|
||||
slideover_open(app, "events");
|
||||
}
|
||||
|
||||
/// One click on a row replays it, as the pane's activation does: `replay_event()` and then the in-place
|
||||
/// One click on a row replays it, as the page list's activation does: `replay_event()` and then the in-place
|
||||
/// re-mark. The record is copied first, because nothing it triggers may be allowed to free the row it
|
||||
/// was read from.
|
||||
///
|
||||
@@ -394,7 +399,7 @@ void dock_rebuild_events(App& app, const std::vector<EventRecord>& records) {
|
||||
gtk_widget_set_hexpand(name, true);
|
||||
gtk_widget_set_tooltip_text(name, text.c_str());
|
||||
gtk_box_append(GTK_BOX(line), name);
|
||||
// The latch's sequence number, as the pane's third line ends with it: the title already carries the
|
||||
// The latch's sequence number, as the page row's third line ends with it: the title already carries the
|
||||
// clock, so this is the part of the row that is not in it.
|
||||
const std::string seq = "#" + std::to_string(r.seq);
|
||||
GtkWidget* num = fixed_label(seq.c_str(), kEventSeqChars, GTK_ALIGN_END);
|
||||
|
||||
Reference in new issue
Block a user