Просмотр исходного кода

Initial support of shortcuts everywhere

Eric Reed 12 лет назад
Родитель
Сommit
80fb3c9eb4

+ 11 - 0
MediaBrowser.Controller/Entities/AggregateFolder.cs

@@ -11,6 +11,17 @@ namespace MediaBrowser.Controller.Entities
     /// </summary>
     public class AggregateFolder : Folder
     {
+        /// <summary>
+        /// We don't support manual shortcuts
+        /// </summary>
+        protected override bool SupportsShortcutChildren
+        {
+            get
+            {
+                return false;
+            }
+        }
+
         /// <summary>
         /// The _virtual children
         /// </summary>

+ 32 - 0
MediaBrowser.Controller/Entities/CollectionFolder.cs

@@ -67,6 +67,38 @@ namespace MediaBrowser.Controller.Entities
             return NullTaskResult;
         }
 
+        /// <summary>
+        /// Our children are actually just references to the ones in the physical root...
+        /// </summary>
+        /// <value>The linked children.</value>
+        public override List<LinkedChild> LinkedChildren
+        {
+            get
+            {
+                ItemResolveArgs resolveArgs;
+
+                try
+                {
+                    resolveArgs = ResolveArgs;
+                }
+                catch (IOException ex)
+                {
+                    Logger.ErrorException("Error getting ResolveArgs for {0}", ex, Path);
+                    return new List<LinkedChild>();
+                }
+
+                return LibraryManager.RootFolder.RecursiveChildren
+                    .OfType<Folder>()
+                    .Where(i => i.Path != null && resolveArgs.PhysicalLocations.Contains(i.Path, StringComparer.OrdinalIgnoreCase))
+                    .SelectMany(c => c.LinkedChildren).ToList();
+
+            }
+            set
+            {
+                base.LinkedChildren = value;
+            }
+        }
+
         /// <summary>
         /// Our children are actually just references to the ones in the physical root...
         /// </summary>

+ 2 - 2
MediaBrowser.Controller/Entities/Folder.cs

@@ -81,11 +81,11 @@ namespace MediaBrowser.Controller.Entities
             }
         }
 
-        public List<LinkedChild> LinkedChildren { get; set; }
+        public virtual List<LinkedChild> LinkedChildren { get; set; }
 
         protected virtual bool SupportsShortcutChildren
         {
-            get { return false; }
+            get { return true; }
         }
 
         /// <summary>

+ 0 - 7
MediaBrowser.Controller/Entities/Movies/BoxSet.cs

@@ -6,12 +6,5 @@ namespace MediaBrowser.Controller.Entities.Movies
     /// </summary>
     public class BoxSet : Folder
     {
-        protected override bool SupportsShortcutChildren
-        {
-            get
-            {
-                return true;
-            }
-        }
     }
 }