protected override void OnInitialize() { base.OnInitialize(); List <BblTabState> tabStates = BblTabState.ReadFromRegistry(); _savedOptions = TabOptions.ReadFromRegistry(); if (_savedOptions == null || _savedOptions.Count == 0) { _savedOptions = new ObservableCollection <TabOptions>(); _savedOptions.Add(new TabOptions()); _savedOptions.Add(TabOptions.PhotoTabOptions); _savedOptions.Add(TabOptions.ComicTabOptions); } foreach (var tabState in tabStates) { TabViewModel tab = new TabViewModel(this, tabState, _savedOptions); Items.Add(tab); if (tabState.isActive) { ActivateItem(tab); } } }
protected override void OnDeactivate(bool close) { if (close) { List <BblTabState> tabStates = new List <BblTabState>(); foreach (var i in Items) { var tab = i as TabViewModel; tab.TabState.isActive = i.IsActive; if (tab.SelectedFolder != null) { tab.TabState.navigated = tab.SelectedFolder.FullName; } foreach (var fsbm in tab.Bookmarks) { var bm = (BblBookmark)fsbm.UserData; if (!bm.destroyOnClose) { tab.TabState.savedBookmarks.Add(bm); } } tabStates.Add(tab.TabState); } BblTabState.WriteToRegistry(tabStates); TabOptions.WriteToRegistry(_savedOptions); if (ImageSurface != null && !ImageSurface.IsDisposed) { ImageSurface.nextPageRequested -= OnNextPageRequested; ImageSurface.prevPageRequested -= OnPrevPageRequested; ImageSurface.fullscreenToggleRequested -= OnFullScreenToggleRequested; ImageSurface.Dispose(); } } base.OnDeactivate(close); }
public TabViewModel(ShellViewModel conductor, BblTabState tabstate, ObservableCollection <TabOptions> savedOptions) { _conductor = conductor; _tabState = tabstate; Library = new LibraryViewModel(this); DisplayName = tabstate.displayName; TabUIState uistate = tabstate.uiState; uistate.doLoad = true; TabUIState = uistate; _savedOptions = savedOptions; if (string.IsNullOrEmpty(tabstate.windowedOptions)) { tabstate.windowedOptions = "default"; } if (string.IsNullOrEmpty(tabstate.fullscreenOptions)) { tabstate.fullscreenOptions = "default"; } foreach (var o in savedOptions) { if (tabstate.windowedOptions == o.Name) { WindowedOptions = o; } else if (tabstate.fullscreenOptions == o.Name) { FullscreenOptions = o; } } TheExplorer = new XamlFSExplorer.FSExplorer(new DirectoryInfoEx[] { FSExplorer.MyComputerDirectory }) { HideAttributes = FileAttributes.Hidden | FileAttributes.System | FileAttributes.Offline, ShowDisabled = true }; var bookmark = _tabState.currentBookmark; bookmark.destroyOnClose = true; var fsbm = TheExplorer.AddBookmark(bookmark); fsbm.BookmarkClicked += GotoBookmark; fsbm.BookmarkDeleted += OnBookmarkDeleted; _bookmarks.Add(fsbm); foreach (var bm in _tabState.savedBookmarks) { fsbm = TheExplorer.AddBookmark(bm); fsbm.BookmarkClicked += GotoBookmark; fsbm.BookmarkDeleted += OnBookmarkDeleted; _bookmarks.Add(fsbm); } _tabState.savedBookmarks.Clear(); _customSorts.Add(new CustomSort("Natural")); _customSorts.Add(new CustomSort("Path")); _customSorts.Add(new CustomSort("Name")); _customSorts.Add(new CustomSort("Creation Time")); _customSorts.Add(new CustomSort("Last Modified")); _customSorts.Add(new CustomSort("Randomized")); if (string.IsNullOrEmpty(_tabState.booksSort)) { _tabState.booksSort = "Creation Time"; } SelectedCustomSort = _customSorts.Where(x => x.Name == _tabState.booksSort).FirstOrDefault(); SortDirection = _tabState.booksSortDirection; }