示例#1
0
 public SourceCodeFileAction(string repoDir, IRepository repository, string pathInRepo, IFileIconProvider iconProvider)
 {
     this.repoDir      = repoDir;
     this.repository   = repository;
     this.pathInRepo   = pathInRepo;
     this.iconProvider = iconProvider;
 }
 public AssetsFileDependenciesTreeSearchProvider(
     FileOpener fileOpener,
     IFileIconProvider fileIconProvider)
 {
     _fileOpener       = fileOpener;
     _fileIconProvider = fileIconProvider;
 }
        public OpenFileDialogViewModel(
            IDialogView <OpenFileDialogResult> view,
            IClipboardService clipboard,
            IFileIconProvider fileIconProvider,
            IMessageDialogService messageDialogService,
            bool allowMultipleSelection,
            IEnumerable <FileDialogFilter> filters)
        {
            _view = view;

            Filters        = filters.Select(FileDialogFilterViewModel.New).ToImmutableArray();
            SelectedFilter = Filters.FirstOrDefault();

            _fileName = String.Empty;

            var filter = this.WhenAnyValue(vm => vm.SelectedFilter).Select(vm => vm?.Filter).Select(Filter.FileDialog.Matches);

            FileExplorer = new FileExplorerViewModel(clipboard, fileIconProvider, messageDialogService, allowMultipleSelection, filter);

            OpenCommand   = ReactiveCommand.Create(Open);
            CancelCommand = ReactiveCommand.Create(Cancel);

            FileExplorer.FileOpened.Subscribe(_ => Open());
            FileExplorer.FileExplorerFolder.WhenAnyValue(vm => vm.SelectedItem).Subscribe(SelectedItemChanged);
        }
示例#4
0
        protected override IEnumerable <IResult> GetResults(IQuery queryObject)
        {
            var query = queryObject.Text.Trim();

            iconProvider = queryObject.Context.GetService <IFileIconProvider>();
            if (query.Length >= 3)
            {
                if (Uri.IsWellFormedUriString(query, UriKind.Absolute))
                {
                    yield return(new ShellAction(
                                     iconProvider,
                                     query, String.Format("Open URL {0}", query)).ToResult(Priority.Highest));
                }
                else
                {
                    yield return(WebLookupAction("Google", "http://www.google.com/search?q={0}", query, 1));

                    yield return(WebLookupAction("Wikipedia", "http://en.wikipedia.org/wiki/Special:Search?search={0}&go=Go", query));

                    yield return(WebLookupAction("Translate", "http://translate.google.com/#auto/en/{0}", query));

                    yield return(WebLookupAction("Leo", "http://dict.leo.org/?lp=ende&search={0}", query));

                    yield return(WebLookupAction("Preis", "http://www.heise.de/preisvergleich/?fs={0}&x=0&y=0&in=", query));
                }
            }
        }
示例#5
0
        public FileExplorerFolderViewModel(
            IClipboardService clipboard,
            IFileIconProvider fileIconProvider,
            IMessageDialogService messageDialogService,
            bool allowMultipleSelection,
            IObservable <IFilter <FileSystemEntry> >?filter = null)
        {
            _clipboard            = clipboard;
            _messageDialogService = messageDialogService;

            FileIconProvider = fileIconProvider;

            AllowMultipleSelection = allowMultipleSelection;

            FileOpened   = _fileOpened.AsObservable();
            FolderOpened = _folderOpened.AsObservable();

            filter ??= Observable.Return(Filter.True <FileSystemEntry>());

            _entries.Connect()
            .Filter(filter.Select(FilterExtensions.ToFunc), ListFilterPolicy.ClearAndReplace)
            .Bind(out _items)
            .Subscribe();

            SelectedItems = new ObservableCollection <FileSystemEntry>();

            OpenItemCommand = ReactiveCommand.Create <FileSystemEntry>(ItemOpened);

            CopyCommand   = ReactiveCommand.Create(CopyAsync);
            DeleteCommand = ReactiveCommand.Create(DeleteAsync);

            this.WhenAnyValue(vm => vm.Folder)
            .Subscribe(CurrentFolderChanged);
        }
示例#6
0
 public PackageContentFileItem(AssetsFileTarget target, AssetsFileTargetLibrary library, AssetsFileTargetLibraryContentFile contentFile, IFileIconProvider fileIconProvider)
     : base(GetProcessedContentFilePath(contentFile.Path))
 {
     Target            = target;
     Library           = library;
     ContentFile       = contentFile;
     _fileIconProvider = fileIconProvider;
 }
示例#7
0
 public ShellAction(IFileIconProvider iconProvider, string command, string name)
 {
     this.startInfo = new ProcessStartInfo()
     {
         FileName = command
     };
     this.iconProvider = iconProvider;
     this.name         = name;
 }
示例#8
0
 public ShellAction(IFileIconProvider iconProvider, string command)
 {
     this.startInfo = new ProcessStartInfo()
     {
         FileName = command
     };
     this.name         = command;
     this.iconProvider = iconProvider ?? throw new ArgumentNullException(nameof(iconProvider));
     this.LastExecuted = DateTime.MinValue;
 }
示例#9
0
        public FileExplorerViewModel(
            IClipboardService clipboard,
            IFileIconProvider fileIconProvider,
            IMessageDialogService messageDialogService,
            bool allowMultipleSelection,
            IObservable <IFilter <FileSystemEntry> >?filter = null)
        {
            _currentFolder = new Folder(new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.Desktop)));

            AddressBar = new FileExplorerAddressBarViewModel();

            FileExplorerTree = new FileExplorerTreeViewModel();

            filter ??= DefaultFilterObservable;

            var searchTextFilter =
                from searchText in this.WhenAnyValue(vm => vm.SearchText)
                select Filter.String.Contains(searchText, StringComparison.OrdinalIgnoreCase)
                .Cast <string, FileSystemEntry>(e => e.Name);

            filter = Observable.CombineLatest(filter, searchTextFilter, (f, s) => f.And(s));

            FileExplorerFolder = new FileExplorerFolderViewModel(
                clipboard, fileIconProvider, messageDialogService, allowMultipleSelection, filter);

            FileOpened = _fileOpened.AsObservable();

            NavigateBackCommand = ReactiveCommand.Create(
                NavigateBack,
                this.WhenAnyValue(vm => vm.CanNavigateBack));

            NavigateForwardCommand = ReactiveCommand.Create(
                NavigateForward,
                this.WhenAnyValue(vm => vm.CanNavigateForward));

            NavigateUpCommand = ReactiveCommand.Create(
                NavigateUp,
                this.WhenAnyValue(vm => vm.CurrentFolder).Select(x => x.Parent != null));

            AddressBar.AddressChanged.Subscribe(address => NavigateToAddress(address));

            FileExplorerTree.SelectedFolderChanged.Subscribe(folder => NavigateTo(folder));
            FileExplorerFolder.FolderOpened.Subscribe(folder => NavigateTo(folder));

            FileOpened = FileExplorerFolder.FileOpened;

            this.WhenAnyValue(vm => vm.CurrentFolder)
            .Subscribe(CurrentFolderChanged);
        }
示例#10
0
        public SaveFileDialogViewModel(
            IDialogView <SaveFileDialogResult> view,
            IClipboardService clipboard,
            IFileIconProvider fileIconProvider,
            IMessageDialogService messageDialogService)
        {
            _view = view;
            _messageDialogService = messageDialogService;

            FileExplorer = new FileExplorerViewModel(clipboard, fileIconProvider, messageDialogService, allowMultipleSelection: false);

            SaveCommand   = ReactiveCommand.Create(SaveAsync);
            CancelCommand = ReactiveCommand.Create(Cancel);

            FileExplorer.FileOpened.Subscribe(async file => await SaveAsync());

            FileExplorer.FileExplorerFolder.WhenAnyValue(vm => vm.SelectedItem).Subscribe(SelectedItemChanged);
        }
示例#11
0
    IResult?WebLookupAction(
        IFileIconProvider iconProvider,
        string title,
        string urlTemplate,
        string query,
        Func <string, bool>?queryFilter = null
        )
    {
        var lastUsed = DateTime.MinValue;

        // try to parse query
        var p = Regex.Split(query, @"\s+");

        var priority = Priority.Low;

        if (p.Length >= 2 && title.StartsWith(p[0], StringComparison.InvariantCultureIgnoreCase))
        {
            priority = Priority.High;
            query    = String.Join(" ", p.Skip(1)).Trim();
        }

        if (queryFilter is { })
示例#12
0
 public TextLocationAction(TextLocation textLocation, IFileIconProvider iconProvider)
 {
     TextLocation = textLocation;
     IconProvider = iconProvider;
 }
示例#13
0
 IResult AzureDevopsSearch(IFileIconProvider iconProvider, string organization, string query)
 => WebLookupAction(iconProvider, organization + " Azure Devops", $"https://dev.azure.com/{organization}/_search?text={{0}}*&type=wiki", query);
 public ContentFilesGroupToContentFilesRelation(IFileIconProvider fileIconProvider)
 {
     _fileIconProvider = fileIconProvider;
 }