Make it so that the bookmarks button replaces the content of the first tab
This commit is contained in:
138
main.go
138
main.go
@@ -37,7 +37,7 @@ import (
|
||||
// TODO: integrated theme switcher
|
||||
)
|
||||
|
||||
var version string = "3i"
|
||||
var version string = "3.1i"
|
||||
var statBar widget.Label
|
||||
var chatInfo fyne.Container
|
||||
var chatSidebar fyne.Container
|
||||
@@ -402,9 +402,7 @@ func dropToSignInPage(reason string) {
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
||||
muc.Since(time.Now())
|
||||
|
||||
config = piConfig{}
|
||||
a = app.NewWithID("pi-im")
|
||||
reader, err := a.Storage().Open("pi.xml")
|
||||
@@ -648,6 +646,7 @@ func main() {
|
||||
}
|
||||
if bookmark.Autojoin {
|
||||
if bookmark.Nick == "" {
|
||||
fmt.Println("WARNING: Bookmark has no name")
|
||||
bookmark.Nick = client.Login.DisplayName
|
||||
}
|
||||
addChatTab(true, bookmark.JID, client.Login.DisplayName)
|
||||
@@ -971,15 +970,31 @@ func main() {
|
||||
manageBookmarks := fyne.NewMenuItem("manage bookmarks", func() {
|
||||
bookmarks := client.BookmarkCache()
|
||||
box := container.NewVBox()
|
||||
box.Add(widget.NewRichTextFromMarkdown("# Manage Bookmarks"))
|
||||
for address, bookmark := range bookmarks {
|
||||
bookmarkWidget := container.NewGridWithColumns(4)
|
||||
bookmarkWidget.Add(widget.NewLabel(address))
|
||||
bookmarkWidget := container.NewGridWithColumns(5)
|
||||
|
||||
nameLabel := widget.NewLabel(bookmark.Name)
|
||||
nameLabel.Wrapping = fyne.TextWrapBreak
|
||||
|
||||
bookmarkWidget.Add(nameLabel)
|
||||
bookmarkJidWidget := widget.NewLabel(address)
|
||||
bookmarkJidWidget.TextStyle.Monospace = true
|
||||
bookmarkJidWidget.Selectable = true
|
||||
bookmarkJidWidget.Wrapping = fyne.TextWrapWord
|
||||
|
||||
|
||||
|
||||
bookmarkWidget.Add(bookmarkJidWidget)
|
||||
var autojoinCheck *widget.Check
|
||||
var deleteBookmarkButton *widget.Button
|
||||
var joinRoomButton *widget.Button
|
||||
joinRoomButton = widget.NewButtonWithIcon("Join", theme.AccountIcon(), func() {
|
||||
fyne.Do(func() { joinRoomButton.Disable() })
|
||||
go func() {
|
||||
if bookmark.Nick == "" {
|
||||
bookmark.Nick = client.Login.DisplayName
|
||||
}
|
||||
var zero uint64 = uint64(0)
|
||||
addChatTab(true, bookmark.JID, bookmark.Nick)
|
||||
_, err := client.ConnectMuc(bookmark, oasisSdk.MucLegacyHistoryConfig{MaxCount: &zero}, context.TODO())
|
||||
@@ -1032,10 +1047,14 @@ func main() {
|
||||
bookmarkWidget.Add(joinRoomButton)
|
||||
|
||||
box.Add(bookmarkWidget)
|
||||
fmt.Println(address, bookmark)
|
||||
}
|
||||
d := dialog.NewCustom("manage bookmarks", "cancel", box, w)
|
||||
d.Show()
|
||||
myScroller := container.NewScroll(box)
|
||||
myScroller.Resize(fyne.NewSize(500,500))
|
||||
AppTabs.Items[0].Content = myScroller
|
||||
AppTabs.Items[0].Text = "Bookmarks"
|
||||
AppTabs.SelectIndex(0)
|
||||
//d := dialog.NewCustom("manage bookmarks", "cancel", myScroller, w)
|
||||
//d.Show()
|
||||
|
||||
})
|
||||
|
||||
@@ -1101,67 +1120,6 @@ func main() {
|
||||
|
||||
})
|
||||
|
||||
/*
|
||||
servDisc := fyne.NewMenuItem("Disco features", func() {
|
||||
//var search jid.JID
|
||||
dialog.ShowEntryDialog("Disco features", "JID: ", func(s string) { // TODO: replace with undeprecated widgetd
|
||||
d := dialog.NewCustom("Please wait", "Close", widget.NewLabel("..."), w)
|
||||
d.Show()
|
||||
go func() {
|
||||
//search, err = jid.Parse(s)
|
||||
//if err != nil {
|
||||
// d.Hide()
|
||||
// dialog.ShowError(err, w)
|
||||
// return
|
||||
//}
|
||||
txt := `<iq from='ringen@muc.isekai.rocks/sunglocto'
|
||||
to='ringen@muc.iskai.rocks/snit'
|
||||
type='get'
|
||||
id='vc2'>
|
||||
<vCard xmlns='vcard-temp'/>
|
||||
</iq>`
|
||||
var stan stanza.IQ
|
||||
xml.Unmarshal([]byte(txt), &stan)
|
||||
if err != nil {
|
||||
d.Hide()
|
||||
dialog.ShowError(err, w)
|
||||
return
|
||||
}
|
||||
r, err := client.Session.EncodeIQ(client.Ctx, stan)
|
||||
if err != nil {
|
||||
d.Hide()
|
||||
dialog.ShowError(err, w)
|
||||
return
|
||||
}
|
||||
ra, _ := r.Token()
|
||||
t, _ := xml.MarshalIndent(ra, "", "\t")
|
||||
fmt.Println(string(t))
|
||||
d.Hide()
|
||||
/*
|
||||
|
||||
myBox := container.NewGridWithColumns(1, widget.NewLabel("Items"))
|
||||
info, err := disco.GetInfo(client.Ctx, "", search, client.Session)
|
||||
if err != nil {
|
||||
d.Hide()
|
||||
dialog.ShowError(err, w)
|
||||
return
|
||||
}
|
||||
m := info.Identity
|
||||
bytes, err := xml.MarshalIndent(m, "", "\t")
|
||||
if err != nil {
|
||||
d.Hide()
|
||||
dialog.ShowError(err, w)
|
||||
return
|
||||
}
|
||||
fyne.Do(func() {d.Hide()})
|
||||
myBox.Objects = append(myBox.Objects, widget.NewLabel(string(bytes)))
|
||||
dialog.ShowCustom("Service discovery", "cancel", myBox, w)
|
||||
}()
|
||||
|
||||
}, w)
|
||||
})
|
||||
*/
|
||||
|
||||
savedata := fyne.NewMenuItem("DEBUG: Save tab data to disk", func() {
|
||||
d := []ChatTab{}
|
||||
for _, v := range chatTabs {
|
||||
@@ -1176,31 +1134,6 @@ func main() {
|
||||
os.WriteFile("text.xml", b, os.ModeAppend)
|
||||
})
|
||||
|
||||
/*jbookmarks := fyne.NewMenuItem("Join rooms in bookmarks", func() {
|
||||
// FIXME: Race condition
|
||||
client.FetchBookmarks()
|
||||
rooms := client.BookmarkCache()
|
||||
for _, v := range rooms {
|
||||
go func() {
|
||||
if v.Autojoin == true {
|
||||
joinjid, err := v.JID.WithResource(login.DisplayName)
|
||||
if err != nil {
|
||||
dialog.ShowError(err, w)
|
||||
return
|
||||
}
|
||||
room, err := client.MucClient.Join(client.Ctx, joinjid, client.Session)
|
||||
if err != nil {
|
||||
dialog.ShowError(err, w)
|
||||
return
|
||||
}
|
||||
client.MucChannels[v.JID.String()] = room
|
||||
addChatTab(true, v.JID, login.DisplayName)
|
||||
}
|
||||
}()
|
||||
}
|
||||
})
|
||||
*/
|
||||
|
||||
menu_help := fyne.NewMenu("π", mit, reconnect, licensesbtn, savedata)
|
||||
|
||||
menu_changeroom := fyne.NewMenu("Α", mic, beginADM, joinARoom, leaveRoom, manageBookmarks)
|
||||
@@ -1387,19 +1320,14 @@ func main() {
|
||||
}
|
||||
|
||||
AppTabs = container.NewAppTabs(
|
||||
container.NewTabItem("τίποτα", widget.NewLabel(`
|
||||
container.NewTabItem("...", widget.NewLabel(`
|
||||
pi
|
||||
|
||||
This tab will be used for displaying certain actions, such as
|
||||
managing your bookmarks configuring rooms.
|
||||
`)),
|
||||
)
|
||||
|
||||
/*
|
||||
for _, mucJidStr := range login.MucsToJoin {
|
||||
mucJid, err := jid.Parse(mucJidStr)
|
||||
if err == nil {
|
||||
addChatTab(true, mucJid, login.DisplayName)
|
||||
}
|
||||
}*/
|
||||
|
||||
for _, userJidStr := range DMs {
|
||||
fmt.Println(userJidStr)
|
||||
DMjid, err := jid.Parse(userJidStr)
|
||||
@@ -1457,7 +1385,9 @@ func main() {
|
||||
imageWidget := canvas.NewImageFromImage(im)
|
||||
imageWidget.FillMode = canvas.ImageFillOriginal
|
||||
imageWidget.Refresh()
|
||||
box.Add(container.NewGridWithColumns(3, imageWidget, widget.NewLabel(nickname), widget.NewButton("Mention", mention)))
|
||||
nickLabel := widget.NewLabel(nickname)
|
||||
nickLabel.Selectable = true
|
||||
box.Add(container.NewHBox(imageWidget, nickLabel))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user