Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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;
        }