示例#1
0
        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);
        }
示例#2
0
        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();
                }
            }
        }
示例#3
0
        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.");
                }
            }
        }