Fix crashes when operating on empty folder ()

This commit is contained in:
Daniel Bridges 2019-07-09 17:04:21 -07:00 committed by Drew DeVault
commit 217e85a55d
11 changed files with 45 additions and 15 deletions

View file

@ -1,6 +1,7 @@
package widgets
import (
"errors"
"fmt"
"log"
@ -170,8 +171,11 @@ func (acct *AccountView) SelectedAccount() *AccountView {
return acct
}
func (acct *AccountView) SelectedMessage() *models.MessageInfo {
return acct.msglist.Selected()
func (acct *AccountView) SelectedMessage() (*models.MessageInfo, error) {
if len(acct.msglist.Store().Uids) == 0 {
return nil, errors.New("no message selected")
}
return acct.msglist.Selected(), nil
}
func (acct *AccountView) SelectedMessagePart() *PartInfo {

View file

@ -2,6 +2,7 @@ package widgets
import (
"bufio"
"errors"
"fmt"
"io"
"os/exec"
@ -211,8 +212,11 @@ func (mv *MessageViewer) SelectedAccount() *AccountView {
return mv.acct
}
func (mv *MessageViewer) SelectedMessage() *models.MessageInfo {
return mv.msg
func (mv *MessageViewer) SelectedMessage() (*models.MessageInfo, error) {
if mv.msg == nil {
return nil, errors.New("no message selected")
}
return mv.msg, nil
}
func (mv *MessageViewer) ToggleHeaders() {

View file

@ -17,6 +17,6 @@ type ProvidesMessage interface {
ui.Drawable
Store() *lib.MessageStore
SelectedAccount() *AccountView
SelectedMessage() *models.MessageInfo
SelectedMessage() (*models.MessageInfo, error)
SelectedMessagePart() *PartInfo
}