From: <dos...@us...> - 2014-04-01 20:13:07
|
Revision: 4778 http://sourceforge.net/p/mp-plugins/code/4778 Author: doskabouter Date: 2014-04-01 20:13:04 +0000 (Tue, 01 Apr 2014) Log Message: ----------- Remember currently selected bookmark-item Modified Paths: -------------- trunk/plugins/BrowseTheWeb/Source/BrowseTheWeb/GUIBookmark.cs Modified: trunk/plugins/BrowseTheWeb/Source/BrowseTheWeb/GUIBookmark.cs =================================================================== --- trunk/plugins/BrowseTheWeb/Source/BrowseTheWeb/GUIBookmark.cs 2014-04-01 20:04:56 UTC (rev 4777) +++ trunk/plugins/BrowseTheWeb/Source/BrowseTheWeb/GUIBookmark.cs 2014-04-01 20:13:04 UTC (rev 4778) @@ -43,6 +43,9 @@ [SkinControlAttribute(3)] protected GUISortButtonControl btnSortBy = null; + BookmarkFolder currentList; + BookmarkBase selectedBookmark; + public const int BookmarkWindowId = 54537688; public override int GetID @@ -62,16 +65,29 @@ MyLog.debug("Init Browse the web bookmarks"); bool result = Load(GUIGraphicsContext.Skin + @"\BrowseTheWebBook.xml"); Bookmarks.Instance.LoadFromXml(Config.GetFolder(MediaPortal.Configuration.Config.Dir.Config) + "\\bookmarks.xml"); + currentList = Bookmarks.Instance.root; + selectedBookmark = null; return result; } protected override void OnPageLoad() { - LoadFacade(null); + LoadFacade(); Bookmark.InitCachePath(); base.OnPageLoad(); } + + protected override void OnPageDestroy(int newWindowId) + { + BtwebGuiListItem item = facade.SelectedListItem as BtwebGuiListItem; + if (item != null) + { + selectedBookmark = item.bookmark; + } + base.OnPageDestroy(newWindowId); + } + protected override void OnClicked(int controlId, GUIControl control, MediaPortal.GUI.Library.Action.ActionType actionType) { if (actionType == MediaPortal.GUI.Library.Action.ActionType.ACTION_SELECT_ITEM) @@ -81,10 +97,16 @@ { if (item.IsFolder) { - LoadFacade((BookmarkFolder)item.bookmark); + if (item.Path == "..") + { + selectedBookmark = currentList; + } + currentList = (BookmarkFolder)item.bookmark; + LoadFacade(); } else { + selectedBookmark = item.bookmark; GUIPlugin.StartupLink = item.Path; if (GUIWindowManager.GetPreviousActiveWindow() == GUIPlugin.PluginWindowId) GUIWindowManager.ShowPreviousWindow(); @@ -92,6 +114,7 @@ GUIWindowManager.ActivateWindow(GUIPlugin.PluginWindowId); } } + } if (control == btnViewAs) @@ -118,14 +141,15 @@ } } - public void LoadFacade(BookmarkFolder parent) + public void LoadFacade() { + BookmarkFolder bmf = currentList; facade.CurrentLayout = Settings.Instance.View; facade.Clear(); - if (parent != null) + if (bmf.Parent != null) { BtwebGuiListItem item = new BtwebGuiListItem(); - item.bookmark = parent.Parent; + item.bookmark = bmf.Parent; item.IsFolder = true; item.Label = ".."; item.Path = ".."; @@ -134,7 +158,7 @@ facade.Add(item); } - BookmarkFolder bmf = parent == null ? Bookmarks.Instance.root : parent; + facade.SelectedListItemIndex = 0; foreach (BookmarkBase bookmark in bmf.Items) { @@ -157,9 +181,11 @@ } facade.Add(item); + if (bookmark == selectedBookmark) + facade.SelectedListItemIndex = facade.Count - 1; } + GUIPropertyManager.SetProperty("#itemcount", facade.Count.ToString()); - facade.SelectedListItemIndex = 0; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |