morpheus

A Matrix client written in Go-QT
git clone git://archive.git.mtrnord.blog/Nordgedanken/morpheus.git
Log | Files | Refs | README | LICENSE

commit 710a7a9c008e628170372ce4c5eab910deff8b4d
parent ddeed56700fda632ea00be2aeb70a21207e8f53e
Author: MTRNord <mtrnord1@gmail.com>
Date:   Wed, 23 Aug 2017 15:18:32 +0200

Avoid crash on empty Username or Password

Diffstat:
Muis.go | 54+++++++++++++++++++++++++++++-------------------------
1 file changed, 29 insertions(+), 25 deletions(-)

diff --git a/uis.go b/uis.go @@ -92,33 +92,37 @@ func NewLoginUI(windowWidth, windowHeight int) *widgets.QWidget { loginButton.ConnectClicked(func(checked bool) { //TODO register enter and show loader or so - localLog.Println("Starting Login Sequenze in background") - var wg sync.WaitGroup - results := make(chan *matrix.Client) - - wg.Add(1) - go func(username, password string, localLog *log.Logger, results chan<- *matrix.Client) { - defer wg.Done() - cli, err := matrix.LoginUser(username, password) - if err != nil { - localLog.Println(err) + if username != "" && password != "" { + localLog.Println("Starting Login Sequenze in background") + var wg sync.WaitGroup + results := make(chan *matrix.Client) + + wg.Add(1) + go func(username, password string, localLog *log.Logger, results chan<- *matrix.Client) { + defer wg.Done() + cli, err := matrix.LoginUser(username, password) + if err != nil { + localLog.Println(err) + } + + results <- cli + + }(username, password, localLog, results) + + go func() { + wg.Wait() // wait for each execTask to return + close(results) // then close the results channel + }() + + //Show MainUI + for result := range results { + //TODO Don't switch screen on wrong login data. + MainUI := NewMainUI(windowWidth, windowHeight, result) + window.SetCentralWidget(MainUI) } - - results <- cli - - }(username, password, localLog, results) - - go func() { - wg.Wait() // wait for each execTask to return - close(results) // then close the results channel - }() - - //Show MainUI - for result := range results { - MainUI := NewMainUI(windowWidth, windowHeight, result) - window.SetCentralWidget(MainUI) + } else { + localLog.Println("Username and/or password is empty. Do Nothing.") } - }) widget.SetWindowTitle("Neo - Login")