Merge branch 'ebf2019011411' of cwtch.im/ui into master

This commit is contained in:
Dan Ballard 2019-01-29 18:50:07 +00:00 committed by Gogs
commit 65ff90c631
4 changed files with 44 additions and 14 deletions

View File

@ -26,8 +26,12 @@ func PresencePoller(getContact func(string) *gobjects.Contact, addContact func(c
0,
c.Trusted,
})
c.SetAttribute("name", c.Name)
the.CwtchApp.EventBus().Publish(event.NewEvent(event.RequestProfileSave, map[event.Field]string{}))
the.CwtchApp.EventBus().Publish(event.NewEvent(event.SetPeerAttribute, map[event.Field]string{
event.RemotePeer: contacts[i],
event.Key: "name",
event.Data: c.Name,
}))
}
cxnState, found := the.Peer.GetPeers()[contacts[i]]

View File

@ -68,8 +68,11 @@ func (this *GrandCentralDispatcher) sendMessage(message string, mID uint) {
if len(this.CurrentOpenConversation()) == 32 { // SEND TO GROUP
if !the.Peer.GetGroup(this.CurrentOpenConversation()).Accepted {
the.Peer.GetGroup(this.CurrentOpenConversation()).Accepted = true
the.CwtchApp.EventBus().Publish(event.NewEvent(event.RequestProfileSave, map[event.Field]string{}))
err := the.Peer.AcceptInvite(this.CurrentOpenConversation())
if err != nil {
log.Errorf("tried to mark a nonexistent group as existed. bad!")
return
}
c := this.UIState.GetContact(this.CurrentOpenConversation())
c.Trusted = true
this.UIState.UpdateContact(c.Handle)
@ -211,7 +214,6 @@ func (this *GrandCentralDispatcher) importString(str string) {
}
the.Peer.JoinServer(group.GroupServer)
the.CwtchApp.EventBus().Publish(event.NewEvent(event.RequestProfileSave, map[event.Field]string{}))
this.UIState.AddContact(&gobjects.Contact{
groupID,
groupID[:12],
@ -285,7 +287,9 @@ func (this *GrandCentralDispatcher) popup(str string) {
func (this *GrandCentralDispatcher) updateNick(nick string) {
the.Peer.GetProfile().Name = nick
the.CwtchApp.EventBus().Publish(event.NewEvent(event.RequestProfileSave, map[event.Field]string{}))
the.CwtchApp.EventBus().Publish(event.NewEvent(event.SetProfileName, map[event.Field]string{
event.ProfileName: nick,
}))
}
func (this *GrandCentralDispatcher) createGroup(server, groupName string) {
@ -304,8 +308,11 @@ func (this *GrandCentralDispatcher) createGroup(server, groupName string) {
})
group := the.Peer.GetGroup(groupID)
group.SetAttribute("nick", groupName)
the.CwtchApp.EventBus().Publish(event.NewEvent(event.RequestProfileSave, map[event.Field]string{}))
the.CwtchApp.EventBus().Publish(event.NewEvent(event.SetGroupAttribute, map[event.Field]string{
event.GroupID: groupID,
event.Key: "nick",
event.Data: groupName,
}))
the.Peer.JoinServer(server)
group.NewMessage = make(chan model.Message)

View File

@ -46,7 +46,13 @@ func (this *InterfaceState) AddContact(c *gobjects.Contact) {
if c.Trusted {
the.Peer.GetProfile().TrustPeer(c.Handle)
}
the.CwtchApp.EventBus().Publish(event.NewEvent(event.RequestProfileSave, map[event.Field]string{}))
the.CwtchApp.EventBus().Publish(event.NewEvent(event.SetPeerAttribute, map[event.Field]string{
event.RemotePeer: c.Handle,
event.Key: "name",
event.Data: c.DisplayName,
}))
go the.Peer.PeerWithOnion(c.Handle)
}
@ -54,8 +60,6 @@ func (this *InterfaceState) AddContact(c *gobjects.Contact) {
this.contacts[c.Handle] = c
this.parentGcd.AddContact(c.Handle, c.DisplayName, c.Image, c.Server, c.Badge, c.Status, c.Trusted)
}
the.CwtchApp.EventBus().Publish(event.NewEvent(event.RequestProfileSave, map[event.Field]string{}))
}
func (this *InterfaceState) GetContact(handle string) *gobjects.Contact {
@ -99,7 +103,6 @@ func (this *InterfaceState) AddMessage(m *gobjects.Message) {
c.Badge++
this.UpdateContact(c.Handle)
}
the.CwtchApp.EventBus().Publish(event.NewEvent(event.RequestProfileSave, map[event.Field]string{}))
}
func (this *InterfaceState) GetMessages(handle string) []*gobjects.Message {

20
main.go
View File

@ -2,7 +2,6 @@ package main
import (
libapp "cwtch.im/cwtch/app"
"cwtch.im/cwtch/event"
"cwtch.im/cwtch/model"
"cwtch.im/ui/go/characters"
"cwtch.im/ui/go/cwutil"
@ -13,6 +12,8 @@ import (
"git.openprivacy.ca/openprivacy/libricochet-go/connectivity"
"git.openprivacy.ca/openprivacy/libricochet-go/log"
"github.com/therecipe/qt/core"
"github.com/therecipe/qt/network"
"github.com/therecipe/qt/qml"
"github.com/therecipe/qt/quick"
"github.com/therecipe/qt/quickcontrols2"
"github.com/therecipe/qt/widgets"
@ -63,6 +64,22 @@ func main() {
go characters.PresencePoller(gcd.UIState.GetContact, gcd.UIState.AddContact, gcd.UIState.UpdateContact)
go characters.GroupPoller(gcd.UIState.GetContact, gcd.UIState.UpdateContact)
// prevent qt from initiating network connections (possible deanon attempts!)
factory := qml.NewQQmlNetworkAccessManagerFactory()
factory.ConnectCreate(func(parent *core.QObject) *network.QNetworkAccessManager {
nam := network.NewQNetworkAccessManager(parent)
nam.SetNetworkAccessible(network.QNetworkAccessManager__NotAccessible)
proxy := network.NewQNetworkProxy()
proxy.SetHostName("0.0.0.0")
nam.SetProxy(proxy)
//nam.ConnectCreateRequest(func(op network.QNetworkAccessManager__Operation, originalReq *network.QNetworkRequest, outgoingData *core.QIODevice) *network.QNetworkReply {
// log.Errorf("network access request detected - possible remote content insertion bug!!!")
// return nil
//})
return nam
})
view.Engine().SetNetworkAccessManagerFactory(factory)
// here we go!
view.Show()
widgets.QApplication_Exec()
@ -127,7 +144,6 @@ func loadCwtchData(gcd *gothings.GrandCentralDispatcher) {
log.Errorf("couldn't create one. is your cwtch folder writable?")
os.Exit(1)
}
the.CwtchApp.EventBus().Publish(event.NewEvent(event.RequestProfileSave, map[event.Field]string{}))
} else {
the.Peer = the.CwtchApp.PrimaryIdentity()
}