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
|
// TODO: integrated theme switcher
|
||||||
)
|
)
|
||||||
|
|
||||||
var version string = "3i"
|
var version string = "3.1i"
|
||||||
var statBar widget.Label
|
var statBar widget.Label
|
||||||
var chatInfo fyne.Container
|
var chatInfo fyne.Container
|
||||||
var chatSidebar fyne.Container
|
var chatSidebar fyne.Container
|
||||||
@@ -402,9 +402,7 @@ func dropToSignInPage(reason string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
||||||
muc.Since(time.Now())
|
muc.Since(time.Now())
|
||||||
|
|
||||||
config = piConfig{}
|
config = piConfig{}
|
||||||
a = app.NewWithID("pi-im")
|
a = app.NewWithID("pi-im")
|
||||||
reader, err := a.Storage().Open("pi.xml")
|
reader, err := a.Storage().Open("pi.xml")
|
||||||
@@ -648,6 +646,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
if bookmark.Autojoin {
|
if bookmark.Autojoin {
|
||||||
if bookmark.Nick == "" {
|
if bookmark.Nick == "" {
|
||||||
|
fmt.Println("WARNING: Bookmark has no name")
|
||||||
bookmark.Nick = client.Login.DisplayName
|
bookmark.Nick = client.Login.DisplayName
|
||||||
}
|
}
|
||||||
addChatTab(true, bookmark.JID, client.Login.DisplayName)
|
addChatTab(true, bookmark.JID, client.Login.DisplayName)
|
||||||
@@ -971,15 +970,31 @@ func main() {
|
|||||||
manageBookmarks := fyne.NewMenuItem("manage bookmarks", func() {
|
manageBookmarks := fyne.NewMenuItem("manage bookmarks", func() {
|
||||||
bookmarks := client.BookmarkCache()
|
bookmarks := client.BookmarkCache()
|
||||||
box := container.NewVBox()
|
box := container.NewVBox()
|
||||||
|
box.Add(widget.NewRichTextFromMarkdown("# Manage Bookmarks"))
|
||||||
for address, bookmark := range bookmarks {
|
for address, bookmark := range bookmarks {
|
||||||
bookmarkWidget := container.NewGridWithColumns(4)
|
bookmarkWidget := container.NewGridWithColumns(5)
|
||||||
bookmarkWidget.Add(widget.NewLabel(address))
|
|
||||||
|
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 autojoinCheck *widget.Check
|
||||||
var deleteBookmarkButton *widget.Button
|
var deleteBookmarkButton *widget.Button
|
||||||
var joinRoomButton *widget.Button
|
var joinRoomButton *widget.Button
|
||||||
joinRoomButton = widget.NewButtonWithIcon("Join", theme.AccountIcon(), func() {
|
joinRoomButton = widget.NewButtonWithIcon("Join", theme.AccountIcon(), func() {
|
||||||
fyne.Do(func() { joinRoomButton.Disable() })
|
fyne.Do(func() { joinRoomButton.Disable() })
|
||||||
go func() {
|
go func() {
|
||||||
|
if bookmark.Nick == "" {
|
||||||
|
bookmark.Nick = client.Login.DisplayName
|
||||||
|
}
|
||||||
var zero uint64 = uint64(0)
|
var zero uint64 = uint64(0)
|
||||||
addChatTab(true, bookmark.JID, bookmark.Nick)
|
addChatTab(true, bookmark.JID, bookmark.Nick)
|
||||||
_, err := client.ConnectMuc(bookmark, oasisSdk.MucLegacyHistoryConfig{MaxCount: &zero}, context.TODO())
|
_, err := client.ConnectMuc(bookmark, oasisSdk.MucLegacyHistoryConfig{MaxCount: &zero}, context.TODO())
|
||||||
@@ -1032,10 +1047,14 @@ func main() {
|
|||||||
bookmarkWidget.Add(joinRoomButton)
|
bookmarkWidget.Add(joinRoomButton)
|
||||||
|
|
||||||
box.Add(bookmarkWidget)
|
box.Add(bookmarkWidget)
|
||||||
fmt.Println(address, bookmark)
|
|
||||||
}
|
}
|
||||||
d := dialog.NewCustom("manage bookmarks", "cancel", box, w)
|
myScroller := container.NewScroll(box)
|
||||||
d.Show()
|
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() {
|
savedata := fyne.NewMenuItem("DEBUG: Save tab data to disk", func() {
|
||||||
d := []ChatTab{}
|
d := []ChatTab{}
|
||||||
for _, v := range chatTabs {
|
for _, v := range chatTabs {
|
||||||
@@ -1176,31 +1134,6 @@ func main() {
|
|||||||
os.WriteFile("text.xml", b, os.ModeAppend)
|
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_help := fyne.NewMenu("π", mit, reconnect, licensesbtn, savedata)
|
||||||
|
|
||||||
menu_changeroom := fyne.NewMenu("Α", mic, beginADM, joinARoom, leaveRoom, manageBookmarks)
|
menu_changeroom := fyne.NewMenu("Α", mic, beginADM, joinARoom, leaveRoom, manageBookmarks)
|
||||||
@@ -1387,19 +1320,14 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
AppTabs = container.NewAppTabs(
|
AppTabs = container.NewAppTabs(
|
||||||
container.NewTabItem("τίποτα", widget.NewLabel(`
|
container.NewTabItem("...", widget.NewLabel(`
|
||||||
pi
|
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 {
|
for _, userJidStr := range DMs {
|
||||||
fmt.Println(userJidStr)
|
fmt.Println(userJidStr)
|
||||||
DMjid, err := jid.Parse(userJidStr)
|
DMjid, err := jid.Parse(userJidStr)
|
||||||
@@ -1457,7 +1385,9 @@ func main() {
|
|||||||
imageWidget := canvas.NewImageFromImage(im)
|
imageWidget := canvas.NewImageFromImage(im)
|
||||||
imageWidget.FillMode = canvas.ImageFillOriginal
|
imageWidget.FillMode = canvas.ImageFillOriginal
|
||||||
imageWidget.Refresh()
|
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