aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/ui/confview.go
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-04-26 20:05:24 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2019-04-27 08:24:22 +0200
commit3e8cf39903775ecb6b8ebe03d43591453fe3c7d8 (patch)
treed62408b62529d0e18a19866d540c1c87cfa957c1 /ui/confview.go
parentinstaller: new checksums for working msm (diff)
downloadwireguard-windows-3e8cf39903775ecb6b8ebe03d43591453fe3c7d8.tar.xz
wireguard-windows-3e8cf39903775ecb6b8ebe03d43591453fe3c7d8.zip
ui: simplify everything
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'ui/confview.go')
-rw-r--r--ui/confview.go55
1 files changed, 14 insertions, 41 deletions
diff --git a/ui/confview.go b/ui/confview.go
index aa939945..5dd5c626 100644
--- a/ui/confview.go
+++ b/ui/confview.go
@@ -31,7 +31,6 @@ type labelStatusLine struct {
statusComposite *walk.Composite
statusImage *walk.ImageView
statusLabel *walk.TextLabel
- imageProvider *TunnelStatusImageProvider
}
type labelTextLine struct {
@@ -40,9 +39,8 @@ type labelTextLine struct {
}
type toggleActiveLine struct {
- composite *walk.Composite
- button *walk.PushButton
- tunnelTracker *TunnelTracker
+ composite *walk.Composite
+ button *walk.PushButton
}
type interfaceView struct {
@@ -77,20 +75,15 @@ type ConfView struct {
tunnel *service.Tunnel
}
-func (lsl *labelStatusLine) Dispose() {
- if lsl.imageProvider != nil {
- lsl.imageProvider.Dispose()
- lsl.imageProvider = nil
- }
-}
-
func (lsl *labelStatusLine) widgets() (walk.Widget, walk.Widget) {
return lsl.label, lsl.statusComposite
}
func (lsl *labelStatusLine) update(state service.TunnelState) {
- img, _ := lsl.imageProvider.ImageForState(state, walk.Size{statusImageSize, statusImageSize})
- lsl.statusImage.SetImage(img)
+ img, err := iconProvider.ImageForState(state, walk.Size{statusImageSize, statusImageSize})
+ if err == nil {
+ lsl.statusImage.SetImage(img)
+ }
switch state {
case service.TunnelStarted:
@@ -109,7 +102,6 @@ func (lsl *labelStatusLine) update(state service.TunnelState) {
func newLabelStatusLine(parent walk.Container) *labelStatusLine {
lsl := new(labelStatusLine)
- parent.AddDisposable(lsl)
lsl.label, _ = walk.NewTextLabel(parent)
lsl.label.SetText("Status:")
@@ -120,7 +112,6 @@ func newLabelStatusLine(parent walk.Container) *labelStatusLine {
layout.SetMargins(walk.Margins{})
lsl.statusComposite.SetLayout(layout)
- lsl.imageProvider, _ = NewTunnelStatusImageProvider()
lsl.statusImage, _ = walk.NewImageView(lsl.statusComposite)
lsl.statusLabel, _ = walk.NewTextLabel(lsl.statusComposite)
lsl.statusLabel.SetTextAlignment(walk.AlignHNearVCenter)
@@ -192,10 +183,6 @@ func (tal *toggleActiveLine) update(state service.TunnelState) {
enabled, text = false, ""
}
- if tt := tal.tunnelTracker; tt != nil && tt.InTransition() {
- enabled = false
- }
-
tal.button.SetEnabled(enabled)
tal.button.SetText(text)
tal.button.SetVisible(state != service.TunnelUnknown)
@@ -416,32 +403,18 @@ func (cv *ConfView) Dispose() {
cv.ScrollView.Dispose()
}
-func (cv *ConfView) TunnelTracker() *TunnelTracker {
- return cv.interfaze.toggleActive.tunnelTracker
-}
-
-func (cv *ConfView) SetTunnelTracker(tunnelTracker *TunnelTracker) {
- cv.interfaze.toggleActive.tunnelTracker = tunnelTracker
-}
-
func (cv *ConfView) onToggleActiveClicked() {
cv.interfaze.toggleActive.button.SetEnabled(false)
-
- var title string
- var err error
- tt := cv.TunnelTracker()
- if activeTunnel := tt.ActiveTunnel(); activeTunnel != nil && activeTunnel.Name == cv.tunnel.Name {
- title = "Failed to deactivate tunnel"
- err = tt.DeactivateTunnel()
- } else {
- title = "Failed to activate tunnel"
- err = tt.ActivateTunnel(cv.tunnel)
- }
+ oldState, err := cv.tunnel.Toggle()
if err != nil {
- walk.MsgBox(cv.Form(), title, err.Error(), walk.MsgBoxIconError)
- return
+ if oldState == service.TunnelUnknown {
+ walk.MsgBox(cv.Form(), "Failed to determine tunnel state", err.Error(), walk.MsgBoxIconError)
+ } else if oldState == service.TunnelStopped {
+ walk.MsgBox(cv.Form(), "Failed to activate tunnel", err.Error(), walk.MsgBoxIconError)
+ } else if oldState == service.TunnelStarted {
+ walk.MsgBox(cv.Form(), "Failed to deactivate tunnel", err.Error(), walk.MsgBoxIconError)
+ }
}
-
cv.SetTunnel(cv.tunnel)
}