private void InitMainMenu() { List <NotebookMenuItem> items = new List <NotebookMenuItem>(); foreach (Notebook notebook in Hub.Instance.Storage.GetNotebooks()) { var item = new NotebookMenuItem(notebook); NotebookMenuItems.Add(item); items.Add(item); } items.Sort((x, y) => string.Compare(x.Name, y.Name, StringComparison.Ordinal)); MenuContext = new NotebookMenuViewModel { Notebooks = new ObservableCollection <NotebookMenuItem>(items), SelectedItemChangedCommand = new SimpleCommand(SelectedNoteContainerChanged), RenameItemCommand = new SimpleCommand(RenameItem), DeleteItemCommand = new SimpleCommand(DeleteItem), AddNotebookCommand = new SimpleCommand(CreateNotebook), EmptyTrashCommand = new SimpleCommand(EmptyTrash), PasteNoteCommand = new SimpleCommand(PasteNote) }; if (!Hub.Instance.EncryptionManager.SecureNotesEnabled && items.Any()) { MenuContext.SelectedNotebook = items[0]; MenuContext.SelectedNotebook.IsSelected = true; } BindingOperations.EnableCollectionSynchronization(MenuContext.Notebooks, _mainMenuListLockObject); }
private void SearchResultSelected(object obj) { NoteViewModel model = obj as NoteViewModel; if (model != null) { var nb = NotebookMenuItems.FirstOrDefault(n => n.Notebook == model.Notebook); if (nb != null) { SelectedNoteContainerChanged(nb, model); CloseSearch(); } } }
private void DeleteCurrentNoteBook() { if (MenuContext.SelectedNotebook != null) { var notes = Hub.Instance.Storage.GetNotes(MenuContext.SelectedNotebook.Notebook); if (!notes.Any()) { var settings = DialogHelpers.GetDefaultDialogSettings(); if (MenuContext.Notebooks.Count == 1) { MainWindowInstance.ShowMessageAsync("Delete", "You can't delete the last notebook, rename it if the name is wrong.", MessageDialogStyle.Affirmative, settings); return; } MainWindowInstance.ShowMessageAsync("Delete", $"Do you want to delete the notebook {MenuContext.SelectedNotebook.Name}?", MessageDialogStyle.AffirmativeAndNegative, settings).ContinueWith(delegate(Task <MessageDialogResult> task) { if (task.Result == MessageDialogResult.Affirmative) { InvokeOnCurrentDispatcher(() => { int index = MenuContext.Notebooks.IndexOf(MenuContext.SelectedNotebook); if (index >= MenuContext.Notebooks.Count - 1) { index--; } MenuContext.SelectedNotebook.Notebook.Delete(); if (MenuContext.Notebooks.Contains(MenuContext.SelectedNotebook)) { MenuContext.Notebooks.Remove(MenuContext.SelectedNotebook); } if (NotebookMenuItems.Contains(MenuContext.SelectedNotebook)) { NotebookMenuItems.Remove(MenuContext.SelectedNotebook); } MenuContext.SelectedNotebook = MenuContext.Notebooks[index]; }); } }); } else { MainWindowInstance.ShowMessageAsync("Delete", "You can't delete a notebook that contains notes."); } } }