public MultiPathsViewModel(PathsImplementation implementation, ClipboardObjectViewModel clipboardObject) : base(implementation, clipboardObject) { var pathViewModels = new MultiPathViewModel[implementation.Paths.Count]; for (int i = 0; i < implementation.Paths.Count; i++) { pathViewModels[i] = new MultiPathViewModel(implementation.Paths[i]); } PathViewModels = new ReadOnlyCollection <MultiPathViewModel>(pathViewModels); //determine shared path var firstPathViewModelParts = PathViewModels[0].Parts; int lowestSubPathCount = PathViewModels.Min(pvm => pvm.Parts.Count); int currentSubPathIndex = 0; for (; currentSubPathIndex < lowestSubPathCount; currentSubPathIndex++) { var currentSubPathName = firstPathViewModelParts[currentSubPathIndex].Name; if (!PathViewModels.Select(pvm => pvm.Parts[currentSubPathIndex]).All(pp => pp.Name == currentSubPathName)) { break; } } if (currentSubPathIndex > 0) { SharedPath = new MultiPathViewModel(firstPathViewModelParts[currentSubPathIndex - 1].FullPath); } }
public PinnedInteractableState(ClipboardObjectViewModel clipboardObjectViewModel, PinnedInteractable pinnedInteractable) : base(pinnedInteractable) { this.clipboardObjectViewModel = clipboardObjectViewModel; clipboardObjectViewModel.Model.Properties.CollectionChanged += UpdateToggled; UpdateToggled(); }
public void AddMetadata(ClipboardObjectViewModel clipboardObject) { foreach (var factory in _clipboardObjectMetadataFactories) { clipboardObject.Metadata.AddRange(factory.Create(clipboardObject)); } }
public FormatsMetadata(OriginalFormatsInfo originalFormatsInfo, ClipboardObjectViewModel clipboardObject) : base("TypesIcon", "Formats") { this.clipboardObject = clipboardObject; clipboardObject.Implementations.CollectionChanged += Implementations_CollectionChanged; Formats = originalFormatsInfo.Value.Select(f => new FormatMetadata(f)).ToList(originalFormatsInfo.Value.Count); RefreshFormats(); }
public override IEnumerable <ClipboardObjectMetadata> Create(ClipboardObjectViewModel clipboardObject) { yield return(new TriggersMetadata(clipboardObject)); if (clipboardObject.Model.MainTrigger.AdditionalInfo.TryGetValue <OriginalFormatsInfo>(out var originalFormatsInfo)) { yield return(new FormatsMetadata(originalFormatsInfo, clipboardObject)); } }
public override bool Passes(ClipboardObjectViewModel clipboardObjectViewModel) { var textImplemenationVM = clipboardObjectViewModel.Implementations.OfType <TextClipboardImplementationViewModel>().FirstOrDefault(); if (textImplemenationVM != null) { return(textImplemenationVM.Model.Source.Contains(searchText)); } else { return(false); } }
public BitmapImplementationViewModel(BitmapImplementation implementation, ClipboardObjectViewModel clipboardObject) : base(implementation, clipboardObject) { var bitmap = implementation.GetImage(); if (bitmap.PixelHeight > DefaultThumbnailPixelHeight) { var scale = (double)DefaultThumbnailPixelHeight / bitmap.PixelHeight; Thumbnail = new TransformedBitmap(bitmap, new ScaleTransform(scale, scale)); } else { Thumbnail = bitmap; } if (Thumbnail.CanFreeze) { Thumbnail.Freeze(); } }
public override bool Passes(ClipboardObjectViewModel clipboardObjectViewModel) { return(clipboardObjectViewModel.MainTrigger?.DataSourceProgram == Program || clipboardObjectViewModel.MainTrigger?.ForegroundProgram == Program); }
public override bool Passes(ClipboardObjectViewModel clipboardObjectViewModel) { return(PinnedManager.IsPinned(clipboardObjectViewModel.Model)); }
public override ClipboardImplementationViewModel Create(ClipboardImplementation implementation, ClipboardObjectViewModel clipboardObject) { if (implementation is TextClipboardImplementation textImplementation) { if (implementation.Parent is null) { return(new TextClipboardImplementationViewModel(textImplementation, clipboardObject)); } else { return(new LinkedTextClipboardImplementationViewModel(textImplementation, clipboardObject)); } } else if (implementation is PathsImplementation pathsImplementation) { if (pathsImplementation.Paths.Count == 1) { return(new SinglePathViewModel(pathsImplementation, clipboardObject)); } else { return(new MultiPathsViewModel(pathsImplementation, clipboardObject)); } } else if (implementation is BitmapImplementation bitmapImplementation) { return(new BitmapImplementationViewModel(bitmapImplementation, clipboardObject)); } return(null); }
public LinkedTextClipboardImplementationViewModel(TextClipboardImplementation implementation, ClipboardObjectViewModel clipboardObject) : base(implementation, clipboardObject) { }
public override bool Passes(ClipboardObjectViewModel clipboardObjectViewModel) { return(clipboardObjectViewModel.Implementations.Any(i => i.Model.Format == format)); }
public abstract IEnumerable <ClipboardObjectMetadata> Create(ClipboardObjectViewModel clipboardObject);
public abstract bool Passes(ClipboardObjectViewModel clipboardObjectViewModel);
public abstract ClipboardImplementationViewModel Create(ClipboardImplementation implementation, ClipboardObjectViewModel clipboardObject);
public ClipboardImplementationViewModel?CreateViewModel(ClipboardImplementation implementation, ClipboardObjectViewModel clipboardObject) { var returner = _viewModelFactoriesManager.OfType <ClipboardImplementationViewModelFactory>().Select(f => f.Create(implementation, clipboardObject)).FirstOrDefault(i => !(i is null)); if (!(returner is null)) { _interactablesManager.AssignStates(returner); } return(returner); }
public TriggersMetadata(ClipboardObjectViewModel clipboardObject) : base("TimeIcon", "History") { Triggers = clipboardObject.Triggers; }
protected ClipboardImplementationViewModel(ClipboardImplementation implementation, ClipboardObjectViewModel clipboardObject) : base(implementation, new ConcurrentBindableList <InteractableState>()) { ClipboardObject = clipboardObject; }