mirror of https://github.com/zlatinb/muwire
Show trust status in View Profile and enable only relevant buttons. GitHub issue #152
parent
8802e70226
commit
9314f9c7e3
|
@ -7,6 +7,8 @@ import com.muwire.core.profile.MWProfileFetchEvent
|
|||
import com.muwire.core.profile.MWProfileFetchStatus
|
||||
import com.muwire.core.profile.MWProfileHeader
|
||||
import com.muwire.core.profile.UIProfileFetchEvent
|
||||
import com.muwire.core.trust.TrustEvent
|
||||
import com.muwire.core.trust.TrustLevel
|
||||
import com.muwire.gui.HTMLSanitizer
|
||||
import griffon.core.artifact.GriffonModel
|
||||
import griffon.inject.MVCMember
|
||||
|
@ -29,6 +31,8 @@ class ViewProfileModel {
|
|||
@Observable MWProfileFetchStatus status
|
||||
MWProfile profile
|
||||
|
||||
@Observable TrustLevel trustLevel
|
||||
|
||||
private boolean registered
|
||||
|
||||
void mvcGroupInit(Map<String, String> args) {
|
||||
|
@ -36,6 +40,9 @@ class ViewProfileModel {
|
|||
profileHeader = profile.getHeader()
|
||||
if (profileHeader != null)
|
||||
profileTitle = HTMLSanitizer.sanitize(profileHeader.getTitle())
|
||||
|
||||
setTrustLevel(core.getTrustService().getLevel(persona.getDestination()))
|
||||
core.getEventBus().register(TrustEvent.class, this)
|
||||
}
|
||||
|
||||
boolean fetchEnabled() {
|
||||
|
@ -54,6 +61,7 @@ class ViewProfileModel {
|
|||
}
|
||||
|
||||
void mvcGroupDestroy() {
|
||||
core.getEventBus().unregister(TrustEvent.class, this)
|
||||
if (registered)
|
||||
core.getEventBus().unregister(MWProfileFetchEvent.class, this)
|
||||
}
|
||||
|
@ -70,4 +78,12 @@ class ViewProfileModel {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
void onTrustEvent(TrustEvent event) {
|
||||
if (event.persona != persona)
|
||||
return
|
||||
runInsideUIAsync {
|
||||
trustLevel = event.level
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.muwire.gui.profile
|
|||
|
||||
import com.muwire.core.profile.MWProfile
|
||||
import com.muwire.core.profile.MWProfileFetchStatus
|
||||
import com.muwire.core.trust.TrustLevel
|
||||
import com.muwire.gui.HTMLSanitizer
|
||||
|
||||
import javax.imageio.ImageIO
|
||||
|
@ -104,16 +105,23 @@ class ViewProfileView {
|
|||
panel(constraints: BorderLayout.SOUTH) {
|
||||
gridLayout(rows:1, cols: 4)
|
||||
panel {
|
||||
label(text : bind { model.status == null ? "" : trans(model.status.name())})
|
||||
borderLayout()
|
||||
panel(constraints: BorderLayout.WEST) {
|
||||
label(text: trans("YOUR_TRUST") + " : ")
|
||||
label(text: bind {trans(model.trustLevel.name())})
|
||||
}
|
||||
panel(constraints: BorderLayout.EAST) {
|
||||
label(text: bind { model.status == null ? "" : trans(model.status.name()) })
|
||||
}
|
||||
}
|
||||
panel {
|
||||
button(text: trans("COPY_FULL_ID"), copyFullAction)
|
||||
}
|
||||
panel {
|
||||
button(text: trans("ADD_CONTACT"), toolTipText: trans("TOOLTIP_PROFILE_VIEWER_ADD_CONTACT"),
|
||||
addContactAction)
|
||||
enabled: bind {model.trustLevel != TrustLevel.TRUSTED}, addContactAction)
|
||||
button(text: trans("PROFILE_VIEWER_BLOCK"), toolTipText: trans("TOOLTIP_PROFILE_VIEWER_BLOCK"),
|
||||
blockAction)
|
||||
enabled: bind {model.trustLevel != TrustLevel.DISTRUSTED}, blockAction)
|
||||
}
|
||||
panel {
|
||||
button(text : trans("CLOSE"), closeAction)
|
||||
|
|
Loading…
Reference in New Issue