Add hat icon, change some CSS and remove all reply support
This commit is contained in:
@@ -6,8 +6,8 @@ import (
|
||||
"context"
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"github.com/diamondburned/gotk4/pkg/gtk/v4"
|
||||
"github.com/diamondburned/gotk4/pkg/gdk/v4"
|
||||
"github.com/diamondburned/gotk4/pkg/gtk/v4"
|
||||
"github.com/google/uuid"
|
||||
"github.com/jacoblockett/sanitizefilename"
|
||||
"github.com/jasonlovesdoggo/gopen"
|
||||
@@ -54,9 +54,9 @@ func generateMessageWidget(p stanza.Packet) gtk.Widgetter {
|
||||
return b
|
||||
}
|
||||
|
||||
indicator := stanza.StateComposing{}
|
||||
ok = m.Get(&indicator)
|
||||
if ok { // TODO: Display typing indicator in a stat bar or something similar
|
||||
composing := stanza.StateComposing{}
|
||||
ok = m.Get(&composing)
|
||||
if ok {
|
||||
b := gtk.NewBox(gtk.OrientationHorizontal, 0)
|
||||
b.Append(gtk.NewLabel(fmt.Sprintf("%s is typing...", JidMustParse(m.From).Resource)))
|
||||
return b
|
||||
@@ -72,7 +72,6 @@ func generateMessageWidget(p stanza.Packet) gtk.Widgetter {
|
||||
return error_box
|
||||
}
|
||||
|
||||
|
||||
sid := StanzaID{}
|
||||
m.Get(&sid)
|
||||
|
||||
@@ -80,7 +79,6 @@ func generateMessageWidget(p stanza.Packet) gtk.Widgetter {
|
||||
gesture := gtk.NewGestureClick()
|
||||
gesture.SetButton(3) // Right click
|
||||
|
||||
|
||||
popover := gtk.NewPopover()
|
||||
popover.SetParent(mainBox)
|
||||
popover.SetHasArrow(false)
|
||||
@@ -94,7 +92,7 @@ func generateMessageWidget(p stanza.Packet) gtk.Widgetter {
|
||||
like.SetLabel(v)
|
||||
like.SetHExpand(true)
|
||||
like.ConnectClicked(func() {
|
||||
fmt.Println("licked") // TODO: Implement proper support for reactions via extension
|
||||
fmt.Println("licked") // TODO: Implement proper support for reactions via extension
|
||||
client.SendRaw(fmt.Sprintf(`
|
||||
<message from='%s' to='%s' id='%s' type='%s'>
|
||||
<reactions id='%s' xmlns='urn:xmpp:reactions:0'>
|
||||
@@ -109,9 +107,9 @@ func generateMessageWidget(p stanza.Packet) gtk.Widgetter {
|
||||
rc_box.Append(reactions)
|
||||
|
||||
if m.Type == stanza.MessageTypeGroupchat {
|
||||
moderate := gtk.NewButtonWithLabel("Moderate") // TODO: Implement proper support for moderations via extension
|
||||
moderate.ConnectClicked(func() {
|
||||
client.SendRaw(fmt.Sprintf(`
|
||||
moderate := gtk.NewButtonWithLabel("Moderate") // TODO: Implement proper support for moderations via extension
|
||||
moderate.ConnectClicked(func() {
|
||||
client.SendRaw(fmt.Sprintf(`
|
||||
<iq type='set' to='%s' id='%s'>
|
||||
<moderate id='%s' xmlns='urn:xmpp:message-moderate:1'>
|
||||
<retract xmlns='urn:xmpp-message-retract:1'/>
|
||||
@@ -119,11 +117,10 @@ func generateMessageWidget(p stanza.Packet) gtk.Widgetter {
|
||||
</moderate>
|
||||
</iq>
|
||||
`, jid.MustParse(m.From).Bare().String(), uuid.New().String(), sid.ID))
|
||||
})
|
||||
rc_box.Append(moderate)
|
||||
})
|
||||
rc_box.Append(moderate)
|
||||
}
|
||||
|
||||
|
||||
popover.SetChild(rc_box)
|
||||
|
||||
gesture.Connect("pressed", func(n_press, x, y int) {
|
||||
@@ -134,14 +131,6 @@ func generateMessageWidget(p stanza.Packet) gtk.Widgetter {
|
||||
|
||||
mainBox.AddController(gesture)
|
||||
|
||||
reply := Reply{}
|
||||
ok = m.Get(&reply)
|
||||
if ok {
|
||||
replyBox := gtk.NewBox(gtk.OrientationHorizontal, 0)
|
||||
replyBox.Append(gtk.NewLabel("↱ " + jid.MustParse(reply.To).Resourcepart()))
|
||||
mainBox.Append(replyBox)
|
||||
}
|
||||
|
||||
ocu := OccupantID{}
|
||||
|
||||
m.Get(&ocu)
|
||||
@@ -190,7 +179,6 @@ func generateMessageWidget(p stanza.Packet) gtk.Widgetter {
|
||||
al.SetText(al.Text() + " whispers")
|
||||
}
|
||||
|
||||
|
||||
authorBox.Append(al)
|
||||
mlabel := gtk.NewLabel(m.Body)
|
||||
mlabel.SetWrap(true)
|
||||
@@ -230,7 +218,7 @@ func getVAdjustment(scrolledWindow *gtk.ScrolledWindow) *gtk.Adjustment {
|
||||
func getAvatar(j, hash string) *gtk.Image { // TODO: This function probably shouldn't be here, and should probably be in xmpp-helpers or somewhere similar.
|
||||
p, err := ensureCache()
|
||||
if err != nil {
|
||||
return gtk.NewImageFromPaintable(clientAssets["DefaultAvatar"])
|
||||
return gtk.NewImageFromPaintable(clientAssets["DefaultAvatar"])
|
||||
}
|
||||
|
||||
if hash == "" {
|
||||
@@ -267,7 +255,7 @@ func getAvatar(j, hash string) *gtk.Image { // TODO: This function probably shou
|
||||
result := <-mychan
|
||||
card, ok := result.Payload.(*VCard)
|
||||
if !ok {
|
||||
return gtk.NewImageFromPaintable(clientAssets["DefaultAvatar"])
|
||||
return gtk.NewImageFromPaintable(clientAssets["DefaultAvatar"])
|
||||
}
|
||||
|
||||
base64_data := card.Photo.Binval
|
||||
|
||||
Reference in New Issue
Block a user