private void OpenFictionDetailsRequested(object sender, FictionSearchResultsTabViewModel.OpenFictionDetailsEventArgs e) { Logger.Debug($"Opening fiction book with ID = {e.FictionBook.Id}, Libgen ID = {e.FictionBook.LibgenId}."); SearchSettings.DetailsMode openDetailsMode = mainModel.AppSettings.Search.OpenDetailsMode; if (openDetailsMode == SearchSettings.DetailsMode.NEW_TAB) { FictionDetailsTabViewModel fictionDetailsTabViewModel = new FictionDetailsTabViewModel(mainModel, CurrentWindowContext, e.FictionBook, isInModalWindow: false); fictionDetailsTabViewModel.CloseTabRequested += FictionDetailsCloseTabRequested; TabViewModels.Add(fictionDetailsTabViewModel); SelectedTabViewModel = fictionDetailsTabViewModel; } else { bool modalWindow = openDetailsMode == SearchSettings.DetailsMode.NEW_MODAL_WINDOW; FictionDetailsWindowViewModel detailsWindowViewModel = new FictionDetailsWindowViewModel(mainModel, e.FictionBook, modalWindow); IWindowContext detailsWindowContext = WindowManager.CreateWindow(RegisteredWindows.WindowKey.FICTION_DETAILS_WINDOW, detailsWindowViewModel, CurrentWindowContext); FictionDetailsWindowSettings detailsWindowSettings = mainModel.AppSettings.Fiction.DetailsWindow; if (modalWindow) { detailsWindowContext.ShowDialog(detailsWindowSettings.Width, detailsWindowSettings.Height); } else { detailsWindowContext.Show(detailsWindowSettings.Width, detailsWindowSettings.Height); } } }
public FictionDetailsWindowViewModel(MainModel mainModel, FictionBook book, bool modalWindow) { this.mainModel = mainModel; this.book = book; this.modalWindow = modalWindow; tabViewModel = null; WindowTitle = book.Title; WindowWidth = mainModel.AppSettings.Fiction.DetailsWindow.Width; WindowHeight = mainModel.AppSettings.Fiction.DetailsWindow.Height; WindowClosedCommand = new Command(WindowClosed); }