diff options
Diffstat (limited to 'lib/dirstore.go')
-rw-r--r-- | lib/dirstore.go | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/dirstore.go b/lib/dirstore.go index bbf4e20b..8749fb09 100644 --- a/lib/dirstore.go +++ b/lib/dirstore.go @@ -1,10 +1,14 @@ package lib -import "git.sr.ht/~rjarry/aerc/models" +import ( + "git.sr.ht/~rjarry/aerc/lib/sort" + "git.sr.ht/~rjarry/aerc/models" +) type DirStore struct { dirs map[string]*models.Directory msgStores map[string]*MessageStore + order []string } func NewDirStore() *DirStore { @@ -19,6 +23,7 @@ func (store *DirStore) List() []string { for dir := range store.msgStores { dirs = append(dirs, dir) } + sort.SortStringBy(dirs, store.order) return dirs } @@ -28,6 +33,10 @@ func (store *DirStore) MessageStore(dirname string) (*MessageStore, bool) { } func (store *DirStore) SetMessageStore(dir *models.Directory, msgStore *MessageStore) { + s := dir.Name + if _, ok := store.dirs[s]; !ok { + store.order = append(store.order, s) + } store.dirs[dir.Name] = dir store.msgStores[dir.Name] = msgStore } |