/// <summary> /// Finds the first Ruleset matching the selector argument /// </summary> public IEnumerable<Closure> FindRulesets(Selector selector) { return Frames.Select(frame => frame.Find(this, selector, null)) .Select(matchedClosuresList => matchedClosuresList.Where( matchedClosure => !Frames.Any(frame => frame.IsEqualOrClonedFrom(matchedClosure.Ruleset)))) .FirstOrDefault(matchedClosuresList => matchedClosuresList.Count() != 0); }
private bool CanDelete() { if (Frames != null && Frames.Any(f => f.IsSelected)) { return(true); } return(false); }
private void OutputWatcher_Created(object sender, FileSystemEventArgs e) { if (e.ChangeType == WatcherChangeTypes.Created) { string[] fls = Directory.GetFiles(OutputWatcher.Path, OutputWatcher.Filter); int p = fls.Count(t => Frames.Any(k => k.Filename == Path.GetFileNameWithoutExtension(t))); MainWorker.ReportProgress(0, new ProgressChangeEventArgs(p * 100 / Frames.Count, ProgressType.ProcessingImages)); } }
private Frame GetFrame(ushort FrameNumber) { if (!Frames.Any(x => x.FrameNumber == FrameNumber)) { Frames.Add(new Frame() { FrameNumber = FrameNumber, FrameId = Guid.NewGuid() }); } return(Frames.Single(x => x.FrameNumber == FrameNumber)); }
/// <summary> /// Add a PP3 keyframe /// </summary> /// <param name="path">Path to the PP3 file</param> /// <param name="index">Index where the keyframe is set</param> internal override void AddKeyframe(int index, string path) { if (index < 0 && index >= Frames.Count) { throw new ArgumentException("Index too high or low"); } PP3 npp3 = new PP3(path); if (Frames.Any(t => (((FrameRT)t).PP3File == null) ? false : ((FrameRT)t).PP3File.FileVersion != npp3.FileVersion)) { throw new FileVersionException("Different PP3 version than previously added PP3's"); } ((FrameRT)Frames[index]).PP3File = new PP3(path); Frames[index].IsKeyframe = true; }
/// <summary> /// Add a XMP keyframe /// </summary> /// <param name="path">Path to the XMP file</param> /// <param name="index">Index where the keyframe is set</param> internal override void AddKeyframe(int index, string path) { if (index < 0 && index >= Frames.Count) { throw new ArgumentException("Index too high or low"); } XMP nxmp = new XMP(path); if (Frames.Any(t => (((FrameACR)t).XMPFile == null) ? false : ((FrameACR)t).XMPFile.FileVersion != nxmp.FileVersion)) { throw new FileVersionException("Different XMP version than previously added XMP's"); } ((FrameACR)Frames[index]).XMPFile = new XMP(path); Frames[index].IsKeyframe = true; }
/// <summary> /// Finds the first Ruleset matching the selector argument that inherits from or is of type TRuleset (pass this as Ruleset if /// you are trying to find ANY Ruleset that matches the selector) /// </summary> public IEnumerable <Closure> FindRulesets(Selector selector) { var matchingRuleSets = Frames .Select(frame => frame.Find <Ruleset>(this, selector, null)) .Select( matchedClosuresList => matchedClosuresList.Where( matchedClosure => { if (!Frames.Any(frame => frame.IsEqualOrClonedFrom(matchedClosure.Ruleset))) { return(true); } var mixinDef = matchedClosure.Ruleset as MixinDefinition; if (mixinDef != null) { return(mixinDef.Condition != null); } return(false); } ) ) .FirstOrDefault(matchedClosuresList => matchedClosuresList.Count() != 0); if (matchingRuleSets != null) { return(matchingRuleSets); } if (Parent != null) { matchingRuleSets = Parent.FindRulesets(selector); } if (matchingRuleSets != null) { return(matchingRuleSets); } if (ClosureEnvironment != null) { return(ClosureEnvironment.FindRulesets(selector)); } return(null); }
/// <summary> /// Finds the first Ruleset matching the selector argument /// </summary> public IEnumerable <Closure> FindRulesets(Selector selector) { return(Frames.Select(frame => frame.Find(this, selector, null)) .Select(matchedClosuresList => matchedClosuresList.Where( matchedClosure => { if (!Frames.Any(frame => frame.IsEqualOrClonedFrom(matchedClosure.Ruleset))) { return true; } var mixinDef = matchedClosure.Ruleset as MixinDefinition; if (mixinDef != null) { return mixinDef.Condition != null; } return false; })) .FirstOrDefault(matchedClosuresList => matchedClosuresList.Count() != 0)); }
/// <summary> /// Finds the first Ruleset matching the selector argument that inherits from or is of type TRuleset (pass this as Ruleset if /// you are trying to find ANY Ruleset that matches the selector) /// </summary> public IEnumerable <Closure> FindRulesets(Selector selector) { var matchingRuleSets = Frames .Reverse() .SelectMany(frame => frame.Find <Ruleset>(this, selector, null)) .Where(matchedClosure => { if (!Frames.Any(frame => frame.IsEqualOrClonedFrom(matchedClosure.Ruleset))) { return(true); } var mixinDef = matchedClosure.Ruleset as MixinDefinition; if (mixinDef != null) { return(mixinDef.Condition != null); } return(false); }).ToList(); if (matchingRuleSets.Any()) { return(matchingRuleSets); } if (Parent != null) { var parentRulesets = Parent.FindRulesets(selector); if (parentRulesets != null) { return(parentRulesets); } } if (ClosureEnvironment != null) { return(ClosureEnvironment.FindRulesets(selector)); } return(null); }
private bool FrameExists(string name) { return(Frames.Any(f => f.Name == name)); }