fix acks, fix lists and bulletin for groups
the build was successful Details

This commit is contained in:
erinn 2020-12-08 23:03:22 -08:00
parent bc33356ca4
commit bb84e8f46f
4 changed files with 12 additions and 17 deletions

View File

@ -352,6 +352,8 @@ func (this *GrandCentralDispatcher) loadMessagesPaneHelper(handle string) {
this.SetToolbarTitle(nick)
}
this.legacyLoadOverlay(handle)
return
} // ELSE LOAD CONTACT

View File

@ -4,10 +4,10 @@ import (
"cwtch.im/cwtch/model"
"cwtch.im/ui/go/the"
"encoding/hex"
"fmt"
"git.openprivacy.ca/openprivacy/log"
"github.com/therecipe/qt/core"
"reflect"
"strings"
)
type MessageModel struct {
@ -119,6 +119,8 @@ func (this *MessageModel) num() int {
return 0
}
// caveat emptor: accessing messages this way returns a MessageWrapper QObject whose properties have not yet been
// initialized (but soon will be). accessing .Message parent class properties instead should work right away.
func (this *MessageModel) getMessage(idx int) *MessageWrapper {
modelmsg := model.Message{Message: "[an unexpected cwtch error occurred]"}
var ackd bool
@ -170,20 +172,11 @@ func (this *MessageModel) data(index *core.QModelIndex, role int) *core.QVariant
role = index.Column() + int(core.Qt__UserRole) + 1
}
// modelData-element [role]-field value (aka the data ~_~)
mderfv := reflect.ValueOf(*this.getMessage(index.Row())).Field(role - int(core.Qt__UserRole) - 1)
typeStr := reflect.TypeOf([]MessageWrapper{}).Elem().Field(role - int(core.Qt__UserRole) - 1).Type.String()
if typeStr == "string" {
return core.NewQVariant1(mderfv.String())
} else if strings.HasPrefix(typeStr, "int") {
return core.NewQVariant1(mderfv.Int())
} else if strings.HasPrefix(typeStr, "float") {
return core.NewQVariant1(mderfv.Float())
} else if typeStr == "bool" {
return core.NewQVariant1(mderfv.Bool())
if role == this.ackIdx {
return core.NewQVariant1((*this.getMessage(index.Row())).Acknowledged)
}
return core.NewQVariant1("unknown type " + typeStr)
return core.NewQVariant1(fmt.Sprintf("unimplemented role %s (%d)", this.roleNames()[role].ConstData(), role))
}
func (this *MessageModel) headerData(section int, orientation core.Qt__Orientation, role int) *core.QVariant {

@ -1 +1 @@
Subproject commit dd8dde1fb38e296530570d31e95780ff707e2895
Subproject commit 48d9d1d11f4efe612419ea66371c4b147f74667d

View File

@ -108,13 +108,13 @@ W.Overlay {
from: msg.peerID
displayName: mm.getNick(msg.peerID)
message: obj.o == 1 ? obj.d : ""
//rawMessage: msg.rawMessage
rawMessage: msg.rawMessage
image: mm.getImage(msg.peerID)
messageID: msg.signature
fromMe: msg.peerID == gcd.selectedProfile
timestamp: parseInt(msg.timestamp)
//ackd: acknowledged
//error: msg.error
ackd: acknowledged
error: msg.error
calendarEvent: msg.peerID == "calendar"
// listview doesnt do anchors right
// https://stackoverflow.com/questions/31381997/why-does-anchors-fill-does-not-work-in-a-qml-listviews-delegates-subviews-and/31382307