morpheus

A Matrix client written in Go-QT
git clone git://archive.git.mtrnord.blog/Nordgedanken/morpheus.git
Log | Files | Refs | README | LICENSE

commit c36aa9eda7ea508fe34fbdbd465ab8d513d82b05
parent 8ace611eee95f09389c9c802ddf229fa55732d6d
Author: MTRNord <mtrnord1@gmail.com>
Date:   Sat, 21 Oct 2017 20:00:36 +0200

Deduplicate Code

Signed-off-by: MTRNord <mtrnord1@gmail.com>

Diffstat:
Mui/MainUI.go | 18++++++++----------
Mui/messageList.go | 66+++++++-----------------------------------------------------------
2 files changed, 15 insertions(+), 69 deletions(-)

diff --git a/ui/MainUI.go b/ui/MainUI.go @@ -135,18 +135,16 @@ func (m *MainUI) NewUI() (err error) { roomScrollArea.SetSizeAdjustPolicy(widgets.QAbstractScrollArea__AdjustToContents) m.MessageListLayout.ConnectTriggerMessage(func(messageBody, sender string, timestamp int64) { + var own bool if sender == m.cli.UserID { - NewOwnMessageErr := m.MessageListLayout.NewOwnMessage(messageBody, m.cli, sender, timestamp, messageScrollArea) - if NewOwnMessageErr != nil { - err = NewOwnMessageErr - return - } + own = true } else { - NewMessageErr := m.MessageListLayout.NewMessage(messageBody, m.cli, sender, timestamp, messageScrollArea) - if NewMessageErr != nil { - err = NewMessageErr - return - } + own = false + } + NewMessageErr := m.MessageListLayout.NewMessage(messageBody, m.cli, sender, timestamp, messageScrollArea, own) + if NewMessageErr != nil { + err = NewMessageErr + return } }) diff --git a/ui/messageList.go b/ui/messageList.go @@ -45,7 +45,7 @@ func NewMessageList(scrollArea *widgets.QScrollArea, messageView *widgets.QWidge } // NewMessage adds a new message object to the view -func (messageViewLayout *QVBoxLayoutWithTriggerSlot) NewMessage(body string, cli *gomatrix.Client, sender string, timestamp int64, scrollArea *widgets.QScrollArea) (err error) { +func (messageViewLayout *QVBoxLayoutWithTriggerSlot) NewMessage(body string, cli *gomatrix.Client, sender string, timestamp int64, scrollArea *widgets.QScrollArea, own bool) (err error) { avatar, AvatarErr := matrix.GetUserAvatar(cli, sender, 61) if err != nil { err = AvatarErr @@ -55,7 +55,12 @@ func (messageViewLayout *QVBoxLayoutWithTriggerSlot) NewMessage(body string, cli var widget = widgets.NewQWidget(nil, 0) var loader = uitools.NewQUiLoader(nil) - var file = core.NewQFile2(":/qml/ui/message.ui") + var file *core.QFile + if own { + file = core.NewQFile2(":/qml/ui/ownmessage.ui") + } else { + file = core.NewQFile2(":/qml/ui/message.ui") + } file.Open(core.QIODevice__ReadOnly) var wrapperWidget = loader.Load(file, widget) @@ -109,60 +114,3 @@ func (messageViewLayout *QVBoxLayoutWithTriggerSlot) NewMessage(body string, cli return } - -// NewOwnMessage adds a new message object to the view -func (messageViewLayout *QVBoxLayoutWithTriggerSlot) NewOwnMessage(body string, cli *gomatrix.Client, sender string, timestamp int64, scrollArea *widgets.QScrollArea) (err error) { - avatar, AvatarErr := matrix.GetUserAvatar(cli, sender, 61) - if AvatarErr != nil { - err = AvatarErr - return - } - - var widget = widgets.NewQWidget(nil, 0) - - var loader = uitools.NewQUiLoader(nil) - var file = core.NewQFile2(":/qml/ui/ownmessage.ui") - - file.Open(core.QIODevice__ReadOnly) - var wrapperWidget = loader.Load(file, widget) - file.Close() - - timestampFormat := time.Unix(0, int64(timestamp)*int64(time.Millisecond)) - timestampString := timestampFormat.Format("15:04:05 - Mon 2.01.2006") - - messageWidget := widgets.NewQWidgetFromPointer(widget.FindChild("message", core.Qt__FindChildrenRecursively).Pointer()) - avatarLogo := widgets.NewQLabelFromPointer(widget.FindChild("avatar", core.Qt__FindChildrenRecursively).Pointer()) - messageContent := widgets.NewQLabelFromPointer(widget.FindChild("messageContent", core.Qt__FindChildrenRecursively).Pointer()) - timestampContent := widgets.NewQLabelFromPointer(widget.FindChild("timestamp", core.Qt__FindChildrenRecursively).Pointer()) - senderContent := widgets.NewQLabelFromPointer(widget.FindChild("sender", core.Qt__FindChildrenRecursively).Pointer()) - - markdownMessage := commonmark.Md2Html(body, 0) - - messageContent.SetText(markdownMessage) - - senderDisplayNameResp, _ := cli.GetDisplayName(sender) - var senderDisplayName string - if senderDisplayNameResp == nil { - senderDisplayName = sender - } else if senderDisplayNameResp.DisplayName == "" { - senderDisplayName = sender - } else { - senderDisplayName = senderDisplayNameResp.DisplayName - } - fmt.Println(senderDisplayName) - senderContent.SetText(senderDisplayName) - timestampContent.SetText(timestampString) - avatarLogo.SetPixmap(avatar) - - messageContent.SetMinimumWidth(messageContent.LineWidth()) - - messageWidget.SetMinimumWidth(messageContent.LineWidth() + 100) - messageWidget.Resize(wrapperWidget.Size()) - - messageViewLayout.SetSpacing(0) - messageViewLayout.SetContentsMargins(0, 0, 0, 0) - - messageViewLayout.InsertWidget(0, messageWidget, 0, core.Qt__AlignBottom) - - return -}