예제 #1
0
        public void Add(IApplicationCollection applications)
        {
            foreach (var(name, filePath, version) in Enumerate())
            {
                IApplicationBuilder builder = applications.Add(
                    String.Format(
                        "{0} {1}",
                        name,
                        VersionFormatter.Format(version)
                        ),
                    version,
                    filePath,
                    null,
                    null,
                    false,
                    IconExtractor.Get(filePath),
                    Key.None,
                    true
                    );

                VsVersionLoader.AddAdministratorCommand(builder, filePath);
                VsVersionLoader.AddExperimentalCommand(builder, filePath);
            }
        }
        public void OpenMain()
        {
            if (mainWindow == null)
            {
                mainWindow = new MainWindow(this, Settings.Default, new ProcessService(countingService), runHotKey.IsSet);
                mainWindow.Closing += OnMainWindowClosing;
                mainWindow.Closed += OnMainWindowClosed;
            }

            if (mainWindow.ViewModel == null || isMainWindowViewModelReloadRequired)
            {
                isMainWindowViewModelReloadRequired = false;

                mainWindow.ShowInTaskbar = !runHotKey.IsSet;
                mainWindow.IsAutoSelectApplicationVersion = Settings.Default.IsAutoSelectApplicationVersion;

                MainViewModel viewModel = new MainViewModel(
                    new PinnedForEmptyPatternFileSearchService(
                        //new DelayedFileSearchService(
                        //    Dispatcher,
                        //    CreateFileSearchService()
                        //),
                        //this
                        CreateFileSearchService(),
                        this
                    ),
                    GetUserFileSearchMode,
                    GetUserFileSearchCount
                );

                VsVersionLoader vsLoader = new VsVersionLoader();
                vsLoader.Add(viewModel);

                AdditionalApplicationLoader additionalLoader = new AdditionalApplicationLoader();
                additionalLoader.Add(viewModel);

                IFileCollection files = viewModel;
                foreach (string filePath in GetPinnedFiles())
                    files.Add(Path.GetFileNameWithoutExtension(filePath), filePath, true);

                mainWindow.ViewModel = viewModel;
                mainWindow.TrySelectPreferedApplication();
            }

            mainWindow.IsAutoSelectApplicationVersion = Settings.Default.IsAutoSelectApplicationVersion;

            if (Settings.Default.IsFileSearchPatternSaved)
                mainWindow.ViewModel.SearchPattern = Settings.Default.FileSearchPattern;
            else if (!String.IsNullOrEmpty(mainWindow.ViewModel.SearchPattern))
                mainWindow.ViewModel.SearchPattern = String.Empty;

            mainWindow.Deactivated += OnMainWindowDeactivated;

            if (!startup.IsStartup || !startup.IsHidden)
            {
                mainWindow.Show();
                mainWindow.Activate();
            }
        }