From 5c73cd8b3f644d1ca3741e343a133a39e587ce97 Mon Sep 17 00:00:00 2001 From: erinn Date: Wed, 24 Oct 2018 17:13:03 -0700 Subject: [PATCH] initial commit --- .gitignore | 1 + gcd.go | 60 ++++++++++--------- main.go | 100 +++++++++++++++++++++++++------ qml/images/extra/clipcircle.png | Bin 0 -> 1050910 bytes qml/images/extra/mermaid.png | Bin 31530 -> 0 bytes qml/images/extra/qt-arrow.png | Bin 3162 -> 0 bytes qml/images/extra/qt-arrow@2x.png | Bin 3381 -> 0 bytes qml/images/extra/qt-arrow@3x.png | Bin 3655 -> 0 bytes qml/images/extra/qt-arrow@4x.png | Bin 3968 -> 0 bytes qml/images/extra/qt-logo.png | Bin 2695 -> 0 bytes qml/images/extra/qt-logo@2x.png | Bin 5521 -> 0 bytes qml/images/extra/qt-logo@3x.png | Bin 8166 -> 0 bytes qml/images/extra/qt-logo@4x.png | Bin 11600 -> 0 bytes qml/images/extra/robot.png | Bin 11028 -> 0 bytes qml/main.qml | 2 +- qml/main.qmlc | Bin 7664 -> 7664 bytes qml/widgets/Contact.qml | 42 ++----------- qml/widgets/Contact.qmlc | Bin 14164 -> 11716 bytes qml/widgets/ContactList.qmlc | Bin 6596 -> 6596 bytes qml/widgets/ContactPicture.qml | 67 +++++++++++++++++++++ qml/widgets/MessageList.qmlc | Bin 13588 -> 13588 bytes qml/widgets/MyProfile.qml | 78 ++++++++++++++++++++++-- qml/widgets/MyProfile.qmlc | Bin 12300 -> 17940 bytes 23 files changed, 262 insertions(+), 88 deletions(-) create mode 100644 qml/images/extra/clipcircle.png delete mode 100644 qml/images/extra/mermaid.png delete mode 100644 qml/images/extra/qt-arrow.png delete mode 100644 qml/images/extra/qt-arrow@2x.png delete mode 100644 qml/images/extra/qt-arrow@3x.png delete mode 100644 qml/images/extra/qt-arrow@4x.png delete mode 100644 qml/images/extra/qt-logo.png delete mode 100644 qml/images/extra/qt-logo@2x.png delete mode 100644 qml/images/extra/qt-logo@3x.png delete mode 100644 qml/images/extra/qt-logo@4x.png delete mode 100644 qml/images/extra/robot.png create mode 100644 qml/widgets/ContactPicture.qml diff --git a/.gitignore b/.gitignore index 2ac51d5..2c51d94 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ deploy moc* rcc* +*.qmlc diff --git a/gcd.go b/gcd.go index 4fdd172..1c02c45 100644 --- a/gcd.go +++ b/gcd.go @@ -1,13 +1,12 @@ package main import ( - "github.com/therecipe/qt/core" - "log" - "fmt" - "strings" "cwtch.im/cwtch/model" "encoding/base32" - ) + "github.com/therecipe/qt/core" + "log" + "strings" +) type GrandCentralDispatcher struct { core.QObject @@ -15,29 +14,30 @@ type GrandCentralDispatcher struct { currentOpenConversation string // messages pane stuff - _ func(from, message string) `signal:"AppendMessage"` - _ func() `signal:"ClearMessages"` - _ func() `signal:"ResetMessagePane"` + _ func(from, message string) `signal:"AppendMessage"` + _ func() `signal:"ClearMessages"` + _ func() `signal:"ResetMessagePane"` // contact list stuff - _ func(onion string, num int) `signal:"SetUnread"` - _ func(onion string, status int) `signal:"SetConnectionStatus"` + _ func(onion string, num int) `signal:"SetUnread"` + _ func(onion string, status int) `signal:"SetConnectionStatus"` _ func(name, onion, image, badge string, trusted bool) `signal:"AddContact"` - _ func(onion string) `signal:"MarkTrusted"` + _ func(onion string) `signal:"MarkTrusted"` // profile-area stuff _ func(name, onion, image string) `signal:"UpdateMyProfile"` + _ func(status int, str string) `signal:"TorStatus"` // other stuff i can't ontologize atm - _ func(str string) `signal:"InvokePopup"` + _ func(str string) `signal:"InvokePopup"` // exfiltrated signals (written in go, below) - _ func(message string) `signal:"sendMessage,auto"` - _ func(onion string) `signal:"loadMessagesPane,auto"` - _ func(signal string) `signal:"broadcast,auto"` // convenience relay signal - _ func(str string) `signal:"importString,auto"` - _ func(str string) `signal:"popup,auto"` - _ func(nick string) `signal:"updateNick,auto"` + _ func(message string) `signal:"sendMessage,auto"` + _ func(onion string) `signal:"loadMessagesPane,auto"` + _ func(signal string) `signal:"broadcast,auto"` // convenience relay signal + _ func(str string) `signal:"importString,auto"` + _ func(str string) `signal:"popup,auto"` + _ func(nick string) `signal:"updateNick,auto"` } func (this *GrandCentralDispatcher) sendMessage(message string) { @@ -57,11 +57,12 @@ func (this *GrandCentralDispatcher) sendMessage(message string) { gcd.MarkTrusted(gcd.currentOpenConversation) } - log.Printf("SENDING MESSAGE %v to %v...\n", message, gcd.currentOpenConversation) - connection := peer.PeerWithOnion(gcd.currentOpenConversation) + select { // fancy trick to do a non-blocking send. this means the user can only send a limited number of messages + // before the channel buffer fills. TODO: stop the user from sending if the buffer is full + case outgoingMessages <- Message{gcd.currentOpenConversation, message, true}: + default: + } - fmt.Printf("sending data, connection state: %v\n", connection.GetState()) - go connection.SendPacket([]byte(message)) DeliverMessageToUI(gcd.currentOpenConversation, message, true) } @@ -99,10 +100,15 @@ func (this *GrandCentralDispatcher) importString(str string) { onion := str name := onion + if strings.Contains(str, " ") {// usually people prepend spaces and we don't want it going into the name (use ~ for that) + parts := strings.Split(strings.TrimSpace(str), " ") + str = parts[len(parts) - 1] + } + if strings.Contains(str, "~") { parts := strings.Split(str, "~") - onion = parts[len(parts) - 1] - name = strings.Join(parts[:len(parts) - 1], " ") + onion = parts[len(parts)-1] + name = strings.Join(parts[:len(parts)-1], " ") } if len(onion) != 56 { @@ -117,7 +123,7 @@ func (this *GrandCentralDispatcher) importString(str string) { } if len(name) > 32 { - name = name[:32]//TODO: better strategy for long names? + name = name[:32] //TODO: better strategy for long names? } decodedPub, err := base32.StdEncoding.DecodeString(strings.ToUpper(onion[:56])) @@ -136,7 +142,7 @@ func (this *GrandCentralDispatcher) importString(str string) { _, exists = peer.GetProfile().GetCustomAttribute(onion + "_name") if exists { gcd.InvokePopup("already have this contact") - return//TODO: bring them to the duplicate + return //TODO: bring them to the duplicate } pp := model.PublicProfile{ @@ -168,4 +174,4 @@ func (this *GrandCentralDispatcher) popup(str string) { func (this *GrandCentralDispatcher) updateNick(nick string) { peer.GetProfile().Name = nick peer.Save() -} \ No newline at end of file +} diff --git a/main.go b/main.go index 331ebd1..4a13e34 100644 --- a/main.go +++ b/main.go @@ -1,31 +1,36 @@ package main import ( -"os" - "github.com/therecipe/qt/core" -"github.com/therecipe/qt/quick" -"github.com/therecipe/qt/quickcontrols2" -"github.com/therecipe/qt/widgets" - "time" - "github.com/sethvargo/go-diceware/diceware" libpeer "cwtch.im/cwtch/peer" - "path" - "os/user" - "fmt" + "cwtch.im/cwtch/peer/connections" "encoding/base32" + "fmt" + "github.com/sethvargo/go-diceware/diceware" + "github.com/therecipe/qt/core" + "github.com/therecipe/qt/quick" + "github.com/therecipe/qt/quickcontrols2" + "github.com/therecipe/qt/widgets" + "os" + "os/user" + "path" "strings" - "cwtch.im/cwtch/peer/connections" -) + "time" + "strconv" + "git.openprivacy.ca/openprivacy/asaur" + ) var gcd *GrandCentralDispatcher + type ContactManager map[string]*Contact + var contactMgr ContactManager var peer libpeer.CwtchPeer +var outgoingMessages chan Message type Contact struct { Messages []Message - Unread int - Status connections.ConnectionState + Unread int + Status connections.ConnectionState } func (this *Contact) AddMessage(m Message) { @@ -34,7 +39,7 @@ func (this *Contact) AddMessage(m Message) { type Message struct { With, Message string - FromMe bool + FromMe bool } func DeliverMessageToUI(from, message string, fromMe bool) { @@ -77,8 +82,12 @@ func main() { view.SetSource(core.NewQUrl3("qrc:/qml/main.qml", 0)) } + outgoingMessages = make(chan Message, 1000) + go postmanPat() + initialize(view) view.Show() + go torStatusPoller() go presencePoller() go ricochetListener() go alice() @@ -128,6 +137,37 @@ func presencePoller() { // TODO: make this subscribe-able in ricochet } } +func torStatusPoller() { + for { + time.Sleep(time.Second) + //todo: this should use a config manager + //todo: also, try dialing the proxy to differentiate tor not running vs control port not configured + rawStatus, err := asaur.GetInfo("localhost:9051", "tcp4", "", "status/bootstrap-phase") + if err != nil { + gcd.TorStatus(0, "can't find tor. is it running? is the controlport configured?") + continue + } + + status := asaur.ParseBootstrapPhase(rawStatus) + progress, _ := strconv.Atoi(status["PROGRESS"]) + + if status["TAG"] == "done" { + gcd.TorStatus(3, "tor appears to be running just fine!") + continue + } + + if progress == 0 { + gcd.TorStatus(1, "tor is trying to start up") + continue + } + + gcd.TorStatus(2, status["SUMMARY"]) + //qCwtchApp.SetTorStatusProgress(progress) + //qCwtchApp.SetTorStatusSummary(status["SUMMARY"]) + //if status["TAG"] == "done" { + } +} + func ricochetListener() { processData := func(onion string, data []byte) []byte { /* _, exists := peer.GetProfile().GetCustomAttribute(onion + "_name") @@ -159,6 +199,30 @@ func ricochetListener() { } } +func postmanPat() { + postOffice := make(map[string]chan Message) + + for { + m := <-outgoingMessages + + _, found := postOffice[m.With] + if !found { + postOffice[m.With] = make(chan Message, 100) + go andHisBlackAndWhiteCat(postOffice[m.With]) + } + + postOffice[m.With] <- m + } +} + +func andHisBlackAndWhiteCat(incomingMessages chan Message) { + for { + m := <-incomingMessages + connection := peer.PeerWithOnion(m.With) + connection.SendPacket([]byte(m.Message)) + } +} + func initialize(view *quick.QQuickView) { //TODO: this section is ported over and has a lot of printf errors, need to show them in the ui var dirname, filename string @@ -203,11 +267,11 @@ func initialize(view *quick.QQuickView) { // temporary until we do real picture selection func randomProfileImage(onion string) string { - choices := []string{"001-centaur","002-kraken","003-dinosaur","004-tree-1","005-hand","006-echidna","007-robot","008-mushroom","009-harpy","010-phoenix","011-dragon-1","012-devil","013-troll","014-alien","015-minotaur","016-madre-monte","017-satyr","018-karakasakozou","019-pirate","020-werewolf","021-scarecrow","022-valkyrie","023-curupira","024-loch-ness-monster","025-tree","026-cerberus","027-gryphon","028-mermaid","029-vampire","030-goblin","031-yeti","032-leprechaun","033-medusa","034-chimera","035-elf","036-hydra","037-cyclops","038-pegasus","039-narwhal","040-woodcutter","041-zombie","042-dragon","043-frankenstein","044-witch","045-fairy","046-genie","047-pinocchio","048-ghost","049-wizard","050-unicorn"} + choices := []string{"001-centaur", "002-kraken", "003-dinosaur", "004-tree-1", "005-hand", "006-echidna", "007-robot", "008-mushroom", "009-harpy", "010-phoenix", "011-dragon-1", "012-devil", "013-troll", "014-alien", "015-minotaur", "016-madre-monte", "017-satyr", "018-karakasakozou", "019-pirate", "020-werewolf", "021-scarecrow", "022-valkyrie", "023-curupira", "024-loch-ness-monster", "025-tree", "026-cerberus", "027-gryphon", "028-mermaid", "029-vampire", "030-goblin", "031-yeti", "032-leprechaun", "033-medusa", "034-chimera", "035-elf", "036-hydra", "037-cyclops", "038-pegasus", "039-narwhal", "040-woodcutter", "041-zombie", "042-dragon", "043-frankenstein", "044-witch", "045-fairy", "046-genie", "047-pinocchio", "048-ghost", "049-wizard", "050-unicorn"} barr, err := base32.StdEncoding.DecodeString(strings.ToUpper(onion)) if err != nil || len(barr) != 35 { fmt.Printf("error: %v %v %v\n", onion, err, barr) return "qrc:/qml/images/extra/openprivacy.png" } - return "qrc:/qml/images/profiles/" + choices[int(barr[33]) % len(choices)] + ".png" -} \ No newline at end of file + return "qrc:/qml/images/profiles/" + choices[int(barr[33])%len(choices)] + ".png" +} diff --git a/qml/images/extra/clipcircle.png b/qml/images/extra/clipcircle.png new file mode 100644 index 0000000000000000000000000000000000000000..cb2eef1f0d5af3431fd719044cce19f2e34463ea GIT binary patch literal 1050910 zcmeI*39M{qT>$X=3Z+<5m`Et5me>LfYEdB(NQAN$ONEw}0BI|QvI&$W$QBmM3=mU@ zwO~*hD+&gSAZ2L;+K^D78bQ_s8YE@W2-FJb6fm;c)OX)Ix1Ia$+_~qRIp2DI8uRX* zIpfKkNEY!IOZPD*w{F3CN0ZN^NaT6dwfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009EG3Y>JODDJe zxs5H51SI}d zI^K&R;29c2Ssy_JEZ!ij8Vx8Q=?BEs^jZR*r)%-Kc@2RJueb7P zfC3=r=os5F0ngTDDqhPmoigHzm!NB zXIBBw+pc1+4=P|m2IbXw2LXw{1C~pR7Vz9HI(*p;{@u^M_jPNX1=yUCMVVb(M>ilv z!01A5!i|9EuceSwzyeIlKkCjU{!xeD>*z^0@HXFY`!Py~e3)%F+! zJfp`D@h|?(3~x% zK(HfgR^lI7z)d%~fM<8|5F{VK8-Dit9~k5;z=4@eX7j04l{~1$4?s0gdwVZX2f+0c#hW@*Wk0VaDo$8*MY=eT}Vx+5&_TiN&*>c8Wv0} z>GJ!L_{)!>8H_`~bG_;~U-jqL9XZ@tfGsMEW=q1Ks{|ARt8~0aAU^@m_WWX!-H0rb z>_U>&fF%B`!eKB3ItzHlcP1Op4Hn0EV%=q?5`Pyh*AmEIz_UL87)2kUMG>7m`wk`l z>_cRL1bPX0-uGh5>8Ag9>&@2;e->bKh89OoaZWoHML=4Ay%UHf;JF`5I`e)kgv((kVnhUD3djL5wKMBW@G}cYq~S>Xk)U-$ zpb!DMAp1bQ|MBOY5aukv=F}~K>=(e`15^kMPO3oyRS3ujRfMtqBm}&@RSj24{xw9= z90-IHkQ2h$X4kS{XBUzn1CscIuxgY*wE}WOwV}OrVuF0DMXf(c{gm=t!YN}#ZS87_fL1>}iL1GDb11a@7)JnxtM^Nfp8 z5hztat|&EfE57x^8j@no`7~0%lCSTKi}9G8G)JvXt;=e<}pZj-SyJC`~}_C@o@3#w&Rt$8pvR z0RqDa$SuP-25m){Q-Utu~Df2qY4aZ`#0L{@0&7EAm-@1H+ok=2H=B6QMZQs089T>xBS; zv;y)@TK`*m7l>OZlKvq1C*{{U0RoW)x}?`JOt#Q#BmUS zv;mO()B5Y30D-gua!})c!Dml6I>lLlt?&!PmPGtN6$0_i^+=cr?Uc*&onJ`1q9gsO*5_&HGsB*fP>0Rq(s$Wwtr z2{sI@Jf!os@0RjXF5FpS(;JasE z_TU`O0vs6XWHz5Fv06l}!zH!@I$*h!009CW1>~%bV5=^Nxk{(ody;=QFIN*FK%kF+ zywyi-$vq&Kp!9f2^6!D>76Jqa^c0Z0dcrN<260iN-_MeNKR0&~AV6Rpfl~9=H~#J= z=VfyiU@HKnVs4E;^`8oX)Dh4>0Rm$dki*u9KD_>Tl7D|YcM>2#U?>53tfwTnesGe1 zKR0&~AV465fLzu?60t5&U zAdsOz3Dr|hY<2>2iiWWeAV6TdfSk77W94tKR`P6nQ}W-&;THk~2xKWBueA&dsCH12 ze>*2v5g#<| z?OA{Wft<|d(;TF7Tve)p9HU}P1PBo5Cm`1?adRkO35u5p5FkK+KV7-|pcz0t5)uBoI00U3|Ywe>v~709(P0471g3mVYV)vJ8ts z5gFT0t5&UAW(*YO6Xvm{O!Mt^=gy^2oM-TKk zqzwWD2$UrdIRAa-#*3d_##w;Pum#4*eq|^GvJa5~5+Fbzn82uWpz{F1)|G|{5FkK+ zK)wQFu73ROKi_p}WCREhh$S%EJUG^gOa8GwTKXYCfI$8N1LwkfUh}-4lyeqfGd#Wy z$bXR z=qrGbOG(=V2oNAJGJ#jV?I%~2br#@2fF`r~bWG)s?SPSeE=`vJ0RlY)Mw1uEGEvFD z$EUz81PBlqslX_5qwfSpy1Gr9009C7#w{?0D#zdc$GyhQo&W&?eFVDY$9I3_3l|l5 z7GMj;Zorm=KM4>ZK!CuA1iDo_<-ynqC@*G4On?A^Tm-7lku^_F^3UZXWE=zt5GYrm z+C1qifN~e5krN<5fItocC;r*9?o#ksfK9?$s~kH4Ieb8jfdBylbqG|MEA0l@}?btQkI-?5+Fc;0D%Do zYN=%W?SH^Up(z3c2oP8)a4>hi`nao3sNgKXftgNb^QkR?l|lC=0RjXF5U5k2hAjcx z0d=lTvm!u%K+Xci=TAETIWI3`BS3%v0Rn*pO0Qu2?LW}M&@2H01PCk_IQ=vGp1fY;x+$N1I{*c(E<+_ifB*pkLkW~tvH08nP?6UT0RjXFbQ1XSKYja@JEf1PBly&{v?8O2yy) z`$pJ(1PBlyu(rUHpZ4fyb~p>L*k2iWb~2k!Z3!&K&Cdh~5FkKcBmxS6kp$W_2@oJa zfWV?a340a34_J(tp9v5kK%fMH?DMM~fD)FGF%lp^fItd?yPf^USM)p!kYc#~`^>#s zu@lfgw(cZAfB=EC0$Jx+y8&qzhu#SgAV7dX5`mnn6My?pvLtj$fB*pk0}5oDXYBwC z7-dZnAV7dXH3ByrbM;N5I18{DF~vYN>()dF5FkK+Kzo5)w<&xT&_0H)BtU=wfxHE> z%(Zp^@?JDXM}PnU0tA8x#N zTR!-RXNNos5OC;gG(DNkr#Y1;wgc7(rdtURAV8o9fo$@wErBA|i$M|~K!5;&VFeTb z!+L6s009C72oxcZ%T|Q#|00%)K@uQ9pjLr1Z+r9OlAHy|A`jaQsC8YN7XbnU2oP8y zpa58b<1GRN2oNApt3VFh5WWhib#<8+0RjXF>?V*r|JniAEi_&yK!5;&kqCVE4PU-v zlCuEW_$mgn359_WAV7csfp`L`wU30|EpH5Xeg4 z8GrwU7dQ*BEhH(vgK!pLTL}C@fB*pk1U91QW4i%X9RUIa2oM;dfC6BIK{sUr1PBly zpa8H22oNAZU_1isiI}5NQ-m$-ba28-k2)sam009C74hTfe$#w&*Isya;5Fju@ z0R_MagKo+M2oNAZKmlM45FkK+z&Hf{?FkQhv$Ft8V;%Fm2WJ76hQNyi2oNAZ;1+>s zdD(8jE#`h8K!5-N0^<=-0E{QrW=enn0RjYW5l{f!Lg5Dj1PBnQR^V69xNzny!0zFl z%;r-S!R|iZAwYlt0Rq(u#5#T8L}0Z`$ixT`AV6SXfhf7z4#2=s(;NW;1PBl)K|lde zLX?b=009C7dI@~{vnSlsS%AIi6a#x3xq<)z0t5(DC!heRE~F+zfB*pk1ojq)ap=Hd zz`f((3IYTO5FoH95IjHI0a)brGXVkw2vj5R<3GIi1I_}p3#VeBos+8w5FkK+KveR%aU?hPyO#%c65FoH9pa59Z@G}7d z1PBx_@JshS=ZVe&bPVHUHlL~pI-Jyr5MaA%m(I7*bPP1PBly zK%fu-1wbKzGE4#l2oNAJq<{ioNKI`KAV7csfkFfn0EGm~FbNPKKwwkgPWz7b?*a_I z6chu4lWLFv0RjXFq|0RjXF z91wWQvyQvmzY7pzF(?K?sA`h{0RjXFWGNo-6%V5!K!5-N0#O7M08yBALVy4P0tE6BPypl=52GPKfB=C_fe-)b zm#%UaAlh0`3`C>W5di`O2oT6eKmm|XER2Kz0RjXFL=#W|M5ERb0RjXF5XeVB0gz8D zjD!FI0t7Y%_MLR>JDdfGyA~$1`BX&^*IaJ|2oNAZAPWHnKo(&z2m%BM5Fij&U|+!Q zZVuSCrU?)rK!Cs)1cK#hI{;%?KITY(0D%GozH_G!UhOPEnm{QA(zxrD009C72qYCy z03_wtIROF$2oOjkpa4kYu2%vC2oNBUR6qfclwaor2oNB!DRBJtS6}QbK)SV{7)WQY zX95HW5Fn6DKmm}9UdIFo5FkJxoqz%$oxPq35FkK+Kr#UZKr(tA6Cgl^5FkK+ zK)C`6fO2DJ05S-IArK%yfB=Em0zvc;5G3 z_8r>12@oK#RN!52`IT2V3$T=C^^56p@?ua<&%bs6idicL zN`L@?j0HY*x6ePuS%8cKw0dZYfz>|VB|v}x0RmMDB;Sr`RDC5-_`9 z`PL4=cov_T5+Fc;0D)Ts6acqS_<;Zc0tDI$TzJLDPj?oetyccmWw$-ikoig=|FvU; z1PBly&`u!BTx&O=UGQ8*fB*pk1ga9qvMOnW?E+M_)J%o|0Rp2G$TrW~0T|_aG-(0^ z2=o{D@0Wh@B4+{m`{j72Vj#z;7!v^k1PBlaERgLsMKf<-2?SmMnkPVj0D)ivS?5?g z0Kwv}VFCmQ5Fn7RK-Ses!)6yC-}Pf;1PF{w;J+?7@4e0fbPjsY^0!1%3gC{_Mz$gTY$*Z;mMzJ1Ek^lh$1PE*wD5g?r zhHV#Md;I)HfB*pk`3Mx1Q|$ocvv7=r009Cy3OwikKJgW20dkDYfMY7Ea%tvmM_|AO zpeX_b2oM-VptyW$H(-#sYlHv+0t5(@B~V<&((u{^C~KV=Edc@qY8EImm)ZfSc}bcZ z0RjZp6FBYlFMOG^0P7hRad(jwOe1SYpok@AkOT-2s9K=dJZd+f>UC*y1PBlyKw!B* zv6V|R9lHR_(8hO5Fk*ZKoz;u4nT=Z z&zK1iAP`pIAFsdR8fO8*8t2veWHz5xQPwo9wgvK9Uq(ZK0D&3>s>z$S1ZrHK=0t!1 z0RjZ}5U8e-Y36AcV2^-%n*ad<1bPcpl{4)C^j-&UBtU>bZ32JwoUizI0cs0stNBz_ z*)%h@BhV`JE+RmH0D%qy)#c0TCe#E|5zt{(yOaO{0t8kHRGBM%9k4Ry-XuVP009DZ z3RGFuG@-H!Q0JO8D*^<92)yg#Z+ww|7hn(CYICODfITAbZ2|-c5Fk*aK(&=k6D&Id zHLhB7B0zvZ9D%BHWYv>v)`ub>&Id&=1PBnQNuc`t=qrGlmaDlCAV8p(z+e90tKV@J zpch>wH&tKlG;y*cP|1Qd4FUuRL=YH7ZnPT^VI}E;009C72;?R(iYli;w+oQl>N6e! z1PJ6OFq*tLnu#`ROc9XZhs}rx5J)QU=~LeK2xkG7gkW6xaWb1veJ8MF8F+~R0RjXF z)GjctlILJFZ41=Cs?Co80Rr6xMwbsqH{oVYC<3~FINU*i0D)QsMwttJ1yJj9HZKAM z2&@u#?b*kF%UOU`LZf z6a}bA>6vi6#=(e_=x}k0<{Xrdrf4W2dH(4n->8B1PBmVA)pf4 zj$;>KyNBNh5U5Sy@b|v;L(T$hMpgb>SlcibFq$6~1UpTz}`l#AV7dXZUXY#9uaXU zU=JW~6Cgl<0D&3>R7mZjY8RlLldA|2$WY)9K6L(VM|>7Qo@=otA+RG)w{j%` z0t8YC$ZIX-LA8WxE>i?_^Kvx-0t8|T$Y~w4VRgW2E>#3{H**I80t7+}$Y&je9SH0Q z=5hiA2$Upn#qZtbRU-;) zAV6R!0eP&aB)Fb%&25T+_59pTfB=DY1mv(a^x&<5*W9WISl>_!1PBBWc=MIloHLTM z0CL%y>j&VPfX(d+f?*uBLVy5)HUe^28>Kz2fw%`yhqo009k5(VfB=D>0`gW*xI=FP zd8o*GzbgXP^K&-=0t8kG$XTm&I=%<9BUp>e6#*@fTta|ASb=YR`uuxUd=^0N8hZIm zX7j0kF=%L2?GYeAfB=C41e8@_f@E7DjH^}&5E!R`TooYhPy?VgO)3Jy*=m^pf$<2) zQ-NX)HV|yntRf(+uht0=*e>v}ORl}H*0TWe)%I8q`WxIqIhQu3AXv)cMFIo}tQ3%+ zR`RU>CgAlA+q9qvXrtsB0t5&g6p))DtOUprkeefKp=ks`6zOXfJX*zx>E$Can~yW z0(lC^MG4{pJpp>tr6M4my`BjW$VWgPN)!w5iQt=V6#;4e^-iD`ftQ{9#A)eg0pz2E zs}X)e{HALKLHZaN0RaN>1>~Rj=G%G{fNdPfeo+J@qt`J30tp16Oeb}S+DF#AXf4uc~c>fgk7fuiWNBOoXn~WFjEXWD>CR0u3!_>lmC>;&YL>_W2pfCOuIn_S;f1mqeS<03F_0r{k` z_zPHJ0c(b<2q-gdMonNKf#;rd_~WuY3m~ry6y=!B2wF_-;rmh)3~#DM0tDI%$RX{m zvb$37vI|M)0Vx7HlevKafdK^Mj{y)}lSBe!DQg1Q2y@V68Jg$K~^31lK5Ph=8^p@$)`LyP9uo3a(o&sl{_?V|BISU|H^o&?Bw@qgAsVEl{uC)fLDp-rp%>+g#AUBL4?Y%N0^=5t4@MS$0Uuewo9QY7#u<0BE>&QD z(rb>7cNRciD0Q8zF>XO$1FwQx6$KRp(G&=*As`2=fmiyif?s+B*B`$kV0}X^5GYZ= z^S{KX4LD{CU_i{mn^FiA9zeq<&{Dv2za>=dmstq4N4Wd^6awAN+(96mz?GNX^w8nY z0(ka^i&&8@TM$KtE%=}n1i^`QKp?7sXMI%eGCH#;%7{~{Q7Qyd$?KQEFan)wJXEn@kMS0Rv3ER1B_0-odJj(_jjTR6Sx z+}H>x1S|ytX#_mK)3{gDs|8d|D3eY^5s;K$=T!>4^wl^0V!N{dp5s+6fXI`Y%;r-o zDKdKH-Kh*J53uPa7x2tZ9)fxXU@_Gb%baGS5XdPS#!`cTXLSux%xn%8Rb~OHY&Z&m z$^vRS(FHuCqmz%PLyK!Xu}(Qtg+NMueHSJ0!OJf?_mHyyp3_A|u*|_)WM#&!N<4g4Rv;0-nR!hp5g0T6lHFwWL`o1WJmQu?{KV z`8%YhwmJ(~fSt+Q5J*5F5C~SY*$M3W+&%Tgci!iavjEu*-hk>9*mY6XIbE|VKtNGY zK#&Zvmw@MOFE%%Y60jgc$!d290mZ-&irPpi;2E1zU*9VQEY6iY-poWmA&^NR45PJx zXKQOJ7p4-hNK?t{x37R=ps$?!LJO?*JpJ%{fAa;-0)!5c_IDFlYw_;ZsMiTZ5>OaK zg4WHh0-m9}(s(0x0gE^H2pL}+0fj&tCD#lo;MqB(rnZs@Sj0)#bsA7WF%S@UsHhl}awuqX~qJUyxQNz!D1fo16kN?Q!?{OBOPk7ujn80K`N8u*bzOgZ~3&H@a#Mzpl1K#d==HA&n~AgF*MVRv57qup)1LttCT)VhH3|D0r5{h`c@s5FkK+0D)o!?tbQBS2zn$ zZ1@bE009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF><~EVPFFtGS%4iZUPvx5 zna!uk2VnpN2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5GYdMRhQlLRA&K-44pv} zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5;&r2_t4fTb*6BtU=w0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0>uhA3s7w644eP~0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PCk@ICvJ|u=kvL^1~j#^a3vu$VOn_#>UMzfBo)vdCw2Nf9&@+M|J8W NPe1v64?pj<{|{uX6Z-%F literal 0 HcmV?d00001 diff --git a/qml/images/extra/mermaid.png b/qml/images/extra/mermaid.png deleted file mode 100644 index 4af9b853ff49c63456ced255ec0dbce2671303f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31530 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 LNkvXXu0mjfG)`TL diff --git a/qml/images/extra/qt-arrow@3x.png b/qml/images/extra/qt-arrow@3x.png deleted file mode 100644 index 310fea27009467bb07631027513e80c8cc086773..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3655 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 Z0|573Ic4T@m2?0A002ovPDHLkV1is{@kjsw diff --git a/qml/images/extra/qt-arrow@4x.png b/qml/images/extra/qt-arrow@4x.png deleted file mode 100644 index 6fbfee37f5b88f38e4eb96e395c6adad63566050..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3968 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 G)c*hp%C6S{ diff --git a/qml/images/extra/qt-logo.png b/qml/images/extra/qt-logo.png deleted file mode 100644 index 90e6f905aeec1eaf412616c829329dde84ba2f33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2695 zcmZvedo+W1P*DwhvthTMtyl3a%`vPd*yRC8xikxMQsVv}2p z#`jC#Om5$p)N<*fa+kXZzjc1UbH4xl{&+nf&)4g9&g-1_Ij{3RuS6Rw0#rgl0t5m< ziDo8tLh^)>1=%IkE@`JHLdb{Vox|)ye8VCxQG7svcZjDCk{EQ!&&ST^l6Pcir_VVM zNJ5=x0yta~%;W=P2ZCHj;Z<7&m27iQu!UEa1Rf~zfJKq5B%)3{{D7YU$o0Ef_p{;z z_U3`GLD_Q-&k=V7S+oL%F&9D;!IQIc?SNDV%=tUuS(;C|ep_Evxkp#~5v%l%D!BI!+F|u?U21 zRXs>FiC?gOp-uq%%i(me@8yDGg1peTz@djCRo#{ZxnymbWQt1DPr{AG5Jyf& zNvXwi+oL((mKZN`gEM_myyyML_bQ|usIRb|y!$8}n;$=|lp)*?%=961R#JgReM^kf zw7!ifP^ni|On6PU`%?z5qhf{vS4-9Szq?*uSfNG8Y+eocfwHRaXQxj@Dm?A;lVnOU zIgIo2y^M9e#-s6jzBHC1!PQh0qy3(y(L8?AT|h1yaQ>>Yxvi^z`B||+7PVvS*@46W zrDN0OtG9^Nn2W1lZpQ?{>P>2)J&51X^!AA&-bYu>@GpJKw29cWh8g}76Mc1(QF3kA zHue!3l4pqvnRznDU_Dsi86D{$lVO%cX1PKL#n!D-qnym2_W(6ZV!KJPG4zu zX*`66wC6GxZt3W27f`|rwQCodpBj+oCzq&w;0XlB+0@q2=)MQQZ71g zgLC{`>!i^DQ-t~Qx4ZR!G z2cYEVcRE#gdx67UkrGXK_ufq-xF57_sNB6vfd@}cfSka7)3IE+daX&$PkL<|Oi)14 zDLa9Ak18mFfHIxmgoBv4NOQaFcG7{XU*|ZMqZb8jgt14x(%w&s^1@HZt{)4ob4e$v-rS4h zt9yrcRMu52%CyqSzk{Gq2^c7<7%(KQ<$B zOnoc}Dz+MWGgX092bS@`vyX6{8;(ZWBwN*=n}qTL zY%k-Q{%}mwe8WCYDKb9v_JCRZoE@w`@XEJJ->X!^&&AK3dZS6PCh(3_UX#uz74wA} zD^@^fK&sE28CMFZF@=^}D$>KSgxi~x=<}UL@6H`9LT*rCTf?prLQIp&IheTMAc9 zVl!AtYN`dT--#hE=DG*F4ksb;57j-G$4TW-0FnLI=HbLMIVXDIk1hd2^-6uOsBurW z-YrI5sFC{`IORCYi8dY-CGI)@^QlI`v8}-z_l}U=K+I((RHV~B-0eq*F&gKfTybK)){NG&|PwqLiuqjZYU!qNb zNplF*%<6LvGTW3(Ic28jn+w<(&!>EeESIzHc+6^@ap81@9c^#*S!~Xmi4=K>bf-+^ zYxX#@lF%ZLRhh}i;V*AcW5d-U!BhSQf9{@?hJ1oUZCC>(3cGD%(vVENn&O+AIxJsZ zfqY}ZA_O?7f~&ml_~diXecR5 z44{~3lU(n%8hnd&RnJKdM?CF{LyAkjHMm~k=cI-3DH~rQ2uI1MsszAB*@px#ISw(e zP;X%jZS(51svjpg-_V}x*xfV`rCVg+dF(-mC@)hAEHZ8gHx%OXv0oh|1o;c6?}-5* m92}hSUm&f2c`vDLX%7&B$*nl0FB>SlEI~xPl?mI(gZ3X=;^6=Q diff --git a/qml/images/extra/qt-logo@2x.png b/qml/images/extra/qt-logo@2x.png deleted file mode 100644 index 22d111ad3b44ed33fb4352a8f976530f7a66abd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5521 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 Q{ErpT(bUJ3Y1|I`FVX%1ZvX%Q diff --git a/qml/images/extra/qt-logo@3x.png b/qml/images/extra/qt-logo@3x.png deleted file mode 100644 index 627746cd648a0ea7f73db1289fb2d977d1482400..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8166 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 CR`kgL diff --git a/qml/images/extra/qt-logo@4x.png b/qml/images/extra/qt-logo@4x.png deleted file mode 100644 index dc62286d9f272d2f63d5875cea38fc2883e6eb13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11600 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 diff --git a/qml/images/extra/robot.png b/qml/images/extra/robot.png deleted file mode 100644 index 1cd46b4ead96aa71af86aec44f4ccb9c158e0381..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11028 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 diff --git a/qml/main.qml b/qml/main.qml index 9884034..eb40fa8 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -18,7 +18,7 @@ Item { Rectangle { // THE LEFT PANE WITH TOOLS AND CONTACTS - color: "#FFEEEE" + color: "#D2C0DD" Layout.fillHeight: true Layout.minimumWidth: 200 Layout.maximumWidth: 200 diff --git a/qml/main.qmlc b/qml/main.qmlc index 587d8fabd8ca99fb171e71317defe59be8c42164..4334c8ad563ab6b6247e7e86013a508872225205 100644 GIT binary patch delta 82 zcmV-Y0ImPJjJm0ojW|yZl>C1vv26Ml3q$}i07C#U07L*pvvC)H1{wYyr2qf` delta 82 zcmexh{lQwKu*@VmC9xz?l7WGNk(-sl`OeP;6Gbc(4t%>fnLSeVu;<-BHWr6A@?^4$ jg)(^Gi7&ELjVs@}Fmq$hFEMU61~&#*2;5vKUe5*q_s$(Q diff --git a/qml/widgets/Contact.qml b/qml/widgets/Contact.qml index e09e353..d07b1e1 100644 --- a/qml/widgets/Contact.qml +++ b/qml/widgets/Contact.qml @@ -10,22 +10,22 @@ RowLayout { // LOTS OF NESTING TO DEAL WITH QT WEIRDNESS, SORRY anchors.right: parent.right property alias nick: cn.text - property alias image: img.source + property alias image: imgProfile.source property string onion property string badge property bool isActive property bool isHover property bool isTrusted - property int status + property alias status: imgProfile.status Rectangle { // CONTACT ENTRY BACKGROUND COLOR id: root anchors.left: parent.left anchors.right: parent.right - height: childrenRect.height + height: childrenRect.height + 3 width: parent.width - color: isHover ? "#EEEEFF" : (isActive ? "#EEEEFF" : "#FFEEEE") + color: isHover ? "#D2D2F3" : (isActive ? "#D2D2F3" : "#D2C0DD") RowLayout { @@ -34,39 +34,8 @@ RowLayout { // LOTS OF NESTING TO DEAL WITH QT WEIRDNESS, SORRY anchors.right: parent.right - Item { // PROFILE IMAGE + ContactPicture { id: imgProfile - implicitWidth: 48 - implicitHeight: 48 - anchors.left: parent.left - - - Image { - id: img - anchors.fill: parent - fillMode: Image.PreserveAspectFit - } - - Rectangle { // PRESENCE INDICATOR - color: "#FFFFFF" - width: 8 - height: 8 - radius: 2 - anchors.right: parent.right - anchors.bottom: parent.bottom - anchors.margins: 4 - - - Rectangle { //-2:WtfCodeError,-1:Untrusted,0:Disconnected,1:Connecting,2:Connected,3:Authenticated,4:Failed,5:Killed - color: status==3?"green":(status==4?"red":(status==-1?"blue":"orange")) - width: 5 - height: 5 - radius: 2 - anchors.right: parent.right - anchors.bottom: parent.bottom - anchors.margins: 1.5 - } - } } Label { // CONTACT NAME @@ -77,6 +46,7 @@ RowLayout { // LOTS OF NESTING TO DEAL WITH QT WEIRDNESS, SORRY anchors.left: imgProfile.right font.pixelSize: 16 font.italic: !isTrusted + textFormat: Text.PlainText } Rectangle { // UNREAD MESSAGES? diff --git a/qml/widgets/Contact.qmlc b/qml/widgets/Contact.qmlc index 350de2bd26e2c122aa51ae94deda7fbae9537ef4..0738f5c8c0b8b53981e63d8a474ae6ca9504ba9e 100644 GIT binary patch delta 3411 zcmZveUrdzQ6~NCo|Cj-h!I?pZ8FX+!L}p-6Ku}m`1r>2wv0`=WKPb4>b`{*Utx4VB zgAaY6iRNyaw4uAErD>D8*-fCyCQB1HAx)F|U=!P#X4}}*H2bid^`V=#soC~-?l&{g zv}f|W_q*qud(XZ1yWhF<@bb#3x+~x4oSd4tIuREUr@}Aa`=R{kWk+Nsd%JGOZ0`Nv zr@sHmr$6ca){lSwUSHFM_tM?Zf4MoG`*X{07e+IG|7#h&CSltqkp}8}pfbn^YwOWM zTkC%#XE7=Ps11v3p#CYfiu$|@+ z3W{8S2hbA|xdTJxOb&V~XhU$F$PK8iqz?qw(}r-B$hW~20*RQj&hPv&9+KvES=w7C z@0#1rMzh|tzOD}KbYP||T^(?eiHcy*dp20%FK15XyPjWH9^YRcjUDt=AK&k({^H_g zZ;i)KDA{U$d{^V`*bxD48{4P`P+306eWtUyqKw)%t$Qdxds7N?F?WFd~<5H*ky@dd2hppS; zu0ofrd*5Z<^CF(ol4-a*t?r$!`*n0_=rgxBM9lKKuy>@ig7S%TSX4$p-{Xr=4M!jf zqtF0HLEm9?jFq0Q2sNJyIw4<8Oxw{2?K8CXR2Ad`H3v$bGe;}a-eaYR>#L8U)ktHY z9gdr~D-%xM`kjym#l6j*DER4e)$b*k_Rj?TH8rI;#karPZpHALx9<#_@2pQagLbRW ztRBYtGdhgB5PJk^$~fq$IAE%)66^H1@=XX^Q+g2*-6vhoB<$4wkvcP7)$d#56lxmB zH~}i!L6(IY@{S@jdWgSRwJE9p^?4dQE&Xa|k^RnS#^ z4KyoVGM`naofmAR6m4DA^qQ|LGL1qby#{Wil=g#JJD~ERTiIGCp>4IFHbffLJy|BHts*o^J&u`Yqp;aiCH|0S7JZ&L`p9ZRg2^m^G-bO@8r4DjMTm# z)V<(vin$TXnE6;Z+JtE7(F3wZ5z^t zz0G_QKNr&sUz9d^fQ7K;O6*u~i&Y2gK`(mb7*kWbwzpYjapJkWHZ^9uc{_C^ty}79 zv<%p^Y84c_iLSZ6Dj7S}M!T1GuiUfdtSyV9rt;eC!QR8%RO)RRD7*{XkX_h!nb#W< z{%)SSO*WY*dyXeCN0RYS7tdYVU)PoBu$_t#f_ZK3!MaE8n71~?E7eo47u9bumC=o6 zZc8q$VQoQ_K`w++neoae5~QWU&^+;IuQ!S?Sgvjf|514S^Z#C z_Sn)9YqrlKhk40|3+HzPox=;{^DoH>>|7|e{UW8>^$$u>j$!9wvdtruYS$~TC?k?< z)#ieA6xBsXiX zH&qO1!P50|Qqg<)3s79LbwSFunZ632}B#P!x&7#D{vj=U;&n3 z1s*ocihRt2Zwr4IAp?Uj22=0`EWkr}0@1WcCk(~I|xW+^@f-&O{O7vMC^!ChE^XAo`122(H(%Wxl_L6UPk2G?N){sx02q$yZ{ zCAbey;3n5XBU$(=L^C4YjTC(_22*ey-hg>nf)Bw*o|%JrSc2v3;_$XVIA*D}cCmB& zjI&w4*8z^oWx2{9j7iE-4u;lWmsjQdVrw?!#LIEI%6Yg(c>w2Ex$Y-;j+@GkboKw} z%?FvtVrSc^WA0{Z&CT{9lg#87@3+6{ZyDs%Ru0Hc##AYTwABr8WCr|Y&6~|9V@?O5wL_&xf>kA(O6(K^<(4vMf`7kI#5Uhv^c`qaqNgx4Hq18&4 zcD1&2l|hGeEe9PqV8EaQ1`Zr_b-7k;mxB%*FmTWT0|yK`a4q`#pL6$p_r1L2-LUA+ z`rmuc+2@@7arW8w-1Bn!T<=JJcxLz^=Uh#5y_-Dn$3KtOI5+r=b5HjbHuP;6-SkvX ze$(itLZNqa&**6Wc+aMup3%)cg`UkDHyrO9DU8z9(=P|F-+1!czkamj>dFfr-uTCk zzyGuEgL4xz`S&KaX0wkzG?}Hw70*Ho?H`o0RG!9e9fX>CvN!Pz{7pd>x zK+huQ{sdgDbLYWLu)EH=YoN2xE|t@jLe9hPTGVRx zEoslgCZ`R19x0XcqZD!;aaU&xh-#8@9-%I_=h31Z)#sx2^ZBhSr5yQ2a@sp~)wLbn z+0?$o-xsyL5oAh~%~zVZ=uA0ZosrzTjf;m|E>&D;{l$JPi;Fb#l}i~Hxul%Le5GAa z-6`$qPRhB9^|Z|Or1IOcq?|IprHO+zDdnt5%1PKm+H&HF=8N<7Df1BRLY%McI%bir zxR#t%Ks2A6b*?{^-_|jX#amL2;vh}Fd&ccgC5KmDET^k%ex8IUn$MoT_)QktCa=jn z)Ca@t=~`RNLz0n;I?W|Vx&K*rGio*amXz}>Y@dfZ_tuhu-rV_cd*|Ldo`!a|ws$r+ zG&StKLuq*DqPF9A(R^}VPMMcpW*jeP=@Ap-j#9_ABh`LlANfL#)0!-&q&@p! zs-0x5tjSpD`!4Fc1XRoGipxXsj?Q;2xg_Nsf+JbW^}c_!xuK!ySc4fTd2FBDPomy) z`BCzYq+ACY)BCZ#xuLDFFP0?{;-$?a2UF&&gOR-QcxM~w`hjRJyA+4RDg8K1+sH1z z2h_M`kJi3uJ~?l=o2k~-8;s-UOZ&|&VWv#Z^IppQa*jEtoq0t{#s%$)a-IuvE>O1| zYzI=->>1>lZLiZ^`)9pBPo{{6w`eCi2_$<0DBj)%?cfyX29tvJaIX_HCz=~qjW*OY z)^#jVxqUI^G0IsQMKs1;F}X7;o1VJ!DdP2(p6YTsg`OJbG?0#Gfci~?$@-~GT}MYO z+2rnmCz?<0S@(5lRN@cL~|Rjn<46yzm*F`NjVB$l@%AV=VHqJ5$$|Te8_#H1TOA2 zv#1Glo}0dZL?%bi@~`GVcll91NF!Hqt(X=`zQ*`D&^zN7pc6=+$?TMmMoGEl>u4cz z<%df^_DOz-=Ot#Y8=_A3z5+x^xi&8=sh7PUyQ>QEiX=HkAM+qveglHND`(lO`B&Z% znH)Wr&%g3p8o8Q(8D~9094|<1*D*0g*_431~ zDfcm-(pG->0|A+oNIEG-(`dDS_c{@ja>ObB-!f!J0KtY9w^^S7oP(b zvk$HxXxLR-*ReFX08Y@sCb@WT^}1=EM7pcXA{XivpCZ*uW^GijXOZ=*i|Xq`wI5S` z>!W&(r#zY54D~Gp$qXB@x(?@VgG);(vzY7n7{3kjB$3-7&tb+42M{YBC9c@CeF?5V zMmfhFeAf+snR7dqJNFIPvBJ4t0{b&iG+&;+b4N;O9;A=%(*GI|{X5+JUG}N0`w^6G zKwpvO(`>xo<$Ro5`2ot9VPK{DeL81`2;+nNLer6%J0DwL|O}q@EU&)mqvJv?y4^+ z?$kzl+1z@DkLaSGRVP1-D&5uJ>M#3N;nM7HnG*R;$hLDnt(kJk(v5nrvd(kt9h97R z^)h*t?wU)h|DI?0bE)fbgd3Fc@!%i1bWv~TXM`q{iRV_ON8sBzp3dXMm%T<0!!JEg z%$AJ*n3vn*o7;RSHjFyqcgE3cwLZ+_I9ILNQ|VsK|H-+12w8TXX8xDIjHHX5>&><9 z)V7iyR$uOa`9Ng;EspD$nSOB1^TQ=u5{oP03q{KMd}-y~@Pr~|eIB*)0eFJQ{GYV9 z8(z2j!t;xld+Yz;=P>#*WZAi#`9J6t_|m02dVh6Owai!7_!X(g`TTDDa{tSJkJFQs z3N7+ielh6R!)oe5jh;!nP$_>E{8c62m)XdVzA-s&zegzPnvKr@RN4Sv5Sjmz^S=h( znpyk*h528~n_s59q;N6+YL8+hS$1Bzl1jaEW%EMvi#%lVF7qrOJn4q~Z%3`M|Gs}- zBd@1^eU#74{$xC?gTKz*RMQ0A8~Y#kBWC=*$p)7!JKt1(4YV+M89JH$tvKK2_X$6k z#gFS(@oDUPIS?e=hQ`y?-Bw zt9_ec5 z&#e1sZfh5mU&`l4@3%cf*apTc&o2Yi+xhTQUJr}675yr{2>-?C_nDpw{Jrq^M(>+m z&u@%&$-dxTg8!1c>I*hM$@$v{e_zS^Q`3dbPqqBbCq_(?rSs#s!apobo;+mh^>SjM zr~Pv#{@zpZWo)-|@lBp@{_W{kQNF=PUZ1;Nk6FesePo&KS2jxk`9a?wMn`CA=gZ~! zu#ZNE;U8uXAu3(Zxqj8X3jft;zHC3H?;WE<@a??3biD_A2jLHv%y+iLUq|5!B8!&? zZE)@f;TT{%XVz>n=1o3EzG{ zu=!5L?-=~ClJ6(=TbR9b`PcT39M!}mS$1x|C#tPmpuBSb+IhtRjaQrDTP4t8Zl7YG zovZmZ20whqgtN$x;oJG+OX>!HS?JEX*BNk6d=5Mi@pBRXXWTEszZmV$_xk!wbWY&h z>y+PzZ|C;|t2yrj7r+&81Kb8(Yn;Qux4=#W! z;B#;Td;`7%x4{aMcrVC<8Sojn4!#1nKnt6cF0d9H1vB7t@Fn;Ld7yx;21zZQ;fOZn&7H|n%2Va3(pst5{FbIANJ_Fx^A3zJ6kuBgT zxB_l~x(&zxm%wM>J8&DcY{X9RCCHQXu7g1qcOF~-SHKPM75En10zZHjUf3(ZTCf95 zfGeQu8S20eFaV4m3ytruds5};$$>H z>#X{9>=h^ZZEl7UCmCnjw^aTs?LWKSI(9L`^efPF-0Kj2?=9~)0PkJKKI=6Lirmj_ zJ2lhPO>(OK3Yg%n{4O>XsBMIQ0M0w?42!+PIqERlj$rvDa)Y+a3+*T9Im&pV#h~EM zGujzH-ZUD@${a1!FIUn!oTbW&6O5}7+N<_Ywhr=7B|NS7&j|9QmppVn(o1<`99xHx zRN%QbDxcsk%7AG!Jd2Jav`~BL9kdU69;bIc>fZo=oE}?gJ;T#EKWgxk>UYyyb!TWN zl3!InNKNp5fw4^P3?t9@`r!W%P4f2%@2_B|;$$+iNBWL2zIkp5<@x=dY#r=*hu(R{ z8>4S^zb9LV{v&8J0c2zK{>j$Co;}DeM8E7bF^1;n1iK;GIZ8=!bzf9JMM>*voIZ!S zn%;_M^-J=1C;Xy$+>@Ah#YGr{b%s-IB{j`SN_pTKaTeDNHehYyx+^028zQ# zE!>JLaCQr=i+5FRUg{?JD=yx4-g*)~Y-f{3%~0Wk?TwSIjRb%_wQsRWdt=c~!h9)(d1+y*-A} zMe!zy!8bechhkL`s_Ys1$(rrayq}CX`dw{)J1X@mjweaM^FdO&@ydIJd?86YiC9IP z>0LcvRO%JhXV^EKVyy7)QA=CTS_fJMimn1r)z?9?br@gc9rV2q@f2nvcsu;2R^6|& zdu#usaSt%AW_X6|pr>hcm8QxhvZy=Nyj2?|{C{83j!GUo==~Jly6gp0$qjZ@A1(YJ zk>rP!esb1(U*B=n{Ww?euy0U*iz(%)Vz#g-3wdp%Y;Dk#b0@tA&!S;5hE_*=H0d4o zJ!{ynz0Yqljs9;OevV%%iu@esug_8!_IAbk(teGMR=)F5&m1$L-B2Nxa4~wi=>IpW zx_)aJ<2=8~+#4;mC$@c9(C>T&&E&lhFSGS4*Q9iR7{(k$hIadAHD8d>J}`T{a=*&n zQ}@i?;(j)0wv4aeCm7%6yEq$RzkGsNu{@x7TTWIBf7-tU3iT=*FVwej)6Ooe{xd$G zZ^aAx>QDr};3GNgD^K`#ism3!y-aQ$b;|#W8j-e|V(EbxE8>;0eJ zYj30LdT_?;pttiW{?_9c>GT#Hd1soMX=+BeYhM@Et$LnjgbD6pcOG)ST8A8^cvk;) cQM=&ZxBUo;K-V=edQndU-$Fie`&0jxBvhE diff --git a/qml/widgets/ContactList.qmlc b/qml/widgets/ContactList.qmlc index a6ddbab0719c9e2b19f00dcfd64b9caca4c8d9fb..56ab3a45dda830aabfe91c366c0097d07cd248e6 100644 GIT binary patch delta 43 zcmV+`0M!4)GsH8HOdwp>_^>4F>qB!NNC3<|Bb#0x%2b97aE0MacrMSouN|>$SQ)s! B6MO&w delta 43 zcmV+`0M!4)GsH8HOdz`mg}WL2tpC1e6MP`t3Rn0nl)7XL!aszTO73@=x^yg(9W^f?WtS diff --git a/qml/widgets/MyProfile.qml b/qml/widgets/MyProfile.qml index 9c59b79..912cad3 100644 --- a/qml/widgets/MyProfile.qml +++ b/qml/widgets/MyProfile.qml @@ -23,12 +23,74 @@ ColumnLayout { implicitHeight: 96 anchors.horizontalCenter: parent.horizontalCenter + Rectangle { // WHITE CIRCLE BORDER + width: 96 + height: 96 + color: "#FFFFFF" + radius: width / 2 - Image { - id: imgProfileImg - anchors.fill: parent - fillMode: Image.PreserveAspectFit - source: "qrc:/qml/images/extra/robot.png" + Image { // ACTUAL IMAGE + id: imgProfileImg + anchors.fill: parent + fillMode: Image.PreserveAspectFit + visible: false + } + + Image { // INNER CIRCLE MASK + id: mask + fillMode: Image.PreserveAspectFit + visible: false + source: "qrc:/qml/images/extra/clipcircle.png" + } + + OpacityMask { // WE PUT IT ALL TOGETHER ANNND + anchors.fill: imgProfileImg + source: imgProfileImg + maskSource: mask + } + + + Rectangle { // TOR STATUS INDICATOR + color: "#FFFFFF" + width: 12 + height: 12 + radius: 3 + anchors.right: parent.right + anchors.bottom: parent.bottom + anchors.margins: 8 + + + Rectangle { //0: no tor, 1: progress 0%, 2: progress 1-99%, 3: DONE + id: rectTorStatus + color: code == 3 ? "green": code == 2 ? "orange" : code == 1 ? "yellow" : "red" + width: 8 + height: 8 + radius: 2 + anchors.right: parent.right + anchors.bottom: parent.bottom + anchors.margins: 2 + + property int code + property string message + property bool hovered + + + MouseArea { + anchors.fill: parent + hoverEnabled: true + + onEntered: rectTorStatus.hovered = true + + onExited: rectTorStatus.hovered = false + } + + + ToolTip.visible: hovered + ToolTip.delay: 400 + ToolTip.timeout: 5000 + ToolTip.text: message + } + } } } @@ -38,7 +100,6 @@ ColumnLayout { width: parent.width onUpdated: { - console.log("sending updatenick ["+nick+"]") gcd.updateNick(lblNick.text) } } @@ -136,5 +197,10 @@ ColumnLayout { onion = _onion image = _image } + + onTorStatus: function(code, str) { + rectTorStatus.code = code + rectTorStatus.message = str + } } } \ No newline at end of file diff --git a/qml/widgets/MyProfile.qmlc b/qml/widgets/MyProfile.qmlc index 3f513073828a4739d3db6b86c0a6b5d523ac53f9..7956d2eb5f8e4525ac57f72cc8c141bc45920d52 100644 GIT binary patch literal 17940 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 literal 12300 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