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.SetToolbarTitle(nick)
} }
this.legacyLoadOverlay(handle)
return return
} // ELSE LOAD CONTACT } // ELSE LOAD CONTACT

View File

@ -4,10 +4,10 @@ import (
"cwtch.im/cwtch/model" "cwtch.im/cwtch/model"
"cwtch.im/ui/go/the" "cwtch.im/ui/go/the"
"encoding/hex" "encoding/hex"
"fmt"
"git.openprivacy.ca/openprivacy/log" "git.openprivacy.ca/openprivacy/log"
"github.com/therecipe/qt/core" "github.com/therecipe/qt/core"
"reflect" "reflect"
"strings"
) )
type MessageModel struct { type MessageModel struct {
@ -119,6 +119,8 @@ func (this *MessageModel) num() int {
return 0 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 { func (this *MessageModel) getMessage(idx int) *MessageWrapper {
modelmsg := model.Message{Message: "[an unexpected cwtch error occurred]"} modelmsg := model.Message{Message: "[an unexpected cwtch error occurred]"}
var ackd bool 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 role = index.Column() + int(core.Qt__UserRole) + 1
} }
// modelData-element [role]-field value (aka the data ~_~) if role == this.ackIdx {
mderfv := reflect.ValueOf(*this.getMessage(index.Row())).Field(role - int(core.Qt__UserRole) - 1) return core.NewQVariant1((*this.getMessage(index.Row())).Acknowledged)
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())
} }
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 { 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 from: msg.peerID
displayName: mm.getNick(msg.peerID) displayName: mm.getNick(msg.peerID)
message: obj.o == 1 ? obj.d : "" message: obj.o == 1 ? obj.d : ""
//rawMessage: msg.rawMessage rawMessage: msg.rawMessage
image: mm.getImage(msg.peerID) image: mm.getImage(msg.peerID)
messageID: msg.signature messageID: msg.signature
fromMe: msg.peerID == gcd.selectedProfile fromMe: msg.peerID == gcd.selectedProfile
timestamp: parseInt(msg.timestamp) timestamp: parseInt(msg.timestamp)
//ackd: acknowledged ackd: acknowledged
//error: msg.error error: msg.error
calendarEvent: msg.peerID == "calendar" calendarEvent: msg.peerID == "calendar"
// listview doesnt do anchors right // 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 // https://stackoverflow.com/questions/31381997/why-does-anchors-fill-does-not-work-in-a-qml-listviews-delegates-subviews-and/31382307