diff options
Diffstat (limited to 'windowChats.go')
| -rw-r--r-- | windowChats.go | 66 |
1 files changed, 57 insertions, 9 deletions
diff --git a/windowChats.go b/windowChats.go index d92b4ce..39906b7 100644 --- a/windowChats.go +++ b/windowChats.go @@ -3,9 +3,8 @@ package main -// An app to submit patches for the 30 GO GUI repos - import ( + "fmt" "time" "go.wit.com/lib/gadgets" @@ -42,7 +41,18 @@ func makeChatsWindow() *gadgets.GenericWindow { grid := insertWin.Group.RawGrid() var t *chatpb.ChatsTable - grid.NewButton("dirty", func() { + grid.NewButton("show", func() { + if t != nil { + log.Info("Delete the table first") + return + } + // display the protobuf + t = addChatsPB(insertWin, me.chats) + f := func(chat *chatpb.Chat) { + log.Info("got to ChatTable.Custom() id =", chat.GetUuid(), chat.GetChatName()) + } + t.Custom(f) + log.Info("table has uuid", t.GetUuid()) }) grid.NewButton("delete PB table", func() { @@ -69,21 +79,59 @@ func addChatsPB(win *gadgets.GenericWindow, pb *chatpb.Chats) *chatpb.ChatsTable tbox := win.Bottom.Box().SetProgName("TBOX") t.SetParent(tbox) - sf := t.AddStringFunc("chat", func(r *chatpb.Chat) string { + sf := t.AddStringFunc("uuid", func(r *chatpb.Chat) string { return r.GetUuid() }) sf.Custom = func(r *chatpb.Chat) { - log.Info("do button click on", r.GetUuid()) + log.Info("todo: fix mouseClick() on stringFunc in GUI table", r.GetUuid()) } + + // add a general show button + bf := t.AddButtonFunc("cur version", func(chat *chatpb.Chat) string { return "show" }) + bf.Custom = func(r *chatpb.Chat) { + log.Info("todo: show a chat window here", r.GetUuid()) + } + + // show the age of the chat t.AddTimeFunc("age", func(chat *chatpb.Chat) time.Time { return chat.GetCtime().AsTime() }) t.AddChatName() - f := func(repo *chatpb.Chat) string { - log.Info("chat =", repo.GetUuid(), repo.GetChatName()) - return repo.GetUuid() + + // make a button to show the ChatEntries + entryButton := t.AddButtonFunc("Entries", func(chat *chatpb.Chat) string { + return fmt.Sprintf("%d", len(chat.GetEntries())) + }) + entryButton.Custom = func(chat *chatpb.Chat) { + log.Info("show entries for", chat.GetUuid()) + chat.PrintChatEntriesTable() } - t.AddButtonFunc("cur version", f) + + // make a button to show the Stats (old stuff from gemini-cli) + statsButton := t.AddButtonFunc("Stats", func(chat *chatpb.Chat) string { + return fmt.Sprintf("%d", len(chat.GetSession())) + }) + statsButton.Custom = func(chat *chatpb.Chat) { + log.Info("show gemini-cli /stats for", chat.GetUuid()) + chat.PrintChatStatsTable() + } + + // make a button to show content in the *genai.GeminiRequest structures + genaiButton := t.AddButtonFunc("# of genai.Req's", func(chat *chatpb.Chat) string { + var counter int + for _, entry := range chat.GetEntries() { + if entry.GeminiRequest != nil { + counter += 1 + } + } + return fmt.Sprintf("%d", counter) + }) + genaiButton.Custom = func(chat *chatpb.Chat) { + log.Info("show *genai.GeminiRequsts for", chat.GetUuid()) + chat.PrintChatGeminiTable() + } + + // draw the tabel (send the gui protobuf to the GO plugin) t.ShowTable() return t } |
