aboutsummaryrefslogtreecommitdiffstats
path: root/termui/termui.go
diff options
context:
space:
mode:
Diffstat (limited to 'termui/termui.go')
-rw-r--r--termui/termui.go26
1 files changed, 20 insertions, 6 deletions
diff --git a/termui/termui.go b/termui/termui.go
index 0d3bc56e..a2a1a835 100644
--- a/termui/termui.go
+++ b/termui/termui.go
@@ -56,7 +56,7 @@ func Run(repo repository.Repo) error {
ui.activeWindow = ui.bugTable
- initGui()
+ initGui(nil)
err := <-ui.gError
@@ -67,7 +67,7 @@ func Run(repo repository.Repo) error {
return nil
}
-func initGui() {
+func initGui(action func(ui *termUI) error) {
g, err := gocui.NewGui(gocui.OutputNormal)
if err != nil {
@@ -88,6 +88,16 @@ func initGui() {
return
}
+ if action != nil {
+ err = action(ui)
+ if err != nil {
+ ui.g.Close()
+ ui.g = nil
+ ui.gError <- err
+ return
+ }
+ }
+
err = g.MainLoop()
if err != nil && err != errTerminateMainloop {
@@ -166,16 +176,20 @@ func newBugWithEditor(repo cache.RepoCacher) error {
return err
}
+ var b cache.BugCacher
if err == input.ErrEmptyTitle {
ui.msgPopup.Activate(msgPopupErrorTitle, "Empty title, aborting.")
} else {
- _, err := repo.NewBug(title, message)
+ b, err = repo.NewBug(title, message)
if err != nil {
return err
}
}
- initGui()
+ initGui(func(ui *termUI) error {
+ ui.showBug.SetBug(b)
+ return ui.activateWindow(ui.showBug)
+ })
return errTerminateMainloop
}
@@ -208,7 +222,7 @@ func addCommentWithEditor(bug cache.BugCacher) error {
}
}
- initGui()
+ initGui(nil)
return errTerminateMainloop
}
@@ -241,7 +255,7 @@ func setTitleWithEditor(bug cache.BugCacher) error {
}
}
- initGui()
+ initGui(nil)
return errTerminateMainloop
}