private bool ClipboardAlreadySet(ClipboardItemViewModel viewModel) { var clipboard = BuildViewModelFromClipboard(); return(clipboard != null && clipboard.Text == viewModel.Text && clipboard.DataType == viewModel.DataType); }
public static ClipboardItemViewModel ByImage(BitmapSource bitmapSource) { var result = new ClipboardItemViewModel(bitmapSource) { DataType = Domain.ClipboardDataType.Image }; return(result); }
public static ClipboardItemViewModel MakeTextItem(string text) { var result = new ClipboardItemViewModel(text) { DataType = Domain.ClipboardDataType.Text }; return(result); }
public static ClipboardItemViewModel ByFileDropList(IEnumerable <string> fileDropList) { var result = new ClipboardItemViewModel(fileDropList) { DataType = Domain.ClipboardDataType.FileDrop }; return(result); }
public ClipboardItemViewModel BuildViewModelFromClipboard() { try { _logger.Debug("dbg #1"); var clipData = Clipboard.GetDataObject(); _logger.Debug("dbg #2"); if (clipData == null) { return(null); } _logger.Debug("dbg #3"); if (clipData.GetDataPresent(DataFormats.Text)) { _logger.Debug("dbg #4"); var clipboardText = (string)clipData.GetData(DataFormats.Text, true); return(ClipboardItemViewModel.ByText(clipboardText)); } _logger.Debug("dbg #5"); if (clipData.GetDataPresent(DataFormats.FileDrop)) { _logger.Debug("dbg #6"); var collection = (string[])clipData.GetData(DataFormats.FileDrop, true); return(ClipboardItemViewModel.ByFileDropList(collection)); } _logger.Debug("dbg #7"); if (Clipboard.ContainsImage()) { _logger.Debug("dbg #8"); var bmi = Clipboard.GetImage(); return(ClipboardItemViewModel.ByImage(bmi)); } _logger.Debug("dbg #9"); return(null); } catch (COMException exception) { _logger.Error($"Caught {nameof(COMException)}.", exception); var formats = Clipboard.GetDataObject().GetFormats(); _logger.Debug($"Dumping formats in clipboard..."); foreach (var format in formats) { _logger.Debug($"{format}"); } return(null); } }
private void SafeAddToClipboardHistory(ClipboardItemViewModel viewModel) { if (viewModel == null) { return; } if (_masterList.Any(x => x.DataType == viewModel.DataType && x.Text.Equals(viewModel.Text, StringComparison.InvariantCultureIgnoreCase))) { BringItemToTop(viewModel.Text); return; } _masterList.Insert(0, viewModel); }
public void SetClipboardBlind(ClipboardItemViewModel viewModel) { if (ClipboardAlreadySet(viewModel)) { return; } try { ActiveClipboardString = viewModel.Text; Clipboard.SetDataObject(viewModel.GetClipboardData()); } catch (COMException e) { _logger.Error(e); } }