From 69c163cfe9d353060896403a3e844848d4fd54eb Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Fri, 13 Apr 2018 21:25:45 +0300 Subject: Unknown changes that possibly fix and/or break things --- ui/messages/imagemessage.go | 66 ++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 40 deletions(-) (limited to 'ui/messages/imagemessage.go') diff --git a/ui/messages/imagemessage.go b/ui/messages/imagemessage.go index 5282d44..2fbf6ae 100644 --- a/ui/messages/imagemessage.go +++ b/ui/messages/imagemessage.go @@ -28,16 +28,15 @@ import ( "maunium.net/go/gomuks/interface" "maunium.net/go/gomuks/lib/ansimage" "maunium.net/go/gomuks/ui/messages/tstring" - "maunium.net/go/gomuks/ui/widget" "maunium.net/go/tcell" ) func init() { - gob.Register(&UIImageMessage{}) + gob.Register(&ImageMessage{}) } -type UIImageMessage struct { - UITextMessage +type ImageMessage struct { + BaseMessage Homeserver string FileID string data []byte @@ -45,20 +44,10 @@ type UIImageMessage struct { gmx ifc.Gomuks } -// NewImageMessage creates a new UIImageMessage object with the provided values and the default state. +// NewImageMessage creates a new ImageMessage object with the provided values and the default state. func NewImageMessage(gmx ifc.Gomuks, id, sender, msgtype, homeserver, fileID string, data []byte, timestamp time.Time) UIMessage { - return &UIImageMessage{ - UITextMessage{ - MsgSender: sender, - MsgTimestamp: timestamp, - MsgSenderColor: widget.GetHashColor(sender), - MsgType: msgtype, - MsgID: id, - prevBufferWidth: 0, - MsgState: ifc.MessageStateDefault, - MsgIsHighlight: false, - MsgIsService: false, - }, + return &ImageMessage{ + newBaseMessage(id, sender, msgtype, timestamp), homeserver, fileID, data, @@ -66,7 +55,7 @@ func NewImageMessage(gmx ifc.Gomuks, id, sender, msgtype, homeserver, fileID str } } -func (msg *UIImageMessage) RegisterGomuks(gmx ifc.Gomuks) { +func (msg *ImageMessage) RegisterGomuks(gmx ifc.Gomuks) { msg.gmx = gmx debug.Print(len(msg.data), msg.data) @@ -78,7 +67,11 @@ func (msg *UIImageMessage) RegisterGomuks(gmx ifc.Gomuks) { } } -func (msg *UIImageMessage) updateData() { +func (msg *ImageMessage) NotificationContent() string { + return "Sent an image" +} + +func (msg *ImageMessage) updateData() { debug.Print("Loading image:", msg.Homeserver, msg.FileID) data, _, _, err := msg.gmx.Matrix().Download(fmt.Sprintf("mxc://%s/%s", msg.Homeserver, msg.FileID)) if err != nil { @@ -88,39 +81,26 @@ func (msg *UIImageMessage) updateData() { msg.data = data } -func (msg *UIImageMessage) Path() string { +func (msg *ImageMessage) Path() string { return msg.gmx.Matrix().GetCachePath(msg.Homeserver, msg.FileID) } // CopyFrom replaces the content of this message object with the content of the given object. -func (msg *UIImageMessage) CopyFrom(from ifc.MessageMeta) { - msg.MsgSender = from.Sender() - msg.MsgSenderColor = from.SenderColor() +func (msg *ImageMessage) CopyFrom(from ifc.MessageMeta) { + msg.BaseMessage.CopyFrom(from) - fromMsg, ok := from.(UIMessage) + fromImgMsg, ok := from.(*ImageMessage) if ok { - msg.MsgSender = fromMsg.RealSender() - msg.MsgID = fromMsg.ID() - msg.MsgType = fromMsg.Type() - msg.MsgTimestamp = fromMsg.Timestamp() - msg.MsgState = fromMsg.State() - msg.MsgIsService = fromMsg.IsService() - msg.MsgIsHighlight = fromMsg.IsHighlight() - msg.buffer = nil - - fromImgMsg, ok := from.(*UIImageMessage) - if ok { - msg.data = fromImgMsg.data - } - - msg.RecalculateBuffer() + msg.data = fromImgMsg.data } + + msg.RecalculateBuffer() } // CalculateBuffer generates the internal buffer for this message that consists // of the text of this message split into lines at most as wide as the width // parameter. -func (msg *UIImageMessage) CalculateBuffer(width int) { +func (msg *ImageMessage) CalculateBuffer(width int) { if width < 2 { return } @@ -135,3 +115,9 @@ func (msg *UIImageMessage) CalculateBuffer(width int) { msg.buffer = image.Render() msg.prevBufferWidth = width } + +// RecalculateBuffer calculates the buffer again with the previously provided width. +func (msg *ImageMessage) RecalculateBuffer() { + msg.CalculateBuffer(msg.prevBufferWidth) +} + -- cgit v1.2.3