Ejemplo n.º 1
0
        private bool ClipboardAlreadySet(ClipboardItemViewModel viewModel)
        {
            var clipboard = BuildViewModelFromClipboard();

            return(clipboard != null &&
                   clipboard.Text == viewModel.Text &&
                   clipboard.DataType == viewModel.DataType);
        }
Ejemplo n.º 2
0
        public static ClipboardItemViewModel ByImage(BitmapSource bitmapSource)
        {
            var result = new ClipboardItemViewModel(bitmapSource)
            {
                DataType = Domain.ClipboardDataType.Image
            };

            return(result);
        }
Ejemplo n.º 3
0
        public static ClipboardItemViewModel MakeTextItem(string text)
        {
            var result = new ClipboardItemViewModel(text)
            {
                DataType = Domain.ClipboardDataType.Text
            };

            return(result);
        }
Ejemplo n.º 4
0
        public static ClipboardItemViewModel ByFileDropList(IEnumerable <string> fileDropList)
        {
            var result = new ClipboardItemViewModel(fileDropList)
            {
                DataType = Domain.ClipboardDataType.FileDrop
            };

            return(result);
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        public void SetClipboardBlind(ClipboardItemViewModel viewModel)
        {
            if (ClipboardAlreadySet(viewModel))
            {
                return;
            }

            try
            {
                ActiveClipboardString = viewModel.Text;
                Clipboard.SetDataObject(viewModel.GetClipboardData());
            }
            catch (COMException e)
            {
                _logger.Error(e);
            }
        }