morpheus

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

commit 2de791fda69003f0f7d548b07f5706ff3b5211a1
parent 0fdb649847b3becf4eb8e3f928c6ef51f0f80984
Author: MTRNord <mtrnord1@gmail.com>
Date:   Thu, 24 Aug 2017 18:01:00 +0200

Add temporary Logout button

Diffstat:
Muis.go | 47+++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+), 0 deletions(-)

diff --git a/uis.go b/uis.go @@ -179,6 +179,53 @@ func newMainUI(windowWidth, windowHeight int, cli *matrix.Client) *widgets.QWidg wrapperLayout.AddWidget(messageScroll, 0, 1, 0) + // logoutButton //TODO move it to correct place + buttonWidget := widgets.NewQWidget(nil, 0) + buttonLayout := widgets.NewQVBoxLayout() + + logoutButton := widgets.NewQPushButton2("LOGOUT", nil) + logoutButton.SetMinimumSize2(350, 65) + + buttonLayout.AddStretch(1) + buttonLayout.AddWidget(logoutButton, 0, 0) + buttonLayout.AddStretch(1) + + buttonWidget.SetLayout(buttonLayout) + wrapperLayout.AddWidget(buttonWidget, 1, 0, core.Qt__AlignBottom) + + logoutButton.ConnectClicked(func(checked bool) { + //TODO register enter and show loader or so + localLog.Println("Starting Logout Sequenze in background") + var wg sync.WaitGroup + results := make(chan bool) + + wg.Add(1) + go func(cli *matrix.Client, localLog *log.Logger, results chan<- bool) { + defer wg.Done() + _, err := cli.Logout() + if err != nil { + localLog.Println(err) + results <- false + } else { + cli.ClearCredentials() + results <- true + } + }(cli, 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 { + if result { + LoginUI := NewLoginUI(windowWidth, windowHeight) + window.SetCentralWidget(LoginUI) + } + } + }) + wrapperLayout.SetColumnMinimumWidth(0, windowWidth/3) wrapperLayout.SetColumnMinimumWidth(1, (windowWidth/3)*2) wrapperLayout.SetRowMinimumHeight(0, windowHeight)