Begin seperation of XMPP and UI

This commit is contained in:
2025-08-07 21:53:28 +01:00
parent 3d6f835d4f
commit 150f42bc58

31
main.go
View File

@@ -8,6 +8,7 @@ import (
"io" "io"
"log" "log"
"net/url" "net/url"
"os"
"strings" "strings"
"time" "time"
@@ -51,16 +52,16 @@ type Message struct {
Important bool Important bool
} }
type MucTab struct { type ChatTab struct {
Jid jid.JID Jid jid.JID
Nick string Nick string
Messages []Message Messages []Message
Scroller *widget.List Scroller *widget.List `xml:"-"`
isMuc bool isMuc bool
Muc *muc.Channel Muc *muc.Channel `xml:"-"`
Sidebar *fyne.Container Sidebar *fyne.Container `xml:"-"`
UpdateSidebar bool UpdateSidebar bool
SidebarUpdateMethod func(client oasisSdk.XmppClient) SidebarUpdateMethod func(client oasisSdk.XmppClient) `xml:"-"`
} }
type piConfig struct { type piConfig struct {
@@ -73,7 +74,7 @@ var config piConfig
var login oasisSdk.LoginInfo var login oasisSdk.LoginInfo
var DMs []string var DMs []string
var chatTabs = make(map[string]*MucTab) var chatTabs = make(map[string]*ChatTab)
var tabs *container.AppTabs var tabs *container.AppTabs
var selectedId widget.ListItemID var selectedId widget.ListItemID
var replying bool = false var replying bool = false
@@ -112,7 +113,7 @@ func addChatTab(isMuc bool, chatJid jid.JID, nick string) {
return return
} }
tabData := &MucTab{ tabData := &ChatTab{
Jid: chatJid, Jid: chatJid,
Nick: nick, Nick: nick,
Messages: []Message{}, Messages: []Message{},
@@ -781,7 +782,21 @@ func main() {
chatTabs[activeMucJid].UpdateSidebar = true chatTabs[activeMucJid].UpdateSidebar = true
go chatTabs[activeMucJid].SidebarUpdateMethod(*client) go chatTabs[activeMucJid].SidebarUpdateMethod(*client)
}) })
menu_help := fyne.NewMenu("π", mit, reconnect, rel)
savedata := fyne.NewMenuItem("DEBUG: Save tab data to disk", func() {
d := []ChatTab{}
for _, v := range chatTabs {
d = append(d, *v)
}
b, err := xml.Marshal(d)
if err != nil {
dialog.ShowError(err, w)
return
}
os.Create("test.xml")
os.WriteFile("text.xml", b, os.ModeAppend)
})
menu_help := fyne.NewMenu("π", mit, reconnect, rel, savedata)
menu_changeroom := fyne.NewMenu("β", mic, servDisc) menu_changeroom := fyne.NewMenu("β", mic, servDisc)
menu_configureview := fyne.NewMenu("γ", mia, mis, jtt, jtb) menu_configureview := fyne.NewMenu("γ", mia, mis, jtt, jtb)
hafjag := fyne.NewMenuItem("Hafjag", func() { hafjag := fyne.NewMenuItem("Hafjag", func() {