diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-04-26 20:05:24 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-04-27 08:24:22 +0200 |
commit | 3e8cf39903775ecb6b8ebe03d43591453fe3c7d8 (patch) | |
tree | d62408b62529d0e18a19866d540c1c87cfa957c1 /ui/confview.go | |
parent | installer: new checksums for working msm (diff) | |
download | wireguard-windows-3e8cf39903775ecb6b8ebe03d43591453fe3c7d8.tar.xz wireguard-windows-3e8cf39903775ecb6b8ebe03d43591453fe3c7d8.zip |
ui: simplify everything
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to '')
-rw-r--r-- | ui/confview.go | 55 |
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) } |