Add ability to remove all bookmarks

pull/13/head
Indra 2019-07-13 13:20:38 +02:00
parent 90c3a72f1d
commit 71554ddc4e
1 changed files with 27 additions and 5 deletions

View File

@ -45,6 +45,7 @@ var (
type bookmark struct { type bookmark struct {
Address string `json:"address"` Address string `json:"address"`
Password string `json:"password"` Password string `json:"password"`
Action *walk.Action `json:"-"`
} }
func init() { func init() {
@ -232,8 +233,10 @@ func runGraphicalUi() (err error) {
bookmarksMenu, _ = walk.NewMenu() bookmarksMenu, _ = walk.NewMenu()
// Add for every bookmark a menu action // Add for every bookmark a menu action
for _, bookmark := range bookmarks { for i, bookmark := range bookmarks {
item := createBookmarkItem(bookmark.Address) item := createBookmarkItem(bookmark.Address)
bookmarks[i].Action = item
bookmarksMenu.Actions().Add(item) bookmarksMenu.Actions().Add(item)
} }
@ -252,16 +255,35 @@ func runGraphicalUi() (err error) {
// Add bookmark if not empty addr // Add bookmark if not empty addr
if result && len(addr) > 0 { if result && len(addr) > 0 {
bookmarks = append(bookmarks, bookmark{addr, pw})
item := createBookmarkItem(addr) item := createBookmarkItem(addr)
bookmarks = append(bookmarks, bookmark{addr, pw, item})
// Add before "add bookmark" action // Add before "add bookmark" action
bookmarksMenu.Actions().Insert((bookmarksMenu.Actions().Len() - 1), item) bookmarksMenu.Actions().Insert((bookmarksMenu.Actions().Len() - 2), item)
// Save bookmarks to file // Save bookmarks to file
saveBookmarks() saveBookmarks()
} }
}) })
removeBookmarksAction := walk.NewAction()
if err = removeBookmarksAction.SetText("Remove all"); err != nil {
return
}
removeBookmarksAction.Triggered().Attach(func() {
for _, bookmark := range bookmarks {
bookmarksMenu.Actions().Remove(bookmark.Action)
}
// Clear bookmarks in memory
bookmarks = bookmarks[:0]
// Update in file
saveBookmarks()
})
bookmarksMenu.Actions().Add(addBookmarkAction) bookmarksMenu.Actions().Add(addBookmarkAction)
bookmarksMenu.Actions().Add(removeBookmarksAction)
// Bookmarks menu // Bookmarks menu
bookmarksAction, _ := dlg.Menu().Actions().AddMenu(bookmarksMenu) bookmarksAction, _ := dlg.Menu().Actions().AddMenu(bookmarksMenu)