private void NonFictionDetailsWindowClosed(object sender, EventArgs e) { NonFictionDetailsWindowViewModel nonFictionDetailsWindowViewModel = sender as NonFictionDetailsWindowViewModel; nonFictionDetailsWindowViewModel.SelectDownloadRequested -= SelectDownloadRequested; nonFictionDetailsWindowViewModel.WindowClosed -= NonFictionDetailsWindowClosed; }
private void OpenNonFictionDetailsRequested(object sender, OpenNonFictionDetailsEventArgs e) { Logger.Debug($"Opening non-fiction book with ID = {e.NonFictionBook.Id}, Libgen ID = {e.NonFictionBook.LibgenId}."); SearchSettings.DetailsMode openDetailsMode = MainModel.AppSettings.Search.OpenDetailsMode; if (openDetailsMode == SearchSettings.DetailsMode.NEW_TAB) { NonFictionDetailsTabViewModel nonFictionDetailsTabViewModel = new NonFictionDetailsTabViewModel(MainModel, CurrentWindowContext, e.NonFictionBook, isInModalWindow: false); nonFictionDetailsTabViewModel.SelectDownloadRequested += SelectDownloadRequested; nonFictionDetailsTabViewModel.CloseTabRequested += NonFictionDetailsCloseTabRequested; TabViewModels.Add(nonFictionDetailsTabViewModel); SelectedTabViewModel = nonFictionDetailsTabViewModel; } else { bool modalWindow = openDetailsMode == SearchSettings.DetailsMode.NEW_MODAL_WINDOW; NonFictionDetailsWindowViewModel detailsWindowViewModel = new NonFictionDetailsWindowViewModel(MainModel, e.NonFictionBook, modalWindow); detailsWindowViewModel.SelectDownloadRequested += SelectDownloadRequested; IWindowContext detailsWindowContext = WindowManager.CreateWindow(RegisteredWindows.WindowKey.NON_FICTION_DETAILS_WINDOW, detailsWindowViewModel, CurrentWindowContext); NonFictionDetailsWindowSettings detailsWindowSettings = MainModel.AppSettings.NonFiction.DetailsWindow; if (modalWindow) { detailsWindowContext.ShowDialog(detailsWindowSettings.Width, detailsWindowSettings.Height); detailsWindowViewModel.SelectDownloadRequested -= SelectDownloadRequested; } else { detailsWindowViewModel.WindowClosed += NonFictionDetailsWindowClosed; detailsWindowContext.Show(detailsWindowSettings.Width, detailsWindowSettings.Height); } } }